configure function
None
configure source
def configure(markata: "MarkataMarkdown") -> None:
if "markdown_extensions" not in markata.config:
markdown_extensions = [""]
if isinstance(markata.config["markdown_extensions"], str):
markdown_extensions = [markata.config["markdown_extensions"]]
if isinstance(markata.config["markdown_extensions"], list):
markdown_extensions = markata.config["markdown_extensions"]
else:
raise TypeError("markdown_extensions should be List[str]")
markata.markdown_extensions = [*DEFAULT_MD_EXTENSIONS, *markdown_extensions]
markata.md = markdown.Markdown(extensions=markata.markdown_extensions)
render function
None
render source
def render(markata: "Markata") -> None:
config = markata.get_plugin_config(__file__)
with markata.cache as cache:
for article in markata.iter_articles("rendering markdown"):
key = markata.make_hash(
"render_markdown",
"render",
article.content,
)
html_from_cache = cache.get(key)
if html_from_cache is None:
html = markata.md.convert(article.content)
cache.add(key, html, expire=config["cache_expire"])
else:
html = html_from_cache
article.html = html
article.article_html = copy.deepcopy(html)
article["html"] = html
article["article_html"] = article.article_html
MarkataMarkdown class
None
MarkataMarkdown source
class MarkataMarkdown(Markata):
articles: List = []
md: markdown.Markdown = markdown.Markdown()
markdown_extensions: List = []