diff --git a/docs/conf.py b/docs/conf.py
index 5db9e8178..0e2244a2e 100644
--- a/docs/conf.py
+++ b/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 = {
diff --git a/requirements.txt b/requirements.txt
index f638008eb..8d673bc8a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -14,5 +14,5 @@ httpx-socks[asyncio]==0.7.2
 langdetect==1.0.9
 setproctitle==1.2.2
 redis==4.2.0
-mistletoe==0.8.2
+markdown-it-py==2.0.1
 typing_extensions==4.1.1
diff --git a/searx/infopage/__init__.py b/searx/infopage/__init__.py
index 44f3bdbd7..143f523d8 100644
--- a/searx/infopage/__init__.py
+++ b/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`"""