Skip to main content

katex extension for Python Markdown

Project description

markdown-katex

This is an extension for Python Markdown which adds KaTeX support.

Project/Repo:

MIT License Supported Python Versions PyCalVer v201907.0008-beta PyPI Version PyPI Downloads

Code Quality/CI:

Build Status Type Checked with mypy Code Coverage Code Style: sjfmt

Name role since until
Manuel Barkhau (mbarkhau@gmail.com) author/maintainer 2019-05 -

Install

$ pip install markdown-katex

This package includes the following binaries:

  • katex-cli-0.10.2-linux-x64
  • katex-cli-0.10.2-macos-x64
  • katex-cli-0.10.2-win-x64

If you are on a different platform, or want to use a more recent version of katex-cli, you will need to install it via npm.

$ pip install katex
$ npx katex --version
0.10.2

This extension will always use the locally installed version of KaTeX if it is available, instead of using the implementation bundled with this package.

No JavaScript is required to render the resulting HTML, so it can be used with more limited renderers (which don't support JavaScript) such as WeasyPrint .

Usage

Formulas can be created and edited interactively using the editor on katex.org. They also have some good documentation for the subset of LaTeX that is supported. When embedding these in your Markdown files, they must be marked with a special syntax in order to be rendered using KaTeX. There are many syntax extensions for Markdown that allow LaTeX formulas to be embedded, however this package only supports the syntax introduced by Gitlab:

  • For inline mode formulas: $`...`$
  • For display mode formulas: ```math

Here is an example that uses this syntax.

There are two main advantages of this syntax:

  1. Gitlab has an existing Markdown renderer that can be used without the need to download any software. This implementation also uses KaTeX, so the output should be exactly the same as this extension.
  2. The fallback behaviour of other Markdown renderers is to render the raw LaTeX as inline code or a code block. This means that they won't inadvertently parse a LaTeX formula as Markdown syntax.

Hopefully other renderers will also adopt support for this syntax as:

  1. Rendering is done in the browser using KaTeX so implementation effort and should be minimal.
  2. The false positive rate for existing Markdown documents is negligible (ie. existing alternate use of $` syntax is minimal to non-existent).

Development/Testing

$ git clone https://gitlab.com/mbarkhau/markdown-katex
$ cd markdown-katex
$ make install
$ make lint mypy test

MkDocs Integration

In your mkdocs.yml add this to markdown_extensions.

markdown_extensions:
  - markdown_katex:
      no_inline_svg: True

Changelog for https://gitlab.com/mbarkhau/markdown-katex

v201907.0008-beta

  • Fix: don't require typing package for py<35

v201905.0007-beta

  • Fix: Parsing of inline code when using multiple backticks

v201905.0004-beta

  • Fix: better error reporting
  • Fix: cleanup temp dir

v201905.0002-alpha

  • Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

markdown-katex-201907.8b0.tar.gz (38.8 MB view details)

Uploaded Source

Built Distribution

markdown_katex-201907.8b0-py2.py3-none-any.whl (39.1 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file markdown-katex-201907.8b0.tar.gz.

File metadata

  • Download URL: markdown-katex-201907.8b0.tar.gz
  • Upload date:
  • Size: 38.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for markdown-katex-201907.8b0.tar.gz
Algorithm Hash digest
SHA256 f4faf43438a3b838828d4eb2477066d2d0489c2154680e37953cef8363a15117
MD5 07e79035a9e5d810a693f8eebe7f1d55
BLAKE2b-256 e840b0f53b5ec727b6cb356bc5f84951522f63754626119ce8da5a958e8a2f80

See more details on using hashes here.

File details

Details for the file markdown_katex-201907.8b0-py2.py3-none-any.whl.

File metadata

  • Download URL: markdown_katex-201907.8b0-py2.py3-none-any.whl
  • Upload date:
  • Size: 39.1 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for markdown_katex-201907.8b0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 92b57ddf40f23e95da4c53f5c19a4c62b304ff6c22207e9fad0e90a30a5408a9
MD5 62b2c242b376d040cbf994da3acaa336
BLAKE2b-256 acdc4a2bb61fd1e0370e24c67386d4f1ec44e215905af85e989ba8f291f4691d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page