Code Block
A code block.
Properties
The CodeBlock
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. | Cord |
CodeStatic |
stencila:code |
- |
programmingLanguage |
The programming language of the code. | String |
CodeStatic |
schema:programmingLanguage |
programming-language , programming_language |
authors |
The authors of the code. | Author * |
CodeStatic |
schema:author |
author |
provenance |
A summary of the provenance of the code. | ProvenanceCount * |
CodeStatic |
stencila:provenance |
- |
Related
The CodeBlock
type is related to these types:
- Parents:
CodeStatic
- Children: none
Formats
The CodeBlock
type can be encoded (serialized) to, and/or decoded (deserialized) from, these formats:
Format | Encoding | Decoding | Support | Notes |
---|---|---|---|---|
DOM HTML | 🟢 No loss | |||
HTML | 🟢 No loss | Encoded as <pre> |
||
JATS | 🟢 No loss | Encoded as <code> |
||
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 CodeBlock
type is represented in:
- JSON-LD
- JSON Schema
- Python class
CodeBlock
- Rust struct
CodeBlock
- TypeScript class
CodeBlock
Testing
During property-based (a.k.a generative) testing, the properties of the CodeBlock
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 code. | Cord::from("code") |
Low+ | Generate a random string of up to 10 alphanumeric characters (exclude whitespace whichcan be problematic in 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) |
|
programmingLanguage |
Min+ | Do not generate a programming language. | None |
Low+ | Generate one of the well known programming language short names. | option::of(r"(cpp)|(js)|(py)|(r)|(ts)") |
|
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 CodeBlock.yaml
by docs_types.rs
.