Browse Source

Merge pull request #1060 from return42/switch-md-parser

[mod] replace Markdown parser mistletoe by markdown-it-py
Markus Heiser 3 years ago
parent
commit
7217e43070
3 changed files with 13 additions and 5 deletions
  1. 4 0
      docs/conf.py
  2. 1 1
      requirements.txt
  3. 8 4
      searx/infopage/__init__.py

+ 4 - 0
docs/conf.py

@@ -126,6 +126,10 @@ extensions = [
     'notfound.extension',  # https://github.com/readthedocs/sphinx-notfound-page
 ]
 
+myst_enable_extensions = [
+  "replacements", "smartquotes"
+]
+
 suppress_warnings = ['myst.domains']
 
 intersphinx_mapping = {

+ 1 - 1
requirements.txt

@@ -14,5 +14,5 @@ httpx-socks[asyncio]==0.7.2
 langdetect==1.0.9
 setproctitle==1.2.2
 redis==4.2.2
-mistletoe==0.8.2
+markdown-it-py==2.0.1
 typing_extensions==4.1.1

+ 8 - 4
searx/infopage/__init__.py

@@ -29,7 +29,7 @@ import typing
 import urllib.parse
 import jinja2
 from flask.helpers import url_for
-import mistletoe
+from markdown_it import MarkdownIt
 
 from .. import get_setting
 from ..compat import cached_property
@@ -71,13 +71,17 @@ class InfoPage:
 
     @cached_property
     def html(self):
-        """Render Markdown (CommonMark_) to HTML by using mistletoe_.
+        """Render Markdown (CommonMark_) to HTML by using markdown-it-py_.
 
         .. _CommonMark: https://commonmark.org/
-        .. _mistletoe: https://github.com/miyuchina/mistletoe
+        .. _markdown-it-py: https://github.com/executablebooks/markdown-it-py
 
         """
-        return mistletoe.markdown(self.content)
+        return MarkdownIt(
+            "commonmark", {"typographer": True}
+        ).enable(
+            ["replacements", "smartquotes"]
+        ).render(self.content)
 
     def get_ctx(self):  # pylint: disable=no-self-use
         """Jinja context to render :py:obj:`InfoPage.content`"""