From 2b7e391fcd51d3468133f628f2e013574cf16536 Mon Sep 17 00:00:00 2001 From: Waylan Limberg Date: Sat, 9 Aug 2008 22:55:44 -0400 Subject: reorganized the extensions into a seperate dir. Much cleaner looking file system IMO. --- mdx_meta.py | 81 ------------------------------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 mdx_meta.py (limited to 'mdx_meta.py') diff --git a/mdx_meta.py b/mdx_meta.py deleted file mode 100644 index 30dea8a..0000000 --- a/mdx_meta.py +++ /dev/null @@ -1,81 +0,0 @@ -#!usr/bin/python - -''' -Meta Data Extension for Python-Markdown -========================================== - -This extension adds Meta Data handling to markdown. - - >>> import markdown - >>> text = """Title: A Test Doc. - ... Author: Waylan Limberg - ... John Doe - ... Blank_Data: - ... - ... The body. This is paragraph one. - ... """ - >>> md = markdown.Markdown(text, ['meta']) - >>> md.convert() - u'

The body. This is paragraph one.\\n

' - >>> md.Meta - {u'blank_data': [u''], u'author': [u'Waylan Limberg', u'John Doe'], u'title': [u'A Test Doc.']} - -Make sure text without Meta Data still works (markdown < 1.6b returns a

). - - >>> text = ' Some Code - not extra lines of meta data.' - >>> md = markdown.Markdown(text, ['meta']) - >>> md.convert() - u'

Some Code - not extra lines of meta data.\\n
' - >>> md.Meta - {} - -''' - -import markdown, re - -# Global Vars -META_RE = re.compile(r'^[ ]{0,3}(?P[A-Za-z0-9_-]+):\s*(?P.*)') -META_MORE_RE = re.compile(r'^[ ]{4,}(?P.*)') - -class MetaExtension (markdown.Extension) : - def __init__(self, configs): - pass - - def extendMarkdown(self, md, md_globals) : - self.md = md - - # Insert meta preprocessor first - META_PREPROCESSOR = MetaPreprocessor() - META_PREPROCESSOR.md = md - md.preprocessors.insert(0, META_PREPROCESSOR) - -class MetaPreprocessor(markdown.Preprocessor) : - def run(self, lines) : - meta = {} - key = None - while 1: - line = lines.pop(0) - if line.strip() == '': - break # blank line - done - m1 = META_RE.match(line) - if m1: - key = m1.group('key').lower().strip() - meta[key] = [m1.group('value').strip()] - else: - m2 = META_MORE_RE.match(line) - if m2 and key: - # Add another line to existing key - meta[key].append(m2.group('value').strip()) - else: - lines.insert(0, line) - break # no meta data - done - self.md.Meta = meta - return lines - - -def makeExtension(configs=None) : - return MetaExtension(configs=configs) - -if __name__ == "__main__": - import doctest - doctest.testmod() -- cgit v1.2.3