当前位置: 首页 > news >正文

VuePress 静态网站生成

使用技术:

  • VuePress - Vue 驱动的静态网站生成器
仓库地址: https://github.com/yinian-R/v...

全局安装

## 安装
yarn global add vuepress # 或者:npm install -g vuepress

现有项目

如果你想在一个现有项目中使用 VuePress,同时想要在该项目中管理文档,则应该将 VuePress 安装为本地依赖。

## 没有项目可以初始化
yarn init

## 将 VuePress 作为一个本地依赖安装
yarn add -D vuepress # 或者:npm install -D vuepress

## 新建一个 docs 文件夹
mkdir docs

## 新建一个 markdown 文件
echo # Hello VuePress! > docs/README.md

## 开始写作
npx vuepress dev docs

接着,在 package.json 里加一些脚本:

{
  "scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
  }
}

基本配置

.
├─ docs
│  ├─ README.md
│  └─ .vuepress
│     └─ config.js

一个 VuePress 网站必要的配置文件是 .vuepress/config.js,它应该导出一个 JavaScript 对象:

module.exports = {
  title: 'Hello VuePress',
  description: 'Just playing around'
}

静态资源

创建public文件夹,主要用于存放静态资源

.
├─ docs
│  └─ .vuepress
│     └─ public
│          └─ image
│               └─ favicon.ico

添加网站 favicon,修改 .vuepress/config.js 内容

module.exports = {
    head:[
        ['link', {rel:'icon', href:'/image/favicon.ico'}]
    ]
};

导航栏

你可以通过 themeConfig.nav 增加一些导航栏链接:

module.exports = {
    themeConfig: {
        nav: [
            { text: '主页', link: '/' },
            { text: '指南', link: '/guide/' },
            {
                text: '语言',
                items: [
                    { text: '中文', link: '/language/chinese/' },
                    { text: 'English', link: '/language/english/' }
                ]
            },
            { text: 'GitHub', link: 'https://github.com' }
        ]
    }
};

首页

需要在dosc/README.md指定 home: true

---
home: true
heroImage: /image/favicon.ico
heroText: Hero 标题
tagline: Hero 副标题
actionText: 快速上手 →
actionLink: /guide/
features:
- title: 简洁至上
  details: 以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。
- title: Vue驱动
  details: 享受 Vue + webpack 的开发体验,在 Markdown 中使用 Vue 组件,同时可以使用 Vue 来开发自定义主题。
- title: 高性能
  details: VuePress 为每个页面预渲染生成静态的 HTML,同时在页面被加载的时候,将作为 SPA 运行。
footer: MIT Licensed | Copyright © 2018-present Evan You
---

侧边栏

想要使 侧边栏(Sidebar)生效,需要配置 themeConfig.sidebar,基本的配置,需要一个包含了多个链接的数组:

module.exports = {
    themeConfig: {
        sidebar: [
            '/',
            ['/hello', 'hello page']
        ]
    }
};

部署

设置部署站点的基础路径。

module.exports = {

    base: '/vuepress-demo/',
    
};

在你的项目中,创建一个如下的 deploy.sh 文件

#!/usr/bin/env bash
# 确保脚本抛出遇到的错误
set -e

# 生成静态文件
npm run docs:build

# 进入生成的文件夹
cd docs/.vuepress/dist

# 如果是发布到自定义域名
# echo 'www.example.com' > CNAME

git init
git add -A
git commit -m 'deploy'

# 如果发布到 https://<USERNAME>.github.io
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master

# 如果发布到 https://<USERNAME>.github.io/<REPO>
 git push -f git@github.com:yinian-R/vuepress-demo.git master:gh-pages

cd -

相关文章:

  • Android中View内部类MeasureSpec研究
  • Java多线程父子线程关系 多线程中篇(六)
  • 使用Nginx、Nginx Plus抵御DDOS攻击
  • 前嗅ForeSpider中数据浏览界面介绍
  • NPOI 笔记
  • webpy简单入门---1
  • 印刷名片用什么格式的文件好?
  • spring boot + vue + element-ui全栈开发入门——主页面开发
  • 技术胖1-4季视频复习— (看视频笔记)
  • 如何查找Fiori UI上某个字段对应的后台存储表的名称
  • 日志切割
  • Visual Studio 代码折叠快捷键(摘要)
  • 中小型研发团队架构实践九:任务调度Job
  • 数组
  • golang 发送GET和POST示例
  • [PHP内核探索]PHP中的哈希表
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • ECS应用管理最佳实践
  • EOS是什么
  • ES6系列(二)变量的解构赋值
  • JavaScript创建对象的四种方式
  • opencv python Meanshift 和 Camshift
  • vue的全局变量和全局拦截请求器
  • 高性能JavaScript阅读简记(三)
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 记录:CentOS7.2配置LNMP环境记录
  • 解决iview多表头动态更改列元素发生的错误
  • 两列自适应布局方案整理
  • 前端技术周刊 2019-02-11 Serverless
  • 深度解析利用ES6进行Promise封装总结
  • 系统认识JavaScript正则表达式
  • 中文输入法与React文本输入框的问题与解决方案
  • 如何用纯 CSS 创作一个货车 loader
  • ​力扣解法汇总946-验证栈序列
  • #13 yum、编译安装与sed命令的使用
  • #Java第九次作业--输入输出流和文件操作
  • ()、[]、{}、(())、[[]]命令替换
  • (11)MATLAB PCA+SVM 人脸识别
  • (175)FPGA门控时钟技术
  • (java)关于Thread的挂起和恢复
  • (LeetCode C++)盛最多水的容器
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (四)汇编语言——简单程序
  • (一) storm的集群安装与配置
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET处理HTTP请求
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .pop ----remove 删除
  • @Responsebody与@RequestBody
  • [100天算法】-实现 strStr()(day 52)
  • [Android] 240204批量生成联系人,短信,通话记录的APK