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 zhangym mofelee Maylon Jefferson Huang Steve Hartwell h7ml 南宫乘风 砹小翼 Alex LufsX baoer expoli k23223 二丫讲梵 undefined Darkiiiiiice Kim同学 雨落 Blossom 萌新杰少 richuff chaos YuRuiH Willxup Yuan Liu infanx kjch mancuoj pangxiaoli 佐博 ryanhex53 witt 小武Alan 老大哥 魏 buyfakett 王叨叨 Amos Apin Da Da Jack Liu Jason Zhuang Jovins Kisa-Dong greyhao findnr Zhang XYZ Thanatos SuperDiscovery Small Long hua03 hupilan hweining irony J.Chen joyfully-W jqzhao jussker Evan-k kdxcxs kubernetes for me yujian(larry) xue leauny liliangrong777 gzttcydxx Xudong Guo gowshwah godot42 Gavin fjqz177 fakevn cool9203 Coder Duan cizai chyok bgbgPang _lmmmmmm 都一样 Zheng Nai Bin 行者 芦荟柚子茶 看彩虹的人 焕晨HChen 落叶乌龟 敬培全 小枫 子斗子 夜未央 吹衣轻飏 无聊波波 zxx457 zhouhw0306 yms xing133 Hudson Alen tmen swift-fs suyangzuo nexo phygerr openapphub onewesong miclon-dev lykjjj lozhu Zyj Mao Wang Lve Lvee likeadmin通过管理后台-likeshop全开源商城 Lihuagreek Light_Quanta JetSquirrel Jeremy Jone JavaZero HooinKyoma GONGYE Heyu Foozi Fan EEEEE DemigodLiu Dasferco Damao DEEMO101 Choo hanchZ chentong Joe BobH Blanket58 BlacAmDK Aze dousha0w0 ANDY 花殇 ZinkCas zhucong yikuaibro Zephyr He 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 Mieriki Mariusz Michalowski 上图贡献者列表,由 [contributors](https://github.com/jaywcjlove/github-action-contributors) 自动生成贡献者图片。 ## License MIT © [Kenny Wong](https://github.com/jaywcjlove)