author | Julien Cristau <julien.cristau@logilab.fr> |
Fri, 27 Mar 2015 16:37:26 +0100 | |
changeset 10288 | 848b7ca9636e |
parent 10012 | 8c2c6fdd8d56 |
permissions | -rw-r--r-- |
10012
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
1 |
from __future__ import absolute_import |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
2 |
import markdown |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
3 |
|
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
4 |
import logging |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
5 |
|
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
6 |
log = logging.getLogger(__name__) |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
7 |
|
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
8 |
|
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
9 |
def markdown_publish(context, data): |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
10 |
"""publish a string formatted as MarkDown Text to HTML |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
11 |
|
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
12 |
:type context: a cubicweb application object |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
13 |
|
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
14 |
:type data: str |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
15 |
:param data: some MarkDown text |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
16 |
|
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
17 |
:rtype: unicode |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
18 |
:return: |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
19 |
the data formatted as HTML or the original data if an error occurred |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
20 |
""" |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
21 |
md = markdown.Markdown() |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
22 |
try: |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
23 |
return md.convert(data) |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
24 |
except: |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
25 |
import traceback; traceback.print_exc() |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
26 |
log.exception("Error while converting Markdown to HTML") |
8c2c6fdd8d56
[RichString] Add markdown support
Christophe de Vienne <christophe@unlish.com>
parents:
diff
changeset
|
27 |
return data |