docs: init i18n

This commit is contained in:
DIYgod
2018-08-13 01:47:16 +08:00
parent 1378073903
commit 1e9e71bcde
5 changed files with 2381 additions and 27 deletions

View File

@@ -1,37 +1,85 @@
module.exports = {
title: 'RSSHub',
description: '🍰 万物皆可 RSS',
ga: 'UA-48084758-10',
serviceWorker: true,
locales: {
'/': {
lang: 'zh-CN',
title: 'RSSHub',
description: '🍰 万物皆可 RSS',
},
'/en/': {
lang: 'en-US',
title: 'RSSHub',
description: '🍰 万物皆可 RSS',
},
},
themeConfig: {
repo: 'DIYgod/RSSHub',
editLinks: true,
editLinkText: '在 GitHub 上编辑此页',
lastUpdated: '上次更新',
serviceWorker: {
updatePopup: {
message: '发现新内容可用',
buttonText: '刷新',
docsDir: 'docs',
locales: {
'/': {
lang: 'zh-CN',
selectText: '选择语言',
label: '简体中文',
editLinkText: '在 GitHub 上编辑此页',
lastUpdated: '上次更新',
serviceWorker: {
updatePopup: {
message: '发现新内容可用',
buttonText: '刷新',
},
},
nav: [
{
text: '使用',
link: '/',
},
{
text: '参与我们',
link: '/joinus/',
},
{
text: '部署',
link: '/install/',
},
{
text: '支持 RSSHub',
link: '/support/',
},
],
},
'/en/': {
lang: 'en-US',
selectText: 'Languages',
label: 'English',
editLinkText: 'Edit this page on GitHub',
lastUpdated: 'Last Updated',
serviceWorker: {
updatePopup: {
message: 'New content is available',
buttonText: 'Refresh',
},
},
nav: [
{
text: 'Use',
link: '/en/',
},
{
text: 'Join us',
link: '/en/joinus/',
},
{
text: 'Deploy',
link: '/en/install/',
},
{
text: 'Support RSSHub',
link: '/en/support/',
},
],
},
},
docsDir: 'docs',
nav: [
{
text: '使用',
link: '/',
},
{
text: '参与我们',
link: '/joinus/',
},
{
text: '部署',
link: '/install/',
},
{
text: '支持 RSSHub',
link: '/support/',
},
],
},
};

1802
docs/en/README.md Normal file
View File

File diff suppressed because it is too large Load Diff

408
docs/en/install/README.md Normal file
View File

@@ -0,0 +1,408 @@
---
sidebar: auto
---
# 部署
部署 RSSHub 非常简单,如果您在部署过程中遇到无法解决的问题请到 [issues](https://github.com/DIYgod/RSSHub/issues) 寻找类似的问题或 [向我们提问](https://github.com/DIYgod/RSSHub/issues/new),我们会尽快给您答复。
## 手动部署
部署 `RSSHub` 最直接的方式,您可以按照以下步骤将 `RSSHub` 部署在您的 电脑、服务器或者其他任何地方。
### 在安装之前
在安装 RSSHub 之前,请确保您的电脑中已经安装了 [Git](https://git-scm.com/) 和 [Node.js >= 8.0.0](https://nodejs.org/)。
### 安装 Git
::: tip 提示
首先您应该输入 `git`,看看系统有没有安装 Git
windows 打开 `cmd` macOS 打开`终端(terminal)`
```bash
$ git
usage: git [--version] [--help] [-C <path>] [-c name=value]
...
```
:::
- Windows从 Git 官网直接[下载安装程序](https://git-scm.com/downloads)。
- MacOS使用 [Homebrew](https://brew.sh/) `$ brew install git` 或者[下载安装程序](https://git-scm.com/download/mac)。
- Linux使用您的包管理器安装例如 `$ sudo apt-get install git`
### 安装 Node.JS
#### Windows
Windows 用户请 [下载安装程序](https://nodejs.org/zh-cn/)。安装时,请勾选`Add to PATH`选项。
#### MacOS & Linux
安装 NodeJS 的最佳方式是使用 [nvm](https://github.com/creationix/nvm)。
安装 `nvm`
```bash
$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh
```
安装完成后,重启终端并执行下列命令即可安装 `Node.js`
```bash
$ nvm install node
```
### 安装 RSSHub
首先是下载 `RSSHub` 的源码,请执行下列命令。
```bash
$ git clone https://github.com/DIYgod/RSSHub.git
$ cd RSSHub
```
下载完成后,需要安装依赖。
```bash
$ npm install
```
::: tip 提示
推荐使用 [Yarn](https://yarn.bootcss.com/) `Yarn``npm` 更快更稳定。
使用 `Yarn` 安装依赖时只需要键入
```bash
$ yarn
```
由于众所周知的原因,在中国使用 `npm` 下载依赖十分缓慢,建议挂一个代理或者考虑使用 [NPM 镜像](https://npm.taobao.org/)。
:::
### 启动
`RSSHub` 文件夹中运行下面的命令就可以启动。
```bash
$ npm start
```
在浏览器中打开 [http://127.0.0.1:1200/](http://127.0.0.1:1200/)enjoy it! ✅
### 更新
`RSSHub` 文件夹中运行下面的命令就从 github 仓库拉取最新版本。
```bash
$ git pull
```
### 添加配置
可以通过修改 `config.js` 或者设置环境变量来配置 RSSHub。
**如何设置环境变量**
Windows 系统在 cmd.exe 中运行 `$ set PORT=1000`
macOS & Linux 运行 `$ PORT=1000`
再运行 `$ npm start` 启动 RSSHub 即可将监听端口设置为 `1000`
此处设置的环境变量在关闭终端后就会被清除,如果您想保存这些配置可以编写一个简单的 [批处理文件](https://en.wikipedia.org/wiki/Batch_file) 或 [shell](https://en.wikipedia.org/wiki/Shell_script)。
更多配置项请看 [应用配置](#应用配置)
### 使用 Redis 数据库缓存
RSSHub 默认会有 5 分钟的缓存默认这个缓存是存放在内存中的。RSSHub 还支持 Redis 数据库缓存。
::: tip 提示
除非流量特别大或者您需要建立分布式集群,否则不需要 Redis 缓存。
:::
#### 安装 Redis
**Windows**
安装 Redis on Windows 直接[下载安装程序](https://github.com/MicrosoftArchive/redis/releases)。
在安装目录中运行下面的命令启动 Redis。
```bash
$ redis-server redis.windows.conf
```
**MacOS**
使用 [Homebrew](https://brew.sh/) 安装 Redis。
```bash
$ brew install redis
```
再运行下面的命令启动 Redis。
```bash
$ brew services start redis
```
**Linux**
使用您的包管理器安装 Redis。
```bash
# apt
$ sudo apt install redis-server
# yum
$ sudo yum install redis
```
然后运行 `$ redis-server` 启动 Redis。
#### 启用 Redis 数据库缓存
修改配置项 `CACHE_TYPE``redis`RSSHub 将使用默认地址 `redis://localhost:6379/` 连接 Redis如果需要修改地址请看 [应用配置](#应用配置)。
## 部署到 Docker
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
### 安装 Docker
官方网站上有各种环境下的 [安装指南](https://docs.docker.com/engine/installation/)
### 部署
运行下面的命令下载 RSSHub 镜像。
```bash
$ docker pull diygod/rsshub
```
然后运行 RSSHub 即可
```bash
$ docker run -d --name rsshub -p 1200:1200 diygod/rsshub
```
在浏览器中打开 [http://127.0.0.1:1200/](http://127.0.0.1:1200/)enjoy it! ✅
您可以使用下面的命令来关闭 RSSHub。
```bash
$ docker stop rsshub
```
### 更新
您可以使用下面的命令来更新镜像。
```bash
# 先关闭 rsshub
$ docker stop rsshub
# 删除现有的容器
$ docker rm rsshub
# 下载最新版的 rsshub 镜像
$ docker pull diygod/rsshub
```
### 添加配置
配置运行在 docker 中的 RSSHub最便利的方法是使用环境变量。
以设置缓存时间为 1 小时举例,只需要在运行时增加参数:`-e CACHE_EXPIRE=3600`
```bash
$ docker run -d --name rsshub -p 1200:1200 -e CACHE_EXPIRE=3600 -e GITHUB_ACCESS_TOKEN=example diygod/rsshub
```
更多配置项请看 [应用配置](#应用配置)
### 使用 docker-compose 部署
[docker-compose](https://docs.docker.com/compose/overview/) 是用来运行多容器 Docker 应用的小工具,可以简化配置部署过程:
1. 创建 volume 持久化 Redis 缓存
```bash
$ docker volume create redis-data
```
2. 修改 [docker-compose.yml](https://github.com/DIYgod/RSSHub/blob/master/docker-compose.yml) 中的 `environment` 进行配置
3. 部署
```bash
$ docker-compose up
```
4. 更新
```bash
$ docker-compose build
$ docker-compose up
```
## 部署到 Heroku
[![Deploy](https://i.imgur.com/e6ZcmUY.png)](https://heroku.com/deploy?template=https%3A%2F%2Fgithub.com%2FDIYgod%2FRSSHub)
## 部署到 Google App Engine
### 部署之前
[Before you begin](https://cloud.google.com/appengine/docs/flexible/nodejs/quickstart)
按照这里的引导完成 GCP 账号设置,创建 GCP 项目,创建 App Engine 项目,开通付费功能(必须),安装 git 与 gcloud 工具。并完成 gcloud 工具的初始化,初始化具体方式[请查看这个链接](https://cloud.google.com/sdk/gcloud/?hl=zh-CN)。如果你不打算在本地调试本项目,可以不安装 Node.js 环境。
请注意GAE 免费用量不支持 Flexible Environment ,部署至 Flexible Environment 前请确认收费标准。
Node.JS 的 standard environment 仍在测试中,您可能会在部署或使用中遇到某些不可预期的问题。
### 拉取
运行 `git clone https://github.com/DIYgod/RSSHub.git` 拉取本项目的最新版本。
### app.yaml 配置
#### 部署至 Flexible Environment
在 RSSHub 项目根目录下建立一个 app.yaml 文件,内容示例如下:
```yaml
# [START app_yaml]
runtime: custom
env: flex
# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml
manual_scaling:
instances: 1
# 以下是 app engine 资源配置,可以自行修改,硬盘最低为 10G
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
network:
forwarded_ports:
- 80:1200
- 443:1200
# 以下是环境配置示例,具体可配置项见本文档配置章节
env_variables:
CACHE_EXPIRE: "300"
# [END app_yaml]
```
#### 部署至 standard environment
在 RSSHub 项目根目录下建立一个 app.yaml 文件,内容示例如下:
```yaml
# [START app_yaml]
runtime: nodejs8
network:
forwarded_ports:
- 80:1200
- 443:1200
# 以下是环境配置示例,具体可配置项见本文档配置章节
env_variables:
CACHE_EXPIRE: "300"
# [END app_yaml]
```
### 开始部署
在 RSSHub 项目根目录下运行
```bash
gcloud app deploy
```
进行项目部署,如果您需要变更 app.yaml 文件名称或者变更部署的项目 ID 或者指定版本号等,请参考[这个链接](https://cloud.google.com/appengine/docs/flexible/nodejs/testing-and-deploying-your-app)的"Deploying a service" 部分。
部署完成后可访问您的 Google App Engine URL 查看部署情况。
## 配置
### 应用配置
可以通过修改 `config.js` 或者设置环境变量来配置 RSSHub。
::: tip 提示
建议通过设置环境变量来配置 RSSHub。避免版本更新时的冲突。
:::
`PORT`: 监听端口,默认为 `1200`
`SOCKET`: 监听 Unix Socket默认为 `null`
`CACHE_TYPE`: 缓存类型,可为 `memory``redis`,设为空可以禁止缓存,默认为 `memory`
`CACHE_EXPIRE`: 缓存过期时间,单位为秒,默认 300
`LISTEN_INADDR_ANY`: 是否允许公网连接,默认 1
`REDIS_URL`: Redis 连接地址memory 缓存类型时无效),默认为 `redis://localhost:6379/`
`REDIS_PASSWORD`: Redis 连接密码memory 缓存类型时无效)
### 部分 RSS 模块配置
- `pixiv`: [注册地址](https://accounts.pixiv.net/signup)
- `PIXIV_USERNAME`: Pixiv 用户名
- `PIXIV_PASSWORD`: Pixiv 密码
- `disqus`: [申请地址](https://disqus.com/api/applications/)
- `DISQUS_API_KEY`: Disqus API
- `twitter`: [申请地址](https://apps.twitter.com)
- `TWITTER_CONSUMER_KEY`: Twitter Consumer Key
- `TWITTER_CONSUMER_SECRET`: Twitter Consumer Secret
- `TWITTER_ACCESS_TOKEN`: Twitter Access Token
- `TWITTER_ACCESS_TOKEN_SECRET`: Twitter Access Token Secret
- `youtube`: [申请地址](https://console.developers.google.com/)
- `YOUTUBE_KEY`: YouTube API Key
- `telegram`: [Telegram 机器人](https://telegram.org/blog/bot-revolution)
- `TELEGRAM_TOKEN`: Telegram 机器人 token
- `github`: [申请地址](https://github.com/settings/tokens)
- `GITHUB_ACCESS_TOKEN`: GitHub Access Token
### 访问控制
可以通过修改 `middleware/access-control.js` 或者设置环境变量来配置黑名单和白名单。
支持 IP 和路由,设置多项时用英文逗号 `,` 隔开。同时设置黑名单和白名单时仅白名单有效。
- `BLACKLIST`: 黑名单
- `WHITELIST`: 白名单,设置白名单后黑名单无效

71
docs/en/joinus/README.md Normal file
View File

@@ -0,0 +1,71 @@
---
sidebar: auto
---
# 参与我们
如果有任何想法或需求,可以在 [issue](https://github.com/DIYgod/RSSHub/issues) 中告诉我们,同时我们欢迎各种 pull requests
## 提交新的 RSS 内容
1. 在 [/router.js](https://github.com/DIYgod/RSSHub/blob/master/router.js) 里添加路由
1. 在 [/routes/](https://github.com/DIYgod/RSSHub/tree/master/routes) 中的路由对应路径添加获取 RSS 内容的脚本
1. 更新 [README (/README.md) ](https://github.com/DIYgod/RSSHub/blob/master/README.md) 和 [文档 (/docs/README.md) ](https://github.com/DIYgod/RSSHub/blob/master/docs/README.md),可以执行 `npm run docs:dev` 查看文档效果
1. 执行 `npm run format` 自动处理代码格式后,提交代码,然后提交 pull request
## 编写脚本
### 从接口获取数据
使用 [axios](https://github.com/axios/axios) 请求接口,然后把获取的标题、链接、描述、发布时间等数据赋值给 ctx.state.data每个字段的含义在下面说明可以直接看这个典型的例子[/routes/bilibili/bangumi.js](https://github.com/DIYgod/RSSHub/blob/master/routes/bilibili/bangumi.js)
### 从 HTML 获取数据
有时候数据是写在 HTML 里的,没有接口供我们调用,这时候可以使用 [axios](https://github.com/axios/axios) 请求 HTML 数据,然后使用 [cheerio](https://github.com/cheeriojs/cheerio) 解析 HTML再把数据赋值给 ctx.state.data可以直接看这个典型的例子[/routes/jianshu/home.js](https://github.com/DIYgod/RSSHub/blob/master/routes/jianshu/home.js)
### 使用缓存
所有路由都有一个缓存,缓存时间在 `config.js` 里设定,但某些接口返回的内容可能长时间都不会变化,这时应该给这些数据设置一个更长的缓存。
添加缓存:
```js
ctx.cache.set((key: string), (value: string), (time: number)); // time 为缓存时间,单位为秒
```
获取缓存:
```js
const value = await ctx.cache.get(key: string);
```
可以直接看这个典型的例子:[/routes/zhihu/daily.js](https://github.com/DIYgod/RSSHub/blob/master/routes/zhihu/daily.js),这个例子中需要获取每篇文章的详细内容,每篇文章都需要单独请求一次,请求很多而且每个请求只需要一次,这时候可以把结果缓存一天。
### 数据
获取到的数据赋给 ctx.state.data然后数据会经过 [template.js](https://github.com/DIYgod/RSSHub/blob/master/middleware/template.js) 中间件处理,最后传到 [/views/rss.art](https://github.com/DIYgod/RSSHub/blob/master/views/rss.art) 来生成最后的 RSS 结果,每个字段的含义如下:
```js
ctx.state.data = {
title: '', // 项目的标题
link: '', // 指向项目的链接
description: '', // 描述项目
item: [
// 其中一篇文章或一项内容
{
title: '', // 文章标题
description: '', // 文章内容或描述
pubDate: '', // 文章发布时间
guid: '', // 文章唯一标示,必须唯一,可选,默认为文章链接
link: '', // 指向文章的链接
},
],
};
```
## 参与讨论
1. [Telegram 群](https://t.me/rsshub)

25
docs/en/support/README.md Normal file
View File

@@ -0,0 +1,25 @@
---
sidebar: auto
---
# 支持 RSSHub
RSSHub 是采用 MIT 许可的开源项目,使用完全免费。 但是随着项目规模的增长,也需要有相应的资金支持才能持续项目的维护与开发。
你可以通过下列的方法来赞助 RSSHub 的开发。
## 一次性赞助
我们通过以下方式接受赞助:
- [微信支付](https://i.imgur.com/aq6PtWa.png)
- [支付宝](https://i.imgur.com/wv1Pj2k.png)
- [Paypal](https://www.paypal.me/DIYgod)
- 比特币: 13CwQLHzPYm2tewNMSJBeArbbRM5NSmCD1
## 周期性赞助
周期性赞助可以获得额外的回报,比如更快的 GitHub 响应或者你的名字会出现在 RSSHub 的 GitHub 仓库和现在我们的官网中。
- 通过 [Patreon](https://www.patreon.com/DIYgod) 赞助成为 backer 或 sponsor
- 给我们发邮件联系赞助事宜: i#html.love