zoukankan      html  css  js  c++  java
  • 使用Gitee Pages+hugo免费搭建你的博客

    关于博客写作平台的选择

    写博客的目的很简单,就是记录知识,分享学习。如果花在发布博客的时间大于写博客的时间,那显然这个博客平台是不合格的。

    本文虽然是介绍Gitee Pages的(Github Pages步骤基本也是一样的),但是写完这篇文档后,我觉得Gitee Pages有点折腾,最后还是没有选择用Gitee Pages作为我的博客平台。

    Github Pages或Gitee Pages

    两者都是托管静态网页的,优点很明显:只要在法律范围之内,你可以发布任何内容,使用任何呈现方式,加上炫酷的主题或定制的工具栏,但是这同样意味着你要花很多时间在定制上。

    相比其他博客平台的写好博客一键发布,你还要考虑一些其他东西:图床,提供交流的评论功能,对站点的编译、提交、推送、重新部署(这是Gitee的缺点,Github并没有这个,但是Github的访问速度是真的一言难尽)。

    还有一个缺点是,由于某些未知原因,上面两者是不能被搜索引擎收录的,也就是说,你的文章是不能被搜索引擎搜索出来的,如果你只是用来记录你的学习经历的话,这点并不算缺点,但是如果你有分享自己知识的想法,我并不建议你用这两者来写博客。

    ps:上述的未知原因我在某篇博客上看到是因为当年百度的爬虫疯狂爬github的服务器,被github给ban了,但是这个原因无法解释为什么gitee pages为什么也不能被搜索引擎收录,而且我使用必应搜索发现也搜索不出我的gitee pages,所以应该不是这个原因。

    博客园

    博客园是我见过最奇葩的网站,在一边提供现代化的网页视觉效果的同时,还有大量的站内网页使用改革开放时期风格的网页。博客园最大的好处就是没有广告,浏览非常舒适,但是还存在问题是自带的主题太简陋,有点无法跟上时代的感觉。

    当然你也可以自定义自己的主题,而且自定义主题可以做到非常漂亮,但是这又像上面说的Github Pages一样,这同样意味着你要花很多时间在定制上。

    CSDN

    众所周知,csdn是有最多cv程序员的地方,你永远都不知道你的文章的作者下一秒会成为谁,而且,csdn的广告有yì点点多,还有很多人上传一些标题和内容不同的东西要你去拿积分下载(重点是,这些东西本身不是博主原创的),但是,由于其网站风格还过得去,而且编辑器挺好用的,所以我就先试着用csdn吧

    最后没用csdn的原因是因为csdn上我的昵称被占用了,客服说是因为我之前用这个昵称的账号被注销了无法找回,但是我也没有进行过注销操作,应该是由于使用微信账号登录使得账号合并导致的,话说回来,csdn现在只能用微信注册是真的nt,而且不能自定义自己的用户名,不敢想象这是一个IT社区做出的事。

    开通gitee pages功能

    参照码云Pages开通指南即可完成gitee pages的开通,本文以我的gitee pages地址http://focksor.gitee.io/作为示例。

    安装hugo

    以windows为例,从Hugo Releases下载对应版本的hugo压缩包,解压之后将里面的hugo.exe复制到环境变量PATH中任意目录下,或者在PATH中添加hugo.exe所在的路径后,打开cmd,执行hugo version,如果显示hugo的版本号,则已完成hugo的安装。

    创建新站点

    假设要创建的站点存放位置为./path/website/:

    C:Usersfocks>hugo new site path/website
    Congratulations! Your new Hugo site is created in C:Usersfockspathwebsite.
    
    Just a few more steps and you're ready to go:
    
    1. Download a theme into the same-named folder.
       Choose a theme from https://themes.gohugo.io/ or
       create your own with the "hugo new theme <THEMENAME>" command.
    2. Perhaps you want to add some content. You can add single files
       with "hugo new <SECTIONNAME><FILENAME>.<FORMAT>".
    3. Start the built-in live server via "hugo server".
    
    Visit https://gohugo.io/ for quickstart guide and full documentation.
    

    ​ 创建完成后进入目录可看到目录结构:

    PS C:Usersfocks> cd .pathwebsite
    PS C:Usersfockspathwebsite> ls
    
    
        目录: C:Usersfockspathwebsite
    
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----         2020/3/1     17:55                archetypes
    d-----         2020/3/1     17:55                content
    d-----         2020/3/1     17:55                data
    d-----         2020/3/1     17:55                layouts
    d-----         2020/3/1     17:55                static
    d-----         2020/3/1     17:55                themes
    -a----         2020/3/1     17:55             82 config.toml
    

    其中,config.toml是网站的配置文件,content 目录放 markdown 文章,data 目录放数据,layouts 目录放网站模板文件,static 目录放图片等静态资源,themes 命令放下载的主题。

    创建第一篇文章

    PS C:Usersfockspathwebsite> hugo new post/first.md
    C:Usersfockspathwebsitecontentpostfirst.md created
    

    此命令会在content目录下创建文件夹post并在post内新建first.md,这个位置与发布时的url有关,如放在如上所说路径下的.md文件生成网页的访问地址是http://focksor.gitee.io/post/first.md。如果你已有用markdown编写的文章,直接将.md·文件复制到content目录内即可,但是要注意,使用该命令创建的.md文件默认包含以下内容文章标题文章创建时间是否为草稿,启动,如果draft: true表示该文章为草稿,在编译的时候会自动略过,发布的站点内也不会有这篇文章。你原有的.md文件也要加上以下内容以便hugo识别。

    title: "First"
    date: 2020-03-01T18:06:24+08:00
    draft: true
    

    安装主题

    hugo默认没有安装主题,如果要将你的文章显示,需要先安装主题以确定显示的形式。在没有安装主题之前,hugo是无法正常工作的。

    访问hugo主题网站,选择你喜欢的主题并获取该主题的github地址,假设选择的是Angel's Ladder这款主题,进入themes文件夹并将该主题的仓库克隆到本地。如果该主题没有使用git发布或者是你只有它的压缩包,可以加压到themes文件夹也是一样的效果。

    cd themes
    git clone https://github.com/tanksuzuki/angels-ladder
    

    完成后,themes文件夹内应有如下内容,其中,文件夹名称angels-ladder即为主题名字:

    PS C:Usersfockspathwebsite	hemes> ls
    
    
        目录: C:Usersfockspathwebsite	hemes
    
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----         2020/3/1     18:25                angels-ladder
    

    修改配置文件config.toml,指定主题为angels-ladder,修改完成后的配置文件如下:

    baseURL = "http://example.org/"
    languageCode = "en-us"
    title = "My New Hugo Site"
    theme = "angels-ladder"
    

    同时,你也可以修改config.toml内的title以修改你站点的标题。

    启动hugo服务器以预览站点

    在发布之前,可以先使用hugo启动本地服务器以查看站点的显示是否与你预期相同:

    PS C:Usersfockspathwebsite> hugo server -D
    Building sites …
                       | EN
    -------------------+-----
      Pages            |  9
      Paginator pages  |  0
      Non-page files   |  0
      Static files     |  8
      Processed images |  0
      Aliases          |  1
      Sitemaps         |  1
      Cleaned          |  0
    
    Built in 39 ms
    Watching for changes in C:Usersfockspathwebsite{archetypes,content,data,layouts,static,themes}
    Watching for config changes in C:Usersfockspathwebsiteconfig.toml
    Environment: "development"
    Serving pages from memory
    Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
    Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
    Press Ctrl+C to stop
    

    -D表示草稿也会一起编译显示,如果不想编译草稿文档可直接用hugo server启动本地服务器。按照输出信息,hugo本地服务器已启动在http://localhost:1313/,访问该地址即可看到你的站点渲染结果。

    编译站点

    在编译站点之前,要先将config.toml内的baseURL = "http://example.org/"中的url改成自己gitee pages的地址,这是因为gitee pages提供的是托管静态网页的服务,而静态页面要定位到资源要先确定基准地址。笔者修改完成后的config.toml内容如下,具体内容根据你的情况修改:

    baseURL = "http://focksor.gitee.io/"
    languageCode = "en-us"
    title = "focksor's pages"
    theme = "angels-ladder"
    

    修改完配置文件后,就可以使用hugo -D即可完成站点的编译,或者使用hugo完成编译不带草稿文档的站点。

    PS C:Usersfockspathwebsite> hugo -D
    Building sites …
                       | EN
    -------------------+-----
      Pages            |  9
      Paginator pages  |  0
      Non-page files   |  0
      Static files     |  8
      Processed images |  0
      Aliases          |  1
      Sitemaps         |  1
      Cleaned          |  0
    
    Total in 58 ms
    

    编译完成的站点存放地址为path/website/public,如果你想更改生成的地址,可以使用hugo -d yourDir以指定编译站点的地址。

    部署到gitee

    先将你的gitee pages对应的仓库clone到本地:

    PS C:UsersfocksDownloads> git clone https://gitee.com/focksor/focksor.git
    Cloning into 'focksor'...
    remote: Enumerating objects: 6, done.
    remote: Counting objects: 100% (6/6), done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 6 (delta 0), reused 0 (delta 0)
    Unpacking objects: 100% (6/6), 475 bytes | 13.00 KiB/s, done.
    

    完成后,进入该目录,并将编译完成的站点内的所有文件复制到该目录下,完成后的目录结构如下:

    PS C:UsersfocksDownloads> cd .focksor
    PS C:UsersfocksDownloadsfocksor> tree
    文件夹 PATH 列表
    卷序列号为 8699-61CD
    C:.
    ├─categories
    ├─css
    ├─images
    ├─js
    ├─page
    │  └─1
    ├─post
    │  └─first
    └─tags
    

    添加新加入的文件并提交推送到gitee服务器:

    C:UsersfocksDownloadsfocksor>git add .
    
    C:UsersfocksDownloadsfocksor>git commit -m "gitee pages test"
    [master db9db29] gitee pages test
     20 files changed, 1399 insertions(+), 2 deletions(-)
     delete mode 100644 CNAME
     create mode 100644 categories/index.html
     create mode 100644 categories/index.xml
     create mode 100644 css/custom.css
     create mode 100644 css/highlight_monokai.css
     create mode 100644 css/responsive.css
     create mode 100644 css/sanitize.css
     create mode 100644 css/theme.css
     create mode 100644 css/theme.less
     create mode 100644 images/profile.png
     rewrite index.html (100%)
     create mode 100644 index.xml
     create mode 100644 js/highlight.pack.js
     create mode 100644 page/1/index.html
     create mode 100644 post/first/index.html
     create mode 100644 post/index.html
     create mode 100644 post/index.xml
     create mode 100644 sitemap.xml
     create mode 100644 tags/index.html
     create mode 100644 tags/index.xml
    
    C:UsersfocksDownloadsfocksor>git push
    Enumerating objects: 32, done.
    Counting objects: 100% (32/32), done.
    Delta compression using up to 4 threads
    Compressing objects: 100% (24/24), done.
    Writing objects: 100% (30/30), 34.71 KiB | 4.96 MiB/s, done.
    Total 30 (delta 8), reused 0 (delta 0)
    remote: Powered by GITEE.COM [GNK-3.8]
    To https://gitee.com/focksor/focksor.git
       4fc1e10..db9db29  master -> master
    

    完成后,访问你的gitee pages仓库(如:https://gitee.com/focksor/focksor),此时可以看到远程仓库的文件已经更新了,但是访问gitee pages地址(如:http://focksor.gitee.io/),则会发现gitee pages并没有更新,这是因为gitee pages提交后要手动重新部署。使用以下步骤进行重新部署:服务 -> Gitee Pages -> 更新。具体操作如下图:

    等待gitee后台完成部署后,再次访问你的gitee pages(如:http://focksor.gitee.io/),可发现gitee pages已经更新了。

  • 相关阅读:
    linux-命令
    linux-命令-cd,ls
    linux-命令-概述
    linux-文件
    IOPS和带宽
    随记
    CAP,Base原理
    DateUtil
    JDK SPI
    001-进程 和 线程
  • 原文地址:https://www.cnblogs.com/focksor/p/build_blog_with_gitee_pages.html
Copyright © 2011-2022 走看看