Migrations

Migrating from VitePress

Move VitePress Markdown and sidebar config into Shiso.

VitePress and Shiso are both Vite-based static generators, so the build and deployment story is nearly identical. Content is plain Markdown in both; the main work is converting VitePress container syntax to MDX components and moving .vitepress/config.ts into docs.json.

What carries over#

  • Content: .md pages, GFM tables, frontmatter title and description
  • Structure: nested folders become nested routes
  • Static assets: files from public/ stay in public/
  • Deployment: static output on any host — same model, different output directory (dist/client)

Migration steps#

1
Create a Shiso project
2
Copy content and assets

Move your Markdown files into content/docs and public/ files into public/. Rename any page using Vue-in-Markdown to .mdx after converting it (see below).

3
Rebuild the sidebar as navigation

Translate themeConfig.sidebar into docs.json navigation. Sidebar sections become groups, link values become page paths:

Top navbar items (themeConfig.nav) become tabs or navbar.links.

4
Move branding

Map titlename, descriptiondescription, themeConfig.logologo, themeConfig.socialLinksfooter.socials or navbar.links.

5
Convert containers and validate

Rewrite ::: containers as components (see mapping below), then:

Syntax mapping#

VitePressShiso
::: tip<Tip>
::: info<Info>
::: warning<Warning>
::: danger<Danger>
::: details<Accordion title>
::: code-group<CodeGroup>
[title](link){target} attrsPlain Markdown links
<script setup> / Vue componentsReact MDX — needs rewriting or removal

For example, a VitePress code group:

becomes:

Frontmatter differences#

VitePress fieldShiso equivalent
title, descriptionSame
layout: home, hero, featuresWrite a normal MDX page with <Columns> of <Card>s
outlineAutomatic — right-rail outline is built in
aside, navbarNo per-page equivalent

Not carried over#

  • Vue components and <script setup> — Shiso renders React MDX; interactive bits need one of the built-in components or plain Markdown
  • Custom themes — see Appearance for colors, fonts, and CSS overrides instead
  • Local search config — built-in client-side search works with no setup

After the move#

Last updated on