Creating a new documentation github-page
This documentation outlines the main steps that need to be followed to set up a project's documentation github-page such as the current page.
WARNING
Ensure that the VitePress' prerequisites are satisfied.
Creating a VitePress project
Create the project directory
bash
mkdir guidelines
Enter the directory
bash
cd guidelines
Initialise vitepress
bash
npx vitepress init
This runs the vitepress generator, which will prompt for input
Site title:
Guidelines
Site description:
General guidelines
Theme:
Default Theme
Use TypeScript for config and theme files?
Yes
Add VitePress npm scripts to package.json?
Yes
Where should VitePress initialize the config?
./
Add vitepress as dependency
bash
npm add -D vitepress
Set up automated deployment
- Create the file
.github/workflows/deploy.yml
- Populate with the following
yml
# Sample workflow for building and deploying a VitePress site to GitHub Pages
#
name: Deploy VitePress site to Pages
on:
# Runs on pushes targeting the `main` branch. Change this to `master` if you're
# using the `master` branch as the default branch.
push:
branches: [main]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: pages
cancel-in-progress: false
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Not needed if lastUpdated is not enabled
# - uses: pnpm/action-setup@v3 # Uncomment this block if you're using pnpm
# with:
# version: 9 # Not needed if you've set "packageManager" in package.json
# - uses: oven-sh/setup-bun@v1 # Uncomment this if you're using Bun
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm # or pnpm / yarn
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Install dependencies
run: npm ci # or pnpm install / yarn install / bun install
- name: Build with VitePress
run: npm run docs:build # or pnpm docs:build / yarn docs:build / bun run docs:build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./.vitepress/dist
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build
runs-on: ubuntu-latest
name: Deploy
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
- Edit
.vitepress/config.mts
and add thebase
option
json
...
description: "General guidelines",
base: "/guidelines",
themeConfig: {
...
Initialise git
Initialise git
bash
git init
Add modifications to the staging area
bash
git add .
Commit the changes
bash
git commit -m init
Ignore generated files
- Add a
.gitignore
file in the root directory - Add the following lines to the file
.vscode
node_modules
.vitepress/dist
.vitepress/cache
Commit
bash
git init
git add .
git commit -m init
Create a GitHub project
- Create a repository on GitHub
- Name the repository
- Ensure the repository visibility is set to public
- Create
Update repository settings
- Head to settings
- Locate the
pages
tab - Under
Build and deployment
setsource
toGitHub Actions
Push the project online
- Copy the the repository's github URL
- Set the remote origin
bash
git remote add origin git@github.com:<project>
- push
bash
git push origin main