/usr/lib/python2.6/site-packages/markdown/extensions
NameSizeModeActions
abbr.py28990644editdlrm
abbr.pyc42940644editdlrm
abbr.pyo42940644editdlrm
codehilite.py76730644editdlrm
codehilite.pyc81290644editdlrm
codehilite.pyo81290644editdlrm
def_list.py31700644editdlrm
def_list.pyc40470644editdlrm
def_list.pyo40470644editdlrm
extra.py17390644editdlrm
extra.pyc23230644editdlrm
extra.pyo23230644editdlrm
fenced_code.py34230644editdlrm
fenced_code.pyc43710644editdlrm
fenced_code.pyo43710644editdlrm
footnotes.py100550644editdlrm
footnotes.pyc114330644editdlrm
footnotes.pyo114330644editdlrm
headerid.py63260644editdlrm
headerid.pyc74700644editdlrm
headerid.pyo74700644editdlrm
html_tidy.py20710644editdlrm
html_tidy.pyc27560644editdlrm
html_tidy.pyo27560644editdlrm
imagelinks.py34910644editdlrm
imagelinks.pyc33110644editdlrm
imagelinks.pyo33110644editdlrm
meta.py25900644editdlrm
meta.pyc32750644editdlrm
meta.pyo32750644editdlrm
rss.py36930644editdlrm
rss.pyc43370644editdlrm
rss.pyo43370644editdlrm
tables.py30790644editdlrm
tables.pyc38770644editdlrm
tables.pyo38770644editdlrm
toc.py50980644editdlrm
toc.pyc44660644editdlrm
toc.pyo44660644editdlrm
wikilinks.py52920644editdlrm
wikilinks.pyc62810644editdlrm
wikilinks.pyo62810644editdlrm
__init__.py00644editdlrm
__init__.pyc1510644editdlrm
__init__.pyo1510644editdlrm
Edit: /usr/lib/python2.6/site-packages/markdown/extensions/def_list.py (3170B)
""" Definition List Extension for Python-Markdown ============================================= Added parsing of Definition Lists to Python-Markdown. A simple example: Apple : Pomaceous fruit of plants of the genus Malus in the family Rosaceae. : An american computer company. Orange : The fruit of an evergreen tree of the genus Citrus. Copyright 2008 - [Waylan Limberg](http://achinghead.com) """ import markdown, re from markdown import etree class DefListProcessor(markdown.blockprocessors.BlockProcessor): """ Process Definition Lists. """ RE = re.compile(r'(^|\n)[ ]{0,3}:[ ]{1,3}(.*?)(\n|$)') def test(self, parent, block): return bool(self.RE.search(block)) def run(self, parent, blocks): block = blocks.pop(0) m = self.RE.search(block) terms = [l.strip() for l in block[:m.start()].split('\n') if l.strip()] d, theRest = self.detab(block[m.end():]) if d: d = '%s\n%s' % (m.group(2), d) else: d = m.group(2) #import ipdb; ipdb.set_trace() sibling = self.lastChild(parent) if not terms and sibling.tag == 'p': # The previous paragraph contains the terms state = 'looselist' terms = sibling.text.split('\n') parent.remove(sibling) # Aquire new sibling sibling = self.lastChild(parent) else: state = 'list' if sibling and sibling.tag == 'dl': # This is another item on an existing list dl = sibling if len(dl) and dl[-1].tag == 'dd' and len(dl[-1]): state = 'looselist' else: # This is a new list dl = etree.SubElement(parent, 'dl') # Add terms for term in terms: dt = etree.SubElement(dl, 'dt') dt.text = term # Add definition self.parser.state.set(state) dd = etree.SubElement(dl, 'dd') self.parser.parseBlocks(dd, [d]) self.parser.state.reset() if theRest: blocks.insert(0, theRest) class DefListIndentProcessor(markdown.blockprocessors.ListIndentProcessor): """ Process indented children of definition list items. """ ITEM_TYPES = ['dd'] LIST_TYPES = ['dl'] def create_item(parent, block): """ Create a new dd and parse the block with it as the parent. """ dd = markdown.etree.SubElement(parent, 'dd') self.parser.parseBlocks(dd, [block]) class DefListExtension(markdown.Extension): """ Add definition lists to Markdown. """ def extendMarkdown(self, md, md_globals): """ Add an instance of DefListProcessor to BlockParser. """ md.parser.blockprocessors.add('defindent', DefListIndentProcessor(md.parser), '>indent') md.parser.blockprocessors.add('deflist', DefListProcessor(md.parser), '>ulist') def makeExtension(configs={}): return DefListExtension(configs=configs)