9 releases
0.2.5 | Sep 5, 2024 |
---|---|
0.2.4 | Jun 2, 2024 |
0.2.3 | Dec 15, 2023 |
0.2.2 | Feb 20, 2023 |
0.1.0 | Dec 20, 2021 |
#220 in Web programming
442 downloads per month
Used in 3 crates
115KB
2K
SLoC
mwtitle
mwtitle
is a library for parsing, normalizing and formatting MediaWiki
page titles. It is primarily a port of the MediaWikiTitleCodec class
from MediaWiki, and passes the MediaWiki test suite.
The easiest way to get started is create a TitleCodec
from a siteinfo
API request.
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()
);
It's also possible to possible to create a TitleCodec
from a JSON
siteinfo-namespaces.json
or compressed siteinfo-namespaces.json.gz
that comes from Wikimedia dumps. This requires the extra utils
feature
to be enabled.
Contributing
mwtitle
is a part of the mwbot-rs
project.
We're always looking for new contributors, please reach out
if you're interested!
License
This crate is released under GPL-3.0-or-later. See COPYING for details.
Dependencies
~0.5–2MB
~40K SLoC