這篇文章給大家分享一個VuePress實戰,透過本文教你如何快速用VuePress Github Pages搭建一個博客,希望對大家有所幫助。
最近完成了 TypeScript 最新官方文件 Hanbook 的翻譯,一共十四篇,堪稱國內的最好 TypeScript4 入門教程之一。為了方便大家閱讀,我用VuePress Github Pages 搭建了博客,博客效果如下:
#0. VuePress
#VuePress 自然不用多說,基於Vue 的靜態網站產生器,風格簡約,配置也比較簡單。之所以不使用VitePress,是因為想使用現有的主題, 而VitePress 不相容於當前VuePress 的生態系統,至於為什麼不選擇VuePress@next,考慮到還處於Beta階段,等穩定後再開始遷移。 【相關推薦:《vue.js教學》】
1. 本地搭建
快速開始同VuePress 官網:
#1、建立並進入一個新目錄
// 文件名自定义 mkdir vuepress-starter && cd vuepress-starter
2、使用你喜歡的套件管理器進行初始化
yarn init # npm init
3、將VuePress 安裝為本地依賴
yarn add -D vuepress # npm install -D vuepress
4 、建立你的第一篇文檔,VuePress 會以docs 為文檔根目錄,所以這個README.md 相當於主頁:
mkdir docs && echo '# Hello VuePress' > docs/README.md
5、在package.json 中加入一些scripts
{ "scripts": { "docs:dev": "vuepress dev docs", "docs:build": "vuepress build docs" } }
6、在本機啟動伺服器
yarn docs:dev # npm run docs:dev
VuePress 會在http://localhost:8080 (opens new window) 啟動一個熱重載的開發伺服器。
2. 基礎設定
在文件目錄下建立一個 .vuepress
目錄,所有 VuePress 相關的檔案都會被放在這裡。此時你的專案結構可能是這樣:
. ├─ docs │ ├─ README.md │ └─ .vuepress │ └─ config.js └─ package.json
在.vuepress
資料夾下加入config.js
,設定網站的標題和描述,方便SEO:
module.exports = { title: 'TypeScript4 文档', description: 'TypeScript4 最新官方文档翻译' }
此時介面類似:
3. 新增導覽列
我們現在在頁首的右上角新增導覽列,修改config.js
:
module.exports = { title: '...', description: '...', themeConfig: { nav: [ { text: '首页', link: '/' }, { text: '冴羽的 JavaScript 博客', items: [ { text: 'Github', link: 'https://github.com/mqyqingfeng' }, { text: '掘金', link: 'https://juejin.cn/user/712139234359182/posts' } ] } ] } }
效果如下:
#更多的設定參考VuePress 導覽列:
https://vuepress.vuejs.org/zh/theme/default-theme-config.html#導覽列
4. 新增側邊欄
#現在我們加入一些md 文檔,目前文檔的目錄如下:
. ├─ docs │ ├─ README.md │ └─ .vuepress │ └─ config.js | └─ handbook | └─ ConditionalTypes.md | └─ Generics.md └─ package.json
我們在config.js
配置如下:
module.exports = { themeConfig: { nav: [...], sidebar: [ { title: '欢迎学习', path: '/', collapsable: false, // 不折叠 children: [ { title: "学前必读", path: "/" } ] }, { title: "基础学习", path: '/handbook/ConditionalTypes', collapsable: false, // 不折叠 children: [ { title: "条件类型", path: "/handbook/ConditionalTypes" }, { title: "泛型", path: "/handbook/Generics" } ], } ] } }
對應的效果如下:
5. 更換主題
現在基本的目錄和導航功能已經實現,但如果我還想要載入loading、切換動畫、模式切換(暗黑模式)、回頂部、評論等功能呢,為了簡化開發成本,我們可以直接使用主題,這裡使用的主題是vuepress-theme-rec(https://vuepress-theme-reco.recoluan.com/):
現在我們安裝vuepress-theme-reco:
npm install vuepress-theme-reco --save-dev # or yarn add vuepress-theme-reco
然後在config.js
裡引用主題:
module.exports = { // ... theme: 'reco' // ... }
刷新頁面,我們會發現一些細節的改變,例如載入時的loading 動畫、以及支援切換暗黑模式:
#6. 新增文章資訊
但我們也會發現,像條件類型這篇文章,條件類型(Conditional Types)
竟然出現了兩遍,這是因為這個主題自動提取了第一個大標題作為本文的標題,我們可以在每篇文章的md文件中加入一些資訊修改:
--- title: 条件类型 author: 冴羽 date: '2021-12-12' ---
此時文章的效果如下:
但如果你不想要标题、作者、时间这些信息呢,我们可以在样式里隐藏,这个稍后会讲到。
7. 设置语言
注意,上图的文章时间,我们写入的格式为 2021-12-12
,但是显示的是 12/12/2021
,这是因为 VuePress 默认的 lang 为 en-US
,我们修改一下 config.js:
module.exports = { // ... locales: { '/': { lang: 'zh-CN' } }, // ... }
可以发现时间换了一种展示方式:
8. 开启目录结构
在原本的主题里,我们发现每篇文章的目录结构出现在左侧:
而 vuepress-theme-reco 将原有的侧边栏的中的多级标题移出,生成子侧边栏,放在了页面的右侧,如果你要全局开启,可在页面 config.js 里设置开启:
module.exports = { //... themeConfig: { subSidebar: 'auto' } //... }
此时效果如下:
9. 修改主题颜色
VuePress 基于 Vue,所以主题色用的是 Vue 的绿色,然而 TypeScript 的官方色则是蓝色,那如何修改 VuePress 的主题色呢?
你可以创建一个 .vuepress/styles/palette.styl
文件,文件代码如下:
$accentColor = #3178c6
此时可以发现主题颜色变了:
更多的颜色修改参考 VuePress 的 palette.styl。
10. 自定义修改样式
如果你想自定义修改一些 DOM 元素的样式呢?就比如在暗黑模式下:
我们发现用作强调的文字颜色比较暗淡,在暗黑模式下看不清楚,我想改下这个文字的颜色和背景色呢?
而 VuePress 提供了一种添加额外样式的简便方法。你可以创建一个 .vuepress/styles/index.styl
文件。这是一个 Stylus 文件,但你也可以使用正常的 CSS 语法。
我们在 .vupress 文件夹下创建这个目录,然后创建 index.styl 文件,代码如下:
// 通过检查,查看元素样式声明 .dark .content__default code { background-color: rgba(58,58,92,0.7); color: #fff; }
此时文字就清晰了很多:
那之前我们提到的隐藏每篇文章的标题、作者、时间呢,其实也是类似的方式:
.page .page-title { display: none; }
最后的效果如下:
11. 部署
我们的博客就算是正式的做好了,接下来我们部署到免费的 Github Pages 上。我们在 Github 上新建一个仓库,这里我取得仓库名为:learn-typescript
。
对应,我们需要在 config.js
添加一个 base
路径配置:
module.exports = { // 路径名为 "/<REPO>/" base: '/learn-typescript/', //... }
最终的 config.js
文件内容为:
module.exports = { title: 'TypeScript4 文档', description: 'TypeScript4 最新官方文档翻译', base: '/learn-typescript/', theme: 'reco', locales: { '/': { lang: 'zh-CN' } }, themeConfig: { // lastUpdated: '上次更新', subSidebar: 'auto', nav: [ { text: '首页', link: '/' }, { text: '冴羽的 JavaScript 博客', items: [ { text: 'Github', link: 'https://github.com/mqyqingfeng' }, { text: '掘金', link: 'https://juejin.cn/user/712139234359182/posts' } ] } ], sidebar: [ { title: '欢迎学习', path: '/', collapsable: false, children: [ { title: "学前必读", path: "/" } ] }, { title: "基础学习", path: '/handbook/ConditionalTypes', collapsable: false, children: [ { title: "条件类型", path: "/handbook/ConditionalTypes" }, { title: "泛型", path: "/handbook/Generics" } ], } ] } }
然后我们在项目 vuepress-starter
目录下建立一个脚本文件:deploy.sh
,注意修改一下对应的用户名和仓库名:
#!/usr/bin/env sh # 确保脚本抛出遇到的错误 set -e # 生成静态文件 npm run docs:build # 进入生成的文件夹 cd docs/.vuepress/dist git init git add -A git commit -m 'deploy' # 如果发布到 https://<USERNAME>.github.io/<REPO> git push -f git@github.com:mqyqingfeng/learn-typescript.git master:gh-pages cd -
然后命令行切换到 vuepress-starter
目录下,执行 sh deploy.sh
,就会开始构建,然后提交到远程仓库,注意这里提交到了 gh-pages
分支,我们查看下对应仓库分支的代码:
我们可以在仓库的 Settings -> Pages
中看到最后的地址:
##至此,我們完成了VuePress 和Github Pages 的部署。 更多程式相關知識,請造訪:像我最後產生的位址就是 https://mqyqingfeng.github.io/learn-typescript/
程式設計入門! !
以上是一文快速教你用VuePress + Github Pages搭建一個部落格(實戰)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Netflix使用React作為其前端框架。 1)React的組件化開發模式和強大生態系統是Netflix選擇它的主要原因。 2)通過組件化,Netflix將復雜界面拆分成可管理的小塊,如視頻播放器、推薦列表和用戶評論。 3)React的虛擬DOM和組件生命週期優化了渲染效率和用戶交互管理。

Netflix在前端技術上的選擇主要集中在性能優化、可擴展性和用戶體驗三個方面。 1.性能優化:Netflix選擇React作為主要框架,並開發了SpeedCurve和Boomerang等工具來監控和優化用戶體驗。 2.可擴展性:他們採用微前端架構,將應用拆分為獨立模塊,提高開發效率和系統擴展性。 3.用戶體驗:Netflix使用Material-UI組件庫,通過A/B測試和用戶反饋不斷優化界面,確保一致性和美觀性。

NetflixusesAcustomFrameworkcalled“ Gibbon” BuiltonReact,notReactorVuedIrectly.1)TeamSperience:selectBasedonFamiliarity.2)ProjectComplexity:vueforsimplerprojects:reactforforforproproject,reactforforforcompleplexones.3)cocatizationneedneeds:reactoffipicatizationneedneedneedneedneedneeds:reactoffersizationneedneedneedneedneeds:reactoffersizatization needefersmoreflexibleise.4)

Netflix在框架選擇上主要考慮性能、可擴展性、開發效率、生態系統、技術債務和維護成本。 1.性能與可擴展性:選擇Java和SpringBoot以高效處理海量數據和高並發請求。 2.開發效率與生態系統:使用React提升前端開發效率,利用其豐富的生態系統。 3.技術債務與維護成本:選擇Node.js構建微服務,降低維護成本和技術債務。

Netflix主要使用React作為前端框架,輔以Vue用於特定功能。 1)React的組件化和虛擬DOM提升了Netflix應用的性能和開發效率。 2)Vue在Netflix的內部工具和小型項目中應用,其靈活性和易用性是關鍵。

Vue.js是一種漸進式JavaScript框架,適用於構建複雜的用戶界面。 1)其核心概念包括響應式數據、組件化和虛擬DOM。 2)實際應用中,可以通過構建Todo應用和集成VueRouter來展示其功能。 3)調試時,建議使用VueDevtools和console.log。 4)性能優化可通過v-if/v-show、列表渲染優化和異步加載組件等實現。

Vue.js適合小型到中型項目,而React更適用於大型、複雜應用。 1.Vue.js的響應式系統通過依賴追踪自動更新DOM,易於管理數據變化。 2.React採用單向數據流,數據從父組件流向子組件,提供明確的數據流向和易於調試的結構。

Vue.js適合中小型項目和快速迭代,React適用於大型複雜應用。 1)Vue.js易於上手,適用於團隊經驗不足或項目規模較小的情況。 2)React的生態系統更豐富,適合有高性能需求和復雜功能需求的項目。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器