Vuepress 框架

10/21/2023 Vuepress

# Vuepress 框架

# 介绍


# 使用

# 快速搭建

  • 快速搭建
mkdir vuepress-demo && cd $_

yarn init  # 初始化项目

# 添加 scripts

# 安装 reco 主题
# 可以不安装主题,其余设置均一样
yarn add vuepress-theme-reco --dev

mkdir docs
echo '# Hello VuePress' > docs/README.md

# yarn 可替换成 pnpm、npm run
yarn docs:dev    # 本地预览
yarn docs:build  # 构建

# 若 build 时报错
# 通常是由于 Node.js 版本与 crypto 模块的兼容性问题引起的
# 方式 1 添加环境变量
export NODE_OPTIONS=--openssl-legacy-provider
# 方式 2  修改 package.json 中的 build 参数值
"docs:build": "NODE_OPTIONS=--openssl-legacy-provider vuepress build docs"
  • package.json 中添加 scripts 参数
{
  "scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
  }
}

  • 目录结构
├── docs/
│   ├── .vuepress/
│   │   ├── config.js   # 配置文件
│   └── README.md
├── package.json

# 部署

  • GitHub Actions 示例
name: docs

on:
  push:
    branches: [main]

jobs:
  docs:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: latest
          cache: yarn

      - name: Install dependencies
        run: yarn
      - name: Build VuePress site
        run: yarn docs:build

      - name: Deploy to GitHub Pages
        uses: crazy-max/ghaction-github-pages@v4
        with:
          target_branch: gh-pages
          build_dir: docs/.vuepress/dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# 配置

module.exports = {
  title: '',  // 网站标题
  description: '',  // 网站描述
  base: 'repo-name',  // 通常为 GitHub repo name

  // 主题配置
  themeConfig: {

    // 在页面下方添加最后更新时间
    lastUpdated: 'Last Updated',

    // 搜索
    search: true,
    searchMaxSuggestions: 10,

    // 导航栏
    navbar: [
      // 普通导航栏
      { text: '首页', link: '/' },
      { text: '指南', link: '/guide/' },
      // 下拉菜单导航栏
      {
        text: '更多',
        children: [
          { text: '项目', link: '/projects/' },
          { text: '关于', link: '/about/' },
        ],
      },
    ],

    // docs 侧边栏配置 含多级子目录示例
    sidebar:[
        {
            title: '科研工具',
            path: '/scitoolkits/',
            collapsable: false,
            children: [
                {title: 'LAMMPS 安装', path: 'scitoolkits/lammps-install'},
                {
                    title: 'atomate',
                    path: 'scitoolkits/atomate/',
                    collapsable: false,
                    children: [
                        {title: 'atomate 安装与使用', path: 'scitoolkits/atomate/atomate-usage'},
                    ]
                },
    ]
  }
}
  // ...

  // 移动端优化
  head: [
    ['meta', { name: 'viewport', content: 'width=device-width,initial-scale=1,user-scalable=no' }]
  ],

   // ...

  themeConfig: {
    // ...

   // md 文档目录侧边栏 右侧
    subSidebar: 'auto',
    sidebarDepth: 5,

    startYear: '2024',

    // 关闭 404 页面腾讯公益
    noFoundPageByTencent: false,

    type: 'blog',

    blogConfig: {
        category: {
          location: 2, // 在导航栏菜单中所占的位置,默认 2
          text: '分类' // 默认文案 “分类”
        },
        tag: {
          location: 3, // 在导航栏菜单中所占的位置,默认 3
          text: '标签' // 默认文案 “标签”
        }
    },

    nav: [
      // 添加时间轴和 GitHub 链接
      { text: '时间轴', link: '/timeline/', icon: 'reco-date' },
      { text: 'GitHub', link: 'https://github.com/username', icon: 'reco-github' }
    ],

    // ...
  }
Last Updated: 7/13/2024, 7:09:02 AM