/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/rss.py (3693B)
import markdown from markdown import etree DEFAULT_URL = "http://www.freewisdom.org/projects/python-markdown/" DEFAULT_CREATOR = "Yuri Takhteyev" DEFAULT_TITLE = "Markdown in Python" GENERATOR = "http://www.freewisdom.org/projects/python-markdown/markdown2rss" month_map = { "Jan" : "01", "Feb" : "02", "March" : "03", "April" : "04", "May" : "05", "June" : "06", "July" : "07", "August" : "08", "September" : "09", "October" : "10", "November" : "11", "December" : "12" } def get_time(heading): heading = heading.split("-")[0] heading = heading.strip().replace(",", " ").replace(".", " ") month, date, year = heading.split() month = month_map[month] return rdftime(" ".join((month, date, year, "12:00:00 AM"))) def rdftime(time): time = time.replace(":", " ") time = time.replace("/", " ") time = time.split() return "%s-%s-%sT%s:%s:%s-08:00" % (time[0], time[1], time[2], time[3], time[4], time[5]) def get_date(text): return "date" class RssExtension (markdown.Extension): def extendMarkdown(self, md, md_globals): self.config = { 'URL' : [DEFAULT_URL, "Main URL"], 'CREATOR' : [DEFAULT_CREATOR, "Feed creator's name"], 'TITLE' : [DEFAULT_TITLE, "Feed title"] } md.xml_mode = True # Insert a tree-processor that would actually add the title tag treeprocessor = RssTreeProcessor(md) treeprocessor.ext = self md.treeprocessors['rss'] = treeprocessor md.stripTopLevelTags = 0 md.docType = '\n' class RssTreeProcessor(markdown.treeprocessors.Treeprocessor): def run (self, root): rss = etree.Element("rss") rss.set("version", "2.0") channel = etree.SubElement(rss, "channel") for tag, text in (("title", self.ext.getConfig("TITLE")), ("link", self.ext.getConfig("URL")), ("description", None)): element = etree.SubElement(channel, tag) element.text = text for child in root: if child.tag in ["h1", "h2", "h3", "h4", "h5"]: heading = child.text.strip() item = etree.SubElement(channel, "item") link = etree.SubElement(item, "link") link.text = self.ext.getConfig("URL") title = etree.SubElement(item, "title") title.text = heading guid = ''.join([x for x in heading if x.isalnum()]) guidElem = etree.SubElement(item, "guid") guidElem.text = guid guidElem.set("isPermaLink", "false") elif child.tag in ["p"]: try: description = etree.SubElement(item, "description") except UnboundLocalError: # Item not defined - moving on pass else: if len(child): content = "\n".join([etree.tostring(node) for node in child]) else: content = child.text pholder = self.markdown.htmlStash.store( "" % content) description.text = pholder return rss def makeExtension(configs): return RssExtension(configs)