Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ classifiers = [
requires-python = ">=3.9"

[project.optional-dependencies]
md = ["cmarkgfm>=0.8.0"]
md = ["comrak>=0.0.6"]

[tool.setuptools]
include-package-data = true
Expand Down Expand Up @@ -66,6 +66,6 @@ enable_error_code = [
[[tool.mypy.overrides]]
# These modules do not yet have types available.
module = [
"cmarkgfm.*"
"comrak.*"
]
ignore_missing_imports = true
36 changes: 28 additions & 8 deletions readme_renderer/markdown.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,36 @@
)

try:
import cmarkgfm
from cmarkgfm.cmark import Options as cmarkgfmOptions
import comrak

gfm_extension_options = comrak.ExtensionOptions()
gfm_extension_options.autolink = True
gfm_extension_options.strikethrough = True
gfm_extension_options.table = True
gfm_extension_options.tagfilter = True
gfm_extension_options.tasklist = True

common_render_options = comrak.RenderOptions()
common_render_options.unsafe_ = True # handled by nh3

variants: Dict[str, Callable[[str], str]] = {
"GFM": lambda raw: cast(str, cmarkgfm.github_flavored_markdown_to_html(
raw, options=cmarkgfmOptions.CMARK_OPT_UNSAFE
)),
"CommonMark": lambda raw: cast(str, cmarkgfm.markdown_to_html(
raw, options=cmarkgfmOptions.CMARK_OPT_UNSAFE
)),
"GFM": lambda raw: cast(
str,
comrak.render_markdown(
raw,
extension_options=gfm_extension_options,
render_options=common_render_options,
),
),
"CommonMark": lambda raw: cast(
str,
comrak.render_markdown(
raw,
render_options=common_render_options,
),
),
}

except ImportError:
warnings.warn(_EXTRA_WARNING)
variants = {}
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/test_GFM_010.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<p>This <del>text~~~~ is ~~~~curious</del>.</p>
<p>This ~text~~~~ is ~~~~curious~.</p>
Loading