Skip to content
Get started

zel ship

Somebody else's documentation to a published site, in one line.

terminal
zel ship ./docs --provider netlify
✓ Detected MkDocs (certain)
✓ Converted 47 pages, 3 unmapped — see the report
✓ Content valid
✓ Built static — 47 routes
✓ Uploaded to acme-docs
  https://acme-docs.netlify.app

What it is

detectconvertcheckbuilddeploy, stopping at the first failure.

The whole of a migration, from a folder written for another tool to a site someone can read.

Why one command for five

Because it is one intention. "I have MkDocs documentation and I want to see what it looks like in Zellij, live, before I decide anything" is a single question, and answering it in five steps means five opportunities to stop halfway and lose the thread.

It is also the honest way to evaluate a migration. Reading a converted folder tells you the files exist; seeing the site tells you whether the navigation survived, whether the prose still reads, and whether the pages you cared about are where you expect. That judgement needs a URL, and this is the shortest path to one.

What it will not hide

Every warning the individual commands produce, ship produces:

! 3 thing(s) could not be carried over:
    https://blog.acme.dev: "Blog" is an external link; sidebars hold pages.
    draft.md: on disk but absent from the navigation; not converted
    internal/notes.md: on disk but absent from the navigation; not converted

And the landing page is still yours. Every tool it converts from describes a documentation tree; Zellij has that and marketing pages built from nineteen section types with no equivalent in the source. What ships is a faithful guide folder and one hero to build on. That is not a gap in the converter — it is the part Zellij has that the source did not.

The one risk worth naming

zel check does not compile MDX. A converted folder can pass every step here and still fail a later build, because MDX treats { and < as syntax and prose written for MkDocs never had to care.

ship builds, so it does compile — which means it catches this where migrate would not. If ship succeeds, the conversion is sound.

Options

<source>Required. The folder to convert
--provider <name>Where to publishfrom zel.toml
--out <path>Where the converted folder goes./content

Until it lands

Everything except the upload works:

terminal
zel migrate ./docs --out ./content
zel build ./content --out dist
netlify deploy --prod --dir dist

See also