27 releases (14 breaking)
new 0.15.1 | Nov 1, 2024 |
---|---|
0.14.0 | Oct 21, 2024 |
0.11.0 | Jul 19, 2024 |
0.6.0 | Mar 2, 2024 |
0.2.1 | Nov 11, 2023 |
#27 in Template engine
6,915 downloads per month
Used in 7 crates
(4 directly)
230KB
6K
SLoC
markup_fmt is a configurable HTML, Vue, Svelte, Astro, Angular, Jinja, Twig, Nunjucks and Vento formatter.
Basic Usage
You can format source code string by using format_text
function.
use markup_fmt::{config::FormatOptions, format_text, Language};
let options = FormatOptions::default();
assert_eq!("<div class=\"container\"></div>\n", &format_text(
"<div class=container></div>",
Language::Html,
&options,
|code, _| Ok::<_, std::convert::Infallible>(code.into()),
).unwrap());
For detailed documentation of configuration, please refer to Configuration on GitHub.
If there're syntax errors in source code, it will return [Err
]:
use markup_fmt::{config::FormatOptions, format_text, FormatError, Language, SyntaxError};
let options = FormatOptions::default();
assert!(matches!(
format_text(
"<div>",
Language::Html,
&options,
|code, _| Ok::<_, std::convert::Infallible>(code.into()),
).unwrap_err(),
FormatError::Syntax(SyntaxError { .. })
));
External formatter can return [Err
] as well.
This error will be aggregated and returned in FormatError::External
:
use markup_fmt::{config::FormatOptions, format_text, FormatError, Language};
struct ExternalFormatterError;
let options = FormatOptions::default();
assert!(matches!(
format_text(
"<script>a</script>",
Language::Html,
&options,
|_, _| Err(ExternalFormatterError),
).unwrap_err(),
FormatError::External(errors) if !errors.is_empty()
));
Dependencies
~3MB
~45K SLoC