1 个不稳定版本
0.1.0 | 2022年4月20日 |
---|
#2366 在 解析器实现
30KB
409 行
关于
Mailcap 文件是记录在 RFC 1524 中的格式,"多媒体邮件格式信息的用户代理配置机制。" 它允许软件处理那些类型的 MIME 类型。例如,以下 mailcap 行 text/html; qutebrowser '%s'; test=test -n "$DISPLAY"
将指示软件在运行图形会话时,使用 qutebrowser 打开任何 HTML 文件,并将文件替换为 '%s'
。
mailcap
是一个解析库,它查看现有的环境变量 $MAILCAPS
或循环查找 mailcap 文件可能存在的四个路径,按照重要性的顺序:/usr/local/etc/mailcap
、/usr/etc/mailcap
、/etc/mailcap
和 $HOME/.mailcap
。它从所有可用的文件构建 mailcap,重复条目将被较新的行压缩,允许 $HOME/.mailcap
成为最终决定者。
组成mailcap的条目仅包括相关的条目,即那些已经通过test
字段(如果存在)的条目。在上面的text/html
示例中,如果通过SSH运行该测试,则会失败,除非存在另一个现有的text/html
条目(或text/*
)且不需要显示服务器,否则不会存在该MIME类型的条目。
安装
将以下内容添加到您的Cargo.toml
[dependencies]
mailcap = "0.1.0"
用法
use mailcap::Mailcap;
fn main() {
let cap = Mailcap::new().unwrap();
if let Some(i) = cap.get("text/html") {
let command = i.viewer("/var/www/index.html");
assert_eq!(command, "qutebrowser '/var/www/index.html'");
}
}
也支持通配符回退。
use mailcap::Mailcap;
fn main() {
let cap = Mailcap::new().unwrap();
if let Some(i) = cap.get("video/avi") {
// if no video/avi MIME entry available
let mime_type = i.mime();
assert_eq!(mime_type, "video/*");
}
}
代码文档在此处可用:https://docs.rs/crate/mailcap/latest。
路线图
将要包含的功能可以通过当前打开的问题查看。
支持
有关项目更新,请参阅公告邮件列表;有关贡献和协作,请参阅devel邮件列表。
问题应直接提交到项目的问题跟踪器。
许可证
本项目采用GPLv3许可证。