code: def _parse_text(self, page_text):
          
  
          # 1 sanitize: remove leading blank lines
          # 2 separate "config text" from content, store content
          # 3 convert config text + \n to obtain Meta, this is the config.
  
          lines = page_text.split('\n')
          i = 0
          while lines[i].strip() == '':
              i += 1
          if i > 0: # i points to the first non-blank line.  Else, i is 0, there are no leading blank lines
              lines = lines[i:]  #remove leading blank lines
  
          i = 0
          while lines[i].strip() != '':
              i += 1
              # i points to the first blank line
          cfg_lines = '\n'.join(lines[0:i + 1])  #config lines, plus the empty line
  
          md = markdown.Markdown(extensions=['meta','fenced_code', 'codehilite'],output_format="html5")
          md.convert(cfg_lines)   # need to trigger the conversion to obtain md.Meta
  
          self._config = md.Meta
          self._content =  '\n'.join(lines[i+1:])
docs: Extract the s2config and the content from the raw page text.