使用阮一峰的 loppo 工具,将 markdown 文档输出问 html 站点页面
阮一峰的原始包文件列表
# | 包名 | 包说明 |
---|---|---|
01 | loppo | 基础包 |
02 | loppo-theme-oceandeep | 样式基础包 |
03 | loppo-theme-wangdoc | 文档内容样式包 |
04 | loppo-theme-wangdoc-frontpage | 站点首页样式包 |
我修改后的包名
# | 包名 | 包说明 |
---|---|---|
01 | emad-loppo | 基础包 |
02 | emad-loppo-theme-oceandeep | 样式基础包 |
03 | emad-loppo-theme-wangdoc | 文档内容样式包 |
04 | emad-loppo-theme-wangdoc-frontpage | 站点首页样式包 |
文档包说明
# | 文档包名 | 作者 |
---|---|---|
01 | html-tutorial | 阮一峰 |
02 | css-tutorial | 阮一峰 |
03 | javascript-tutorial | 阮一峰 |
04 | es6-tutorial | 阮一峰 |
05 | webapi-tutorial | 阮一峰 |
06 | ssh-tutorial | 阮一峰 |
07 | bash-tutorial | 阮一峰 |
08 | php-full-stack-developer | 地上马 |
首页包说明
# | 文档包名 | 作者 |
---|---|---|
01 | frontpage | 阮一峰 |
02 | emad-frontpage | 修改阮一峰的网到首页包 |
新建的文档仓库,应该命名为xxx-tutorial
。其中,xxx
为该仓库的主题,比如javascript-tutorial
。
将这个仓库进行 Git 初始化。
$ git init
然后,新建.gitignore
,写入下面的内容。
.idea/
.vscode/
node_modules/
dist/
.DS_Store
package-lock.json
第一步,新建package.json
。
$ npm init -y
第二步,修改package.json
。
package.json
的license
字段可以改成创意共享许可证(署名-相同方式共享)。
"license": "CC-BY-SA-4.0",
scripts
字段下插入如下脚本。
"scripts": {
"build": "emad-loppo --site \"[xxx] 教程\" --id [xxx] --theme wangdoc",
"build-and-commit": "npm run build && npm run commit",
"commit": "gh-pages --dist dist --dest dist/[xxx] --branch master --repo git@github.com:linjialiang/emad-website.git",
"chapter": "emad-loppo chapter",
"server": "emad-loppo server"
},
"husky": {
"hooks": {
"pre-push": "npm update"
}
},
注意,要把脚本里面的
[xxx]
替换掉,共有三处。
第三步,安装依赖。需要以下四个库
$ npm install --save emad-loppo@latest emad-loppo-theme-wangdoc@latest gh-pages@latest husky@4.3.8
注意,husky 固定为 4.3.8 版本,不再升级了。
为了确保安装的是最新版本,可以打开package.json
,将loppo
和loppo-theme-wangdoc
的版本改成latest
,然后执行一下npm update
。
直接在
package.json
中加入这些数据就可以省略第三步的上面步骤
"dependencies": {
"gh-pages": "latest",
"husky": "^4.3.8",
"emad-loppo": "latest",
"emad-loppo-theme-wangdoc": "latest"
}
$ npm update
第四步,运行npm run chapter
,生成目录文件chapters.yml
。
$ npm run chapter
编辑chapters.yml
文件,使得目录编排正确。
第五步,本地运行npm run build && npm run server
,看看构建是否正确。
npm run build
npm run server
第六步,写入代码仓库
$ git add -A
$ git commit -m "feat: first commit"
在 GitHub 的 wangdoc 团队下新建仓库,然后推送本地仓库。
第一步,新建子目录.github/workflows
。
$ mkdir -p .github/workflows
第三步,检查仓库设置的secrets
里面,有没有WANGDOC_BOT_TOKEN
这一项。如果没有,需要为 wangdoc-bot 生成一个 TOKEN 并添加在secrets
里面。
第三步,新建配置文件wangdoc.yml
。
$ vi .github/workflows/wangdoc.yml
文件内容如下。
name: [XXX] tutorial CI
on:
push:
branches:
- main
jobs:
page-generator:
name: Generating pages
runs-on: ubuntu-18.04
steps:
- name: Checkout
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@main
with:
node-version: '14'
- name: Install dependencies
run: npm install
- name: Build pages
run: npm run build
- name: Deploy to website
uses: JamesIves/github-pages-deploy-action@3.7.1
with:
GIT_CONFIG_NAME: wangdoc-bot
GIT_CONFIG_EMAIL: yifeng.ruan@gmail.com
REPOSITORY_NAME: wangdoc/website
ACCESS_TOKEN: ${{ secrets.WANGDOC_BOT_TOKEN }}
BASE_BRANCH: main
BRANCH: master # The branch the action should deploy to.
FOLDER: dist # The folder the action should deploy.
TARGET_FOLDER: dist/[XXX]
CLEAN: true # Automatically remove deleted files from the deploy branch
COMMIT_MESSAGE: update
注意,将上面的[XXX]
改成当前库。
注意,如果使用 GitHub Actions,则不需要设置 Travis-CI。
第一步,到 Travis CI 的官网,关联该仓库,开启自动构建。
注意,要到设置里面,把 Pull Request 触发自动构建的选项关掉。
第二步,在项目根目录下,新建.travis.yml
,写入以下内容。
language: node_js
node_js:
- "node"
branches:
only:
- master
install:
- npm ci
# keep the npm cache around to speed up installs
cache:
directories:
- "$HOME/.npm"
script: bash ./deploy.sh
env:
global:
- ENCRYPTION_LABEL: [xxxxxx]
- COMMIT_AUTHOR_EMAIL: yifeng.ruan@gmail.com
注意,上面代码中的[xxxxxx]
要等到第四步进行替换。
第三步,项目根目录下,新建deploy.sh
,写入以下内容。
#!/bin/bash
set -e # Exit with nonzero exit code if anything fails
# Get the deploy key by using Travis's stored variables to decrypt deploy_key.enc
ENCRYPTED_KEY_VAR="encrypted_${ENCRYPTION_LABEL}_key"
ENCRYPTED_IV_VAR="encrypted_${ENCRYPTION_LABEL}_iv"
ENCRYPTED_KEY=${!ENCRYPTED_KEY_VAR}
ENCRYPTED_IV=${!ENCRYPTED_IV_VAR}
openssl aes-256-cbc -K $ENCRYPTED_KEY -iv $ENCRYPTED_IV -in wangdoc-deploy-rsa.enc -out wangdoc-deploy-rsa -d
chmod 600 wangdoc-deploy-rsa
eval `ssh-agent -s`
ssh-add wangdoc-deploy-rsa
# Now that we're all set up, we can push.
# git push $SSH_REPO $TARGET_BRANCH
npm run build-and-commit
第四步(待验证,可以跳过这步,直接执行下一个命令),在项目根目录下,添加私钥wangdoc-deploy-rsa
。
$ cp ~/.ssh/wangdoc-deploy-rsa .
然后,使用travis
命令加密wangdoc-deploy-rsa
。如果没有安装 travis ci 的命令行客户端,可以参考官方的安装文档sudo gem install travis
。
$ travis encrypt-file ~/.ssh/wangdoc-deploy-rsa
屏幕上会显示加密编号,将这个编号写入.travis.yml
。可以参考这个范例文件。
第五步,重要!此时一定要删掉私钥wangdoc-deploy-rsa
,只留下wangdoc-deploy-rsa.enc
。
$ rm wangdoc-deploy-rsa
第一步,到 Disqus 新建讨论区,讨论区的 slug 为wangdoc-[id]
。
第二步,设好 Disqus 以后,在loppo.yml
里面设定如下设置。
hasComments: true|false
isTutorial: true|false
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型