Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add optional math support for markdown #2708

Open
wants to merge 3 commits into
base: next
Choose a base branch
from

Conversation

recmo
Copy link

@recmo recmo commented Nov 18, 2024

IMPORTANT: Please do not create a Pull Request adding a new feature without discussing it first.

The place to discuss new features is the forum: https://zola.discourse.group/
If you want to add a new feature, please open a thread there first in the feature requests section.

Sanity check:

  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Code changes

(Delete or ignore this section for documentation changes)

  • Are you doing the PR on the next branch?

If the change is a new feature or adding to/changing an existing one:

  • Have you created/updated the relevant documentation page(s)?

This fixes #2019 without adding substantial complexity or dependencies. It optionally enables a common-mark extension available in pulldown-cmark.

This will correctly parse delimited math, and render html like <span class="math math-inline">\sum_i x_i<\span>.

To render the latex using Katex, include something like this in the header:

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css"
        integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+"
        crossorigin="anonymous">
    <script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js"
        integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg"
        crossorigin="anonymous"></script>
    <script defer>
        document.addEventListener("DOMContentLoaded", function () {
            const macros = {};
            for (let el of document.getElementsByClassName('math')) {
              katex.render(el.textContent, el, {
                output: 'html',
                throwOnError: false,
                displayMode: el.classList.contains('math-display'),
                macros,
              });
            }
        });
    </script>

@recmo recmo changed the title Recmo/enable math Add optional math support for markdown Nov 18, 2024
@@ -45,6 +45,8 @@ pub struct Markdown {
pub external_links_no_referrer: bool,
/// Whether smart punctuation is enabled (changing quotes, dashes, dots etc in their typographic form)
pub smart_punctuation: bool,
/// Whether to enable latex math rendering
pub math: bool,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We want that to be an enum. Eventually (hopefully) there will be math rendering inside Zola (eg https://zola.discourse.group/t/a-simpler-katex-alternative-that-works-today/2156/3) so we will want to support classes/pre-render etc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants