docs: def make_citation_dict(td):
      """
      Update a citation dictionary by editing the Author field
      :param td: A BixTex format citation dict or a term
      :return:
      """
  
      from datetime import datetime
  
      if isinstance(td, dict):
          d = td
          name = d['name_link']
      else:
  
          d = td.as_dict()
          d['_term'] = td
  
          try:
              d['name_link'] = td.name
          except AttributeError:
              d['name_link'] = td['name_link'].value
  
      if 'author' in d and isinstance(d['author'], str):
          authors = []
          for e in d['author'].split(';'):
              author_d = HumanName(e).as_dict(include_empty=False)
              if 'suffix' in author_d:
                  author_d['lineage'] = author_d['suffix']
                  del author_d['suffix']
              authors.append(author_d)
          d['author'] = authors
  
      if not 'type' in d:
  
          if '_term' in d:
              t = d['_term']
  
              if t.term_is('Root.Reference') or t.term_is('Root.Resource'):
                  d['type'] = 'dataset'
  
              elif t.term_is('Root.Citation'):
                  d['type'] = 'article'
              else:
                  d['type'] = 'article'
  
      if d['type'] == 'dataset':
  
          if not 'editor' in d:
              d['editor'] = [HumanName('Missing Editor').as_dict(include_empty=False)]
  
          if not 'accessdate' in d:
              d['accessdate'] = datetime.now().strftime('%Y-%m-%d')
  
      if not 'author' in d:
          d['author'] = [HumanName('Missing Author').as_dict(include_empty=False)]
  
      if not 'title' in d:
          d['title'] = d.get('description', '<Missing Title>')
  
      if not 'journal' in d:
          d['journal'] = '<Missing Journal>'
  
      if not 'year' in d:
          d['year'] = '<Missing Year>'
  
      if '_term' in d:
          del d['_term']
  
      return d