Forwarded from dnaugsuz
但是有一个缺点:更新检查比较慢
(然后发现好像有最新版本的 csv
这样就不慢了
(有点类似 FDroid
(然后发现好像有最新版本的 csv
这样就不慢了
(有点类似 FDroid
dnaugsuz
GitApk 是在 Gitea 等社交源码托管站点上建立的
GeekApk 依赖社交编程应用后端的版本被称为「GitApk」
永久链接约定:
假设服务器(Gitea 应用)地址为 https://gitapk.popf.rip
+ Gitea 用户
/GitApk/packages/:package
+ 应用
/GitApk/apps/:aid
+ 分类目录
/GitApk/categories
/GitApk/categories/:name
/GitApk/categories.rank/:name
+ 主页
/GitApk/apps
+ 引入
/GitApk/gitapk
+ 元数据
/GitApk/metadata/reversion.csv
/GitApk/metadata/package.csv
/GitApk/metadata/author.csv
/GitApk/metadata/description.csv
/GitApk/metadata/apps.json
/GitApk/metadata/app/:package:.json
/GitApk/metadata/updates.json
/GitApk/metadata/updates/:package/:reversion:.json
永久链接约定:
假设服务器(Gitea 应用)地址为 https://gitapk.popf.rip
+ Gitea 用户
/:username
+ 用户的额外元数据/:username/GitApk-Metadata
bio 自我介绍 /:username/GitApk-Metadata/raw/branch/master/README.md
nickname 昵称 /:username/GitApk-Metadata/raw/branch/master/nickname
avatar 链接 /:username/GitApk-Metadata/raw/branch/master/avatar
stars 记录 /:username/GitApk-Metadata/raw/branch/master/stars
timeline 时间线 issue /:username/GitApk-Metadata/issues/1
+ 应用包名跳转/GitApk/packages/:package
+ 应用
/GitApk/apps/:aid
+ 分类目录
/GitApk/categories
/GitApk/categories/:name
/GitApk/categories.rank/:name
+ 主页
/GitApk/apps
+ 引入
/GitApk/gitapk
+ 元数据
/GitApk/metadata/reversion.csv
/GitApk/metadata/package.csv
/GitApk/metadata/author.csv
/GitApk/metadata/description.csv
/GitApk/metadata/apps.json
/GitApk/metadata/app/:package:.json
/GitApk/metadata/updates.json
/GitApk/metadata/updates/:package/:reversion:.json
准备拿 Crystal 写一个,开始想拿 C 写但是太慢了... 我还基本不会 C,虽然 man 手册又现成
「Gekyll」 😶
「Gekyll」 😶
Forwarded from dnaugsuz
我觉得 Gekyll 只需要渲染主页、分类页、用户页,生成查询数据即可
GitApk package tree 结构类似于这样
对于更新,支持
GitApk 会占用一个源作为自己的「默认 Tree」,这个源要包含
GitApk 也会占用每个用户的一个源作为自己的「用户元数据源」
GitApk 渲染时要能分「获取 Gitea Comments 统计数据」、「生成 App 视图」、「生成应用别名跳转」、「生成分类」、「生成 rank 排行分类」、「生成分类索引」、「生成主页」、「生成索引」、「生成元数据」 阶段
用户元数据
钦定有这些默认派发视图
+ about
+ doc
+ index
+ comments(aid)
+ user(username)
+ userlist
+ category(name)
+ categories
+ main
+ package(aid)
+ timeline(username)
+ notifications
+ timeline
+ stargazers
+ followers(username)
+ following(username)
+ update(aid, reversion)
+ updates(aid)
+ comment(aid, nth)
+ plugins
GitApk package tree 结构类似于这样
系统工具/ # 分类对于应用来说,它支持
dir/ # 将作为应用的「简单名」使用
README.md # readme
screenshots.yml # screenshots
metadata.yml # metadata
latest # latest reversion
issue # comment board issue no
update/
0.1.0/
reversion
metadata.yml
README.md
Foo/
bar/
# ...
gekyll.yml # 包含各种选项的文件
aid、package、description、author、name、readme、icon、screenshots、created、updated、issue、latest 字段aid、package、name 是必须的,生成结果作为默认 Tree对于更新,支持
reversion、minsdk、install、created 字段GitApk 会占用一个源作为自己的「默认 Tree」,这个源要包含
/r.html 文件来进行重定向GitApk 也会占用每个用户的一个源作为自己的「用户元数据源」
GitApk 渲染时要能分「获取 Gitea Comments 统计数据」、「生成 App 视图」、「生成应用别名跳转」、「生成分类」、「生成 rank 排行分类」、「生成分类索引」、「生成主页」、「生成索引」、「生成元数据」 阶段
用户元数据
MR 默认为 GitApk-Metadata生成元数据:
/:username/$MR/raw/branch/master/README.md
/:username/$MR/raw/branch/master/nickname
/:username/$MR/raw/branch/master/avatar
/:username/$MR/raw/branch/master/stars
/:username/$MR/issues/1
/metadata/reversion.csv默认 Tree 的
/metadata/package.csv
/metadata/name.csv
/metadata/author.csv
/metadata/description.csv
/metadata/apps.json
/metadata/app/:package.json
/metadata/updates.json
/metadata/updates/:package/:reversion.json
index.html 应该重定向到 r.html?type=index
其他操作都必须由 r.html 进行,动态的重定向到需要的 HTML 那里r.html 接受 url 参数 type 来基于 JavaScript 进行动态重定向到指定视图钦定有这些默认派发视图
+ about
+ doc
+ index
+ comments(aid)
+ user(username)
+ userlist
+ category(name)
+ categories
+ main
+ package(aid)
+ timeline(username)
+ notifications
+ timeline
+ stargazers
+ followers(username)
+ following(username)
+ update(aid, reversion)
+ updates(aid)
+ comment(aid, nth)
+ plugins
韦小宝
Photo
也需要了解一下 Android 使用的 FreeType (选学)以及 Pango、HarfBuzz(选学)
你会知道为何它能这麽智能的处理换行,而且是对「所有语言」!
你会知道为何它能这麽智能的处理换行,而且是对「所有语言」!