4 个版本
0.2.1 | 2024 年 3 月 15 日 |
---|---|
0.2.0 | 2023 年 12 月 4 日 |
0.1.1 | 2023 年 9 月 17 日 |
0.1.0 | 2023 年 9 月 17 日 |
0.1.0-rc0 |
|
#266 in 文件系统
每月 138 次下载
515KB
14K SLoC
包含什么?
- 库:Wiki.js 完整 GraphQL API 的 Rust 绑定以及通过 REST API 的资产上传和下载。 可用,但未经实战测试
- CLI:用于编辑页面等的命令行客户端。 可用,但尚未完成
- 文件系统:一个可以挂载您的维基并在本地工作的 FUSE 文件系统。 尚不可用,处于开发中
库
该库基本上提供了一个结构 Api
,您可以将其提供给 Wiki.js 实例的 URL 和凭证,并且它公开了所有不同 GraphQL 查询和变异以及通过 REST API 的资产上传和下载的功能。有关详细信息,请参阅 文档,否则这里有一个简短的示例
用法
将以下依赖项添加到您的 Cargo.toml
[dependencies]
wikijs = "0.2"
创建 Api
的实例并使用其功能
use wikijs::{Api, Credentials};
let api = Api::new(
"http://127.0.0.1:3000".to_string(),
Credentials::Key("my-api-key".to_string()),
).unwrap();
println!("{:?}", api.page_get(1).unwrap());
CLI
此包附带一个名为 wikijs
的命令行工具,可以直接从 CLI 与您的 Wiki.js 实例交互。除了公开库功能外,它还提供了编辑页面等附加功能。
构建
cargo build --features=cli
安装
CLI 通过 cargo 打包,以及 Debian 和 AUR 软件包,有关详细信息,请参阅 安装。
用法
工具从参数或环境变量中获取 URL 和凭证。对于后者选项,请使用以下内容
export WIKI_JS_BASE_URL=https://wiki.mydomain.com
export WIKI_JS_API_KEY=MY-SUPER-SECRET-API-KEY
或者对于密码认证使用
export WIKI_JS_USERNAME="USERNAME or EMAIL"
export WIKI_JS_PASSWORD="PASSWORD"
注意,如果您使用的是默认认证提供程序以外的其他认证提供程序,例如 LDAP,您必须将变量 WIKI_JS_AUTH_PROVIDER
设置为其 UUID。
然后您可以创建一个名为 test
的页面,列出页面并使用以下方法编辑它:
wikijs page create test
wikijs page list
wikijs page edit <ID>
其中 ID
在 页面列表
输出中找到。
文件系统
警告:目前尚不可用!请小心!
如果您想对此进行PR,请通过问题进行协调,因为我在此正在重构此代码,以添加缓存层并包含资源。
此crate还提供了名为 wikifs
的FUSE文件系统,以将您的Wiki.js实例挂载到本地,并使用您喜欢的任何程序查看和操作它。
构建
cargo build --features=fuse
安装
cargo install wikijs --features=fuse
用法
工具从参数或环境变量中获取 URL 和凭证。对于后者选项,请使用以下内容
export WIKI_JS_BASE_URL=https://wiki.mydomain.com
export WIKI_JS_API_KEY=MY-SUPER-SECRET-API-KEY
然后您可以这样挂载文件系统
mkdir /tmp/wikijs
wikifs /tmp/wikijs
然后在另一个终端中使用它
cd /tmp/wikijs
ls
cat test.md
前提是您在wiki中有位于 /test
的 markdown
页面。
安装
这些说明目前仅适用于CLI,因为FUSE文件系统尚未准备好发布。
Cargo
运行以下命令从 crates.io 安装CLI
cargo install wikijs --features=cli
Arch
CLI可在 AUR 上找到。
Debian和Ubuntu
CLI可通过 deb.gierens.de 获得。GPG公钥位于此存储库下的 deb.asc。
首先确保您有 gpg
命令,如果没有,请通过以下方式安装它
sudo apt update
sudo apt install -y gpg
然后通过以下方式安装 wikijs-rs
sudo mkdir -p /etc/apt/keyrings
wget -qO- https://raw.githubusercontent.com/gierens/wikijs-rs/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list
sudo chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list
sudo apt update
sudo apt install -y wikijs-rs
贡献
请使用小的提交,每次只更改单个模块,并根据 conventional commits 命名它们。
特别容易贡献的两个部分,尤其是对于初学者,是编写docstrings和集成测试。除此之外,CLI还需要实现许多库函数。
请先检查问题和PR,也许您可以创建一个问题或草案PR,以便我们可以协调工作。这对于FUSE文件系统尤其重要,因为我在此正在重构它。
测试
由于此代码依赖于Wiki.js,因此位于 tests/ 的集成测试无法在没有它的条件下进行。因此,使用 docker-compose.yml 运行本地实例,该实例在端口80上。此设置也用于CI工作流程。请注意,许多测试假设wiki是新的,没有页面,没有其他内容...这就是为什么没有Docker卷,这样每次重建都会丢失所有以前的数据。这也意味着在测试时,您应该确保自己从实例中删除了所有内容。
此外,测试还假设wiki具有以下管理员凭据
- 电子邮件:
admin@admin.com
- 密码:
password
要自动在wiki初始启动时设置这些凭据,您可以使用 scripts/finalize_wiki_setup.sh,它还假设wiki在 http://127.0.0.1:80
上运行。
许可
依赖项
~5–23MB
~338K SLoC