Hello Hexo & Travis !

静态网站生成器

GitHub static-site-generator 主题下 Node.JS 架构 star 前三的项目中,Hexo 生态最完善:

  1. 包括中文在内的多语言官网

  2. 使用文档不但每页开篇有视频讲解,简体中文视频直接托管在 Bilibili

  3. 插件、主题的搜索引擎更是方便,接地气的国人作品也很多

官网一番学习之后,发现起步比较简单:

npm install hexo --global

hexo init my_pages

git init
git checkout --orphan hexo

随后又在官网搜了一个简洁、美观、强大、易用的主题模板 Matery

持续集成、持续部署

最后一顿 Google,入门了近几年开源界最流行的 Travis CI,它的配置文件 .travis.yml 看起来像 Dockerfile,但更自然:

branches:
  only:
    - hexo

language: node_js
node_js:
  - lts/*
cache:
  directories:
    - node_modules

before_install:
  - export TZ=${TIME_ZONE}
install:
  - npm install
script:
  - npm run ${SCRIPT}
deploy:
  provider: pages
  on:
    branch: hexo
  skip_cleanup: true
  local_dir: ${FOLDER}
  fqdn: ${DOMAIN}
  token: ${TOKEN}
  target_branch: ${BRANCH}

上述命令行脚本中的环境变量可在 Travis CI 项目配置页设置,示例如下:

变量名 示例值 释义 备注
TIME_ZONE Asia/Chongqing 系统时区
SCRIPT build 构建脚本名
FOLDER public 网页生成器的输出目录
DOMAIN example.com 自定义域名
TOKEN Git 平台个人访问令牌 https://github.com/settings/tokens/new
BRANCH master GitHub Pages 目标分支

新版个人网站初步落成!~

开源项目 API 文档生成

既然 Travis CI 配置脚本可以用环境变量变得灵活,那基于 JSDoc、ESDoc 之类的开源项目生成 API 文档站也可照搬以上方法了:

  • 再也不用在本地 Git precommit 钩子上执行文档生成脚本了,加快提交速度

  • 把生成的文档放在独立的 gh-pages 分支,让 master 分支只放源码,提交记录更清爽

  • git push --force 也让文档站分支不保留不必要的提交记录,仓库体积最小化

但是,Travis 的 Windows 环境尚处测试阶段,我实测时出现“失败但无报错详情”的 bug,只好让 Puppeteer-IE 改用 Azure Pipeline

trigger:
  - master

pool:
  vmImage: 'vs2017-win2016'

steps:
  - task: NodeTool@0
    inputs:
      versionSpec: '8.x'
    displayName: 'Install Node.js'

  - bash: |
      npm install
      npm run build
      cd ${DOC_FOLDER}
      git init
      git config user.name ${GIT_USER}
      git config user.email ${GIT_EMAIL}
      git add .
      git commit -m "${GIT_MESSAGE}"
      git push --force --quiet https://${GIT_TOKEN}@${GIT_URI}.git master:${GIT_BRANCH}
    displayName: 'npm install & build Document'

再次领略 微软文档的一大特点 —— 要么一笔带过、不知所云,要么又臭又长、不明重点…… 好歹有个项目配置模板,连蒙带猜改一改,竟然能用…… 也算是不枉费我秋天跑一趟上海~

参考资料

  1. https://segmentfault.com/a/1190000013058880

  2. https://ssk7833.github.io/blog/2016/01/21/using-TravisCI-to-deploy-on-GitHub-pages/

  3. https://easyhexo.github.io/Easy-Hexo/

  4. https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=example#bash


转载请注明: TechQuery Hello Hexo & Travis !

上一篇
装机必备软件一键安装 装机必备软件一键安装
缘起接着《编程入门之开发工具一键安装》的思路,电脑维修一键装机也可用 Chocolatey 实现! 回想我 200810 年在川大飞扬做骨干技术员时还没这么好的东西呢,PowerShell 也还没普及,要用 CMD、WSH/JS 绞尽脑汁地
2018-12-31
下一篇
编程入门之开发工具一键安装 编程入门之开发工具一键安装
编程开头难难倒编程小白的第一件事 恐怕是“安装开发工具”,即便是很多 程序猿老司机,也最怕“换电脑、配环境”…… 这时可能有人会喷:“肯定用的 Windows!Mac、Linux 这些类 UNIX 系统各种开发工具都自带,装其它的也很方便~
2018-11-17
目录