Koenig JSON
Format for integrating with the Koenig editor
Introduction
Koenig is an editor developed by, and used within, the Ghost content management system. Koenig is based on the Lexical editor framework and this format simply extends Lexical JSON to accommodate some of the customizations of the Koenig document schema.
Stencila supports conversion to/from Koenig JSON to support publishing Stencila documents to Ghost.
Usage
Use the .koenig
file extension, or the --to koenig
or --from koenig
options, when converting to/from Koenig JSON e.g.
stencila convert doc.smd doc.koenig
Implementation
Stencila supports bi-directional conversion between Stencila documents and Lexical JSON. This is built on top of serde_json
with transformer functions to transform between Lexical node types and Stencila nde types.
Support
Stencila supports these operations for Koenig JSON:
- 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 | 🔷 Low loss | 🔷 Low loss | |
Chat | 🔷 Low loss | 🔷 Low loss | |
ChatMessage | 🔷 Low loss | 🔷 Low loss | |
ChatMessageGroup | 🔷 Low loss | 🔷 Low loss | |
Claim | 🔷 Low loss | 🔷 Low loss | |
Collection | 🔷 Low loss | 🔷 Low loss | |
Comment | 🔷 Low loss | 🔷 Low loss | |
CreativeWork | 🔷 Low loss | 🔷 Low loss | |
Directory | 🔷 Low loss | 🔷 Low loss | |
Figure | 🔷 Low loss | 🔷 Low loss | |
File | 🔷 Low loss | 🔷 Low loss | |
ImageObject | 🔷 Low loss | 🔷 Low loss | |
MediaObject | 🔷 Low loss | 🔷 Low loss | |
Periodical | 🔷 Low loss | 🔷 Low loss | |
Prompt | 🔷 Low loss | 🔷 Low loss | |
PublicationIssue | 🔷 Low loss | 🔷 Low loss | |
PublicationVolume | 🔷 Low loss | 🔷 Low loss | |
Review | 🔷 Low loss | 🔷 Low loss | |
SoftwareApplication | 🔷 Low loss | 🔷 Low loss | |
SoftwareSourceCode | 🔷 Low loss | 🔷 Low loss | |
Table | 🔷 Low loss | 🔷 Low loss | |
TableCell | 🔷 Low loss | 🔷 Low loss | |
TableRow | 🔷 Low loss | 🔷 Low loss | |
VideoObject | 🔷 Low loss | 🔷 Low loss | |
Prose | |||
Admonition | 🔷 Low loss | 🔷 Low loss | |
Annotation | 🔷 Low loss | 🔷 Low loss | |
Cite | 🔷 Low loss | 🔷 Low loss | |
CiteGroup | 🔷 Low loss | 🔷 Low loss | |
DefinedTerm | 🔷 Low loss | 🔷 Low loss | |
Emphasis | 🔷 Low loss | 🔷 Low loss | |
Heading | 🔷 Low loss | 🔷 Low loss | |
Link | 🔷 Low loss | 🔷 Low loss | |
List | 🔷 Low loss | 🔷 Low loss | |
ListItem | 🔷 Low loss | 🔷 Low loss | |
Note | 🔷 Low loss | 🔷 Low loss | |
Paragraph | 🔷 Low loss | 🔷 Low loss | |
QuoteBlock | 🔷 Low loss | 🔷 Low loss | |
QuoteInline | 🔷 Low loss | 🔷 Low loss | |
Section | 🔷 Low loss | 🔷 Low loss | |
Strikeout | 🔷 Low loss | 🔷 Low loss | |
Strong | 🔷 Low loss | 🔷 Low loss | |
Subscript | 🔷 Low loss | 🔷 Low loss | |
Superscript | 🔷 Low loss | 🔷 Low loss | |
Text | 🔷 Low loss | 🔷 Low loss | |
ThematicBreak | 🔷 Low loss | 🔷 Low loss | |
Underline | 🔷 Low loss | 🔷 Low loss | |
Math | |||
MathBlock | 🔷 Low loss | 🔷 Low loss | |
MathInline | 🔷 Low loss | 🔷 Low loss | |
Code | |||
CodeBlock | 🔷 Low loss | 🔷 Low loss | |
CodeChunk | 🔷 Low loss | 🔷 Low loss | |
CodeExpression | 🔷 Low loss | 🔷 Low loss | |
CodeInline | 🔷 Low loss | 🔷 Low loss | |
CompilationMessage | 🔷 Low loss | 🔷 Low loss | |
ExecutionMessage | 🔷 Low loss | 🔷 Low loss | |
Data | |||
Array | 🔷 Low loss | 🔷 Low loss | |
ArrayHint | 🔷 Low loss | 🔷 Low loss | |
ArrayValidator | 🔷 Low loss | 🔷 Low loss | |
Boolean | 🔷 Low loss | 🔷 Low loss | |
BooleanValidator | 🔷 Low loss | 🔷 Low loss | |
ConstantValidator | 🔷 Low loss | 🔷 Low loss | |
Cord | 🔷 Low loss | 🔷 Low loss | |
Datatable | 🔷 Low loss | 🔷 Low loss | |
DatatableColumn | 🔷 Low loss | 🔷 Low loss | |
DatatableColumnHint | 🔷 Low loss | 🔷 Low loss | |
DatatableHint | 🔷 Low loss | 🔷 Low loss | |
Date | 🔷 Low loss | 🔷 Low loss | |
DateTime | 🔷 Low loss | 🔷 Low loss | |
DateTimeValidator | 🔷 Low loss | 🔷 Low loss | |
DateValidator | 🔷 Low loss | 🔷 Low loss | |
Duration | 🔷 Low loss | 🔷 Low loss | |
DurationValidator | 🔷 Low loss | 🔷 Low loss | |
EnumValidator | 🔷 Low loss | 🔷 Low loss | |
Integer | 🔷 Low loss | 🔷 Low loss | |
IntegerValidator | 🔷 Low loss | 🔷 Low loss | |
Null | 🔷 Low loss | 🔷 Low loss | |
Number | 🔷 Low loss | 🔷 Low loss | |
NumberValidator | 🔷 Low loss | 🔷 Low loss | |
Object | 🔷 Low loss | 🔷 Low loss | |
ObjectHint | 🔷 Low loss | 🔷 Low loss | |
String | 🔷 Low loss | 🔷 Low loss | |
StringHint | 🔷 Low loss | 🔷 Low loss | |
StringValidator | 🔷 Low loss | 🔷 Low loss | |
Time | 🔷 Low loss | 🔷 Low loss | |
TimeValidator | 🔷 Low loss | 🔷 Low loss | |
Timestamp | 🔷 Low loss | 🔷 Low loss | |
TimestampValidator | 🔷 Low loss | 🔷 Low loss | |
TupleValidator | 🔷 Low loss | 🔷 Low loss | |
Unknown | 🔷 Low loss | 🔷 Low loss | |
UnsignedInteger | 🔷 Low loss | 🔷 Low loss | |
Flow | |||
Button | 🔷 Low loss | 🔷 Low loss | |
CallArgument | 🔷 Low loss | 🔷 Low loss | |
CallBlock | 🔷 Low loss | 🔷 Low loss | |
CodeLocation | 🔷 Low loss | 🔷 Low loss | |
CompilationDigest | 🔷 Low loss | 🔷 Low loss | |
ExecutionDependant | 🔷 Low loss | 🔷 Low loss | |
ExecutionDependency | 🔷 Low loss | 🔷 Low loss | |
ExecutionTag | 🔷 Low loss | 🔷 Low loss | |
ForBlock | 🔷 Low loss | 🔷 Low loss | |
Form | 🔷 Low loss | 🔷 Low loss | |
Function | 🔷 Low loss | 🔷 Low loss | |
IfBlock | 🔷 Low loss | 🔷 Low loss | |
IfBlockClause | 🔷 Low loss | 🔷 Low loss | |
IncludeBlock | 🔷 Low loss | 🔷 Low loss | |
Parameter | 🔷 Low loss | 🔷 Low loss | |
Variable | 🔷 Low loss | 🔷 Low loss | |
Walkthrough | 🔷 Low loss | 🔷 Low loss | |
WalkthroughStep | 🔷 Low loss | 🔷 Low loss | |
Style | |||
StyledBlock | 🔷 Low loss | 🔷 Low loss | |
StyledInline | 🔷 Low loss | 🔷 Low loss | |
Edits | |||
InstructionBlock | 🔷 Low loss | 🔷 Low loss | |
InstructionInline | 🔷 Low loss | 🔷 Low loss | |
InstructionMessage | 🔷 Low loss | 🔷 Low loss | |
PromptBlock | 🔷 Low loss | 🔷 Low loss | |
SuggestionBlock | 🔷 Low loss | 🔷 Low loss | |
SuggestionInline | 🔷 Low loss | 🔷 Low loss | |
Config | |||
Config | 🔷 Low loss | 🔷 Low loss | |
Other | |||
Brand | 🔷 Low loss | 🔷 Low loss | |
ContactPoint | 🔷 Low loss | 🔷 Low loss | |
Enumeration | 🔷 Low loss | 🔷 Low loss | |
Grant | 🔷 Low loss | 🔷 Low loss | |
ModelParameters | 🔷 Low loss | 🔷 Low loss | |
MonetaryGrant | 🔷 Low loss | 🔷 Low loss | |
Organization | 🔷 Low loss | 🔷 Low loss | |
Person | 🔷 Low loss | 🔷 Low loss | |
PostalAddress | 🔷 Low loss | 🔷 Low loss | |
Product | 🔷 Low loss | 🔷 Low loss | |
PropertyValue | 🔷 Low loss | 🔷 Low loss | |
ProvenanceCount | 🔷 Low loss | 🔷 Low loss | |
RawBlock | 🔷 Low loss | 🔷 Low loss | |
Thing | 🔷 Low loss | 🔷 Low loss |
See the Rust crate codec-lexical
for more details.