1
Fork 0

Dynamically get supported kroki languages

This commit is contained in:
Jake Howard 2023-09-23 22:19:55 +01:00
parent 61f0bd2a43
commit 8da317e061
Signed by: jake
GPG Key ID: 57AFB45680EDD477
1 changed files with 12 additions and 7 deletions

View File

@ -11,14 +11,10 @@ import os
from py_svg_hush import filter_svg
from scour.scour import scourString
from slugify import slugify
import json
logger = get_plugin_logger("kroki")
DIAGRAM_TYPES = {
"blockdiag",
"mermaid"
}
DIAGRAM_CACHE_TIME = timedelta(days=7)
@ -62,13 +58,22 @@ def fence_div_format(site_dir, source, language, *args, attrs, **kwargs):
return f"<img src='{image_url}' alt='{title}' />"
def on_config(config):
kroki_langs = [
lang
for lang, version
in json.loads(download_and_cache_url("https://kroki.io/health", DIAGRAM_CACHE_TIME))["version"].items()
if isinstance(version, str)
]
format_kroki_diagram = partial(fence_div_format, config["site_dir"])
custom_fences = [
{
"name": diagram,
"class": diagram,
"format": partial(fence_div_format, config["site_dir"])
"format": format_kroki_diagram
}
for diagram in DIAGRAM_TYPES
for diagram in kroki_langs
]
config.mdx_configs["pymdownx.superfences"] = {