From: Yuri T. <qar...@gm...> - 2007-10-17 07:18:05
|
It doesn't seem that ugly, once I managed to parse it. :) A question though: this being a "plugin" means that all Markdown formatting would need to be surrounded by {{{...}}}, right? Is there a way of avoiding this? Judging by http://trac.edgewall.org/ticket/615, I am guessing that there isn't any blessed solution. But one would think that there should be a way to hack it to default to Markdown? - yuri On 10/16/07, Brian Jaress <bri...@gn...> wrote: > > A while back I did an ugly hack that mostly worked (but I haven't used > it in a while). I just uses a giant regular expresion to extract link > targets, run them through the wiki engine, and then process the whole > thing with markdown.py. > > There must be a better way. > > > """Trac plugin for Markdown Syntax (with links) > > Everything markdown-ed as a link target is run through Trac's wiki > formatter to get a substitute url. > > Tested with Trac 0.8.1 and python-markdown 1.4 on Debian GNU/Linux. > > Brian Jaress > 2007-01-04 > """ > > from re import sub, compile, search, I > from markdown import markdown > from trac.WikiFormatter import wiki_to_oneliner > > #links, autolinks, and reference-style links > LINK = compile( > r'(\]\()([^) ]+)([^)]*\))|(<)([^>]+)(>)|(\n\[[^]]+\]: *)([^ > \n]+)(.*\n)' > ) > > HREF = compile(r'href=[\'"]?([^\'" ]*)') > > def execute(hdf, txt, env): > abs = env.abs_href.base > abs = abs[:len(abs) - len(env.href.base)] > def convert(m): > pre, target, suf = filter(None, m.groups()) > url = search( > HREF, > wiki_to_oneliner(target, hdf, env, env.get_db_cnx()), > I).groups()[0] > #Trac creates relative links, which markdown won't touch inside > # <autolinks> because they look like HTML > if pre == '<' and url != target: > pre += abs > return pre + str(url) + suf > > return markdown(sub(LINK, convert, txt)) > > > > On Tue, Oct 16, 2007 at 03:45:46PM -0500, Yuri Takhteyev wrote: > > Has anyone gotten Trac working with Markdown? What exactly does it > take? > > > > - yuri > > > > -- > > http://www.freewisdom.org/ > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > Python-markdown-discuss mailing list > > Pyt...@li... > > https://lists.sourceforge.net/lists/listinfo/python-markdown-discuss > > > -- > Brian Jaress > bri...@gn... > http://brian-jaress.livejournal.com > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Python-markdown-discuss mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-markdown-discuss > -- Yuri Takhteyev Ph.D. Candidate, UC Berkeley School of Information http://takhteyev.org/, http://www.freewisdom.org/ |