玩玩 VuePress蜡坊,并簡單對比 Google Codelabs

前言

來啦老鐵股冗!

接上一篇文章 玩玩 Google Codelabs 放案,今天我們來玩玩另外一個(gè)文檔工具,以期能從中做個(gè)橫向?qū)Ρ饶盘颍褪牵?/p>

  • VuePress

筆者有一點(diǎn) vue 的使用經(jīng)驗(yàn)币励,對 Vue 還是挺喜愛的,而 VuePress 的作者跟 Vue 框架的作者同一個(gè)滋早,都是尤雨溪榄审,頓時(shí)感覺親切無比,你說咱們是不是得拿下它~

網(wǎng)絡(luò)摘抄VuePress 是尤雨溪(vue.js 框架作者)4月12日發(fā)布的一個(gè)全新的基于 Vue 驅(qū)動的靜態(tài)網(wǎng)站生成器杆麸,實(shí)際上就是一個(gè) vue 的 spa (single page application, 單頁應(yīng)用)應(yīng)用搁进,內(nèi)置 webpack浪感,可以用來寫文檔、博客等饼问。VuePress 專注在以內(nèi)容為中心的靜態(tài)網(wǎng)站上影兽,同時(shí)提供了一些為技術(shù)文檔定制的開箱即用的特性。

主要參考文獻(xiàn):

整體步驟

  1. 開發(fā)環(huán)境搭建;
  2. 配置 VuePress盅视;
  3. 站點(diǎn)設(shè)置捐名;
  4. 使用開源主題;
  5. 生成靜態(tài)文件闹击;
  6. 簡單對比Google Codelabs 與 VuePress镶蹋;

1. 開發(fā)環(huán)境搭建;

  1. 確保安裝了 Node.js赏半,且 Node.js 版本 >= 8.6贺归,安裝過程參考上一篇文章:玩玩 Google Codelabs

  2. 找一個(gè)地方創(chuàng)建項(xiàng)目断箫,項(xiàng)目名如:vuepress-docs拂酣;

  3. 使用 npm 初始化項(xiàng)目;

npm init
初始化項(xiàng)目
  1. 安裝 vuepress仲义;
npm install --save-dev vuepress

或:

npm install -D vuepress
  1. 在 package.json 中添加執(zhí)行命令婶熬;
"scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
}

此時(shí) package.json 中的內(nèi)容為:

{
  "name": "vuepress-docs",
  "version": "1.0.0",
  "description": "vuepress-docs",
  "main": "index.js",
  "scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
  },
  "author": "dylanz",
  "license": "ISC",
  "devDependencies": {
    "vuepress": "^1.8.2"
  }
}
  1. Hello VuePress 一下;
  • 創(chuàng)建 docs 文件夾光坝;
mkdir docs
  • 簡單搞個(gè)頁面尸诽;
echo '# Hello VuePress!' > docs/README.md
  • 啟動服務(wù);
npm run docs:dev
啟動服務(wù)

VuePress 會在 http://localhost:8080 啟動一個(gè)熱重載的服務(wù)盯另,即:修改文件性含,保存后會自動更新站點(diǎn),方便開發(fā)鸳惯。

瀏覽器訪問

怎么樣,簡單不芝发,一個(gè)簡單的頁面就這么完成了绪商,我們繼續(xù)學(xué)習(xí)~

2. 配置 VuePress;

  1. docs 下創(chuàng)建 .vuepress 文件夾辅鲸;
  2. .vuepress 文件夾下創(chuàng)建 config.js 文件格郁;
    網(wǎng)站的title、頁面布局,頁面目錄以及插件的配置例书,都在這個(gè) .vuepress/config.js 文件中锣尉,這個(gè)文件包含網(wǎng)站所有的配置信息;

接下來我們將會修改 .vuepress/config.js 對我們的站點(diǎn)進(jìn)行配置~

3. 站點(diǎn)設(shè)置决采;

  1. 在 docs/README.md 文件中寫入站點(diǎn)首頁配置自沧,如:
---
home: true
heroImage: /hero.png
heroText: Hero 標(biāo)題
tagline: Hero 副標(biāo)題
actionText: 快速上手 →
actionLink: /zh/guide/
features:
- title: 簡潔至上
  details: 以 Markdown 為中心的項(xiàng)目結(jié)構(gòu),以最少的配置幫助你專注于寫作树瞭。
- title: Vue驅(qū)動
  details: 享受 Vue + webpack 的開發(fā)體驗(yàn)拇厢,在 Markdown 中使用 Vue 組件,同時(shí)可以使用 Vue 來開發(fā)自定義主題晒喷。
- title: 高性能
  details: VuePress 為每個(gè)頁面預(yù)渲染生成靜態(tài)的 HTML孝偎,同時(shí)在頁面被加載的時(shí)候,將作為 SPA 運(yùn)行凉敲。
footer: MIT Licensed | Copyright ? 2018-present Evan You
---
  1. 修改 .vuepress/config.js 文件邪媳,如:
module.exports = {
    title: 'VuePress 中文文檔',
    description: 'VuePress 中文文檔,尤雨溪出品',
    head: [
        ['link', { rel: 'icon', href: '/favicon.ico' }]
    ],
    themeConfig: {
        nav: [
            { text: 'Home', link: '/' },
            { text: 'Guide', link: '/guide/' },
            { text: 'External', link: 'https://www.baidu.com' },
        ]
    }
}
  1. .vuepress 文件夾下創(chuàng)建 public 文件夾荡陷,用于存放公共文件,如圖片等迅涮;
  2. .vuepress/public 文件夾下準(zhǔn)備好主頁 logo 圖片文件废赞,如 hero.png
    這時(shí)候你的項(xiàng)目目錄是類似這樣子的:
.
├─ docs
│  ├─ README.md
│  └─ .vuepress
      └─ public
         └─ hero.png
│     └─ config.js
└─ package.json
  1. 重新部署站點(diǎn)后,這時(shí)候主頁的樣子:
主頁
  1. 導(dǎo)航欄與側(cè)邊欄配置實(shí)踐叮姑;

這部分參考文章 使用VuePress 搭建文檔網(wǎng)站并進(jìn)行配置 唉地,不難,筆者看到更酷炫的功能传透,等不及了耘沼,先來介紹下面的功能。

4. 使用開源主題朱盐;

VuePress 有個(gè)很強(qiáng)大的功能群嗤,那就是:主題。我們可以自定義主題兵琳,如上述 3 介紹的狂秘,就是一個(gè)簡單的主題,然而上述的主題還是太過于粗糙了躯肌,自己玩玩還是可以者春,項(xiàng)目上有點(diǎn)拿不出手,并且作為初學(xué)者清女,我也不想花太多時(shí)間搞這些钱烟,怎么辦?

還好,神通廣大的網(wǎng)友開發(fā)了各種漂亮的主題拴袭,例如這個(gè)读第,就比較符合我的需求:

作為一個(gè)初學(xué)者,咱們先不糾結(jié) VuePress 文檔上的其他知識點(diǎn)稻扬,先探究一下這個(gè) vuepress-theme-vdoing卦方;

1. 快速上手:
# clone the project
git clone https://github.com/xugaoyi/vuepress-theme-vdoing.git

# enter the project directory
cd vuepress-theme-vdoing

# install dependency
npm install # or yarn install

# develop
npm run dev # or yarn dev
2. 執(zhí)行完成后,會看到熟悉的 “success”:
success
3. 瀏覽器打開 http://localhost:8080/泰佳,酷炫來襲:
首頁 1
首頁 2
4. 頁面很多盼砍,我們以“技術(shù)”為例,截幾個(gè)圖:
技術(shù)分類主頁面
技術(shù)文章:Markdown使用教程
5. 簡單對頁面做一下分區(qū)介紹逝她;
頁面分區(qū)
  • 第一個(gè)區(qū)域:
    這個(gè)區(qū)域是已選中分類的導(dǎo)航欄浇坐,樹狀結(jié)構(gòu),清晰明了黔宛,同時(shí)支持將該導(dǎo)航欄收縮起來近刘,擴(kuò)大其他區(qū)域的大小臀晃;

  • 第二個(gè)區(qū)域:
    這個(gè)區(qū)域是文檔瀏覽窗口觉渴,頂部包含幾個(gè)非常貼心的入口,即:“面包屑”導(dǎo)航(可以回到主頁徽惋、跳轉(zhuǎn)至所屬分類主頁面)案淋、作者、寫作日期险绘;

分區(qū)二踢京,頂部

而在區(qū)域的底部,也有一些非常貼心的入口宦棺,如:上次更新時(shí)間瓣距、上一篇與下一篇快速跳轉(zhuǎn)入口、最近更新的文章的入口代咸、github 方面的集成等蹈丸;

分區(qū)二,底部
  • 第三個(gè)區(qū)域:
    這個(gè)區(qū)域是當(dāng)前已瀏覽的文章的導(dǎo)航呐芥,可以快速跳轉(zhuǎn)到段落白华,也是十分清晰明了;

頁面的右下角有幾個(gè)入口也是十分貼心贩耐,主要是:回到頁面頂部入口弧腥、皮膚入口

頁面右下角 1
頁面右下角 2
6. 嘗試在這個(gè)主題上做自己的頁面;
  • 首先在 docs 文件夾下創(chuàng)建如下目錄與文件潮太;
創(chuàng)建目錄與文件
  • 執(zhí)行 npm run dev 命令管搪;
    我們執(zhí)行 npm run dev 命令虾攻,執(zhí)行完命令后,會在各新建的文件中自動填充內(nèi)容更鲁,如:
---
title: 第一個(gè)測試文檔
date: 2021-11-22 15:10:05
permalink: /pages/b060ae/
categories:
  - 測試
  - 子分類A
tags:
  - 
---
  • 目錄頁設(shè)置霎箍;
    如果需要展示目錄,則需要在“00.目錄頁”文件夾下創(chuàng)建文件澡为,如 “07.測試.md”(序號不限漂坏,不一定與文件夾序號一致,不過推薦一致媒至,這樣容易維護(hù))顶别;

我們可以設(shè)置我們的目錄頁,例如我們要用 “07.測試” 文件夾下的內(nèi)容生成目錄頁拒啰,則:

---
pageComponent: 
  name: Catalogue
  data: 
    key: 07.測試
    imgUrl: /img/more.png
    description: 這僅僅是個(gè)測試
title: 測試
date: 2020-03-11 21:50:56
permalink: /test
sidebar: false
article: false
comment: false
editLink: false
---

注意:
a. "key: 07.測試" 用于配置要自動生成目錄頁的是哪個(gè)文件夾下的內(nèi)容驯绎;
b. "permalink: /test" 用于配置目錄頁的路由,這個(gè)自定谋旦;

  • 編寫文件剩失;
    我們可以寫點(diǎn)簡單的內(nèi)容到文件中去,如:
---
title: 第一個(gè)測試文檔
date: 2021-11-21 22:28:42
permalink: /pages/ee1b58/
categories:
  - 測試
  - 子分類A
tags:
  - 
author: 
  name: dylan zhang
  link: 
---

# 子分類A 測試文檔1

Markdown語法參考
# 一級標(biāo)題
## 二級標(biāo)題
##### 五級標(biāo)題
- 列表第一項(xiàng)
- 列表第二項(xiàng)
1. 有序列表第一項(xiàng)
2. 有序列表第二項(xiàng)
[標(biāo)題](鏈接地址)
![圖片描述](圖片鏈接地址)
*斜體*
**粗體**
> 引用段落
\`\`\`
代碼塊
\`\`\`
  • 探索設(shè)置導(dǎo)航欄册着;
    修改 docs/.vuepress/config/nav.js 文件拴孤,如:
導(dǎo)航欄設(shè)置
{
    text: '測試',
    link: '/test/',
    items: [
      { text: '子分類A', link: '/pages/ee1b58/' },
      { text: '子分類B', link: '/pages/fcdab6/' },
      { text: '子分類C', link: '/pages/50475e/' },
    ],
  }

其中:
a. link 值為路由,items內(nèi)的 link 一般設(shè)置子分類文件夾下的第一個(gè)文件中的 permalink 值甲捏;
b. 配置的順序決定了導(dǎo)航欄上的順序乞巧,如我們將“測試”設(shè)置在“技術(shù)”與“更多”之間;

a. 導(dǎo)航欄入口:

導(dǎo)航欄

b. 點(diǎn)擊“測試”可進(jìn)入“測試”目錄頁:

目錄頁

c. 點(diǎn)擊“測試”分類下的子分類鏈接或目錄頁的文件鏈接,進(jìn)入文件瀏覽頁面:

文件瀏覽頁面
  • 探索主頁大功能入口設(shè)置蚕冬;
    a. 找到 docs/index.md 文件免猾,為“測試”添加主頁入口,添加位置位于“features”字段下囤热,如:
features: # 可選的
  - title: 前端
    details: JavaScript猎提、ES6、Vue框架等前端技術(shù)
    link: /web/ # 可選
    imgUrl: /img/web.png # 可選
  - title: 頁面
    details: html(5)/css(3)旁蔼,前端頁面相關(guān)技術(shù)
    link: /ui/
    imgUrl: /img/ui.png
  - title: 技術(shù)
    details: 技術(shù)文檔锨苏、教程、技巧棺聊、總結(jié)等文章
    link: /technology/
    imgUrl: /img/other.png
  - title: 測試
    details: 這僅僅是個(gè)測試
    link: /test/
    imgUrl: /img/other.png

b. 保存后瀏覽器驗(yàn)證:

主頁大功能入口

Ok伞租,我們演示了如何探索式地增加分類、自動生成目錄頁限佩、文件葵诈、主頁大功能入口裸弦,主要就是模仿當(dāng)前的項(xiàng)目文件結(jié)構(gòu)和數(shù)據(jù),作為快速使用方和調(diào)研目的作喘,這樣已經(jīng)夠了理疙,其他功能點(diǎn)也是類似,請讀者自行探索泞坦,我也會在后續(xù)應(yīng)用場景中探索~

5. 生成靜態(tài)文件窖贤;

執(zhí)行命令:

npm run build

執(zhí)行完命令后,會將產(chǎn)物放至:docs/.vuepress/dist贰锁,與上一篇文章介紹的一樣赃梧,將該文件夾丟到nginx 服務(wù)器上后,就可以部署到遠(yuǎn)程服務(wù)器啦~

6. 簡單對比 Google Codelabs 與 VuePress李根;

1. 開發(fā)環(huán)境搭建槽奕;

VuePress 更優(yōu)。

VuePress 只需要 Node.js 環(huán)境房轿,而 Google Codelabs 不僅需要 Node.js 環(huán)境粤攒,還需要 go 語言環(huán)境、還需要 claat (Codelabs command line tool) 工具囱持。

2. 組織文檔的方式夯接;

VuePress 更優(yōu)。

VuePress 作為文檔空間纷妆,文檔組織具有很強(qiáng)的結(jié)構(gòu)化特點(diǎn)盔几,加上開源主題的應(yīng)用,使文檔空間變得十分強(qiáng)大掩幢。而 Google Codelabs 是比較扁平化的文檔組織方式逊拍,沒有結(jié)構(gòu)化、歸納等特點(diǎn)际邻;

3. 文檔瀏覽體驗(yàn)芯丧;

個(gè)人感覺 VuePress 更優(yōu)。

在文檔瀏覽頁面世曾,VuePress 不僅能瀏覽當(dāng)前頁面缨恒,并且有當(dāng)前分類的導(dǎo)航、當(dāng)前瀏覽頁面的綱要轮听,可以快速跳轉(zhuǎn)到文檔中的節(jié)點(diǎn)骗露。

Google Codelabs 頁面會按編寫設(shè)置,將文檔劃分為不同節(jié)點(diǎn)(類似頁面的綱要)血巍,點(diǎn)擊節(jié)點(diǎn)也可以快速跳轉(zhuǎn)到文檔中的節(jié)點(diǎn)萧锉,但功能相對有限;

4. 文檔瀏覽體驗(yàn)述寡;

個(gè)人感覺 VuePress 更優(yōu)驹暑。

VuePress 文檔的編寫玫恳,與編寫任何 Markdown 文件無異,而 Google Codelabs 則需要按規(guī)則优俘,設(shè)置好哪個(gè)文字作為節(jié)點(diǎn)的 title京办,實(shí)際上 Google Codelabs 節(jié)點(diǎn)的 title 占用了最大號的 Markdown head,如 “# 這是第一個(gè)節(jié)點(diǎn)title”帆焕。

截個(gè)圖做一下對比:

文檔瀏覽體驗(yàn)對比
5. 美觀性惭婿;

個(gè)人感覺 VuePress 更優(yōu)。

使用了開源主題前叶雹,VuePress 也不遜于 Google Codelabs财饥,而使用了開源主題后,更是將 Google Codelabs 甩出幾條街折晦。

綜上钥星,不吹不黑,我個(gè)人感覺 VuePress 更勝一籌满着!

當(dāng)然谦炒,不排除 Google Codelabs 可以在某些應(yīng)用場景下應(yīng)用,可能由于筆者見識少哈风喇,請讀者自行選擇~
有興趣的同學(xué)可以訪問以下 demo 進(jìn)行體驗(yàn)哈:

另外宁改,我們依然可以用上一篇文章介紹的 Minio 對象存儲服務(wù),作為圖床魂莫。還有可以使用 Typora 進(jìn)行 Markdown 文件的編寫还蹲,有機(jī)會咱們也可以學(xué)起,nice to have:

好了耙考,今天我們就先聊到這啦谜喊,更多的 VuePress 知識,官網(wǎng)上學(xué)習(xí)哈倦始,有機(jī)會我們再聊聊這方面~

如果本文對您有幫助斗遏,麻煩動動手指點(diǎn)點(diǎn)贊?

非常感謝楣号!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市怒坯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖镀琉,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爽撒,死亡現(xiàn)場離奇詭異,居然都是意外死亡归敬,警方通過查閱死者的電腦和手機(jī)酷含,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門鄙早,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人椅亚,你說我怎么就攤上這事限番。” “怎么了呀舔?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵弥虐,是天一觀的道長。 經(jīng)常有香客問我媚赖,道長霜瘪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任惧磺,我火速辦了婚禮颖对,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘磨隘。我一直安慰自己缤底,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布琳拭。 她就那樣靜靜地躺著训堆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪白嘁。 梳的紋絲不亂的頭發(fā)上坑鱼,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天,我揣著相機(jī)與錄音絮缅,去河邊找鬼鲁沥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛耕魄,可吹牛的內(nèi)容都是我干的画恰。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼吸奴,長吁一口氣:“原來是場噩夢啊……” “哼允扇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起则奥,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤考润,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后读处,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糊治,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年罚舱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了井辜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绎谦。...
    茶點(diǎn)故事閱讀 40,742評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粥脚,靈堂內(nèi)的尸體忽然破棺而出窃肠,到底是詐尸還是另有隱情,我是刑警寧澤阿逃,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布铭拧,位于F島的核電站,受9級特大地震影響恃锉,放射性物質(zhì)發(fā)生泄漏搀菩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一破托、第九天 我趴在偏房一處隱蔽的房頂上張望肪跋。 院中可真熱鬧,春花似錦土砂、人聲如沸州既。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吴叶。三九已至,卻和暖如春序臂,著一層夾襖步出監(jiān)牢的瞬間蚌卤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工奥秆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逊彭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓构订,卻偏偏與公主長得像侮叮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子悼瘾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容