使用Hexo+Github一步步搭建属于自己的博客

原文地址:

前言

本文将使用Hexo+Github一步步搭建属于自己的博客
不多说,先上图

博客预览图

搭建步骤

  • 注意

    • 本文中所有命令或配置中以#开头的表示注释,仅仅用于说明

      # 注释,仅仅用于说明
      echo "hello" # 注释,仅仅用于说明,#号开始的属于注释,不属于命令
      
  1. 安装Node.js

    这里不对Node.js的安装做讲解,Node.js官网下载安装即可(https://nodejs.org/zh-cn/

    安装配置好Node.js后可以通过以下命令查看node和npm的版本

    node -v # 说明:由于我电脑的node不是新装的,所以是v8.12.0版本
    npm -v # 说明:我这里是6.4.1版本的npm
    
  2. 安装Git

    这里不对Git的安装做讲解,可以参考https://git-scm.com/book/zh/v2/起步-安装-Git

    安装好后,通过以下命令可以查看git的版本

    git --version # 说明:我这里是git version 2.19.1.windows.1
    
  3. 创建Github仓库

    • 打开github并登录(https://github.com/

    • 新建仓库

      • 选中Repositories栏,然后点击右侧的New按钮创建


        image
      • 设置仓库名字

        1. 仓库名必须严格遵守格式:用户名.github.io,不要随意起名,后续会有麻烦,这里vimior是我的用户名)
        2. 记得选中Public和勾选Initialize this repository with a README
        image
    • 查看Github Pages

      • 选中刚刚创建的仓库的Settings栏,找到Github Pages的设置项

      • 此时Github Pages会显示如下,表明当前仓库可以作为Github Pages

      image
  4. 安装Hexo环境

    • 安装Hexo

      npm install hexo -g # 说明:这里-g参数是为了把hexo安装到全局
      hexo -v # 说明:查看hexo是否安装成功,获取其版本信息
      
    • 新建一个工程目录(这里是vimior_blog),然后进入这个目录

    • 初始化Hexo

      hexo init # 说明:此命令会在当前文件夹下生成一个hexo工程
      
      image
    • 生成静态页面

      hexo generate # 可以简写成 hexo g
      
    • 启动本地服务器,启动后可以通过http://localhost:4000来访问

      hexo server # 可以简写成 hexo s
      
    • 新建博文

      通过hexo new <文章名>来新建或者直接在工程目录下的source/_post目录下创建一个md文件即可,然后重新生成静态页面并启动服务器即可

      hexo new "文章名" # 此命令会在工程目录下的source/_post目录下生成一个<文章名>.md的文件
      hexo g && hexo s # 此命令重新生成静态文件并启动服务器,此时即可通过浏览器访问到我们刚创建的博文了,修改该md文件即可修改博文内容
      

      博文格式如下

      ---
      title: 博文的标题
      ---
      博文内容
      
      # 注意:如果需要给博文指定类别,可以在头部使用categories: "xxx类别名",参考如下
      ---
      title: 博文的标题
      categories: "测试类别"
      ---
      
  1. 配置Hexo

    注意:这里我们先统一把需要的包安装好,具体配置会在配置里面用注释说明

    • 安装hexo-theme-next主题(配置使用在后面统一说明)

      # 说明:以下命令会从https://github.com/theme-next/hexo-theme-next下载内容到当前目录下的themes/next里面
      git clone https://github.com/theme-next/hexo-theme-next themes/next
      
    • 安装hexo-helper-live2d(用于生成Live2D看板娘)

      npm install hexo-helper-live2d --save
      # 下面的命令是安装live2d的模型,这里选择live2d-widget-model-haruto
      # 参考https://github.com/xiazeyu/live2d-widget-models选择自己需要的
      # 如果选择别的模型,在配置_config.yml文件里的live2d->model->use的值也要对应修改
      npm install live2d-widget-model-haruto --save
      
    • 安装hexo-symbols-count-time(用于字数统计和计算阅读时间)

      npm install hexo-symbols-count-time --save
      
    • 安装hexo-generator-sitemap(用于生成站点地图)

      npm install hexo-generator-sitemap --save
      
    • 安装hexo-generator-feed(用于生成RSS订阅)

      npm install hexo-generator-feed --save
      
    • 安装hexo-generator-searchdb(用于生成搜索数据库)

      npm install hexo-generator-searchdb --save
      
    • 安装hexo-deployer-git(用于推送到Github)

      npm install hexo-deployer-git --save
      
    • 新建categories页(分类页面)

      hexo new page categories # 会在source目录下生成categories目录
      # 修改source/categories/index.md文件如下
      ---
      title: categories
      date: 2019-06-01 23:34:54
      type: "categories"
      comments: false
      ---
      
    • 新建tags页(标签页面)

      hexo new page tags # 会在source目录下生成tags目录
      # 修改source/categories/index.md文件如下
      ---
      title: 标签
      date: 2019-06-01 14:21:23
      type: "tags"
      comments: false
      ---
      
    • 新建about

      hexo new page about # 会在source目录下生成about目录
      # 修改source/categories/index.md文件如下
      ---
      title: 我
      date: 2019-06-01 23:35:51
      comments: false
      ---
      <h3 style="text-align: center;font-size: 18px;">就算有一天我一无所有,也不缺从头再来的勇气!</h3>
      
    • 修改工程的配置修改_config.yml文件)

      详细配置参考https://hexo.io/zh-cn/docs/configuration

      # 以下是在原有配置项修改的,大家仅需修改对应的项
      
      # 博客站点标题
      title: 落
      # 博客站点子标题
      subtitle: 你若安好,便是晴天!
      # 描述
      description: 代码千万行,注释第一行。</br>编程不规范,同事两行泪。
      # 作者
      author: Vimor
      # 语言
      language: zh-CN
      # 时区
      timezone: Asia/Shanghai
      
      # URL,这里的url值大家修改成自己的Github Page地址
      url: https://vimior.github.io
      
      # 主题配置,这里把默认的landscape注释掉,使用我们安装的next主题
      # theme: landscape
      theme: next # 使用hexo-theme-next主题
      
      # 关联Github Pages,此处的repo值请修改为自己的Github Pages仓库路径
      # 这里是执行hexo deploy命令时才需要用到的配置,不影响本地调试运行的使用
      deploy:
        type: git
        repo: git@github.com:vimior/vimior.github.io.git
        branch: master
      
      ############上面的配置是在原有配置基础上修改的##############
      ##################完美的分割线:#########################
      ################下面的配置是新增的########################
      
      # Live2D:看板娘的配置
      # 详细配置参考:https://github.com/EYHN/hexo-helper-live2d
      # live2d->model->use这项要根据自己之前安装Live2D支持的时候安装那个model来配置
      live2d:
        enable: true
        scriptFrom: local # 默认
        pluginRootPath: live2dw/ # 插件在站点上的根目录(相对路径)
        pluginJsPath: lib/ # 脚本文件相对与插件根目录路径
        pluginModelPath: assets/ # 模型文件相对与插件根目录路径
        # scriptFrom: jsdelivr # jsdelivr CDN
        # scriptFrom: unpkg # unpkg CDN
        # scriptFrom: https://cdn.jsdelivr.net/npm/live2d-widget@3.x/lib/L2Dwidget.min.js # 你的自定义 url
        tagMode: false # 标签模式, 是否仅替换 live2d tag标签而非插入到所有页面中
        debug: false # 调试, 是否在控制台输出日志
        log: false
        model:
            use: live2d-widget-model-haruto # npm-module package name
            # use: hijiki # 博客根目录/live2d_models/ 下的目录名
            # use: ./wives/hijiki # 相对于博客根目录的路径
            # use: https://cdn.jsdelivr.net/npm/live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json # 你的自定义 url
            scale: 1
            hHeadPos: 0.5
            vHeadPos: 0.618
        display:
            superSample: 2
            width: 125
            height: 125
            position: left
            hOffset: 30
            vOffset: 20
        mobile:
            show: true
            scale: 0.05
        react:
            opacityDefault: 1
            opacityOnHover: 0.2
      
      # symbols_count_time配置:用于计算字数,阅读时间
      symbols_count_time:
        symbols: true
        time: true
        total_symbols: true
        total_time: true
        exclude_codeblock: false
      
      # 版权协议的配置
      creative_commons: by-nc-sa
      
      # 订阅的配置
      feed:
        type: atom
        path: atom.xml
        limit: 20
        hub:
        content:
        content_limit: 140
        content_limit_delim: ' '
      
      # 搜索的配置
      search:
        path: search.xml
        field: post
        format: html
        limit: 10000
      
    • 修改__hexo-theme-next主题的配置(修改_themes/next/config.yml文件)

      详细配置参考http://theme-next.iissnan.com/theme-settings.html

      # RSS配置
      rss: /atom.xml
      
      # 页脚配置
      footer:
        since: 2019
        icon:
         name: heart
         animated: true
         color: "#D0104C"
      
      # 菜单栏配置1:把不需要的菜单的菜单注释掉就好
      # 这里的要显示的菜单包括(首页、关于、标签、分类、归档、站点地图、搜索)
      menu:
        home: / || home
        about: /about/ || user
        tags: /tags/ || tags
        categories: /categories/ || th
        archives: /archives/ || archive
        # schedule: /schedule/ || calendar
        sitemap: /sitemap.xml || sitemap
        # commonweal: /404/ || heartbeat
      menu_settings:
        icons: true
        badges: true
      
      # 主题风格:这里选用Gemini
      # scheme: Muse
      #scheme: Mist
      #scheme: Pisces
      scheme: Gemini
      
      # 社交配置:这里把需要显示的配置好,不需要的注释就好
      # 这里仅仅显示Github和E-Mail,记得把地址修改为自己的
      social:
        GitHub: https://github.com/vimior || github
        E-Mail: mailto:vinman.cub@gmail.com || envelope
        #Weibo: https://weibo.com/yourname || weibo
        #Google: https://plus.google.com/yourname || google
        #Twitter: https://twitter.com/yourname || twitter
        #FB Page: https://www.facebook.com/yourname || facebook
        #VK Group: https://vk.com/yourname || vk
        #StackOverflow: https://stackoverflow.com/yourname || stack-overflow
        #YouTube: https://youtube.com/yourname || youtube
        #Instagram: https://instagram.com/yourname || instagram
        #Skype: skype:yourname?call|chat || skype
      social_icons:
        enable: true # 是否显示图标
        icons_only: true # 是否只显示图标
        transition: false
      
      # 用户头像配置
      avatar:
        # In theme directory (source/images): /images/avatar.gif
        # In site directory (source/uploads): /uploads/avatar.gif
        # You can also use other linking images.
        url: /images/avatar.png # 注意:需要把avatar.png放在themes/next/source/images里面
        # If true, the avatar would be dispalyed in circle.
        rounded: true
        # The value of opacity should be choose from 0 to 1 to set the opacity of the avatar.
        opacity: 1
        # If true, the avatar would be rotated with the cursor.
        rotated: false
      
      # 回到顶部的配置
      back2top:
        enable: true
        sidebar: true
        scrollpercent: true
      
      # 博文的元数据配置,即博文标题下面显示的内容(如发表时间、所属分类等等)
      post_meta:
        item_text: true
        created_at: true
        updated_at:
          enable: true
          another_day: false
        categories: true
      
      # 字数统计配置
      symbols_count_time:
        separated_meta: true
        item_text_post: true
        item_text_total: false
        awl: 2
        wpm: 300
      
      # brand的背景颜色配置
      android_chrome_color: "#fff"
      
      # 代码高亮的主题配置
      highlight_theme: night eighties
      
      # 卜算子配置:统计阅读次数等
      busuanzi_count:
        enable: true
        total_visitors: true
        total_visitors_icon: user
        total_views: true
        total_views_icon: eye
        post_views: true
        post_views_icon: eye
      
      # 本地搜索配置
      local_search:
        enable: true
        # If auto, trigger search by changing input.
        # If manual, trigger search by pressing enter key or search button.
        trigger: auto
        # Show top n results per article, show all results by setting to -1
        top_n_per_article: 1
        # Unescape html strings to the readable one.
        unescape: false
      
      # 更多配置请参阅http://theme-next.iissnan.com/theme-settings.html
      # 如评论的配置可以通过配置valine(使用leancloud)
      
  2. 推送到Github Pages

    注意

    1. 推送前先本地运行,通过浏览器访问没问题再行推送

    2. 初次使用git需要设置user name和email

      git config --global user.name "your name"
      git config --global user.email "your email"
      
    3. (如果未曾添加过ssh-agent)需要添加ssh-key到github的ssh-agent

      # 1. 生成ssh密钥
      ssh-keygen -t rsa -C "your email" # 生成路径在%USERPROFILE%/.ssh目录
      
      # 2. 把%USERPROFILE%/.ssh/id_rsa的内容拷贝
      # 3. 粘贴到github
      
      add_ssh_key_1.png
      add_ssh_key_2.png
      add_ssh_key_3.png
  • 生成静态文件

    hexo generate # 可以简写为 hexo d
    
  • 推送到github pages

    hexo deploy # 可以简写为 hexo d
    # hexo deploy -g  # 可以简写hexo d -g,等效于hexo g && hexo d
    

总结

      此时,我们已经搭建好一个属于自己的博客了,如果需要部署到其他仓库,只需要修改deploy配置即可,详情请查阅https://hexo.io/zh-cn/docs/deployment

      Hexo的功能很强大,用 Hexo+Github搭建一个属于自己的博客,不需要我们写代码,只需要通过修改配置即可搭建一个属于自己的酷炫博客。另外,我们平时可以通过在source/_post目录下用Markdown来写自己的笔记、博文,然后重新推送即可在自己的线上博客上看到。

      这是我博客里的第一篇博文,由于本人学识有限,难免有错漏,敬请谅解,欢迎指出!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容