Skip to main content

Format support

Every conversion has a source format and a target format, and the two are independent. A format that can be read is not automatically one that can be written.

Input formats​

FormatExtensionStatus
Articulate Storyline.storyImplemented
OAF package.oafRecognized, not implemented
HTML5 export.zipDetected, no conversion path
The CLI's help text overstates this

oaf convert --help describes its input argument as ".story, .oaf, or directory". Only .story actually converts.

Passing a .oaf file exits with OAF input not yet implemented. Passing a .zip is detected as an HTML5 export and then rejected as unsupported. Both fail cleanly with a non-zero exit rather than producing wrong output, but the help text will mislead you first.

Output formats​

Format--formatProducesStatus
Markdownmarkdown (default)A single .md documentImplemented
Marp slidesmarpMarp-flavored MarkdownImplemented
Marp HTMLmarp-htmlA self-contained HTML presentationImplemented
OAF packageoafA stored .oaf packageImplemented
HTML viewerhtml-viewer—Not implemented

html-viewer is accepted on the command line and then exits with HTML viewer output not yet implemented.

What this means in practice​

The only conversion paths that work end to end today are:

.story -> markdown
.story -> marp
.story -> marp-html
.story -> oaf

Writing a .oaf package works, but reading one back does not, so OAF is currently a terminal output rather than a round-trip format. That is the gap to close first if you are extending the toolchain.

Fidelity​

Conversion is rarely lossless. Two formats can disagree about what a construct means, or one can lack an equivalent entirely.

Where the converter meets something it cannot represent, it records a warning and continues. Warnings are returned on ConvertResult.warnings and printed by the CLI. Treat them as a list of what the output is missing.

Constructs most likely to warn are those with no Markdown equivalent: interactive triggers, layer visibility, drag-and-drop interactions, and variable-driven branching. The OAF package retains these (see the OAF format); a Markdown document cannot.

This is why converting to oaf preserves more than converting to markdown, even though both come from the same source.