# 订阅仓库

订阅仓库提供了一种订阅机制,可以让你订阅获取一些其他用户已经写好的 JSKit 扩展。

订阅地址是一个符合 JSKit 约定规范的一个公开 Git 仓库地址。

添加订阅地址属于高级功能,在当前 beta 阶段是免费的!如果你觉得不错,可以捐赠支持我后续的开发!

# Git 是什么

这里假定你已经了解了 Git 是什么 (opens new window) 了。

# JSKit 订阅仓库的约定规范

比如为 JSKit 提供 cheerio 库支持为例: https://gitee.com/jskitapp/jsk-cheerio (opens new window)

在 Git 仓库的根目录提供有一个 index.jsk.json 文件

index.jsk.json :

{
  "version": 1,
  "name": "jsk-chreeio",
  "addon_dirs": [
    "./boolbase",
    "./cheerio",
    "./cheerio-select",
    "./css-select",
    "./css-what",
    "./dom-serializer",
    "./domelementtype",
    "./domhandler",
    "./domutils",
    "./entities",
    "./htmlparser2",
    "./nth-check",
    "./parse5",
    "./parse5-htmlparser2-tree-adapter",
    "./tslib"
  ]
}

index.jsk.json 文件提供订阅仓库各个拓展的索引信息

  • version: int 类型 标识当前仓库的版本号,当前都为 1
  • name: string 类型 仓库的名称,会在 JSKit App 的订阅仓库中显示
  • addon_dirs: 数组类型 标识扩展仓库的相对位置,每个子路径下都应该有一个 jsk.json 文件进一步描述扩展的信息。

addon_dirs 对应的子路径下提供有一个 jsk.json 文件

jsk.json :

{
  "main": "$cheerio_main",
  "js_map": {
    "$cheerio_main": "./main.js",
    "cheerio": "./lib/index.js"
  },
  "depes": [
    "cheerio-select",
    "dom-serializer",
    "domhandler",
    "htmlparser2",
    "parse5",
    "parse5-htmlparser2-tree-adapter",
    "tslib"
  ],
  "flags": 1,
  "jsk_id": "cheerio",
  "jsk_code": 2,
  "name": "cheerio",
  "description": "cheerio for jskit",
  "version_code": 1,
  "author": {
    "name": "mattmuelle"
  }
}

jsk.json 文件提供拓展相关信息,使用 JSKit App 创建扩展项目这个文件会自动生成

  • main: 扩展主文件的别名(在 js_map 的映射里面必须存在对应的文件)
  • js_map: JS 文件别名和 JS 文件路径映射,这些别名,可在此扩展和依赖此拓展的拓展中,直接用于 import/require。比如这里,可以直接 const cheerio = require('cheerio') 导入对应模块。
  • depes: 依赖的模块。是依赖扩展的项目 ID (jsk_id) 。
  • flags: 1 表示作为依赖时跳过运行主文件
  • jsk_id: 项目 ID
  • jsk_code: 支持的 jskit 版本,可查看 APP 内关于 JSKit 的 API 版本信息
  • name: 拓展名称
  • description: 拓展描述
  • version_code: 拓展版本,注意,当此版本增加后,会在 JSKit App 的订阅仓库列表中看到扩展有更新的提示
  • version_name: 拓展版本名称
  • author: 作者信息

# 添加订阅仓库地址

  1. JSKit App 首页右上角菜单中选择订阅仓库
  2. 点击订阅仓库标题栏右边的配置图标
  3. 点击链接查看已安装订阅地址
  4. 可以添加订阅地址了,只有符合上面约定规范的订阅地址才可以添加成功

比如我们想为 JSKit 提供 cheerio 支持:

  • 仓库名称:jsk-cheerio
  • 仓库地址:https://gitee.com/jskitapp/jsk-cheerio.git
  • 仓库分支:v0.12