diff options
| -rw-r--r-- | md_tw.py | 47 | 
1 files changed, 47 insertions, 0 deletions
| @@ -467,6 +467,53 @@ class TWMarkdown(mistune.Markdown):      def output_def_link(self):          return self.renderer.def_link(self.token['text']) +    def output_footnote(self): +        rm_i_indent = True +        indent = ''.ljust(self.token['spaces']) + +        def process(): +            nonlocal rm_i_indent + +            txt = self.tok() +            if rm_i_indent: +                txt = txt.lstrip() + +                # Don't remove initial indent after processing first item. +                rm_i_indent = False + +            return txt + +        # Take note of footnote key. +        key = self.token['key'] + +        # Add current initial indent +        body = self.renderer.tw_get('initial_indent') + +        # Set width +        o_width = self.renderer.tw_get('width') +        item_width = (o_width +                          - (len(self.renderer.tw_get('initial_indent')) +                                 # Account for '[^key]: ' +                                 + (len(key) + 5))) +        self.renderer.tw_set(width=item_width) + +        # Set prefix +        prefix =  self._add_prefix(indent) + +        while self.pop()['type'] != 'footnote_end': +            body += process() +        body = body.rstrip() + '\n' + +        rendered_fn = self.renderer.footnote_item(key, body) + +        # Remove prefix +        self._remove_prefix(len(indent)) + +        # Revert width +        self.renderer.tw_set(width=o_width) + +        return rendered_fn +  def main():      print('USAGE: md_tw 72 file.md file2.md [...]') | 
