6个版本
0.1.0-alpha.6 | 2022年1月19日 |
---|---|
0.1.0-alpha.5 | 2022年1月17日 |
0.1.0-alpha.4 | 2022年1月13日 |
#345 in 模板引擎
100KB
458 行
template-eyre
用于处理panic和eyre::Report
的错误报告器,支持handlebars模板。
是否曾经使用过eyre并觉得现有的处理器过于无聊或复杂?这个crate让您能够在几秒钟内自定义错误报告并添加自定义字段。
特性
- 由Handlebars驱动的错误报告
- 颜色支持
- 自定义缩进支持
- 合理的内置处理器
- 堆栈跟踪支持
- panic处理器
- 自定义字段支持
编写自己的模板
这个crate包含两个模板Hook::simple
和Hook::colored_simple
,但您也可以轻松地创建自己的模板!
首先,通过阅读handlebars指南开始。Handlebars是一种简单的模板语言,所以这不会很难。
接下来,开始编写自己的模板!您可以从前内置模板中获得一些灵感。
注意,这个crate为您提供了一些实用的助手。此外,这个crate所依赖的handlebars
crate也有一些自定义助手。
示例
可以使用如下模板构建一个最小的处理器
Oh no, this program crashed!
{{style "red" error}}
{{*set multi=(gt (len sources) 1)}}
{{#each sources}}
{{#if @first}}
{{~style "dim" "Caused by:"}}
{{/if}}
{{~indent (_if @root.multi @index null) (style "yellow" this)}}
{{/each}}
{{style "cyan" "Please report this issue to ..."}}
然后您将获得一个定制的错误报告
额外助手
style
助手
着色输出。样式应使用“点”形式编写。
有关详细信息,请参阅console的文档。
例如,{{style "black.bold.on_red" error}}
indent
辅助工具
缩进一个块。
此辅助工具有三种形式
indent content
- 使用四个空格缩进内容。indent <number> content
- 在与回溯相同缩进级别的第一行之前插入一个数字。indent <string> content
- 在每一行之前插入指定的字符串。
例如,{{indent @index this}}
内联 _if
辅助工具
if
辅助工具的内联版本。
例如,{{_if success "Yay!" "Oops!"}}
set
装饰器
设置局部变量。
例如,{{*set flag=true}}
concat
辅助工具
连接字符串。
例如,{{concat "a" "b"}}
许可协议
本项目采用 MIT 许可协议 许可。
依赖关系
~4–12MB
~128K SLoC