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
| Format | Extension | Status |
|---|---|---|
| Articulate Storyline | .story | Implemented |
| OAF package | .oaf | Recognized, not implemented |
| HTML5 export | .zip | Detected, no conversion path |
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 | --format | Produces | Status |
|---|---|---|---|
| Markdown | markdown (default) | A single .md document | Implemented |
| Marp slides | marp | Marp-flavored Markdown | Implemented |
| Marp HTML | marp-html | A self-contained HTML presentation | Implemented |
| OAF package | oaf | A stored .oaf package | Implemented |
| HTML viewer | html-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.