|
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/
|