Newly Practicing Mortician

    hexo-math

    4.0.0 • Public • Published

    hexo-math

    Tester npm version npm license npm download

    Embed KaTeX and MathJax in Hexo post/page via tag plugins. Equations are rendered in Hexo (server-side), so browser-side javascript library is not needed and should be removed. CSS stylesheets are included by default but can be easily replaced.

    Installation

    $ npm i hexo-math --save
    • Requires Hexo 5+

    Usage

    KaTeX

    {% katex '{options}' %}
    content
    {% endkatex %}
    

    Examples

    {% katex %}
    c = \pm\sqrt{a^2 + b^2}
    {% endkatex %}
    

    Override front-matter and global options for a particular content. Options must be specified in JSON format.

    {% katex '{ "output": "mathml", "felqn": true, "minRuleThickness": 0.05, "throwOnError": true }' %}
    c = \pm\sqrt{a^2 + b^2}
    {% endkatex %}
    

    MathJax

    {% mathjax '{options}' %}
    content
    {% endmathjax %}
    

    Examples

    {% mathjax %}
    \frac{1}{x^2-1}
    {% endmathjax %}
    

    Override front-matter and global options for a particular content. Options must be specified in JSON format.

    {% mathjax '{ "conversion": { "em": 14 }, "tex": { "tags": "ams" }, "svg": { "exFactor": 0.03 } }' %}
    \frac{1}{x^2-1}
    {% endmathjax %}
    

    Per-article configuration

    Override the global options via the front-matter of an article (post/page) basis.

    ---
    title: On the Electrodynamics of Moving Bodies
    categories: Physics
    date: 1905-06-30 12:00:00
    katex: false
    mathjax: false
    ---

    Options

    Disable math renderer in an article:

    ---
    katex: false
    mathjax: false
    ---

    Override global options:

    ---
    katex:
      output: 'mathml'
      felqn: true
      minRuleThickness: 0.05
      throwOnError: true
    mathjax:
      conversion:
        em: 14
      tex:
        tags: 'ams'
      svg:
        exFactor: 0.03
    ---

    Global Options

    # _config.yml 
    math:
      katex:
        css: 'https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css'
        options:
          throwOnError: false
      mathjax:
        css: 'https://cdn.jsdelivr.net/npm/hexo-math@4.0.0/dist/style.css'
        options:
          conversion:
            display: false
          tex:
          svg:
    • css: Location of stylesheet.
      • Specify a relative path if you're self-hosting the stylesheet.
        • Example: css: '/css/style.css' refers to source/css/style.css or themes/<theme-name>/source/css/style.css.
      • It can be disabled (css: false) if the installed theme has already included one.

    KaTeX

      katex:
        options:
          throwOnError: false

    MathJax

      mathjax:
        options:
          conversion:
            display: false
          tex:
          svg:

    Configuration priority

    Unique options are combined, if there is any duplicate options, argument overrides front-matter, front-matter overrides global options.

    Example:

    {% katex '{ "output": "html", "felqn": true }' %}
    content
    {% endkatex %}
    
    # front-matter
    ---
    katex:
      output: 'mathml'
      minRuleThickness: 0.05
      throwOnError: true
    ---
    # _config.yml
    math:
      katex:
        options:
          minRuleThickness: 0.03
          maxExpand: 900

    Following options will be parsed as argument for that specific content:

    {
      output: 'html',
      felqn: true,
      minRuleThickness: 0.05,
      throwOnError: true,
      maxExpand: 900
    }

    Similar project

      • hexo-math uses tag plugin approach due to minor incompatibility between LaTeX and marked, the default markdown renderer of Hexo (via hexo-renderer-marked).

    Install

    npm i hexo-math

    DownloadsWeekly Downloads

    161

    Version

    4.0.0

    License

    MIT

    Unpacked Size

    12.1 kB

    Total Files

    9

    Last publish

    Collaborators

    • akfish
    • tommy351
    • abnerchou
    • hexobot
    • miroslec
    • curben