1 个不稳定版本

0.1.0 2022年4月20日

#2366解析器实现

GPL-3.0-or-later

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许可证。

依赖项