Contributing 贡献 ==== 感谢您对**备忘清单**贡献的兴趣👍👍,是像您这样的人使 [`Quick Reference`](https://jaywcjlove.github.io/reference) 成为如此出色的网站 🎉🎉。随时提交问题和增强请求,还提供一个[在线说明排版说明]( https://wangchujiang.com/reference/docs/quickreference.html),所以各种使用技巧,都在这个排版说明中有预览和实现代码。 `docs/{filename}.md` 文件将被处理成备忘清单,让我们创建或编辑一个 `markdown` 文件: ## 前沿问题 ```markdown 备忘清单 标题 === 这是您可以在 Quick Reference 备忘清单上使用的样式参考!【备忘清单介绍】 ``` 只需要 `标题

` 和 `介绍` (标题下面)。脚本会自动识别,通过 GitHub Actions 自动发布 [`Quick Reference`](https://jaywcjlove.github.io/reference) 网站。 ## 目录结构 ```bash . ├── CONTRIBUTING.md # 贡献说明 ├── Dockerfile ├── LICENSE ├── README.md # Home(首页) 内容 ├── dist # 编译后的静态资源目录 ├── docs # Markdown 文档(快速参考备忘清单【速查表】) │   ├── bash.md │   ├── .... │   └── yaml.md ├── package.json └── scripts # MD 转 HTML 的编译脚本 ├── assets # 存放首页 svg 图标文件资源,与 `dosc` 文件名对应 ├── .... └── watch.mjs ``` ## CSS 类注释 [`Quick Reference`](https://jaywcjlove.github.io/reference) 使用 [`@wcj/markdown-to-html`](https://github.com/jaywcjlove/markdown-to-html) 转换 `Markdown`,并使用 [`rehype-attr`](https://github.com/jaywcjlove/rehype-attr) 插件让其支持通过其注释语法添加类和样式。此外,您可以在 Quick Reference 备忘清单上使用样式参考: 最后,参考现有备忘清单的源代码是一个好习惯! ## 首页导航 [`Quick Reference`](https://jaywcjlove.github.io/reference) 的首页存放在仓库的根目录 `README.md`,[`Quick Reference`](https://jaywcjlove.github.io/reference) 是通过这个 `README.md` 自动生成首页导航,下面是导航实例: ```markdown ## Linux 命令 [Cron](./docs/cron.md) [Git](./docs/git.md) ``` 首页导航图标存放在 `scripts/assets` 目录中,如果你的备忘清单定义为 `docs/cron.md`,那么你的图标就定义为 `cron.svg` 存放到 `scripts/assets` 目录中,重新编译首页当行菜单就拥有了图标。 - 图标存放在 [`scripts/assets`](https://github.com/jaywcjlove/reference/blob/main/scripts/assets) 目录中 - 图片名称与清单名称保持一致 `cron.md` -> `cron.svg` (注意大小写) - SVG 图标尺寸 ` ``` 添加 `contributing` 类名,会在卡片下方添加 _`👆待完善需要您的参与`_,添加 `data-info=👆看看还缺点儿什么?`,更换默认提示文本。 ```markdown [Django](./docs/django.md) ``` 添加 `class=tag&data-lang=Python` 类名和参数,会在卡片右上角标记 _`Python`_ ## 本地开发 ```bash $ git clone https://github.com/jaywcjlove/reference.git $ npm i # 安装依赖 $ npm run build # 编译输出 HTML $ npm run start # 监听 md 文件编译输出 HTML ``` 或者你也可以使用 `pnpm` 或者 `yarn` 做为包管理器 ## 快捷部署方法 由于中国国内访问,时常打不开,推荐您部署的镜像网站,大家可以在这里留言推荐您的镜像网站网址,我将放置在首页推荐 ### 方法一,只需要克隆 gh-pages 分支代码到你的静态服务就可以了 ```shell $ git clone https://github.com/jaywcjlove/reference.git -b gh-pages ``` **定时更新** 在 Linux 服务执行创建 `git-down-pages.sh` 脚本,将脚本放置在 `/opt/cron/` 目录下 > 注意:⚠️ 脚本会根据线上 pages 的 commit 和 本地 commit 比较。如果不一致才会同步更新,否则跳过 下面是脚本 `git-down-pages.sh` 的源码 ```bash #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH #author: 南宫乘风 DATA_DIR="/data" REPO_URL="https://gitee.com/jaywcjlove/reference.git" BRANCH="gh-pages" MAX_BACKUPS=3 # 函数:备份旧版本 backup_old_version() { echo "备份旧版本..." mv ../reference ../reference_backup_$(date +%Y%m%d%H%M%S) if [ $? -eq 0 ]; then echo "备份完成。" remove_old_backups else echo "备份时出现错误。" exit 1 fi } # 函数:删除多余备份,保留最近的三个 remove_old_backups() { echo "删除多余备份,保留最近的三个..." ls -1d ../reference_backup_* | head -n -${MAX_BACKUPS} | xargs -r rm -r } # 函数:拉取最新代码 clone_latest_code() { echo "拉取最新代码..." # 进入 /data 目录 cd $DATA_DIR git clone $REPO_URL -b $BRANCH if [ $? -eq 0 ]; then echo "拉取最新代码完成。" else echo "拉取最新代码时出现错误。" exit 1 fi } # 检查是否存在 DATA_DIR 目录,不存在则创建 if [ ! -d "$DATA_DIR" ]; then echo "目录 $DATA_DIR 不存在,创建中..." mkdir -p "$DATA_DIR" if [ $? -eq 0 ]; then echo "目录创建成功。" else echo "目录创建失败。" exit 1 fi fi # 进入 /data 目录 cd $DATA_DIR # 检查是否存在 reference 目录 if [ -d "reference" ]; then # 进入 reference 目录 cd reference # 获取远程和本地的 commit 哈希值 REMOTE_COMMIT=$(git ls-remote $REPO_URL $BRANCH | cut -f1) LOCAL_COMMIT=$(git rev-parse HEAD) # 比较远程和本地的 commit if [ "$REMOTE_COMMIT" == "$LOCAL_COMMIT" ]; then echo "本地 'reference' 目录已经是最新版本,无需拉取。" else echo "本地 'reference' 目录不是最新版本,开始拉取最新代码..." backup_old_version clone_latest_code fi else # 如果目录不存在,直接克隆 clone_latest_code fi echo "----------------------------------------------------------------------------" endDate=`date +"%Y-%m-%d %H:%M:%S"` echo "★[$endDate] Successful" echo "----------------------------------------------------------------------------" ``` **创建定时任务** 注意:请把脚本放在 `/opt/cron/` 目录下 (时间可以根据自己需求设定),下面案例:每十分钟同步线上的 `pages` 的内容 ```shell crontab -e */10 * * * * /opt/cron/git-down-pages.sh >> /opt/cron/git-down.log 2>&1 ``` **添加 NGINX 配置:** ```nginx listen 80; listen 443 ssl http2; server_name xxx.xxx.top; #配置你的域名 index index.php index.html index.htm default.php default.htm default.html; root /data/reference; # 文件存放的位置 ``` ### 方法二,使用 [docker](https://hub.docker.com/r/wcjiang/reference) 快捷部署 web 版 ```shell $ docker pull wcjiang/reference $ docker run --name reference --rm -d -p 9667:3000 wcjiang/reference:latest # Or $ docker run --name reference -itd -p 9667:3000 wcjiang/reference:latest ``` ### 方法三,克隆仓库自己编译,添加导航菜单 ```bash $ git clone https://github.com/jaywcjlove/reference.git $ npm install # 安装依赖 $ npm run build # 编译输出静态页面 $ npm run start # 开发模式,监听实时编译输出静态页面 ``` 文件被输出到 `dist` 目录,将 `dist` 目录静态页面部署到静态服务就可以了 image 提供自定义菜单,在项目的根目录建立 `.env` 文件,添加下面内容 ```ini REF_URL=http://ref.xxx.cn/ REF_LABEL=网站首页 ``` ### 国内镜像 由于中国国内访问,时常打不开,你可以访问下面镜像网站。 - [quickref.cn](https://quickref.cn) - [ecdata.cn](http://ref.ecdata.cn) - [aibk.cn](https://quickref.aibk.cn) - [jgeek.cn](http://reference.jgeek.cn/) - [laoleng.vip](http://bbs.laoleng.vip/reference/) - [liujiapeng.com](https://www.liujiapeng.com/) - [dbyun.net](https://www.dbyun.net/reference/index.html) - [dc6.fun](https://dc6.fun/reference/) - [if010.com](https://quickref.if010.com/) - [pipecraft.net](https://quickref.pipecraft.net/) - [isteed.cc](https://ref.isteed.cc/) - [1han.wiki](https://code.1han.wiki/) - [linzhe.top](https://linzhe.top/) - [xushanxiang.com](https://xushanxiang.com/ref/) - [winnerzr01.github.io](https://winnerzr01.github.io/Quick-Reference/index.html) - [quickref.hestudio.net](https://quickref.hestudio.net) - [surcode.cn](https://ref.surcode.cn) - [cms.im](https://quickref.cms.im/) - [nuomiphp.com](https://reference.tool.nuomiphp.com/) - [eryajf.net](https://ref.eryajf.net/) - [kjchmc.cn](https://ref.kjchmc.cn/) - [likeadmin.cn](https://www.likeadmin.cn/quickref/) - [qiubit.cc](http://ref.qiubit.cc) - [aoh.cc](https://aoh.cc/) - [reference.code05.com](https://reference.code05.com/) - [kyoma.top](https://reference.kyoma.top/) - [quickreference.pages.dev](https://quickreference.pages.dev/) - [code05.com](https://reference.code05.com/) - [xhfun.cn](https://ref.xhfun.cn/) - [ownit.top](https://memo.ownit.top/) 感谢🙏 ## 利用 Github Actions 定时任务来完成自动更新 在仓库添加 `.github/workflows/update-ref.yml` 文件 Github Actions 配置,感谢 @eryajf https://github.com/jaywcjlove/reference/issues/102#issuecomment-1368158419 提供方法 ```yml name: 每8个小时更新一次reference on: schedule: - cron: '21 */8 * * *' # 定时任务 workflow_dispatch: # 手动运行 env: # 设置环境变量 TZ: Asia/Shanghai # 时区(设置时区可使页面中的`最近更新时间`使用时区时间) jobs: build: # 自定义名称 runs-on: ubuntu-latest steps: - name: 🚜 拉取最新代码 uses: actions/checkout@v3 with: ref: 'main' repository: 'jaywcjlove/reference' - name: ♻️ 编译静态文件 run: | echo -e 'REF_URL=https://refs.xxx.net/\nREF_LABEL=网站首页' > .env npm install npm run build - name: 🚁 部署到服务器 uses: wlixcc/SFTP-Deploy-Action@v1.0 with: username: 'root' #ssh user name port: '22' # 远程服务器ssh端口,默认22 server: 'prod.refs.xxx.net' # 远程服务器IP ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} # 认证服务器秘钥对的私钥 local_path: './dist/*' # 对应我们项目打包后的静态文件路径 remote_path: '/data/www/refs.xxx.net' # 服务器上的路径 delete_remote_files: true ``` ## 贡献 请参阅[贡献指南](./CONTRIBUTING.md)了解如何开始。一如既往,感谢我们出色的贡献者! 小弟调调 fwqaaq mofelee Maylon Jefferson Huang LesterChang0987 南宫乘风 砹小翼 Alex LufsX baoer expoli k23223 二丫讲梵 undefined 秋 雨落 Darkiiiiiice Blossom 萌新杰少 zhangym chaos YuRuiH Willxup Yuan Liu Lve Lvee Kim同学 魏 老大哥 小武Alan ryanhex53 partoneplay pangxiaoli Da Da Albert Jack Liu Jason Zhuang Jovins SuperDiscovery XYZ findnr greyhao kjch mancuoj gzttcydxx hua03 hupilan hweining infanx irony jlchen5 joyfully-W jqzhao jussker k983551019 都一样 Xudong Guo gowshwah godot42 Gavin fjqz177 fakevn cool9203 CoderDuan cizai chyok bgbgPang _lmmmmmm Zyj ZinkCas Zheng Nai Bin 行者 花开花落 芦荟柚子茶 ZIDOUZI 夜未央 吕振波 zxx457 zhouhw0306 yms xing133 Hudson Alen tmen swift suyangzuo nexo phygerr onewesong miclon-dev lykjjj lozhu liliangrong777 larry kubernetes for me kdxcxs Mao Wang likeshop技术社区 Lihuagreek Light_Quanta JetSquirrel JavaZero HooinKyoma GONGYE Heyu Fuku-L Fan EEEEE DemigodLiu Dasferco Damao DEEMO101 Choo hanchZ chentong Joe BobH Blanket58 BlacAmDK Aze dousha0w0 花殇 zhucong yikuaibro Zech Yogurt 李李李 While True: learn() Happy-Engineer Wafer Terry Young TRDSCSH Xiwin Sacabambaspis Ryan Zhou RivailleF QDelta Poirot Hercule Pipecraft Perzch PILIHU2022 Noryu NianwenDan Monet Lee Moeyuuko Minghao Yu Mariusz Michalowski 上图贡献者列表,由 [contributors](https://github.com/jaywcjlove/github-action-contributors) 自动生成贡献者图片。 ## License MIT © [Kenny Wong](https://github.com/jaywcjlove)