create-s-blog
v0.5.5
Published
> **IMPORTANT MIGRATION NOTICE** > > This is the final release under the `create-s-blog` name. The package has been officially migrated and renamed to **create-spage**. > > Please update your tooling and use the new package: [`create-spage`](https://ww
Readme
IMPORTANT MIGRATION NOTICE
This is the final release under the
create-s-blogname. The package has been officially migrated and renamed to create-spage.Please update your tooling and use the new package:
create-spagenpm create spage@latest
create-spage
The official scaffolding CLI for creating an spage project.
Usage
# npm
npm create spage@latest my-blog
# bun
bun create spage@latest my-blog
# pnpm
pnpm create spage my-blog
# yarn
yarn create spage my-blogTo initialize in the current directory:
npm create spage@latest .The CLI prompts for project name, description, author, site URL, and timezone — then generates everything you need.
What Gets Generated
my-blog/
├── posts/
│ ├── hello-world.md # Sample welcome post
│ └── about.md # Sample about page
├── albums/
│ └── blog/ # Sample album directory
├── public/
│ ├── logo.png
│ ├── logomax.png
│ ├── favicon.ico
│ └── _redirects
├── config.json # Site configuration (with your answers filled in)
├── album.config.json # Album configuration
├── memo.config.json # Memo module configuration (Ech0 integration, disabled by default)
├── package.json # { "dev": "spage serve", "build": "spage build" }
└── .gitignoreGenerated package.json
{
"name": "my-blog",
"private": true,
"type": "module",
"scripts": {
"dev": "spage serve",
"build": "spage build"
},
"dependencies": {
"@s-page/core": "^0.3.2",
"@s-page/engine": "^0.3.7"
}
}After Scaffolding
cd my-blog
npm install
npm run dev # Start development server (localhost:3000)
npm run build # Build for production → dist/Configuration
config.json
| Field | Required | Description |
|-------|----------|-------------|
| title | Yes | Site title |
| description | Yes | Site description |
| logo | Yes | Logo image path |
| favicon | Yes | Favicon path |
| siteUrl | No | Production URL (enables SEO features) |
| author | No | Author name |
| language | No | Default language (en, zh-CN, ja) |
| timezone | No | IANA timezone for correct post dates |
| basePath | No | Sub-directory path (e.g., /blog) |
| github | No | GitHub URL (shows icon in top-right) |
album.config.json
{
"enabled": true,
"albums": [
{ "dir": "blog", "name": "Blog Photos" }
]
}memo.config.json
Enables the Memo module powered by Ech0. Disabled by default.
{
"enabled": true,
"provider": "ech0",
"serverUrl": "https://your-ech0-instance.com",
"pageSize": 20,
"title": "Memo"
}| Field | Required | Description |
|-------|----------|-------------|
| enabled | Yes | Toggle the memo module on/off |
| provider | Yes | Data provider (currently only "ech0") |
| serverUrl | Yes | Ech0 instance URL |
| pageSize | No | Memos per load (default: 20) |
| title | No | Custom page title (falls back to i18n default) |
License
MIT © Suzichen
