Nokome Bentley2 min read

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
PDF 🔷 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:

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.