X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fmsg_renderers.c;h=2132a2dd42f2271c196cf0d5c6e9e38e846eb4af;hb=85b53564ef1cc58a77af206ebdbd1f3fa7d225b2;hp=6fb4af2267c7276a064cb8b1732daf9f6f8df78e;hpb=12b9abbeeaaa4b866cd0212e85e8104c50dfd84e;p=citadel.git diff --git a/webcit/msg_renderers.c b/webcit/msg_renderers.c index 6fb4af226..2132a2dd4 100644 --- a/webcit/msg_renderers.c +++ b/webcit/msg_renderers.c @@ -1137,6 +1137,29 @@ void render_MAIL_html(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset Mime->Data = Buf; } +#ifdef HAVE_MARKDOWN +void render_MAIL_markdown(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) +{ +#include + wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); + MMIOT *doc; + char *md_as_html = NULL; + + if (StrLength(Mime->Data) == 0) + return; + + doc = mkd_string(ChrPtr(Mime->Data), StrLength(Mime->Data), 0); + mkd_compile(doc, 0); + if (mkd_document(doc, &md_as_html) != EOF) { + FreeStrBuf(&Mime->Data); + Mime->Data = NewStrBufPlain(md_as_html, -1); + } +// free(md_as_html); + mkd_cleanup(doc); + +} +#endif + void render_MAIL_UNKNOWN(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); @@ -1598,6 +1621,9 @@ InitModule_MSGRENDERERS RegisterMimeRenderer(HKEY("text/plain"), render_MAIL_text_plain, 1, 3); RegisterMimeRenderer(HKEY("text"), render_MAIL_text_plain, 1, 1); RegisterMimeRenderer(HKEY("text/html"), render_MAIL_html, 1, 100); +#ifdef HAVE_MARKDOWN + RegisterMimeRenderer(HKEY("text/x-markdown"), render_MAIL_markdown, 1, 30); +#endif RegisterMimeRenderer(HKEY(""), render_MAIL_UNKNOWN, 0, 0); /* these headers are citserver replies to MSG4 and friends. one evaluator for each */