diff --git a/README.md b/README.md index 1e196f8..97801ef 100755 --- a/README.md +++ b/README.md @@ -28,32 +28,6 @@ **→ [官方饭否](https://fanfou.com/spacefanfou)**|**→ [入门手册](https://spacekid.me/spacefanfou/)** :-----:|:-----: -### 开发 - -1. fork 并 clone 项目 -1. 安装依赖 `npm install` -1. 进入开发模式 `npm run dev`,webpack 会持续监听文件变化并重新构建 -1. 在 Chrome 中加载 `dist` 目录 -1. 请确保 `npm test` 测试通过 - -### 约定 - -- 从 1.0.0 开始,使用[语义化版本控制](https://semver.org) -- 只提供必要的设置项,降低用户的决策负担 -- 添加依赖时尽可能选择小巧、简单的包,维持打包体积、性能(比如使用 [just](https://github.com/angus-c/just) 替代 [lodash](https://lodash.com)、[Preact](https://preactjs.com/) 替代 [React](https://reactjs.org/),以及 [tinydate](https://github.com/lukeed/tinydate) 替代 [moment.js](https://momentjs.com/)) -- 太空饭否添加上去的 CSS 类名或 ID 名,应该以 `sf-` 为前缀,且使用连字符风格(如 `sf-foo-bar`),避免和饭否原有的样式命名发生冲突 -- 尽量不对图片作 base64 编码,因为会影响到性能 -- 尽量不去调用饭否的 jQuery / YUI -- 使用图片素材时应考虑到 HiDPI 显示器的适配 -- SVG 图片应该使用 [svgo](https://github.com/svg/svgo) 作优化处理 - -### 发布 - -1. 修改 `static/manifest.json` 中的版本号 -1. 在 `src/version-history/versionHistory` 中添加更新说明(详见[这里](https://github.com/ispacekid/space-fanfou/blob/master/src/version-history/README.md),可选) -1. 构建 `npm build` -1. 将 `dist` 目录中的文件打包为 zip,提交到商店审核 - ### 协议 基于 [GPL v3](COPYING) 协议发布。版权所有 © 2011-2019 太空饭否开发组。 diff --git a/ARCHITECTURE.md b/docs/architecture.md old mode 100644 new mode 100755 similarity index 91% rename from ARCHITECTURE.md rename to docs/architecture.md index ce40007..8723f90 --- a/ARCHITECTURE.md +++ b/docs/architecture.md @@ -1,4 +1,6 @@ -## 架构 +# 架构 + +### 太空饭否分为哪几个部分? 太空饭否分为四个部分: @@ -9,15 +11,15 @@ 以上四部分的 webpack entry 文件位于 `src/entries` 目录中,而前三者共用了同一个 entry 文件。原因是,它们都负责实现太空饭否的各种功能,因此会引用 `src/features` 中的文件,共用一个 entry 可以避免重复打包这部分代码。 -#### Background Scripts 是做什么的? +### Background Scripts 是做什么的? 部分功能如检查是否有新 @ 提醒需要持续运行,所以放置在 Background Scripts 中。这部分不能直接与饭否页面接触。 -#### Content Scripts 和 Page Scripts 是做什么的? +### Content Scripts 和 Page Scripts 是做什么的? 负责在饭否网页上实现太空饭否的样式与功能,即与页面接触的部分。这两者实际上是非常相似的,但是也存在一些差别。 -#### 为什么同时存在 Content Scripts 和 Page Scripts? +### 为什么同时存在 Content Scripts 和 Page Scripts? 一般情况下,修改页面或添加内容以实现功能,只需要 Content Scripts 就足够了。但是太空饭否某些功能必须调用饭否页面的 JS 接口才可以实现(比如要用到 jQuery 和 YUI 来禁用掉饭否原有的一些功能)。但是 Content Scripts 是在一个隔离的环境中执行的,无法访问页面这一侧的对象,也就无法调用饭否自己的 JS 接口。而 Page Scripts 就没有了这些限制。 diff --git a/docs/contributing.md b/docs/contributing.md new file mode 100755 index 0000000..ae3a111 --- /dev/null +++ b/docs/contributing.md @@ -0,0 +1,21 @@ +# 贡献代码 + +### 开发 + +1. fork 并 clone 项目 +1. 安装依赖 `npm install` +1. 进入开发模式 `npm run dev`,webpack 会持续监听文件变化并重新构建 +1. 在 Chrome 中加载 `dist` 目录 +1. 请确保 `npm test` 测试通过 + +### 约定 + +- 从 1.0.0 开始,使用[语义化版本控制](https://semver.org) +- 只提供必要的设置项,降低用户的决策负担 +- 添加依赖时尽可能选择小巧、简单的包,维持打包体积、性能(比如使用 [just](https://github.com/angus-c/just) 替代 [lodash](https://lodash.com)、[Preact](https://preactjs.com/) 替代 [React](https://reactjs.org/),以及 [tinydate](https://github.com/lukeed/tinydate) 替代 [moment.js](https://momentjs.com/)) +- 太空饭否添加上去的 CSS 类名或 ID 名,应该以 `sf-` 为前缀,且使用连字符风格(如 `sf-foo-bar`),避免和饭否原有的样式命名发生冲突 +- 尽量不对图片作 base64 编码,因为会影响到性能 +- 尽量不去调用饭否的 jQuery / YUI +- 使用图片素材时应考虑到 HiDPI 显示器的适配 +- SVG 图片应该使用 [svgo](https://github.com/svg/svgo) 作优化处理 +- 在 merge pull request 时应选择“Squash and merge” diff --git a/src/version-history/README.md b/docs/publish.md old mode 100644 new mode 100755 similarity index 68% rename from src/version-history/README.md rename to docs/publish.md index 7befc20..3806684 --- a/src/version-history/README.md +++ b/docs/publish.md @@ -1,4 +1,6 @@ -## 如何选择新版本号 +# 发布 + +### 如何选择新版本号 从 1.0.0 开始,太空饭否使用[语义化版本控制](https://semver.org)。当发布新版本时,选择新版本号应遵循: @@ -6,13 +8,20 @@ - 如果引入了新功能,则应该发布 minor(`_.+._`)更新; - 如果大幅度调整了代码或设计,则应该发布 major(`+._._`)更新。 -## 更新历史的显示位置 +### 更新历史的显示位置 - “设置” → “更新历史”,显示完整的更新历史 - 扩展启动时弹出通知,显示本次版本更新内容的概要(如果刚刚升级到了新版本、开启了相关设置,并且 `versionHistory` 中包含了该版本的更新内容) -## 如何编写更新历史内容 +### 如何编写更新历史内容 - 更新历史应该介绍该版本在功能、设计及用户体验方面新引入或修正的内容 - 应该避免无意义的文字,如“修正了一些 bug”,尽量不打扰用户 - 如果更新内容过多,可以在前面写一行概要,用于作为桌面通知内容显示 + +### 如何发布新版? + +1. 修改 `static/manifest.json` 中的版本号 +1. 在 `src/version-history/versionHistory` 中添加更新说明(详见[这里](https://github.com/ispacekid/space-fanfou/blob/master/src/version-history/README.md),可选) +1. 构建 `npm build` +1. 将 `dist` 目录中的文件打包为 zip,提交到商店审核 diff --git a/src/version-history/parseVersionHistory.js b/src/version-history/parseVersionHistory.js old mode 100644 new mode 100755 index 418246d..0613985 --- a/src/version-history/parseVersionHistory.js +++ b/src/version-history/parseVersionHistory.js @@ -20,6 +20,11 @@ export default rawVersionHistory => { } continousBlankLines = 0 + // 注释 + if (currentLine.startsWith('#')) { + continue + } + // 版本号(必选) if (currentLine.startsWith('v')) { const versionTag = currentLine.substr(1) diff --git a/src/version-history/versionHistory b/src/version-history/versionHistory old mode 100644 new mode 100755 index 87641dd..a3cb7c5 --- a/src/version-history/versionHistory +++ b/src/version-history/versionHistory @@ -1,3 +1,5 @@ +# 参见 /docs/publish.md + v1.0.0 @2019-04-16 ~ 这次版本更新完全重写了代码,带来了云同步功能,并且在功能、样式和用户体验方面作了大量改进。