Skip to main content

LaTeX pre-rendering for pelican

Project description

LaTeX Pre-rendering for Pelican

pelican-katex integrates LaTeX rendering directly into the pelican generation process and eliminates the delay in displaying math you usually experience on the web. It does so by hooking itself into docutils' reStructuredText parser as well as the markdown package and processing the formulas with KaTeX. The generated HTML pages only contain the finished HTML/MathML output. Therefore, you do not need to ship the KaTeX javascript implementation with your website anymore and improve the accessibility as well as the load time of your internet presence.

For a demo visit this blog post. Notice how all the formulas are just there. There is no loading and the website does not even serve the javascript part of KaTeX.

Note, that you still need to include the KaTeX stylesheets with your website.

Installation

First of all, you need to install nodejs so that pelican-katex can run KaTeX. Then run pip install pelican-katex and add "pelican_katex" to the PlUGINS setting in your configuration file. Finally, remove the katex.js <script> tag from your template and enjoy a lighter website and instant formulas.

Syntax

reStructuredText
~~~~~~~~~~~~~~~~

In rst you write inline math with the usual math role (:math:`f(x)`) or
block math with

.. math::

    \int \textrm{math block}.

# markdown

In markdown you get inline math in between $ signs, like $f(x) = \sqrt{x}$.
Note, that $ only creates a math environment if it is preceded by whitespace
or at the beginning of a block and followed by some non-whitespace character.
This is necessary so that you can still write about the 5$ in your pocket.
Block math is triggered with

$$\int \textrm{math block}.$$

Math blocks can have linebreaks but no empty lines.

Configuration

The plugin offers several configuration options that you can set in your pelicanconf.py.

# nodejs binary path or command to run KaTeX with.
# KATEX_NODEJS_BINARY = "node"

# Path to the katex file to use. This project comes with version `0.10` of
# katex but if you want to use a different one you can overwrite the path
# here. To use a katex npm installation, set this to `"katex"`.
# KATEX_PATH = "/path/to/katex.js"

# By default, this plugin will redefine reStructuredText's `math` role and
# directive. However, if you prefer to have leave the docutil's defaults
# alone, you can use this to define a `katex` role for example.
# KATEX_DIRECTIVE = "katex"

# How long to wait for the initial startup of the rendering server. You can
# increasing it but if startup takes longer than one second, something is
# probably seriously broken.
# KATEX_STARTUP_TIMEOUT = 1.0

# Time budget in seconds per call to the rendering engine. 1 second should
# be plenty since most renderings take less than 50ms.
# KATEX_RENDER_TIMEOUT = 1.0

# Here you can pass a dictionary of default options that you want to run
# KaTeX with. All possible options are listed on KaTeX's options page,
# https://katex.org/docs/options.html.
# KATEX = {
#     # Abort the build instead of coloring broken math in red
#     "throwOnError": True
# }

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

pelican-katex-1.3.0.tar.gz (161.8 kB view details)

Uploaded Source

Built Distribution

pelican_katex-1.3.0-py3-none-any.whl (163.6 kB view details)

Uploaded Python 3

File details

Details for the file pelican-katex-1.3.0.tar.gz.

File metadata

  • Download URL: pelican-katex-1.3.0.tar.gz
  • Upload date:
  • Size: 161.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.5

File hashes

Hashes for pelican-katex-1.3.0.tar.gz
Algorithm Hash digest
SHA256 935c915c69483b44872cbd73adc921b13ba6defc14f8d9f805166440e15287f2
MD5 b19c0ecac8a39ae27e82d93c3b7b09cb
BLAKE2b-256 509d36918ce07a9ccbbcb55b40744a4e33fc2562f9f3716eab307a89937a573f

See more details on using hashes here.

File details

Details for the file pelican_katex-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: pelican_katex-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 163.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.5

File hashes

Hashes for pelican_katex-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 90f1eb1a79ec7f1a1aab3507dd3f8b2c7521e6945db789cba3b6728a7c8689c9
MD5 2fb5ad0b031774ccaddb8142569fe31e
BLAKE2b-256 1b3bd0a913021162dd3f27e6ac7493c8d4c95a2c9adffc67f60f4e4fb424bc23

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