8 个版本

0.2.4 2024年6月2日
0.2.3 2023年12月15日
0.2.2 2023年2月20日
0.2.1 2022年10月1日
0.1.0 2021年12月20日

#207 in 网页编程

Download history 10/week @ 2024-05-02 8/week @ 2024-05-09 23/week @ 2024-05-16 44/week @ 2024-05-23 219/week @ 2024-05-30 283/week @ 2024-06-06 167/week @ 2024-06-13 151/week @ 2024-06-20 104/week @ 2024-06-27 170/week @ 2024-07-04 109/week @ 2024-07-11 111/week @ 2024-07-18 115/week @ 2024-07-25 128/week @ 2024-08-01 100/week @ 2024-08-08 101/week @ 2024-08-15

458 次每月下载
3 crates 中使用

GPL-3.0-or-later

110KB
2K SLoC

mwtitle

crates.io docs.rs docs (main) pipeline status coverage report

mwtitle 是一个用于解析、归一化和格式化 MediaWiki 页面标题的库。它主要是 MediaWiki 中的 MediaWikiTitleCodec 类的移植,并通过了 MediaWiki 测试套件。

开始使用最简单的方法是创建一个从 TitleCodecsiteinfo API 请求。

let url = "https://en.wikipedia.org/w/api.php\
           ?action=query&meta=siteinfo\
           &siprop=general|namespaces|namespacealiases|interwikimap\
           &formatversion=2&format=json";
let resp: SiteInfoResponse = reqwest::get(url).await?.json().await?;
let codec = TitleCodec::from_site_info(resp.query)?;
let title = codec.new_title("Talk:Main Page#Section 1")?;
assert_eq!(title.namespace(), 1);
assert_eq!(title.dbkey(), "Main_Page");
assert_eq!(title.fragment(), Some("Section 1"));
assert_eq!(codec.to_pretty(&title), "Talk:Main Page".to_string());
assert_eq!(
    codec.to_pretty_with_fragment(&title),
    "Talk:Main Page#Section 1".to_string()
);

还可以从来自 Wikimedia 数据的 JSON siteinfo-namespaces.json 或压缩的 siteinfo-namespaces.json.gz 中创建一个 TitleCodec。这需要启用额外的 utils 功能。

贡献

mwtitlemwbot-rs 项目 的一部分。我们一直在寻找新的贡献者,如果你感兴趣,请 联系 我们!

许可协议

本 crate 采用 GPL-3.0-or-later 许可协议发布。有关详细信息,请参阅 COPYING

依赖项

~0.5–2MB
~40K SLoC