From c6509fdc25fb1865553c4e90e30188fbc7129be4 Mon Sep 17 00:00:00 2001 From: Coding Zhang <2291200076@qq.com> Date: Wed, 11 Aug 2021 13:00:10 +0800 Subject: [PATCH] small changes; add tavi system --- docs/_sidebar.md | 51 +++++++--- docs/include/tavi/backcolor/index.html | 88 ++++++++++++++++ docs/include/tavi/backcolor/logo.png | Bin 0 -> 46045 bytes docs/index.html | 20 ++++ docs/manual/about/license/README.md | 1 - docs/manual/standard/3. 通用规范.md | 2 - ...遵循的注释规范.md => code-specification.md} | 9 ++ .../standard/logo-specification/name.md | 9 ++ .../standard/logo-specification/tavi.md | 96 ++++++++++++++++++ ...码使用的加密技术.md => security-specification.md} | 7 +- .../{standard => 清单 ToDo}/2. 注释规范.md | 0 11 files changed, 265 insertions(+), 18 deletions(-) create mode 100644 docs/include/tavi/backcolor/index.html create mode 100644 docs/include/tavi/backcolor/logo.png delete mode 100644 docs/manual/about/license/README.md delete mode 100644 docs/manual/standard/3. 通用规范.md rename docs/manual/standard/{1. 本项目遵循的注释规范.md => code-specification.md} (70%) create mode 100644 docs/manual/standard/logo-specification/name.md create mode 100644 docs/manual/standard/logo-specification/tavi.md rename docs/manual/standard/{注册、登录时密码使用的加密技术.md => security-specification.md} (82%) rename docs/manual/{standard => 清单 ToDo}/2. 注释规范.md (100%) diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 2440975..911ba6d 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -1,4 +1,5 @@ - **一、快速开始** + - [1. 简介](/manual/start/introduction) - [2. 环境要求](/manual/start/requirements) - [3. 下载安装(需要更新)](/manual/start/install) @@ -12,26 +13,41 @@ - [11. 常见问题](/manual/start/faq) - **二、使用说明** + - [1. 开始使用(撰写中)](/manual/instructions/start-using) - **三、接口文档** + - [1. 简介](/manual/api/introduction) - [2. 全局状态码](/manual/api/status-code) - [3. 前端Api接口(撰写中)](/manual/api/frontend-interface/overview) + - [通用参数](/manual/api/frontend-interface/General) - - [站点](/manual/api/frontend-interface/Site) - - [管理员](/manual/api/frontend-interface/Admin) - - [用户](/manual/api/frontend-interface/User) - - [单词](/manual/api/frontend-interface/Words) - - [词书](/manual/api/frontend-interface/Wordbooks) - - [通知](/manual/api/frontend-interface/Notice) + - [站点](/manual/api/frontend-interface/Site) + - [管理员](/manual/api/frontend-interface/Admin) + - [用户](/manual/api/frontend-interface/User) + - [单词](/manual/api/frontend-interface/Words) + - [词书](/manual/api/frontend-interface/Wordbooks) + - [通知](/manual/api/frontend-interface/Notice) + - [4. 后端Api接口(待完善)](/manual/api/backend-interface) - [5. 接口模板](/manual/api/interface-template) -- **四、代码规范** +- **四、规范** + + - 标识规范 + + - [名称规范](/manual/standard/logo-specification/name) + - [视觉形象系统](/manual/standard/logo-specification/tavi) + + - [代码规范](/manual/standard/code-specification) + + - [隐私安全](/manual/standard/security-specification) + - [【TODO】](/manual/standard/xxx) - **五、应用开发文档** + - [1. 开始](/manual/app-developer/start) - [2. 文件及代码结构(待完善)](/manual/app-developer/file-structure) - [3. 插件开发(待完善)](/manual/app-developer/plugin/overview) @@ -40,30 +56,39 @@ - [7. 下架应用(待完善)](/manual/app-developer/downshelf) - **六、关于** - + + - [关于我们](/manual/about/about-us) - [联系我们](/manual/about/contact) - [开发团队 & 参与贡献者名单](/manual/about/contributors) - - - + + - [发行版本](/manual/about/version/release) - [更新日志](/manual/about/version/changelog) - [特别鸣谢](/manual/about/acknowledgement) - [使用的开源组件列表](/manual/about/open-source-project) - - [法律声明及服务协议](/manual/about/license/README) + - 法律声明及服务协议 + - [开源许可证 GPL-3.0](/manual/about/license/GPL-3.0) + - [更好的理解 GPL-3.0](/manual/about/license/have-a-better-understanding-of-GPL-3.0) - - 法律声明 policy + + - 法律声明 policy + - [版权声明 Copyright](/manual/about/policy/copyright) - [免责声明 Disclaimer](/manual/about/policy/disclaimer) - - 服务协议 agreement + + - 服务协议 agreement + - [服务条款 Terms of use](/manual/about/agreement/terms-of-use) - [隐私政策 Privacy policy](/manual/about/agreement/privacy-policy) + - [使用的第三方接口](/manual/about/third-party-interface) - **七、内部开发文档** - **八、其他** + - [TODO](/manual/todo) - [test](/manual/test) \ No newline at end of file diff --git a/docs/include/tavi/backcolor/index.html b/docs/include/tavi/backcolor/index.html new file mode 100644 index 0000000..5b3dfa0 --- /dev/null +++ b/docs/include/tavi/backcolor/index.html @@ -0,0 +1,88 @@ + + + + + + + + + +
+
+

效果展示

+ +
+
+

参数调整

+

+ 颜色: +

+

+ 圆角: +

+ +
+
+

当前参数

+

+ 颜色:
+

+

+ 圆角:
+

+ +
+
+ + + + + diff --git a/docs/include/tavi/backcolor/logo.png b/docs/include/tavi/backcolor/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..67ad33a9ec33d622f2db5e645f4859be121de485 GIT binary patch literal 46045 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 BH(3Ax literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html index ddd0ced..38e888e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -161,6 +161,20 @@ ); }); }, + + // 资源对象获取真实地址 + function(hook, vm) { + var assetsOriginURL = "https://gitee.com/tawords/assets/raw/master" + hook.doneEach(function() { + var assetsObject = document.getElementsByClassName('assetsObject'); + for(var i=0;i < assetsObject.length; i++) + { + let objectpath = assetsObject[i].getAttribute("objectpath"); + if(!!objectpath) + assetsObject[i].setAttribute("src", assetsOriginURL+objectpath) + } + }); + }, // 添加footer // function(hook) { @@ -345,5 +359,11 @@ + + + + + + diff --git a/docs/manual/about/license/README.md b/docs/manual/about/license/README.md deleted file mode 100644 index 193ac1d..0000000 --- a/docs/manual/about/license/README.md +++ /dev/null @@ -1 +0,0 @@ -### 点击左侧菜单以继续 \ No newline at end of file diff --git a/docs/manual/standard/3. 通用规范.md b/docs/manual/standard/3. 通用规范.md deleted file mode 100644 index bc8ab5d..0000000 --- a/docs/manual/standard/3. 通用规范.md +++ /dev/null @@ -1,2 +0,0 @@ -为避免重复及便于识别,应用名中不能出现特殊字符,应用识别名须遵循驼峰式书写规范,只能包含`大小写字母`和下划线`_`,应用目录名为应用识别名,定义的所有函数需要以应用识别名加`_`作为前缀; -所有目录及文件名,全部小写,不得出现大写字母; \ No newline at end of file diff --git a/docs/manual/standard/1. 本项目遵循的注释规范.md b/docs/manual/standard/code-specification.md similarity index 70% rename from docs/manual/standard/1. 本项目遵循的注释规范.md rename to docs/manual/standard/code-specification.md index 0e3ff9b..ef73d13 100644 --- a/docs/manual/standard/1. 本项目遵循的注释规范.md +++ b/docs/manual/standard/code-specification.md @@ -1,3 +1,12 @@ +## 命名规范(待定) + +为避免重复及便于识别,应用名中不能出现特殊字符,应用识别名须遵循驼峰式书写规范,只能包含`大小写字母`和下划线`_`,应用目录名为应用识别名,定义的所有函数需要以应用识别名加`_`作为前缀; +所有目录及文件名,全部小写,不得出现大写字母; + + + +## 注释规范 Annotation specification(待定) + > `@since` 表示从那个版本开始就有这个类/接口/方法 > `@deprecated` 表示不建议使用该类/接口/方法 > `@exception` 标注Runtime异常 diff --git a/docs/manual/standard/logo-specification/name.md b/docs/manual/standard/logo-specification/name.md new file mode 100644 index 0000000..e738de5 --- /dev/null +++ b/docs/manual/standard/logo-specification/name.md @@ -0,0 +1,9 @@ +## 名称规范 + +| 名称指代 | 中文 | 备注 | 英文 | 备注 | +| -------------------------------------- | -------------------------- | ---------------------- | --------------------- | ------------------------------------------------------------ | +| 项目的中(英)文名称
项目中的产品 | 背Ta单词 | 注意英文字母的大小写 | tawords | 一般全小写,与语法、命名规范等冲突时,可写为Tawords或TAWORDS | +| 项目开发团队名称 | 背Ta团队、背Ta单词开发团队 | 注意不是“背Ta单词团队” | tawords team | 一般全小写,与语法、命名规范等冲突时,可写为Tawords Team或TAWORDS TEAM | +| 项目中的产品标识 | 背Ta团队荣誉出品 | - | tawords team products | 一般全小写,与语法、命名规范等冲突时,可写为Tawords Team Products或TAWORDS TEAM PRODUCTS | +| 代码中应用识别名 | - | - | bta | 一般全小写或全大写,例如 $bta , BTA_PATH , bta_user | + diff --git a/docs/manual/standard/logo-specification/tavi.md b/docs/manual/standard/logo-specification/tavi.md new file mode 100644 index 0000000..d868b2d --- /dev/null +++ b/docs/manual/standard/logo-specification/tavi.md @@ -0,0 +1,96 @@ +## 视觉形象系统 + +为了体现出更好的视觉形象,更有利于视觉形象传播,同时更能展现出项目团队精神,特此研发**背Ta单词视觉形象识别系统**(**Tawords Visual Identity System**,简称“**TAVI**”)。 + +TAVI由背Ta团队负责人设计研发,分为基础板块(Ⅰ)和应用板块(Ⅱ)两大板块。以规范、实用为基本原则,对项目中使用到的及未来将可能使用到的各类相关标识进行整体设计,规范项目形象特征,完善标识使用规范。 + +> **基础板块**包括背Ta单词项目标志(LOGO)、标准字体、标准色彩、标志组合、辅助图形、禁用组合和专用字体。包含了基础设计要素及其规范使用形式。 +> +> **应用板块**是基础部分在前端设计与项目宣传等方面使用示例。 + +TAVI适用于背Ta单词项目开发宣传中的各个环节,提供部分原图下载,欢迎大家在本视觉形象系统的约束下规范使用。 + + + +# (以下内容待完善) + + +# Ⅰ. 基础板块 + +## 项目标志(logo) + +[logo](../../../include/tavi/backcolor ':include :type=iframe width=100% height=600px') + + + + + +### 圆角 + + +| 圆角 | 圆角半径 ÷ ½边长
(百分比) | 示例 | +| ------------------- | -------------------------------- | ------------------------------------------------------------ | +| fillet0(圆形) | 0% | | +| fillet1 | 11.1% | | +| fillet2 | 33.3% | | +| fillet3 | 55.2% | | +| **fillet4(默认)** | **70.3%** | | +| fillet5 | 82.5% | | +| fillet6(正方形) | 100% | | + + + + +### 背景色 + +下列背景色为推荐颜色,推荐使用下列标准颜色码。 + +在下方颜色无法满足实际需求时,可以自定义背景色,但需要满足:①背景颜色不允许过浅或白色;②背景颜色不允许过亮过鲜艳。 + +| 颜色 | 示例 | 十六进制颜色码 | RGB颜色 | +| ---------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------ | +| **棕色(标准色)** |
| #4F3730 | (79, 55, 48) | +| 黄色 |
| #FFCF00 | (255, 207, 0) | +| 紫色 |
| #5F52A0 | (95, 82, 160) | +| |
| #8957A1 | (137, 87, 161) | +| 浅紫色 |
| #8F82BC | (143, 130, 188) | +| |
| #8C97CB | (140, 151, 203) | +| |
| #88ABDA | (136, 171, 218) | +| 蓝色 |
| #556FB5 | (85, 111, 181) | +| |
| #00B7EE | (0, 183, 238) | +| 浅蓝色 |
| #7ECEF4 | (126, 206, 244) | +| 粉色 |
| #F19EC2 | (241, 158, 194) | +| |
| #F29C9F | (242, 156, 159) | +| 青色 |
| #84CCC9 | (132, 204, 201) | +| 浅绿色 |
| #89C997 | (137, 201, 151) | +| 绿色 |
| #32B16C | (50, 177, 108) | +| 橙色 |
| #F8B551 | (248, 181, 81) | +| 橙红色 |
| #EC6941 | (236, 105, 65) | +| |
| #FFFFFF | () | +| |
| #FFFFFF | () | +| |
| #FFFFFF | () | +| |
| #FFFFFF | (, , ) | +| 黑色
👇
灰色 |


| #000000 # #313131
#434343 #535353
#626262 #7D7D7D | (0, 0, 0) (49, 49, 49)
(67, 67, 67) (83, 83, 83)
(98, 98, 98) (125, 125, 125) | + +
+ + + + +# Ⅱ. 应用板块 + diff --git a/docs/manual/standard/注册、登录时密码使用的加密技术.md b/docs/manual/standard/security-specification.md similarity index 82% rename from docs/manual/standard/注册、登录时密码使用的加密技术.md rename to docs/manual/standard/security-specification.md index 7bca43f..bd67a05 100644 --- a/docs/manual/standard/注册、登录时密码使用的加密技术.md +++ b/docs/manual/standard/security-specification.md @@ -1,10 +1,13 @@ -# 登录: +## 注册、登录时密码使用的加密技术 + +### 登录 + > 使用`密码加盐`生成不可逆哈希,**他人无法获取密码原文**。 ```javascript md5.hex(pwd + md5.hex(pwd)); ``` -# 注册: +### 注册 > 使用密码倒序`Base64`加密,再倒序`Base64`加密,避免密码在网上裸奔。 ```javascript Base64.encode(Base64.encode(pwd.split('').reverse().join('')).split('').reverse().join('')); diff --git a/docs/manual/standard/2. 注释规范.md b/docs/manual/清单 ToDo/2. 注释规范.md similarity index 100% rename from docs/manual/standard/2. 注释规范.md rename to docs/manual/清单 ToDo/2. 注释规范.md