From cd26953e89eca9d3a1b1ef041dc3cf59cb630d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=81=AF=E7=81=AB=E9=98=91=E7=8F=8A?= <47273274+clover1420@users.noreply.github.com> Date: Mon, 8 Jan 2024 10:38:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Twikoo=20(#732)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/twikoo/1.6.27/.env.sample | 3 + apps/twikoo/1.6.27/data.yml | 17 +++ apps/twikoo/1.6.27/docker-compose.yml | 21 ++++ apps/twikoo/README.md | 137 +++++++++++++++++++++++++ apps/twikoo/arm32v7/.env.sample | 3 + apps/twikoo/arm32v7/data.yml | 17 +++ apps/twikoo/arm32v7/docker-compose.yml | 21 ++++ apps/twikoo/data.yml | 20 ++++ apps/twikoo/logo.png | Bin 0 -> 3268 bytes 9 files changed, 239 insertions(+) create mode 100644 apps/twikoo/1.6.27/.env.sample create mode 100644 apps/twikoo/1.6.27/data.yml create mode 100644 apps/twikoo/1.6.27/docker-compose.yml create mode 100644 apps/twikoo/README.md create mode 100644 apps/twikoo/arm32v7/.env.sample create mode 100644 apps/twikoo/arm32v7/data.yml create mode 100644 apps/twikoo/arm32v7/docker-compose.yml create mode 100644 apps/twikoo/data.yml create mode 100644 apps/twikoo/logo.png diff --git a/apps/twikoo/1.6.27/.env.sample b/apps/twikoo/1.6.27/.env.sample new file mode 100644 index 00000000..983eeae1 --- /dev/null +++ b/apps/twikoo/1.6.27/.env.sample @@ -0,0 +1,3 @@ +CONTAINER_NAME="twikoo" +PANEL_APP_PORT_HTTP="40063" +DATA_PATH="./data" diff --git a/apps/twikoo/1.6.27/data.yml b/apps/twikoo/1.6.27/data.yml new file mode 100644 index 00000000..40a84f1c --- /dev/null +++ b/apps/twikoo/1.6.27/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: 40063 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text diff --git a/apps/twikoo/1.6.27/docker-compose.yml b/apps/twikoo/1.6.27/docker-compose.yml new file mode 100644 index 00000000..85e92486 --- /dev/null +++ b/apps/twikoo/1.6.27/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3' +services: + twikoo: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:8080" + volumes: + - "${DATA_PATH}:/app/data" + environment: + - "TWIKOO_THROTTLE=1000" + - "TWIKOO_PORT=8080" + image: imaegoo/twikoo:1.6.27 + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/twikoo/README.md b/apps/twikoo/README.md new file mode 100644 index 00000000..edb4f2e6 --- /dev/null +++ b/apps/twikoo/README.md @@ -0,0 +1,137 @@ +Twikoo + +---- + +[![](https://img.shields.io/npm/v/twikoo)](https://www.npmjs.com/package/twikoo) +[![](https://img.shields.io/bundlephobia/minzip/twikoo)](https://bundlephobia.com/result?p=twikoo) +[![](https://img.shields.io/npm/dt/twikoo)](https://www.npmjs.com/package/twikoo) +[![](https://data.jsdelivr.com/v1/package/npm/twikoo/badge)](https://www.jsdelivr.com/package/npm/twikoo) +[![](https://img.shields.io/npm/l/twikoo)](./LICENSE) + +一个**简洁**、**安全**、**免费**的静态网站评论系统。
+A **simple**, **safe**, **free** comment system. +**简体中文** + +## 特色 | Features + +
+点击展开 + +### 简单 + +* 免费搭建(使用云开发 / Vercel / 私有部署评论后台) +* 简单部署(支持云开发 / Vercel 一键部署) + +### 易用 + +* 支持回复、点赞 +* 无需额外适配,支持搭配浅色主题与深色主题使用 +* 支持 API 调用,批量获取文章评论数、最新评论 +* 访客在昵称栏输入 QQ 号,会自动补全 QQ 昵称和 QQ 邮箱 +* 访客填写数字 QQ 邮箱,会使用 QQ 头像作为评论头像 +* 支持评论框粘贴图片(可禁用) +* 支持插入图片(可禁用) +* 支持去不图床、云开发图床 +* 支持插入表情(可禁用) +* 支持 Ctrl + Enter 快捷回复 +* 评论框内容实时保存草稿,刷新不会丢失 +* [支持 Katex 公式](https://twikoo.js.org/faq.html#%E5%A6%82%E4%BD%95%E5%90%AF%E7%94%A8-katex-%E6%94%AF%E6%8C%81) +* 支持按语言的代码高亮 + +### 安全 + +* 隐私信息安全(通过云函数控制敏感字段(邮箱、IP、环境配置等)不会泄露) +* 支持 Akismet 垃圾评论检测(需自行注册 [akismet.com](https://akismet.com/)) +* 支持腾讯云内容安全垃圾评论检测(需自行注册 [腾讯云内容安全](https://console.cloud.tencent.com/cms/text/overview)) +* 支持人工审核模式 +* 防 XSS 注入 +* 支持限制每个 IP 每 10 分钟最多发表多少条评论 + +### 即时 + +* 支持邮件提醒(访客和博主) +* 支持微信提醒(仅针对博主,基于 [Server酱](https://sc.ftqq.com/3.version),需自行注册) +* 支持 QQ 提醒(仅针对博主,基于 [Qmsg酱](https://qmsg.zendee.cn/),需自行注册) + +### 个性 + +* 支持自定义评论框背景图片 +* 支持自定义“博主”标识文字 +* 支持自定义通知邮件模板 +* 支持自定义评论框提示信息(placeholder) +* 支持自定义表情列表(兼容 [OwO 的数据格式](https://cdn.jsdelivr.net/npm/owo@1.0.2/demo/OwO.json)) +* 支持自定义【昵称】【邮箱】【网址】必填 / 选填 +* 支持自定义代码高亮主题 + +### 便捷管理 + +* 内嵌式管理面板,通过密码登录,可方便地查看评论、隐藏评论、删除评论、修改配置 +* 支持隐藏管理入口,通过输入暗号显示 +* 支持从 Valine、Artalk、Disqus 导入评论 + +### 缺点 + +* 不支持 IE + +
+ +## 预览 | Preview + +
+点击展开 + +### 评论 + +![评论](https://github.com/imaegoo/twikoo/raw/main/docs/static/readme-1.png) + +### 评论管理 + +![评论管理](https://github.com/imaegoo/twikoo/raw/main/docs/static/readme-2.png) + +### 推送通知 + +![推送通知](https://github.com/imaegoo/twikoo/raw/main/docs/static/readme-3.jpg) + +
+ +## 快速上手 | Quick Start + +有关详细教程,请查看[快速上手](https://twikoo.js.org/quick-start.html) + +
+如果你想获取更新动态、建言献策、参与测试,欢迎加入讨论群:1080829142 +1080829142 +
+ + + +## 特别感谢 | Special Thanks + +图标设计:[Maemo Lee](https://www.maemo.cc) + + + +## 开发 | Development + +如果您想在本地二次开发,可以参考以下命令: + +``` sh +yarn dev # 开发 (http://localhost:9820/demo.html) +yarn lint # 代码检查 +yarn build # 编译 (dist/twikoo.all.min.js) +``` + +如果您的改动能够帮助到更多人,欢迎提交 Pull Request! + +## 国际化 | I18N + +支持简体中文、繁体中文、English。欢迎[提交翻译 PR](https://github.com/imaegoo/twikoo/edit/main/src/client/utils/i18n/i18n.js)。 + +## 许可 | License + +
+MIT License + +[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fimaegoo%2Ftwikoo.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fimaegoo%2Ftwikoo?ref=badge_large) + +
\ No newline at end of file diff --git a/apps/twikoo/arm32v7/.env.sample b/apps/twikoo/arm32v7/.env.sample new file mode 100644 index 00000000..983eeae1 --- /dev/null +++ b/apps/twikoo/arm32v7/.env.sample @@ -0,0 +1,3 @@ +CONTAINER_NAME="twikoo" +PANEL_APP_PORT_HTTP="40063" +DATA_PATH="./data" diff --git a/apps/twikoo/arm32v7/data.yml b/apps/twikoo/arm32v7/data.yml new file mode 100644 index 00000000..40a84f1c --- /dev/null +++ b/apps/twikoo/arm32v7/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: 40063 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text diff --git a/apps/twikoo/arm32v7/docker-compose.yml b/apps/twikoo/arm32v7/docker-compose.yml new file mode 100644 index 00000000..79b76f70 --- /dev/null +++ b/apps/twikoo/arm32v7/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3' +services: + twikoo: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:8080" + volumes: + - "${DATA_PATH}:/app/data" + environment: + - "TWIKOO_THROTTLE=1000" + - "TWIKOO_PORT=8080" + image: imaegoo/twikoo:arm32v7 + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/twikoo/data.yml b/apps/twikoo/data.yml new file mode 100644 index 00000000..6bad8e85 --- /dev/null +++ b/apps/twikoo/data.yml @@ -0,0 +1,20 @@ +name: Twikoo +tags: + - 工具 +title: 一个简洁、安全、免费的静态网站评论系统 +type: 工具 +description: 一个简洁、安全、免费的静态网站评论系统 +additionalProperties: + key: twikoo + name: Twikoo + tags: + - Tool + shortDescZh: 一个简洁、安全、免费的静态网站评论系统 + shortDescEn: A simple, safe, free comment system + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://twikoo.js.org + github: https://github.com/imaegoo/twikoo + document: https://twikoo.js.org diff --git a/apps/twikoo/logo.png b/apps/twikoo/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..66bb11849557ceff4b309c30179b8500a3779f13 GIT binary patch literal 3268 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