• 树莓派搭建 Hexo 博客(一)


    Hexo 一个开源的博客框架,本文记录了一下在树莓派上搭建 Hexo 博客的过程。

    什么是 Hexo?

    Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
    在发布时,Hexo 可以部署在自己的 Web 服务器上面,也可以部署 GitHub 上面,在这里,我们要把她部署到我们的树莓派上!
    Hexo官网:https://hexo.io

    一、安装 node.js 的 arm 环境

    Node.js 官网 已经提供了编译好的镜像供各种架构使用,使用 uname -a 查看 pi 的 CPU 信息,如下:

    Linux raspberrypi 4.1.19+ #858 Tue Mar 15 15:52:03 GMT 2016 armv6l GNU/Linux
    

    可以得知我们手中的 pi 是基于 arm6l 架构的,因此在这里对应下载如下包:

    mkdir ~/node_js
    cd node_js
    sudo wget http://nodejs.org/dist/latest-v5.x/node-v5.11.1-linux-armv6l.tar.gz
    sudo tar zxvf node-v5.11.1-linux-armv6l.tar.gz
    sudo mv node-v5.11.1-linux-armv6l/ node
    sudo mv node /usr/local/
    sudo chown -R pi.pi /usr/local/node
    

    安装好后各个文件夹大小如下:

    pi@raspberrypi:/usr/local/node $ du -h --max-depth=1
    18M     ./lib
    22M     ./bin
    2.9M    ./include
    44K     ./share
    43M     .
    

    设置环境变量:

    sudo nano /etc/profile
    

    加入下面一行,Ctrl+O 保存文件 ,Ctrl+X 退出编辑器 :

    PATH=$PATH:/usr/local/node/bin
    

    使用 source /etc/profile 使环境变量生效,随后测试一下:

    pi@raspberrypi:~$ node -v
    v5.11.1
    pi@raspberrypi:~$ npm -v
    3.8.6
    

    二、安装 Hexo

    只需要使用 npm 即可完成 Hexo 的安装(稍作等待)

    # -g 代表全域安装 是全域安裝, 跟你當前所在路徑無關
    npm install -g hexo-cli  
    

    有两个警告暂时无法解决:

    npm WARN optional Skipping failed optional dependency /hexo-cli/chokidar/fsevents:
    npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.12
    

    安装好后 /usr/local/node/lib/node_modules 目录下多了一个 hexo-cli 文件夹,随后测试一下:

    pi@raspberrypi:~/blog $ hexo -v
    hexo: 3.2.0
    hexo-cli: 1.0.1
    os: Linux 4.1.19+ linux arm
    http_parser: 2.7.0
    node: 5.11.1
    v8: 4.6.85.31
    uv: 1.8.0
    zlib: 1.2.8
    ares: 1.10.1-DEV
    icu: 56.1
    modules: 47
    openssl: 1.0.2h
    

    三、建站

    安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件(下载到 node_modules

    $ mkdir blog
    $ hexo init <folder>
    $ cd <folder>
    $ npm install
    

    执行 hexo init 后提示,警告暂时没有解决:

    npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
    npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.12
    INFO  Start blogging with Hexo!
    

    新建完成后,blog 文件夹的目录如下:

    pi@raspberrypi:~ $ ls ./blog/ -l
    total 36
    -rw-r--r--   1 pi pi  1483 May  8 23:37 _config.yml
    -rw-r--r--   1 pi pi   174 May  9 10:30 db.json
    drwxr-xr-x 286 pi pi 12288 May  8 23:49 node_modules
    -rw-r--r--   1 pi pi   447 May  9 00:07 package.json
    drwxr-xr-x   2 pi pi  4096 May  8 23:37 scaffolds
    drwxr-xr-x   3 pi pi  4096 May  8 23:37 source
    drwxr-xr-x   3 pi pi  4096 May  8 23:37 themes
    

    查看一下文件夹大小:

    pi@raspberrypi:~/blog $ du -h --max-depth=1
    12K     ./source
    1.1M    ./themes
    16K     ./scaffolds
    54M     ./node_modules
    55M     .
    

    各个文件和文件夹作用请查看:https://hexo.io/zh-cn/docs/setup.html

    四、启动服务器,进行测试

    在 blog 目录下,输入:

    hexo server
    

    默认情况下,用浏览器访问网址:http://localhost:4000/
    如果可以看到hexo主页,那么就成功了!

    五、使用 Hexo 直接在树莓派上生成静态页面

    输入下面命令:

    hexo generate
    

    可以在 blog/public 目录下生成静态页面,树莓派下生成还是比较吃力的,仅一篇文章就用了 20+ 秒,后续决定采用:

    • 本地编写 markdown 文件,通过 node.js 和 hexo 生成静态文件,上传到树莓派 nginx 服务器的方式来更新我们的博客!
  • 相关阅读:
    js 的关键字
    如何理解闭包?
    post请求下载文件,获取Content-Disposition文件名
    reactjs踩坑记
    原生js的一些盲点
    js深拷贝
    使用 event.preventDefault() 时报错 Unable to preventDefault inside passive event listener invocation.
    vue项目中 在index.html里引入css不生效的解决方式
    Do not access Object.prototype method‘hasOwnProperty’ from target object no-prototype-builtins
    AJAX详解
  • 原文地址:https://www.cnblogs.com/imapla/p/5532985.html
Copyright © 2020-2023  润新知