Add asciimath support

Update mathjax.md
This commit is contained in:
expikr 2023-11-23 20:17:18 +08:00
parent 41567b0456
commit 9c55840ca8
6 changed files with 28 additions and 0 deletions

View File

@ -99,6 +99,7 @@ default-theme = "light"
preferred-dark-theme = "navy" preferred-dark-theme = "navy"
curly-quotes = true curly-quotes = true
mathjax-support = false mathjax-support = false
asciimath-support = false
copy-fonts = true copy-fonts = true
additional-css = ["custom.css", "custom2.css"] additional-css = ["custom.css", "custom2.css"]
additional-js = ["custom.js"] additional-js = ["custom.js"]
@ -126,6 +127,8 @@ The following configuration options are available:
that occur in code blocks and code spans. Defaults to `false`. that occur in code blocks and code spans. Defaults to `false`.
- **mathjax-support:** Adds support for [MathJax](../mathjax.md). Defaults to - **mathjax-support:** Adds support for [MathJax](../mathjax.md). Defaults to
`false`. `false`.
- **asciimath-support:** Enables AsciiMath for [MathJax](../mathjax.md) if enabled, otherwise has no effect. Defaults to
`false`.
- **copy-fonts:** (**Deprecated**) If `true` (the default), mdBook uses its built-in fonts which are copied to the output directory. - **copy-fonts:** (**Deprecated**) If `true` (the default), mdBook uses its built-in fonts which are copied to the output directory.
If `false`, the built-in fonts will not be used. If `false`, the built-in fonts will not be used.
This option is deprecated. If you want to define your own custom fonts, This option is deprecated. If you want to define your own custom fonts,

View File

@ -41,3 +41,16 @@ you would write:
```bash ```bash
\\[ \mu = \frac{1}{N} \sum_{i=0} x_i \\] \\[ \mu = \frac{1}{N} \sum_{i=0} x_i \\]
``` ```
### AsciiMath syntax
[AsciiMath](http://asciimath.org/) is a less verbose equation syntax than LaTeX, delimited by <kbd>\\\`...\\\`</kbd>.
To enable AsciiMath, you need to add the `asciimath-support` key to your `book.toml`
under the `output.html` section, in addition to enabling `mathjax-support`:
```toml
[output.html]
mathjax-support = true
asciimath-support = true
```

View File

@ -490,6 +490,8 @@ pub struct HtmlConfig {
pub curly_quotes: bool, pub curly_quotes: bool,
/// Should mathjax be enabled? /// Should mathjax be enabled?
pub mathjax_support: bool, pub mathjax_support: bool,
/// Should asciimath be enabled?
pub asciimath_support: bool,
/// Whether to fonts.css and respective font files to the output directory. /// Whether to fonts.css and respective font files to the output directory.
pub copy_fonts: bool, pub copy_fonts: bool,
/// An optional google analytics code. /// An optional google analytics code.
@ -550,6 +552,7 @@ impl Default for HtmlConfig {
preferred_dark_theme: None, preferred_dark_theme: None,
curly_quotes: false, curly_quotes: false,
mathjax_support: false, mathjax_support: false,
asciimath_support: false,
copy_fonts: true, copy_fonts: true,
google_analytics: None, google_analytics: None,
additional_css: Vec::new(), additional_css: Vec::new(),

View File

@ -681,6 +681,10 @@ fn make_data(
data.insert("mathjax_support".to_owned(), json!(true)); data.insert("mathjax_support".to_owned(), json!(true));
} }
if html_config.asciimath_support {
data.insert("asciimath_support".to_owned(), json!(true));
}
// This `matches!` checks for a non-empty file. // This `matches!` checks for a non-empty file.
if html_config.copy_fonts || matches!(theme.fonts_css.as_deref(), Some([_, ..])) { if html_config.copy_fonts || matches!(theme.fonts_css.as_deref(), Some([_, ..])) {
data.insert("copy_fonts".to_owned(), json!(true)); data.insert("copy_fonts".to_owned(), json!(true));

View File

@ -50,8 +50,12 @@
{{#if mathjax_support}} {{#if mathjax_support}}
<!-- MathJax --> <!-- MathJax -->
{{#if asciimath_support}}
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_HTMLorMML"></script>
{{else}}
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
{{/if}} {{/if}}
{{/if}}
</head> </head>
<body> <body>
<div id="body-container"> <div id="body-container">

View File

@ -9,6 +9,7 @@ edition = "2018"
[output.html] [output.html]
mathjax-support = true mathjax-support = true
asciimath-support = true
[output.html.playground] [output.html.playground]
editable = true editable = true