Formats
Stencila Markdown
An extended flavor of Markdown supporting Stencila's document schema
Introduction
Stencila Markdown provides extensions to Markdown to support document elements not natively supported by Markdown.
Usage
To convert to/from Stencila Markdown, use the .smd
file extension, or the --to smd
or --from smd
options e.g.
stencila convert doc.docx doc.smd
Implementation
Stencila support bi-directional conversion between Stencila documents and Stencila Markdown. See our CommonMark documentation for implementation details.
Support
Stencila supports these operations for Stencila Markdown:
- decoding from a file
- decoding from a string
- encoding to a file
- encoding to a string
Support and degree of loss by node type:
Node type | Encoding | Decoding | Notes |
---|---|---|---|
Works | |||
Article | 🔷 Low loss | 🔷 Low loss | |
AudioObject | 🔷 Low loss | 🔷 Low loss | |
AuthorRole | ⚠️ High loss | ||
Chat | ⚠️ High loss | ||
ChatMessage | ⚠️ High loss | ||
ChatMessageGroup | ⚠️ High loss | ||
Claim | ⚠️ High loss | ||
Collection | ⚠️ High loss | ||
Comment | ⚠️ High loss | ||
CreativeWork | ⚠️ High loss | ||
Directory | ⚠️ High loss | ||
Figure | ⚠️ High loss | ||
File | ⚠️ High loss | ||
ImageObject | 🔷 Low loss | 🔷 Low loss | |
MediaObject | 🔷 Low loss | 🔷 Low loss | |
Periodical | ⚠️ High loss | ||
Prompt | ⚠️ High loss | ||
PublicationIssue | ⚠️ High loss | ||
PublicationVolume | ⚠️ High loss | ||
Review | ⚠️ High loss | ||
SoftwareApplication | ⚠️ High loss | ||
SoftwareSourceCode | ⚠️ High loss | ||
Table | 🔷 Low loss | 🔷 Low loss | |
TableCell | 🔷 Low loss | 🔷 Low loss | |
TableRow | 🔷 Low loss | 🔷 Low loss | |
VideoObject | ⚠️ High loss | ||
Prose | |||
Admonition | 🟢 No loss | 🟢 No loss | |
Annotation | ⚠️ High loss | ||
Cite | ⚠️ High loss | ||
CiteGroup | ⚠️ High loss | ||
DefinedTerm | ⚠️ High loss | ||
Emphasis | 🟢 No loss | 🟢 No loss | |
Heading | 🟢 No loss | 🟢 No loss | |
Link | 🔷 Low loss | 🔷 Low loss | |
List | 🔷 Low loss | 🔷 Low loss | |
ListItem | 🔷 Low loss | 🔷 Low loss | |
Note | 🔷 Low loss | 🔷 Low loss | |
Paragraph | 🟢 No loss | 🟢 No loss | |
QuoteBlock | 🟢 No loss | 🟢 No loss | |
QuoteInline | ⚠️ High loss | ||
Section | 🟢 No loss | 🟢 No loss | |
Strikeout | ⚠️ High loss | ||
Strong | 🟢 No loss | 🟢 No loss | |
Subscript | 🟢 No loss | 🟢 No loss | |
Superscript | 🟢 No loss | 🟢 No loss | |
Text | 🟢 No loss | 🟢 No loss | |
ThematicBreak | 🟢 No loss | 🟢 No loss | |
Underline | 🟢 No loss | 🟢 No loss | |
Math | |||
MathBlock | 🟢 No loss | 🟢 No loss | |
MathInline | 🟢 No loss | 🟢 No loss | |
Code | |||
CodeBlock | 🟢 No loss | 🟢 No loss | |
CodeChunk | 🔷 Low loss | 🔷 Low loss | |
CodeExpression | 🔷 Low loss | 🔷 Low loss | |
CodeInline | 🟢 No loss | 🟢 No loss | |
CompilationMessage | ⚠️ High loss | ||
ExecutionMessage | ⚠️ High loss | ||
Data | |||
Array | ⚠️ High loss | ||
ArrayHint | ⚠️ High loss | ||
ArrayValidator | ⚠️ High loss | ||
Boolean | 🔷 Low loss | 🔷 Low loss | |
BooleanValidator | ⚠️ High loss | ||
ConstantValidator | ⚠️ High loss | ||
Cord | 🟢 No loss | 🟢 No loss | |
Datatable | ⚠️ High loss | ||
DatatableColumn | ⚠️ High loss | ||
DatatableColumnHint | ⚠️ High loss | ||
DatatableHint | ⚠️ High loss | ||
Date | ⚠️ High loss | ||
DateTime | ⚠️ High loss | ||
DateTimeValidator | ⚠️ High loss | ||
DateValidator | ⚠️ High loss | ||
Duration | ⚠️ High loss | ||
DurationValidator | ⚠️ High loss | ||
EnumValidator | ⚠️ High loss | ||
Integer | 🔷 Low loss | 🔷 Low loss | |
IntegerValidator | ⚠️ High loss | ||
Null | 🔷 Low loss | 🔷 Low loss | |
Number | 🔷 Low loss | 🔷 Low loss | |
NumberValidator | ⚠️ High loss | ||
Object | ⚠️ High loss | ||
ObjectHint | ⚠️ High loss | ||
String | 🟢 No loss | 🟢 No loss | |
StringHint | ⚠️ High loss | ||
StringValidator | ⚠️ High loss | ||
Time | ⚠️ High loss | ||
TimeValidator | ⚠️ High loss | ||
Timestamp | ⚠️ High loss | ||
TimestampValidator | ⚠️ High loss | ||
TupleValidator | ⚠️ High loss | ||
Unknown | ⚠️ High loss | ||
UnsignedInteger | 🔷 Low loss | 🔷 Low loss | |
Flow | |||
Button | ⚠️ High loss | ||
CallArgument | ⚠️ High loss | ||
CallBlock | ⚠️ High loss | ||
CodeLocation | ⚠️ High loss | ||
CompilationDigest | ⚠️ High loss | ||
ExecutionDependant | ⚠️ High loss | ||
ExecutionDependency | ⚠️ High loss | ||
ExecutionTag | ⚠️ High loss | ||
ForBlock | ⚠️ High loss | ||
Form | ⚠️ High loss | ||
Function | ⚠️ High loss | ||
IfBlock | ⚠️ High loss | ||
IfBlockClause | ⚠️ High loss | ||
IncludeBlock | ⚠️ High loss | ||
Parameter | 🔷 Low loss | 🔷 Low loss | |
Variable | ⚠️ High loss | ||
Walkthrough | ⚠️ High loss | ||
WalkthroughStep | ⚠️ High loss | ||
Style | |||
StyledBlock | 🟢 No loss | 🟢 No loss | |
StyledInline | ⚠️ High loss | ||
Edits | |||
InstructionBlock | ⚠️ High loss | ||
InstructionInline | ⚠️ High loss | ||
InstructionMessage | ⚠️ High loss | ||
PromptBlock | ⚠️ High loss | ||
SuggestionBlock | ⚠️ High loss | ||
SuggestionInline | ⚠️ High loss | ||
Config | |||
Config | ⚠️ High loss | ||
Other | |||
Brand | ⚠️ High loss | ||
ContactPoint | ⚠️ High loss | ||
Enumeration | ⚠️ High loss | ||
Grant | ⚠️ High loss | ||
ModelParameters | ⚠️ High loss | ||
MonetaryGrant | ⚠️ High loss | ||
Organization | ⚠️ High loss | ||
Person | ⚠️ High loss | ||
PostalAddress | ⚠️ High loss | ||
Product | ⚠️ High loss | ||
PropertyValue | ⚠️ High loss | ||
ProvenanceCount | ⚠️ High loss | ||
RawBlock | ⚠️ High loss | ||
Thing | ⚠️ High loss |
See the Rust crate codec-markdown
for more details.