<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手把手教你建 GitHub 技術(shù)博客

          共 8621字,需瀏覽 18分鐘

           ·

          2020-12-22 13:00

          很多朋友私信問我,我的個(gè)人博客是用什么服務(wù)器,其實(shí)我并沒有服務(wù)器,用的 GitHub Pages,沒錯(cuò),無需服務(wù)器,看完這篇文章,你也可以擁有個(gè)人博客。

          修訂歷史

          時(shí)間說明
          2015.07.31初始版本
          2016.08.20新增插件安裝
          2020.11.11新增博客評(píng)論 Gitalk
          2020.12.20薪增同臺(tái)電腦同時(shí)使用多個(gè) GitHub

          適合人群

          • 喜歡寫 Blog 的人
          • 有一定的編程基礎(chǔ)
          • 愛折騰的人
          • 熟練使用版本控制 Git
          • 了解使用 GitHub
          • 熟悉基本的 MarkDown 語法

          環(huán)境準(zhǔn)備

          安裝 Git

          下載 msysgit 并執(zhí)行即可完成安裝。

          安裝 Node.js

          在 Windows 環(huán)境下安裝 Node.js 非常簡(jiǎn)單,僅須下載安裝文件并執(zhí)行即可完成安裝。

          安裝 hexo

          利用 npm 命令即可安裝。(在任意位置點(diǎn)擊鼠標(biāo)右鍵,選擇 Git bash)

          npm?install?-g?hexo

          問題:

          • npm ERR! registry error parsing json 錯(cuò)誤

          可能需要設(shè)置 npm 代理,執(zhí)行命令

          npm?config?set?registry?http://registry.cnpmjs.org
          • hexo:command not found 刪除剛剛安裝的 npm 目錄,重新執(zhí)行命令:
          npm?install?-g?hexo

          來安裝 hexo。

          創(chuàng)建 hexo 文件夾

          安裝完成后,在你喜愛的文件夾下(如 H:\hexo),執(zhí)行以下指令(在 H:\hexo 內(nèi)點(diǎn)擊鼠標(biāo)右鍵,選擇 Git bash),Hexo 即會(huì)自動(dòng)在目標(biāo)文件夾建立網(wǎng)站所需要的所有文件。

          hexo?init

          安裝依賴包

          npm?install

          本地查看

          現(xiàn)在我們已經(jīng)搭建起本地的 hexo 博客了,執(zhí)行以下命令(在 H:\hexo),然后到瀏覽器輸入 localhost:4000 看看。

          hexo?generate
          hexo?server

          好了,至此,本地博客已經(jīng)搭建起來了,只是本地哦,別人看不到的。下面,我們要部署到 GitHub。

          問題:

          • 執(zhí)行 hexo server 提示找不到該指令 解決辦法:在 Hexo 3.0 后 server 被單獨(dú)出來了,需要安裝 server,安裝的命令如下:
          npm?install?hexo?-server?--save

          安裝此 server 后再試,問題解決

          GitHub 創(chuàng)建博客

          注冊(cè)賬號(hào)

          地址:https://github.com/
          輸入賬號(hào)、郵箱、密碼,然后點(diǎn)擊注冊(cè)按鈕。

          設(shè)置用戶名/郵箱

          git?config?--global??user.name?"你的GitHub名字"
          git?config?--global??user.email?"你注冊(cè)GitHub郵箱"

          查看配置:

          git?config?--list

          創(chuàng)建頁(yè)面?zhèn)}庫(kù)

          這個(gè)倉(cāng)庫(kù)的名字需要和你的賬號(hào)對(duì)應(yīng),格式: yourname.github.io,輸入基本信息,然后點(diǎn)擊創(chuàng)建倉(cāng)庫(kù)。

          注意:

          命名規(guī)則:你的 GitHub 賬號(hào).github.io,我這里被坑了,之前是 jekell 寫的,現(xiàn)在換成 hexo,所以我是另建創(chuàng)庫(kù)了。

          查看 SSH

          SSH 公鑰默認(rèn)儲(chǔ)存在賬戶的主目錄下的 ~/.ssh 目錄。

          進(jìn)入 .ssh 目錄下,命令行:

          ?ls

          查看,如果返回 something 和 something.pub,說明已經(jīng)有 SSH 公鑰。

          生成 SSH 密鑰

          沒有的話,生成,還是在 .ssh 目錄下,命令行:

          ssh-keygen?-t?rsa?-C?"你的郵箱地址"

          按 3 個(gè)回車,密碼為空。

          在 C:\Users\Administrator.ssh 下,得到兩個(gè)文件 id_rsa 和 id_rsa.pub。

          在 GitHub 上添加 SSH 密鑰

          打開 id_rsa.pub,復(fù)制全文到 https://github.com/settings/ssh ,Add SSH key,粘貼進(jìn)去。

          hexo 使用

          目錄結(jié)構(gòu)

          ├──?.deploy???????#需要部署的文件
          ├──?node_modules??#Hexo插件
          ├──?public????????#生成的靜態(tài)網(wǎng)頁(yè)文件
          ├──?scaffolds?????#模板
          ├──?source????????#博客正文和其他源文件,404、favicon、CNAME?都應(yīng)該放在這里
          |???├──?_drafts???#草稿
          |???└──?_posts????#文章
          ├──?themes????????#主題
          ├──?_config.yml???#全局配置文件
          └──?package.json

          全局配置 _config.yml

          #?Hexo?Configuration
          #?Docs:?http://hexo.io/docs/configuration.html
          #?Source:?https://github.com/hexojs/hexo/
          #?Site?#站點(diǎn)信息
          title:??#標(biāo)題
          subtitle:??#副標(biāo)題
          description:??#站點(diǎn)描述,給搜索引擎看的
          author:??#作者
          email:??#電子郵箱
          language:?zh-CN?#語言
          #?URL?#鏈接格式
          url:??#網(wǎng)址
          root:?/?#根目錄
          permalink:?:year/:month/:day/:title/?#文章的鏈接格式
          tag_dir:?tags?#標(biāo)簽?zāi)夸?/span>
          archive_dir:?archives?#存檔目錄
          category_dir:?categories?#分類目錄
          code_dir:?downloads/code
          permalink_defaults:
          #?Directory?#目錄
          source_dir:?source?#源文件目錄
          public_dir:?public?#生成的網(wǎng)頁(yè)文件目錄
          #?Writing?#寫作
          new_post_name:?:title.md?#新文章標(biāo)題
          default_layout:?post?#默認(rèn)的模板,包括?post、page、photo、draft(文章、頁(yè)面、照片、草稿)
          titlecase:?false?#標(biāo)題轉(zhuǎn)換成大寫
          external_link:?true?#在新選項(xiàng)卡中打開連接
          filename_case:?0
          render_drafts:?false
          post_asset_folder:?false
          relative_link:?false
          highlight:?#語法高亮
          ??enable:?true?#是否啟用
          ??line_number:?true?#顯示行號(hào)
          ??tab_replace:
          #?Category?&?Tag?#分類和標(biāo)簽
          default_category:?uncategorized?#默認(rèn)分類
          category_map:
          tag_map:
          #?Archives
          2:?開啟分頁(yè)
          1:?禁用分頁(yè)
          0:?全部禁用
          archive:?2
          category:?2
          tag:?2
          #?Server?#本地服務(wù)器
          port:?4000?#端口號(hào)
          server_ip:?localhost?#IP?地址
          logger:?false
          logger_format:?dev
          #?Date?/?Time?format?#日期時(shí)間格式
          date_format:?YYYY-MM-DD?#參考http://momentjs.com/docs/#/displaying/format/
          time_format:?H:mm:ss
          #?Pagination?#分頁(yè)
          per_page:?10?#每頁(yè)文章數(shù),設(shè)置成?0?禁用分頁(yè)
          pagination_dir:?page
          #?Disqus?#Disqus評(píng)論,替換為多說
          disqus_shortname:
          #?Extensions?#拓展插件
          theme:?landscape-plus?#主題
          exclude_generator:
          plugins:?#插件,例如生成?RSS?和站點(diǎn)地圖的
          -?hexo-generator-feed
          -?hexo-generator-sitemap
          #?Deployment?#部署,將?lmintlcx?改成用戶名
          deploy:
          ??type:?git
          ??repo:?剛剛GitHub創(chuàng)庫(kù)地址.git
          ??branch:?master

          注意

          • 配置文件的冒號(hào)“:”后面有一個(gè)空格
          • repo: 剛剛 GitHub 創(chuàng)庫(kù)地址.git

          hexo 命令行使用

          常用命令:

          hexo?help?#查看幫助
          hexo?init?#初始化一個(gè)目錄
          hexo?new?"postName"?#新建文章
          hexo?new?page?"pageName"?#新建頁(yè)面
          hexo?generate?#生成網(wǎng)頁(yè),可以在?public?目錄查看整個(gè)網(wǎng)站的文件
          hexo?server?#本地預(yù)覽,'Ctrl+C'關(guān)閉
          hexo?deploy?#部署.deploy目錄
          hexo?clean?#清除緩存,**強(qiáng)烈建議每次執(zhí)行命令前先清理緩存,每次部署前先刪除?.deploy?文件夾**

          簡(jiǎn)寫:

          hexo?n?==?hexo?new
          hexo?g?==?hexo?generate
          hexo?s?==?hexo?server
          hexo?d?==?hexo?deploy

          編輯文章

          新建文章

          hexo?new?"標(biāo)題"

          在 _posts 目錄下會(huì)生成文件標(biāo)題.md:

          title:?Hello?World
          date:?2015-07-30?07:56:29?#發(fā)表日期,一般不改動(dòng)
          categories:?hexo?#文章文類
          tags:?[hexo,github]?#文章標(biāo)簽,多于一項(xiàng)時(shí)用這種格式
          ---
          正文,使用?Markdown?語法書寫

          編輯完后保存,hexo server 預(yù)覽

          hexo 部署

          執(zhí)行下列指令即可完成部署。

          hexo?generate
          hexo?deploy

          hexo deploy 問題:Deployer not found: git 執(zhí)行

          npm?install?hexo-deployer-git?--save

          再重新 hexo deploy ,以下提示說明部署成功:

          [info]?Deploy?done:?git

          點(diǎn)擊 GitHub 上項(xiàng)目的 Settings,GitHub Pages,提示 Your site is published at http://wuxiaolong.me (這是我買的域名)。

          圖床

          注意:七?,F(xiàn)在使用自己的域名,不然用不了,不再推薦使用,2018/10/28。

          1、墻裂推薦七牛云儲(chǔ)存,注冊(cè)地址。

          2、七牛云儲(chǔ)存提供 10G 的免費(fèi)空間,以及每月 10G 的流量,存放個(gè)人博客圖片夠了。

          3、七牛云儲(chǔ)存還有各種圖形處理功能、縮略圖、視頻存放速度也給力。

          具體使用見 使用七牛作為 github 博客的圖床。

          圖片目前都是放本地了,可能會(huì)導(dǎo)致博客訪問速度變慢,這也是無奈之舉。

          域名

          將獨(dú)立域名與 GitHub Pages 的空間綁定

          方法一:在站點(diǎn) source 目錄下面,新建一個(gè)名為 CNAME 的文本文件,里面寫入你要綁定的域名,比如 wuxiaolong.me。

          方法二:在 Repository 的根目錄下面,新建一個(gè)名為 CNAME 的文本文件,里面寫入你要綁定的域名,比如 wuxiaolong.me。

          DNS 設(shè)置

          用 DNSpod,快,免費(fèi),穩(wěn)定。注冊(cè) DNSpod,添加域名,如下圖設(shè)置。其中 A 的兩條記錄指向的 ip 地址是 GitHub Pages 的提供的 ip 如何知道你的 GitHub 上項(xiàng)目的 ip,如下:

          去 Godaddy 修改 DNS 地址

          更改 Godaddy 的 Nameservers 為 DNSpod 的 NameServers。

          插件

          2016.08.20 更新,安裝以下插件,據(jù)說博客訪問速度更快。

          安裝插件

          安裝插件:

          npm?install?插件名?–save

          卸載插件:

          npm?uninstall?插件名

          更新插件和博客框架:

          npm?update

          執(zhí)行以下命令安裝 RSS 插件

          npm?install?hexo-generator-feed?--save

          生成站點(diǎn)地圖

          npm?install?hexo-generator-sitemap?--save

          生成百度站點(diǎn)地圖

          npm?install?hexo-generator-baidu-sitemap?--save

          SEO 優(yōu)化

          npm?install?hexo-generator-seo-friendly-sitemap?--save

          HTML 壓縮

          npm?install?hexo-html-minifier?--save

          CSS 壓縮

          npm?install?hexo-clean-css?--save

          JS 壓縮

          npm?install?hexo-uglify?--save

          imagages 壓縮

          npm?install?hexo-imagemin?--save

          插件開啟配置

          根目錄下的 _config.yml,添加以下代碼:

          #?RSS
          feed:
          type:?atom
          path:?atom.xml
          limit:?20

          #?sitemap
          #?提交給谷歌搜素引擎,SEO優(yōu)化開啟配置是一樣的
          sitemap:
          ????path:?sitemap.xml
          #?提交百度搜索引擎
          baidusitemap:
          ????path:?baidusitemap.xml

          #?HTML壓縮
          html_minifier:
          ??exclude:
          #?css壓縮
          clean_css:
          ??exclude:
          ??-?'*.min.css'
          #?js壓縮
          uglify:
          ??mangle:?true
          ??output:
          ??compress:
          ??exclude:
          ??-?'*.min.js'
          #?image壓縮
          imagemin:
          ??enable?????:?true
          ??interlaced?:?false
          ??multipass??:?false
          ??optimizationLevel:?2
          ??pngquant???:?false
          ??progressive:?false

          package.json 可以看安裝了哪些插件。

          Gitalk

          2020.11.11 更新,個(gè)人博客評(píng)論使用 Gitalk 是目前最穩(wěn)妥的方案。

          個(gè)人博客評(píng)論一言難盡,自從多說跪了,嘗試過暢言、友言,最后選定了網(wǎng)易云跟帖,沒想到網(wǎng)易云跟帖不久也跪了,Disqus 基本沒用,就這樣,我的博客一直沒評(píng)論,現(xiàn)在有了 Gitalk,評(píng)論以 issue 形式存在 GitHub,這個(gè)方案基本萬無一失,除非 GitHub 也……

          hexo 使用最新的 Next 主題已經(jīng)集成了 Gitalk,只要配置下 Gitalk 就能擁有博客評(píng)論功能了。

          創(chuàng)建 Github 倉(cāng)庫(kù)

          需要在自己的 Github 賬號(hào)下創(chuàng)建一個(gè)倉(cāng)庫(kù)BlogComment來存放評(píng)論,創(chuàng)建的倉(cāng)庫(kù)只要 public 就行。

          創(chuàng)建 Github Application

          需要?jiǎng)?chuàng)建一個(gè) Github Application 用來授權(quán)登錄,如果沒有 點(diǎn)擊這里申請(qǐng)(https://github.com/settings/applications/new),Authorization callback URL 填寫你主頁(yè)地址,比如我的就是 http://wuxiaolong.me/,其他都隨意填。

          配置 Gitalk

          themes/next/_config.yml 文件中添加 Gitalk 的配置。

          gitalk:
          ??enable:?true
          ??github_id:??WuXiaolong?#?Github?repo?owner
          ??repo:?BlogComment?#?存放評(píng)論倉(cāng)庫(kù)名
          ??client_id:?584799020****af79cd6?#?Github?Application?Client?ID
          ??client_secret:?f0e2e0137dc8f49****78e0f8627bdd815abfc40?#?Github?Application?Client?Secret
          ??admin_user:?cainiaofanshen?#?GitHub?repo?owner?and?collaborators,?only?these?guys?can?initialize?github?issues
          ??distraction_free_mode:?true?#?Facebook-like?distraction?free?mode

          最后執(zhí)行 hexo clean && hexo g && hexo d 重新發(fā)布博客即可。

          注意

          第一次使用 Gitalk 需要初始化,可以每篇博客都點(diǎn)點(diǎn),會(huì)自動(dòng)創(chuàng)建 issue 存放評(píng)論。

          同臺(tái)電腦同時(shí)使用多個(gè) GitHub

          2020.12.20 更新,當(dāng)有兩個(gè) GitHub 賬戶,發(fā)現(xiàn)hexo d提交出現(xiàn)了點(diǎn)問題。

          比如有兩個(gè) GitHub 賬戶 Name1 和 Name2。

          生成 SSH 密鑰

          ssh-keygen?-t?rsa?-C?"[email protected]"?-f?~/.ssh/Name2

          -f 后面的參數(shù)是自定義的 SSH Key 的存放路徑,將來生成的公秘鑰的名字分別是 Name2.pub 和 Name2

          新建 config 文件

          在 ~/.ssh 目錄下新建一個(gè) config 文件

          touch?config

          添加內(nèi)容

          #賬號(hào)1配置
          Host?Name1
          HostName?github.com
          User?git
          IdentityFile?~/.ssh/id_rsa

          #賬號(hào)2配置
          Host?Name2
          HostName?github.com
          User?git
          IdentityFile?~/.ssh/Name2

          測(cè)試指令

          ssh?-T?git@Name2
          Hi?Name2!?You've?successfully?authenticated,?but?GitHub?does?not?provide?shell?access.

          取消全局用戶名/郵箱配置

          如果已經(jīng)設(shè)置了全局的話,取消全局用戶名和郵箱配置:

          git?config?--global?--unset?user.name
          git?config?--global?--unset?user.email

          單獨(dú)設(shè)置用戶名/郵箱

          分別進(jìn)入你的兩個(gè) Hexo 博客.git目錄下執(zhí)行以下命令單獨(dú)設(shè)置用戶名/郵箱,.git目錄是隱藏的,位于:\Hexo.deploy_git\下:

          git?config?user.name?"這里是用戶名"
          git?config?user.email?"這里是你的郵箱"

          修改 hexo 文件 git 地址

          Hexo 目錄下的_config.yml 文件,找到 deploy 關(guān)鍵字,配置,拿一個(gè) GitHub SSH 鏈接[email protected]:cainiaofanshen/FineBooks.git舉例,github.com換成Name2即可:

          deploy:
          ??type:?git
          ??repository:?git@Name2:cainiaofanshen/cainiaofanshen.github.io.git
          ??#repository:?https://gitee.com/WuXiaolongBlog/WuXiaolongBlog.git
          ??branch:?master

          這樣就能執(zhí)行hexo g -d就能成功將新的博客部署到 Github 上了。

          注意

          GitHub 其他項(xiàng)目這里 git 地址同 hexo 文件 git 配置,可以cd .git進(jìn)入項(xiàng)目的 Git 目錄,修改 config,vim config

          [core]
          ????????repositoryformatversion?=?0
          ????????filemode?=?true
          ????????bare?=?false
          ????????logallrefupdates?=?true
          ????????ignorecase?=?true
          ????????precomposeunicode?=?true
          [remote?"origin"]
          ????????url?=?git@Name2:cainiaofanshen/FineBooks.git
          ????????fetch?=?+refs/heads/*:refs/remotes/origin/*
          [branch?"main"]
          ????????remote?=?origin
          ????????merge?=?refs/heads/main

          這里 url 同樣要修改,有點(diǎn)麻煩哦。

          總結(jié)

          之前用的 jekell 寫的,手把手教你建 github 技術(shù)博客 by jekyll,也是折騰了幾天才做成自己滿意的,昨天決定換成 hexo,也是花了一天半時(shí)間,為了追求更好,必須折騰!




          END



          瀏覽 50
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  啊啊啊男女拍拍视频 | 黄色干逼视频 | 免费无码视频 | 又滑黄又爽的软件免费版 | 日韩免费视频 |