原文參考連接javascript
有閱讀障礙的同窗,能夠跳過第一至四節,下載我寫好的 工具包:
git clone https://github.com/zhangyunchencc/vuepress-devkit.git
而後從第五節開始看。
優秀的程序員都在寫博客,寫博客有不少好處:css
VuePress 是尤雨溪(vue.js 框架做者)4月12日發佈的一個全新的基於 vue 的靜態網站生成器,實際上就是一個 vue 的 spa 應用,內置 webpack,能夠用來寫文檔。詳見 VuePress中文網html
其實相似的建站工具備不少,好比 WordPress、Jekyll、Hexo 等,其中 WordPress 須要本身購買虛擬主機,不考慮;Jekyll 是 Github-Page 默認支持的,據說操做比較複雜,沒有用過不作過多評價了;Hexo 以前一直在用,但一直以爲主題很差看,風格不夠簡潔優雅。自從碰見 VuePress,嗯,就是它了~前端
VuePress 有不少優勢:vue
能夠右鍵手動新建,也可使用 mkdir 命令新建:java
mkdir vuepressBlogDemo
npm install -g vuepress
使用 npm init
或 npm init -y
(默認yes)webpack
npm init -y
在 vuepressBlogDemo 文件夾中建立 docs 文件夾,在 docs 中建立 .vuepress 文件夾,在.vuepress中建立 public 文件夾和 config.js 文件,最終項目結構以下所示:nginx
vuepressBlogDemo ├─── docs │ ├── README.md │ └── .vuepress │ ├── public │ └── config.js └── package.json
module.exports = { title: 'Chen\'s blog', description: '個人我的網站', head: [ // 注入到當前頁面的 HTML <head> 中的標籤 ['link', { rel: 'icon', href: '/logo.jpg' }], // 增長一個自定義的 favicon(網頁標籤的圖標) ], base: '/', // 這是部署到github相關的配置 markdown: { lineNumbers: false // 代碼塊顯示行號 }, themeConfig: { nav:[ // 導航欄配置 {text: '前端基礎', link: '/accumulate/' }, {text: '算法題庫', link: '/algorithm/'}, {text: '微博', link: 'https://baidu.com'} ], sidebar: 'auto', // 側邊欄配置 sidebarDepth: 2, // 側邊欄顯示2級 } };
"scripts": { "dev": "vuepress dev docs", "build": "vuepress build docs" }
npm run dev
完成了基礎搭建後,就能夠在docs目錄下新建 .md
文件寫文章了(.md 是 Markdown 語法文件,你須要知道 Markdown 的一些基本寫法,很簡單,這裏給你們一份 Markdown 語法整理大集合)git
下面給你們安利一些實用的方法。程序員
在 .md 文件中書寫代碼時,可在 ``` 後增長 js、html、json等格式類型,代碼塊便可按照指定類型高亮
代碼:
::: tip 提示
this is a tip ::: ::: warning 注意 this is a tip ::: ::: danger 警告 this is a tip :::
效果:
代碼:
:tada: :100: :bamboo: :gift_heart: :fire:
效果:
這裏有一份 Emoji 大全
VuePress 默認支持 PWA,配置方法以下:
config.js 文件中增長
head: [ // 注入到當前頁面的 HTML <head> 中的標籤 ['link', { rel: 'manifest', href: '/photo.jpg' }], ['link', { rel: 'apple-touch-icon', href: '/photo.jpg' }], ], serviceWorker: true // 是否開啓 PWA
public 文件夾下新建 manifest.json 文件,添加
{
"name": "張三", "short_name": "張三", "start_url": "index.html", "display": "standalone", "background_color": "#2196f3", "description": "張三的我的主頁", "theme_color": "blue", "icons": [ { "src": "./photo.jpg", "sizes": "144x144", "type": "image/png" } ], "related_applications": [ { "platform": "web" }, { "platform": "play", "url": "https://play.google.com/store/apps/details?id=cheeaun.hackerweb" } ] }
最後在 iPhone 的 safrai 瀏覽器中打開本網站,點擊 +添加到主屏幕
就能在桌面看到一個像原生 App 同樣的圖標(感受本身寫了一個 App 有木有 )
說了這麼多都是在本地進行的,如今咱們要把本地的內容推送到某個服務器上,這樣只要有網絡,就能夠隨時隨地看本身的網站了。
通常來講,有兩種方案可供選擇:
最終我選擇了方案2,下面將給你們講解如何使用 Github Pages 服務。
打開 github 網站,登錄本身的 github 帳號(沒有帳號的快去註冊並面壁思過做爲一個優秀的程序員爲啥連一個github帳號都沒有)
接着咱們新建兩個倉庫,
注意!
USERNAME
必須是你 Github 的帳號名稱,不是你的名字拼音,也不是你的非主流網名,不要瞎起,要保證和Github帳號名如出一轍!
例如個人 Github 帳號名稱是 zhangyunchencc
那麼新建倉庫,Repository name 就填寫爲:zhangyunchencc.github.io
這個倉庫建好後,不用克隆到本地,內容更新修改都在下面的倉庫中進行。
這個項目是用來開發博客的,之後只須要改這個項目就夠了。
#!/usr/bin/env sh # 確保腳本拋出遇到的錯誤 set -e # 生成靜態文件 npm run build # 進入生成的文件夾 cd docs/.vuepress/dist # 若是是發佈到自定義域名 # echo 'www.yourwebsite.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> REPO=github上的項目 # git push -f git@github.com:USERNAME/<REPO>.git master:gh-pages cd -
把文件中的 USERNAME 改爲 Github 帳號名,例如個人帳號名是 zhangyunchencc,那麼就能夠改成:
# 若是你想要部署到 https://USERNAME.github.io git push -f git@github.com:zhangyunchencc/zhangyunchencc.github.io.git master
這樣倉庫二和倉庫一就創建了關聯。
簡單說兩者的關係是:倉庫一負責顯示網站內容,咱們不須要改動它;平常開發和新增內容,都在倉庫二中,並經過 npm run deploy 命令,將代碼發佈到倉庫一。
"scripts": { "deploy": "bash deploy.sh" }
npm run deploy
此時打開 Github Settings 中下面的連接: https://zhangyunchencc.github.io/ 便可看到本身的主頁啦~
若是你不知足於 https://zhangyunchencc.github... 這樣的域名,想要一個本身我的的專屬域名,好比 http://www.zhangyunchen.cc/ ,畢竟一些大牛(阮一峯 http://www.ruanyifeng.com/blog/) 都是本身名字的網址哦,很方便很酷呢 😎
下面跟着步驟一步步來就好啦~
我是在新網購買的,下面以新網爲例,萬網是相似的。
購買完成後進入管理後臺,點擊 」解析「 按鈕,添加下面兩條內容:
注意這裏有坑!!!在 萬網 購買域名的同窗請注意,第二條記錄中的 請用 @ 代替,萬網不支持
記錄值裏的 IP 能夠經過 ping 本身的域名獲得:
ping www.username.github.io
在倉庫一 USERNAME.github.io 中找到 Settings > Custom domain 把 www.zhangyunchen.cc 添加進去便可。
以上,
Chen | 2018.10
https://segmentfault.com/a/1190000017207205?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly