template page mkdocs docs python markdown mathjax

python - page - MkDocs y MathJax



mkdocs build path (4)

Aquí hay una forma de obtener LaTeX en MkDocs con la extensión arithmatex .

Estoy respondiendo nuevamente porque quiero documentar una solución que no se vincule con sitios de terceros como Cloudflare y Google.

Sigo el camino con el tema llamado mkdocs-material pero puedes reemplazar el theme: ...school por theme: readthedocs .

Primero instale MkDocs y cree un proyecto: https://www.mkdocs.org/#installation .

Luego instale mkdocs-material y MathJax siguiente manera. Digamos que el proyecto se llama my-project . Utilice descargas y no pip porque quiere cambiar el CDN a Cloudflare y el enlace a google.

cd my-project git clone https://github.com/squidfunk/mkdocs-material.git git clone https://github.com/mathjax/MathJax.git MathJax

Edite mkdocs.yml como se describe en "Uso" , por ejemplo:

site_name: My Project pages: - Home: index.md theme: name: null custom_dir: ''mkdocs-material/material'' palette: primary: amber accent: pink language: de feature: tabs: true font: false logo: icon: school markdown_extensions: - pymdownx.arithmatex extra_javascript: - ../MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML

Puede insertar algunos TeX en index.md , compilar el sitio ( mkdocs build ) y abrir el index.html para verificar que MathJax funciona. Debido a que no funciona con el mkdocs serve , cargué la carpeta MathJax y la mkdocs serve a ella en lugar del enlace a la ruta local.

extra_javascript: - https://mysite/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML

Para activar TeX en línea con $...$ , debe crear un archivo JS adicional

cd docs mkdir assets touch extra.js

Inserte el siguiente texto en extra.js :

window.MathJax = { tex2jax: { inlineMath: [ ["$","$"], ["//(","//)"] ], displayMath: [ ["//[","//]"] ] }, TeX: { TagSide: "right", TagIndent: ".8em", MultLineWidth: "85%", equationNumbers: { autoNumber: "AMS", }, unicode: { fonts: "STIXGeneral,''Arial Unicode MS''" } }, displayAlign: "center", showProcessingMessages: false, messageStyle: "none" };

y enlace a él en mkdocs.yml . Finalmente, la sección extra_javascript puede ser así:

extra_javascript: - https://mysite/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML - assets/extra.js

Como no queremos usar CDN, puede editar mkdocs-material/material/base.html y eliminar / descomentar la línea con <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin> . La fuente impresionante y los iconos de material ya están a bordo dentro de mkdocs-material.

Soy nuevo en MkDocs y estoy escribiendo una documentación técnica que requiere látex. He construido con éxito un pequeño sitio web con uno de los temas de MkDocs, sin embargo, no mostrará correctamente las ecuaciones de látex. Seguí las instrucciones en

http://www.vlfeat.org/matconvnet/developers/

así como las instrucciones que siguen al enlace python-markdown-mathjax desde esa página. También he intentado agregar líneas apropiadas a mi archivo mkdocs.yaml, similar a:

https://github.com/EdyJ/vehicle-physics-docs/blob/master/mkdocs.yml

Sin embargo, al emitir el comando ''mkdocs build'' todavía se obtiene un sitio que no representa las ecuaciones. También he intentado agregar un indicador -x mathjax con el comando mkdocs build.

He rastreado la web y he estado jugando durante un buen rato ahora. ¿Puede alguien aclarar qué debo hacer para que estos dos jueguen juntos?


Deberá instalar la extensión como se indica en el archivo README de github. Suena como si ya lo hayas hecho.

Luego debe decirle a Mkdocs que está usando esta extensión de Python Markdown. Haría esto teniendo una línea como esta en su mkdocs.yaml: markdown_extensions: [mathjax]

La documentación de configuración de YAML se puede encontrar en:


Esto es realmente más fácil de lo que esperaba. Primero instalé la github.com/mitya57/python-markdown-math :

pip install https://github.com/mitya57/python-markdown-math/archive/master.zip

Luego creé un nuevo proyecto MkDocs:

mkdocs new test_math

Luego test_math/docs/index.md archivo test_math/docs/index.md para que sea como sigue (ejemplo tomado de la documentación de MathJax ):

# MathJax Test Page When /(a /ne 0/), there are two solutions to /(ax^2 + bx + c = 0/) and they are $$x = {-b /pm /sqrt{b^2-4ac} /over 2a}.$$

Finalmente, test_math/config.yaml archivo test_math/config.yaml como sigue:

site_name: Test Math extra_javascript: - https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML markdown_extensions: - mdx_math

No estaba seguro de si esto funcionaría, pero ejecuté el servidor de prueba para ver:

mkdocs serve

Entonces abrí mi navegador y cargué http://127.0.0.1:8000/ . La página mostrada con las ecuaciones de muestra correctamente formateadas:

Luego recordé que el OP solicitó que esto funcionara con ReadTheDocs, así que agregué la siguiente línea a la configuración:

theme: readthedocs

Mi navegador se recargó y se muestran las siguientes (ecuaciones correctamente formateadas):

Debo tener en cuenta que recibo un error extraño al no cargar fontawesome. Con el tema de MkdDocs, las ecuaciones desaparecen después de un minuto (cuando aparece el error en la consola del navegador). Sin embargo, en el tema de ReadTheDocs, las ecuaciones se muestran correctamente, incluso con el error. De cualquier manera, creo que este error está relacionado con algún otro problema en mi máquina local.

Finalmente, el Bounty es ...

Buscando una respuesta a partir de fuentes creíbles y / o oficiales.

Normalmente no hago publicidad de esto, pero como me preguntaste, soy el desarrollador líder de Python-Markdown, trabajo regularmente con mitya57 (el creador de Python-Markdown-Math Extension) ya que es uno de los otros dos desarrolladores con acceso comprometido. a Python-Markdown, y soy un colaborador de MkDocs (una de esas contribuciones es el soporte para las extensiones de Python-Markdown).


Parece que esta extensión no es necesaria:

docs / mathjaxhelper.js

MathJax.Hub.Config({ "tex2jax": { inlineMath: [ [ ''$'', ''$'' ] ] } }); MathJax.Hub.Config({ config: ["MMLorHTML.js"], jax: ["input/TeX", "output/HTML-CSS", "output/NativeMML"], extensions: ["MathMenu.js", "MathZoom.js"] });

mkdocs.yml

markdown_extensions: - extra - tables - fenced_code extra_javascript: - https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML - mathjaxhelper.js

Parece funcionar.