<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>

          一看就會的保姆級教程,10分鐘搭建個人博客

          共 20801字,需瀏覽 42分鐘

           ·

          2021-05-25 12:07

          Part1前言

          相信很多人都想擁有一個自己的個人博客,現(xiàn)有的個人博客搭建框架已經(jīng)有很多了,例如 hexo 、vuepress 、jekyll 等等,這里我選用 vuepress 來快速搭建個人博客

          網(wǎng)上教程千千萬,但總歸都是零零散散的,沒人會給你講解得清清楚楚,所以我這里就手把手來講解一下如何從零搭建

          這里先放上 vuepress 的官網(wǎng)鏈接:https://www.vuepress.cn/(opens new window)[1]

          1一、準備工作

          首先我們要把需要的東西都下好,例如:nodegit 、vuepress

          node下載鏈接(opens new window)[2]

          git下載鏈接(opens new window)[3]

          2二、安裝腳手架

          這里本應該安裝 vuepress 的,但是 vuepress 其本身是一個文檔型的頁面,比較簡約,我們肯定都想讓自己的博客變得好看一點,所以這里推薦一個大佬制作好的主題 vuepress-theme-reco ,其頁面效果大致是這樣的:

          隨便找個路徑,在終端下輸入該指令:

          // npm
          npm install @vuepress-reco/theme-cli -g

          等待下載好以后,再輸入輸入該指令進行初始化項目:

          theme-cli init blog

          在初始化時,會讓你填寫一些信息,例如:博客名稱、博客標題、博客描述..

          你只需要全部按回車先跳過即可,后續(xù)這些信息都還可以自己填寫的

          等項目全部初始化好了以后,文件目錄是這個樣子的:

          ├── blog 
               ├── .vuepress      
               │   ├── public   // 存放靜態(tài)資源
               │   │     ├── avatar.png  // 頭像圖片 
               │   │     ├── favicon.ico   // 網(wǎng)站icon圖標
               │   │     ├── hero.png    // 我也不知道有啥用,刪了也可以
               │   │     └── logo.png    // 網(wǎng)站導航欄左上角的logo圖片
               │   │   
               │   └── config.js      // 配置文件,非常重要?。?!  
               ├── blogs  // 存放文章,即.md文件
               │   ├── ...
               │   ├── ...
               │   └── ... 
               ├── docs     // 存放一些后續(xù)需要配置的文件,暫時不需要了解
               ├── .gitignore       // 提交git倉庫時需要忽略的文件
               ├── package.json      // 管理包文件
               └── README.md        // 自動生成的,我們可以先不管

          了解完文件目錄結構以后,我們需要啟動一下項目看一眼,因為剛生成的項目很多依賴包還沒安裝,并且當前的路徑也沒在項目中,所以我們要按下面的指令依次執(zhí)行,進行啟動項目

          // 第一步,進到項目根目錄中
          cd blog

          // 第二步,安裝依賴包(這個過程很慢,需要等待)
          npm install

          // 第三步,等依賴包下完了以后再執(zhí)行該指令啟動項目
          npm run dev

          啟動好以后會自動打開網(wǎng)頁,我們可以看到這樣的畫面了,可以說這個主題的腳手架已經(jīng)幫我們做了很多工作了,頁面也非常的漂亮

          3三、配置信息詳解

          這個頁面的一切都是可以由我們的配置文件來控制的,也就是 .vuepress/config.js ,我們來看看它具體的配置信息具體含義是什么(這里非常重要,因為后續(xù)如果你要改動頁面的什么東西,都要在這里改的,所以必須非常熟悉各個屬性的作用)

          module.exports = {
            "title""",   
            "description""",
            "dest""public",
            "head": [
              [
                "link",
                {
                  "rel""icon",
                  "href""/favicon.ico"
                }
              ],
              [
                "meta",
                {
                  "name""viewport",
                  "content""width=device-width,initial-scale=1,user-scalable=no"
                }
              ]
            ],
            "theme""reco",
            "themeConfig": {
              "nav": [
                {
                  "text""Home",
                  "link""/",
                  "icon""reco-home"
                },
                {
                  "text""TimeLine",
                  "link""/timeline/",
                  "icon""reco-date"
                },
                {
                  "text""Docs",
                  "icon""reco-message",
                  "items": [
                    {
                      "text""vuepress-reco",
                      "link""/docs/theme-reco/"
                    }
                  ]
                },
                {
                  "text""Contact",
                  "icon""reco-message",
                  "items": [
                    {
                      "text""GitHub",
                      "link""https://github.com/recoluan",
                      "icon""reco-github"
                    }
                  ]
                }
              ],
              "sidebar": {
                "/docs/theme-reco/": [
                  "",
                  "theme",
                  "plugin",
                  "api"
                ]
              },
              "type""blog",
              "blogConfig": {
                "category": {
                  "location"2,
                  "text""Category"
                },
                "tag": {
                  "location"3,
                  "text""Tag"
                }
              },
              "friendLink": [
                {
                  "title""午后南雜",
                  "desc""Enjoy when you can, and endure when you must.",
                  "email""[email protected]",
                  "link""https://www.recoluan.com"
                },
                {
                  "title""vuepress-theme-reco",
                  "desc""A simple and beautiful vuepress Blog & Doc theme.",
                  "avatar""https://vuepress-theme-reco.recoluan.com/icon_vuepress_reco.png",
                  "link""https://vuepress-theme-reco.recoluan.com"
                }
              ],
              "logo""/logo.png",
              "search"true,
              "searchMaxSuggestions"10,
              "lastUpdated""Last Updated",
              "author""",
              "authorAvatar""/avatar.png",
              "record""xxxx",
              "startYear""2017"
            },
            "markdown": {
              "lineNumbers"true
            }
          }

          接下來按順序講解一下各個屬性的作用

          (1)title

          該屬性表示的是博客的標題

          我們將 title 值修改為 前端印象 ,看一看有哪些地方有所變動

          • 第一處是加載動畫時的大標題
          • 第二處是導航欄的最左側(cè)
          • 第三處就是瀏覽器標簽頁的title

          (2)description

          該屬性表示該網(wǎng)站的一些描述信息

          我們將 description 的值改為 該網(wǎng)站用于記錄前端知識總結 ,看一看有哪些地方有所變動

          • 第一處是加載動畫的副內(nèi)容
          • 第二處是網(wǎng)站描述節(jié)點,用于SEO的

          (3)dest

          該屬性表示的是項目打包以后文件生成的目錄

          例如我們將該 dest 的值改成 ./dist ,那么當我們執(zhí)行 npm run build 打包文件后,會在當前根目錄下生成一個 dist 文件夾,打包好的項目文件都在該文件夾中

          (4)head

          該屬性表示的是 html 文檔的 head 標簽中需要額外插入的其它標簽

          默認生成的是:

          "head": [  // 在head標簽中生成以下標簽
              [
                "link",    // 生成link標簽
                {
                  "rel""icon",    // rel屬性值為icon
                  "href""/favicon.ico"   // href屬性值為 /favicon.ico
                }
              ],
              [
                "meta",      //生成meta標簽
                { 
                  "name""viewport",   // name屬性值為viewport
                  "content""width=device-width,initial-scale=1,user-scalable=no"  // content屬性值為width=device-width,initial-scale=1,user-scalable=no
                }
              ]
          ]

          當然我們也可以繼續(xù)添加別的標簽,例如:

          "head": [  // 在head標簽中生成以下標簽
              ["link", { "rel""icon""href""/favicon.ico" }],
              ["meta", { "name""viewport""content""width=device-width,initial-scale=1,user-scalable=no" }],
              ["meta", { "name""keywords""content""前端,js,css" }],
              ['meta', { name'author'content'零一' }],
          ]

          (5)theme

          該屬性表示的是當前項目使用的主題

          這里我們是用 vuepress-theme-reco 主題的腳手架生成的,所以它默認就是 reco ,我們可以不用修改,當然后續(xù)你想使用別的主題也可以,可以參考一下 vuepress 的官網(wǎng)

          (6)themeConfig

          該屬性表示的是主題的配置信息

          這里東西有點多,我們慢慢來講

          1. nav

          該屬性表示導航欄的配置信息

          默認生成的 nav 值如下:

          "nav": [
                {   // 第一個導航按鈕
                  "text""Home",   //  按鈕名稱為 Home
                  "link""/",      //  對應的跳轉(zhuǎn)鏈接為  /
                  "icon""reco-home"  // 按鈕的前置圖標為 reco-home
                },
                {   // 第二個導航按鈕
                  "text""TimeLine",     //  按鈕名稱為 TimeLine
                  "link""/timeline/",  //  對應的跳轉(zhuǎn)鏈接為  /timeline/
                  "icon""reco-date"   // 按鈕的前置圖標為 reco-date
                },
                {   // 第三個導航按鈕
                  "text""Docs",    //  按鈕名稱為 Docs
                  "icon""reco-message",  // 按鈕的前置圖標為 reco-message
                  "items": [   // 該按鈕的子菜單
                    {   // 子菜單中的第一個導航按鈕
                      "text""vuepress-reco",
                      "link""/docs/theme-reco/"
                    }
                  ]
                },
                {  // 第四個導航按鈕 
                  "text""Contact",   //  按鈕名稱為 Contact
                  "icon""reco-message",  // 按鈕的前置圖標為 reco-message
                  "items": [  // 該按鈕的子菜單
                    {    // 子菜單中的第一個導航按鈕
                      "text""GitHub",
                      "link""https://github.com/recoluan",
                      "icon""reco-github"
                    }
                  ]
                }
          ]

          詳細的注釋我都已經(jīng)寫在上面了

          2. sidebar

          該屬性表示的是側(cè)邊欄的導航信息

          默認生成的是:

          "sidebar": {
                "/docs/theme-reco/": [
                  "",    // 空字符串對應的是 README.md
                  "theme",  // 對應 theme.md
                  "plugin",  // 對應plugin.md
                  "api"    // 對應api.md
                ]
          },

          該配置信息表示的是當路徑為 /docs/theme-reco/ 時,側(cè)邊欄會自動找路徑 ./docs/theme-reco/ 下的 README.md 、theme.mdplugin.md 、api.md 文件進行識別生成側(cè)邊欄,如圖所示:

          側(cè)邊欄的文字其實是識別了 md 文件中的 title ,例如 theme.md 文件對應的名稱就是 title 的值

          ---
          title: theme
          date2020-05-27
          ---

          This is theme.

          這是一種寫法,但其實還有另一種更為復雜一點的寫法,我們來看一下

          "sidebar": {
           "/docs/theme-reco/": [
                  {
                      title'一些文件',    // 標題信息
                      collapsabletrue,   // 是否可折疊
                      children: [        // 該塊內(nèi)容對應的所有鏈接
                          "",    
                          "theme",  
                          "plugin"
                          "api"    
                      ]
                  }
              ]
          }

          這樣的實現(xiàn)效果其實和剛才是差不多的,區(qū)別的話可以看下圖來對比一下:

          3. type

          該屬性表示的是當前項目的類型

          默認的是 blog ,也就是我們現(xiàn)在看到的樣式,其實還有別的值可以設定,例如 docs ,其對應的就是比較簡約化的文檔樣式了,當然了這些都是腳手架幫我們處理好了的

          4. blogConfig

          該屬性表示的是導航欄的配置信息,其是 reco 主題設置的

          不知你有沒有發(fā)現(xiàn),剛剛設置 nav 導航欄信息的時候,一共有 4 個導航欄按鈕,但實際呢?

          實際情況卻有 6 個,那么多出來的兩個是哪里來的呢?其實就是 blogConfig 中設置的

          "blogConfig": {
                "category": {
                  "location"2,     // 在導航欄中的位置在第二個
                  "text""Category"
                },
                "tag": {
                  "location"3,   // 在導航欄中的位置在第三個
                  "text""Tag"
                }
          },

          這兩個都是內(nèi)置的設定好了的,所以只要按這樣配置好就可以了,不過我感覺是不太需要,大家可以自己抉擇

          5. friendLink

          該屬性是用于設置友鏈的

          具體在網(wǎng)站中的位置如下圖所示:

          配置的話也比較簡單,模仿默認的配置去做就可以了:

          "friendLink": [
                {
                  "title""午后南雜",
                  "desc""Enjoy when you can, and endure when you must.",
                  "email""[email protected]",
                  "link""https://www.recoluan.com"
                },
                {
                  "title""vuepress-theme-reco",
                  "desc""A simple and beautiful vuepress Blog & Doc theme.",
                  "avatar""https://vuepress-theme-reco.recoluan.com/icon_vuepress_reco.png",
                  "link""https://vuepress-theme-reco.recoluan.com"
                }
          ],

          6. logo

          該屬性表示的是導航欄最左側(cè)的 logo 圖片,如下圖所示

          在寫該值時的根路徑是 public ,即 /logo.png 表示的就是 public 下的 logo.png

          7. search

          該屬性表示是否有搜索功能

          8. searchMaxSuggestions

          該屬性官網(wǎng)也沒做過多說明,所以我也不知道有什么用,暫且可以不用管

          9. lastUpdated

          該屬性表示每篇文章底部顯示的 "最后一次更新時間" 的文案

          如下圖所示:

          10. author

          該屬性表示作者的名稱,在每一篇文章的作者署名中都會沿用該名稱

          11. authorAvatar

          該屬性表示作者的頭像,與 logo 一樣的路徑規(guī)則,頭像顯示位置如下圖所示:

          12. record && recordLink && cyberSecurityRecord && cyberSecurityLink

          record: ICP備案號

          recordLink: ICP 備案指向的鏈接

          cyberSecurityRecord: 公安部備案文案

          cyberSecurityLink: 公安部備案指向鏈接

          如果項目不是部署在個人服務器上的話,這四個屬性可以忽略不管

          13. startYear

          該屬性表示博客的開始時間(只需要寫年份就可以了),在網(wǎng)站上的展示如圖所示:

          左側(cè)是我們填寫的時間,右側(cè)是根據(jù)當前時間自動生成的年份

          (7) markdown

          該屬性里存儲著一些對于 markdown 解析的配置

          例如腳手架自動生成的 lineNumbers 表示的就是代碼塊顯示行號

          其實還有其它很多的 markdown 配置,詳細參考 vuepress官方(opens new window)[4]

          4四、開始輸入文章吧

          按照上面進行配置,一個基本的博客就搭建好了,現(xiàn)在就可以開始瘋狂輸入文章了,所有的文章只需要以.md文件格式放在blogs文件夾下即可

          我們創(chuàng)建一篇文章試試吧~

          ---
          title: 我的第一篇文章
          date: 2021-05-07
          categories:
           - 分類1
          tags:
           - 標簽1
           - 標簽2
          ---


          這是我的第一篇文章

          這里有四個屬性可以配置,分別是title、datecategories、tags

          這四個屬性在頁面上的體現(xiàn)如下圖所示:

          其中,date的時間也會在時間軸中呈現(xiàn)出來,即你所有的文章會按date的時間從上到下按時間新->舊的順序進行排序

          另外,我們本文使用的主題框架還為文章提供了一個很不錯的功能:加密,只需要在文章中給keys屬性賦值一個md5加密后的字符串即可

          比如我們將密碼設為zero2one,那么打開在線md5加密 (opens new window)[5]網(wǎng)站,將密碼輸入到框中,就能得到一串密文,該密文就是我們要設置的keys的值


          ---
          title: 我的第一篇文章
          date: 2021-05-07
          categories:
           - 分類1
          tags:
           - 標簽1
           - 標簽2
          keys:
           - 'ababf713be53f3d10366196bf0297c30'
          ---


          這是我的第一篇文章

          來看下效果:

          5五、添加評論模塊

          其實這個主題框架已經(jīng)內(nèi)置了評論插件@vuepress-reco/vuepress-plugin-comments,我們需要做的就是做一些額外的配置

          首先去Valine官網(wǎng) (opens new window)[6]注冊一下Valine賬號,注冊好后進行登錄,然后進入控制臺,點擊左下角創(chuàng)建應用

          應用創(chuàng)建好以后,進入剛剛創(chuàng)建的應用,選擇左下角的設置>應用Key,然后就能看到你的APP IDAPP Key了:

          拿到APP IDAPP Key后,我們來到我們項目中.vuepress/config.js中的themeConfig屬性中,按如下設置即可:

          module.exports = {
            // ...
            themeConfig: {
              // ....
              valineConfig: {     // valine 評論功能配置信息
                appId'在這輸入你的appid',// your appId
                appKey'在這輸入你的appKey'// your appKey
                placeholder'盡情留下你想說的話吧~',           // 評論框占位符
                avatar'wavatar',           // 評論用戶的頭像類型
                highlighttrue,         // 代碼高亮
                recordIPtrue,         // 記錄評論者的IP
              },
            }
            // ...
          }

          這樣我們就能看到我們每篇文章的最底部都有留言功能了

          當然如果我們不想讓某篇文章有留言板,也可以設置isShowComments屬性為false即可

          ---
          title: 我的第一篇文章
          date: 2021-05-07
          categories:
           - 分類1
          tags:
           - 標簽1
           - 標簽2
          keys:
           - 'ababf713be53f3d10366196bf0297c30'
          isShowComments: false
          ---


          這是我的第一篇文章

          此時留言板就不存在了

          6六、總結

          到此為止,基本上一個博客該有的功能就都具備了。其實本文介紹的這個主題腳手架他還提供了一個插件廣場(支持實現(xiàn)各種各樣的功能),目前這個插件廣場中有:打賞插件、回到頂部插件、音樂播放器插件、可愛光標插件、流程圖插件等等

          最后,大家也可以訪問一下我搭建的個人博客[7] ,我正在我的個人博客里打造一套完整的寶典,歡迎關注~

          參考資料

          [1]

          https://www.vuepress.cn/(opens new window): https://www.vuepress.cn/

          [2]

          node下載鏈接(opens new window): http://nodejs.cn/download/

          [3]

          git下載鏈接(opens new window): https://git-scm.com/downloads

          [4]

          vuepress官方(opens new window): https://www.vuepress.cn/config/#markdown

          [5]

          在線md5加密 (opens new window): https://vuepress-theme-reco.recoluan.com/views/1.x/password.html

          [6]

          Valine官網(wǎng) (opens new window): https://console.leancloud.cn/register

          [7]

          我搭建的個人博客: https://lpyexplore.gitee.io/blog/

          瀏覽 66
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  欧美色逼 | 人人草人人草人人 | 丁香色婷婷五月激情综合深爱 | 亚洲 日本 欧美 中文幕 | 我好想看中国一级操逼片片 |