Math Block
A block of math, e.g an equation, to be treated as block content.
Properties
The MathBlock
type has these properties:
Name | Description | Type | Inherited from | JSON-LD @id |
Aliases |
---|---|---|---|---|---|
id |
The identifier for this item. | String |
Entity |
schema:id |
- |
code |
The code of the equation in the mathLanguage . |
Cord |
Math |
stencila:code |
- |
mathLanguage |
The language used for the equation e.g tex, mathml, asciimath. | String |
Math |
stencila:mathLanguage |
math-language , math_language |
authors |
The authors of the math. | Author * |
Math |
schema:author |
author |
provenance |
A summary of the provenance of the math. | ProvenanceCount * |
Math |
stencila:provenance |
- |
compilationDigest |
A digest of the code and mathLanguage . |
CompilationDigest |
Math |
stencila:compilationDigest |
compilation-digest , compilation_digest |
compilationMessages |
Messages generated while parsing and compiling the math expression. | CompilationMessage * |
Math |
stencila:compilationMessages |
compilation-messages , compilation_messages , compilationMessage , compilation-message , compilation_message |
mathml |
The MathML transpiled from the code . |
String |
Math |
stencila:mathml |
- |
label |
A short label for the math block. | String |
- | stencila:label |
- |
labelAutomatically |
Whether the label should be automatically updated. | Boolean |
- | stencila:labelAutomatically |
label-automatically , label_automatically |
Related
The MathBlock
type is related to these types:
- Parents:
Math
- Children: none
Formats
The MathBlock
type can be encoded (serialized) to, and/or decoded (deserialized) from, these formats:
Format | Encoding | Decoding | Support | Notes |
---|---|---|---|---|
DOM HTML | 🟢 No loss | |||
HTML | 🔷 Low loss | Encoded as <math> |
||
JATS | 🟢 No loss | 🔷 Low loss | Encoded as <disp-formula> using special function |
|
Markdown | 🟢 No loss | 🟢 No loss | Encoded using implemented function | |
Stencila Markdown | 🟢 No loss | 🟢 No loss | ||
Quarto Markdown | 🟢 No loss | 🟢 No loss | ||
MyST Markdown | 🟢 No loss | 🟢 No loss | ||
LLM Markdown | 🟢 No loss | 🟢 No loss | ||
LaTeX | 🔷 Low loss | 🔷 Low loss | ||
🔷 Low loss | ||||
Plain text | ⚠️ High loss | |||
IPYNB | 🔷 Low loss | 🔷 Low loss | ||
Microsoft Word DOCX | 🔷 Low loss | 🔷 Low loss | ||
OpenDocument ODT | 🔷 Low loss | 🔷 Low loss | ||
TeX | 🔷 Low loss | 🔷 Low loss | ||
JSON | 🟢 No loss | 🟢 No loss | ||
JSON+Zip | 🟢 No loss | 🟢 No loss | ||
JSON5 | 🟢 No loss | 🟢 No loss | ||
JSON-LD | 🟢 No loss | 🟢 No loss | ||
CBOR | 🟢 No loss | 🟢 No loss | ||
CBOR+Zstandard | 🟢 No loss | 🟢 No loss | ||
YAML | 🟢 No loss | 🟢 No loss | ||
Lexical JSON | 🔷 Low loss | 🔷 Low loss | ||
Koenig JSON | 🔷 Low loss | 🔷 Low loss | ||
Pandoc AST | 🔷 Low loss | 🔷 Low loss | ||
Directory | ||||
Stencila Web Bundle | ||||
Debug | 🔷 Low loss |
Bindings
The MathBlock
type is represented in:
- JSON-LD
- JSON Schema
- Python class
MathBlock
- Rust struct
MathBlock
- TypeScript class
MathBlock
Testing
During property-based (a.k.a generative) testing, the properties of the MathBlock
type are generated using the following strategies for each complexity level. Any optional properties that are not in this table are set to None
.
Property | Complexity | Description | Strategy |
---|---|---|---|
code |
Min+ | Generate a simple fixed string of math. | Cord::from("math") |
Low+ | Generate a random string of up to 10 alphanumeric characters (exclude whitespace which when leading or trailing causes issues for Markdown). | r"[a-zA-Z0-9]{1,10}".prop_map(Cord::from) |
|
High+ | Generate a random string of up to 100 characters (excluding control characters). | r"[^\p{C}]{1,100}".prop_map(Cord::from) |
|
Max | Generate an arbitrary string. | String::arbitrary().prop_map(Cord::from) |
|
mathLanguage |
Min+ | Fixed as TeX (for testing with Markdown which uses dollars to delimit TeX by default) | Some(String::from("tex")) |
High+ | Generate a random string of up to 10 alphanumeric characters. | option::of(r"[a-zA-Z0-9]{1,10}") |
|
Max | Generate an arbitrary string. | option::of(String::arbitrary()) |
Source
This documentation was generated from MathBlock.yaml
by docs_types.rs
.