create-vitepress-theme-vuejsblog

Scaffold a VitePress blog that uses the vitepress-theme-vuejsblog theme
436 1
Install
npm install create-vitepress-theme-vuejsblog
Latest Version:0.1.2
License:MIT
Last Updated:Oct 8, 2026
Links: GitHub  ·  npm
Maintainer: weinibuliu

create-vitepress-theme-vuejsblog

Scaffold a VitePress blog with vitepress-theme-vuejsblog already wired up: config, sample content, brand colour and deploy config.

# npm — the flags come after a `--`, see below
npm create vitepress-theme-vuejsblog@latest my-blog

# pnpm, yarn and bun — flags go on the end as written
pnpm create vitepress-theme-vuejsblog@latest my-blog

pnpm create, yarn create and bun create forward the options as written: pnpm create vitepress-theme-vuejsblog@latest my-blog --yes.

npm is the exception. It parses the command line before the initialiser ever starts, and --yes, --force and --help are names npm answers to itself, so through npm an option only arrives after a lone -- — the same one every other create- package's README asks for:

npm create vitepress-theme-vuejsblog@latest my-blog -- --yes

Without the --, npm consumes the flag and the scaffolder simply never hears it: a --yes run asks its questions anyway, and --title Notes arrives as a second directory. The scaffolder says so when it can tell npm was the caller.

With no arguments the scaffolder asks for the things it cannot guess; in a shell with no TTY, or with --yes, it uses the defaults instead of hanging.

What you get

my-blog/
├── .github/workflows/deploy.yml   builds and publishes to GitHub Pages
├── .vitepress/
│   ├── config.ts                  the Blog: title, author, nav, footer, Feed
│   └── theme/
│       ├── index.ts               hands the Theme to VitePress
│       └── theme.css              brand colour and your own styling
├── index.md                       the Blog index
├── about.md                       a Page, to show what one looks like
├── posts/
│   ├── hello-world.md             a Post
│   └── a-draft.md                 a Draft: listed in dev, absent from a build
├── public/logo.svg                the nav mark and the favicon
├── vercel.json                    so Vercel needs no configuration
├── package.json
└── tsconfig.json

The generated Site carries a README.md of its own explaining how to write posts and deploy. The Theme's README documents everything under themeConfig.blog.

Options

Anything not passed as a flag is asked for interactively. Under npm, a flag without the leading -- described above is read by npm rather than by this CLI.

Flag Meaning
[directory] Where to write the Site. Default my-blog
-y, --yes Skip every prompt and use the defaults
-f, --force Write into a non-empty directory. Only the files it generates are overwritten, and nothing is deleted
-t, --title <text> Blog title. Defaults to the directory name, title-cased
-d, --description <text> One line describing the blog
-a, --author <text> Default Author for posts that credit none
-u, --base-url <url> Site origin, e.g. https://example.com. The Feed needs it
--lang <tag> Interface and date language. Default en
--preset <name> Brand palette: default (green), emerald, rose, violet, amber
--package-manager <m> pnpm, npm, yarn or bun. Detected by default
--theme-version <range> Override the vitepress-theme-vuejsblog version range
--install / --no-install Run the package manager's install. Off unless asked
--git / --no-git git init and a first commit. Off unless asked
--deploy / --no-deploy Write the deploy config. On by default
-h, --help Show the options
-v, --version Show the version

Two defaults are deliberately asymmetric. Interactively, installing and initialising git are both offered and default to yes. Without a TTY, or with --yes, both are off: they are the only two steps that touch anything outside the directory just written, so they are worth being asked about rather than assumed.

--force regenerates rather than merges, so a second run with fewer flags produces the Site those flags describe.

Requirements

Node ^20.19.0 || >=22.12.0, the same range VitePress 2 needs. The generated Site pins vitepress@2.0.0-alpha.20, because the Theme reads globalThis.VITEPRESS_CONFIG.site, which VitePress 1.x does not provide.

The scaffolder itself has no build step. Its two runtime dependencies are @clack/prompts, for the questions, and eta, for the templates.

License

MIT

Related Packages

vitepress-theme-vuejsblog

A personal-blog theme for VitePress in the style of blog.vuejs.org

1,154 1
vitepress-theme-ninc

A feature-rich VitePress theme by ninc - blog, docs, and utilities out of the bo...

7,290 4
create-clarity-theme

Create a ready-to-run Nuxt blog powered by Clarity Theme.

990 0
@jcamp/vitepress-blog-theme

VitePress easy to use blog theme

958 28
vitepress-theme-teek

vitepress-theme-teek

26,382 353

Version History

Version Released License
0.1.2 MIT
0.1.1 MIT
0.1.0 MIT
Pre-releases (1)
Version Released License
0.0.0-stage