docs: def _get_metadata(self, key='', default=None, builtin=True):
      """
      get_metadata([key, default, simple])
  
      Retrieve metadata with nested keys separated by dots.
  
      This is useful to avoid repeatedly checking if a dict exists, as
      the frontmatter might not have the keys that we expect.
  
      With ``builtin=True`` (the default), it will convert the results to
      built-in Python types, instead of :class:`.MetaValue` elements. EG: instead of returning a MetaBool it will return True|False.
  
      :param key: string with the keys separated by a dot (``key1.key2``). Default is an empty string (which returns the entire metadata dict)
      :type key: ``str``
      :param default: return value in case the key is not found (default is ``None``)
      :param builtin: If True, return built-in Python types (default is ``True``)
  
      :Example:
  
          >>> doc.metadata['format']['show-frame'] = True
          >>> # ...
          >>> # afterwards:
          >>> show_frame = doc.get_metadata('format.show-frame', False)
          >>> stata_path = doc.get_metadata('media.path.figures', '.')
      """
  
      # Retrieve metadata
      assert isinstance(key, str)
      meta = self.metadata
  
      # Retrieve specific key
      if key:
          for k in key.split('.'):
              if isinstance(meta, MetaMap) and k in meta.content:
                  meta = meta[k]
              else:
                  return default
  
      # Stringify contents
      return meta2builtin(meta) if builtin else meta