docs(src): Improve rendering of quotation marks

I have used a unicode lookalike for the single quote, as the normal
latex way to include it is not supported by katex (`\textquotesingle`).
This commit is contained in:
Benedikt Peetz 2024-05-18 19:54:25 +02:00
parent 9be2b973f0
commit 7dd5da97f6
Signed by: bpeetz
GPG Key ID: B6139BCB07CE946D
3 changed files with 38 additions and 15 deletions

View File

@ -24,6 +24,19 @@ If not, see <https://www.gnu.org/licenses/>.
> A very simple programming language, used to map functions to commands
## Docs
If you want to generate the docs locally use this command, as they need KaTeX:
```sh
# Generate documentation for the dependencies
cargo doc
# Generate the documentation for this crate with the KaTeX header.
RUSTDOCFLAGS="--html-in-header ./docs/docs-header.html" cargo doc --no-deps
```
`docs.rs` already does this automatically because of the attribute in the `Cargo.toml`
file.
## Licence
This program is free software: you can redistribute it and/or modify it

View File

@ -47,19 +47,27 @@ If not, see <https://www.gnu.org/licenses/>.
crossorigin="anonymous"
></script>
<script>
// Workaround for rustdoc's "smart" quotation mark replacement feature
function normalize_quotes(math) {
// const orig = math;
math = math.replace(/”/g, "\"");
math = math.replace(/“/g, "\"");
math = math.replace(//g, "'");
math = math.replace(//g, "'");
// console.log(`[\n${orig}\n] -> [\n${math}\n].`);
return math;
}
document.addEventListener("DOMContentLoaded", function () {
renderMathInElement(document.body, {
delimiters: [
{ left: "$$", right: "$$", display: true },
{ left: "\\(", right: "\\)", display: false},
{ left: "$", right: "$", display: false},
{ left: "\\[", right: "\\]", display: true},
]
// FIXME(@soispha): This removes the quotes completely <2023-10-31>
// macros: {
// "”": "\\noexpand ”",
// "“": "\\noexpand “",
// },
],
preProcess: normalize_quotes,
});
});
</script>

View File

@ -34,18 +34,20 @@
//!
//! Correctly spoken, the Language, containing all valid command names, is just the Kleene closure
//! over an Alphabet $\Sigma$, which contains all alphanumeric characters:
//! $$ \Sigma_{cmd} = \\{x | 0 \leqslant x \leqslant 9\\} \cup \\{x | "a" \leqslant x \leqslant "z"\\} \cup \\{x | "A" \leqslant x \leqslant "Z"\\} \cup \\{"\\_", "\text{-}", "."\\} $$
//! \\[ \Sigma_{cmd} = \\{x | 0 \leqslant x \leqslant 9\\} \cup \\{x | "\text{a}" \leqslant x \leqslant "\text{z}"\\} \cup \\{x | "\text{A}" \leqslant x \leqslant "\text{Z}"\\} \cup \\{"\text{\\_}", "\text{-}", "."\\} \\]
//!
//! ## Argument
//! Arguments constructed from the same alphabet as the commands, but can contain additional chars
//! listed in the [trinitry.pest](../../../src/trinitry.pest) file.
//! $$ \Sigma_{args} = \Sigma_{cmd} \cup{} \\{\\dots{}\\} $$
#![doc = concat!("listed in the [trinitry.pest](https://docs.rs/crate/trinitry/", env!("CARGO_PKG_VERSION"), "/source/src/trinitry.pest) file.")]
//! \\[ \Sigma_{args} = \Sigma_{cmd} \cup{} \\{\\dots{}\\} \\]
//!
//! Besides the extra chars outlined above the arguments can also contain
//! spaces and quotes, if they are quoted. Quoted args are either double quoted, and can thus
//! contain single quotes, or single quoted, and can contain double quotes.
//! $$ \Sigma_{args-double-quoted} = \Sigma_{args} \cup \\{"\\text{\\texttt{'}}", "\\ "} $$
//! $$ \Sigma_{args-single-quoted} = \Sigma_{args} \cup \\{"\\text{\\texttt{"}}", "\\ "} $$
//! \\[
//! \Sigma_{args-double-quoted} = \Sigma_{args} \cup \\{"\texttt{}", "\\ "\\} \\\\
//! \Sigma_{args-single-quoted} = \Sigma_{args} \cup \\{"\texttt{"}", "\\ "\\}
//! \\]
//!
//! # Examples
//! ## Command