Ribboncurls is a Mustache template rendering engine written in Rust.
There is both a Rust Ribboncurls library and Ribboncurls CLI tool, depending on your needs. You can read more about those specific projects in their respective README.md files.
Note: Ribboncurls library public API is subject to change, so use with caution.
We run the mustache spec tests against the Ribboncurls lib and we are passing all 133 of 133 tests.
Tests
✅ comments::inline✅ comments::standalone
✅ comments::multiline_standalone
✅ comments::variable_name_collision
✅ comments::multiline
✅ comments::indented_inline
✅ comments::indented_standalone
✅ comments::indented_multiline_standalone
✅ comments::surrounding_whitespace
✅ comments::standalone_line_endings
✅ comments::standalone_without_previous_line
✅ comments::standalone_without_newline
✅ delimiters::pair_behavior
✅ delimiters::pair_with_padding
✅ delimiters::indented_standalone_tag
✅ delimiters::outlying_whitespace_inline
✅ delimiters::special_characters
✅ delimiters::standalone_tag
✅ interpolation::ampersand_context_miss_interpolation
✅ delimiters::surrounding_whitespace
✅ delimiters::standalone_without_newline
✅ delimiters::standalone_without_previous_line
✅ interpolation::ampersand
✅ delimiters::inverted_sections
✅ delimiters::standalone_line_endings
✅ delimiters::post_partial_behavior
✅ interpolation::ampersand_integer_interpolation
✅ delimiters::sections
✅ interpolation::ampersand_standalone
✅ interpolation::ampersand_decimal_interpolation
✅ interpolation::ampersand_with_padding
✅ interpolation::ampersand_null_interpolation
✅ interpolation::basic_context_miss_interpolation
✅ interpolation::ampersand_surrounding_whitespace
✅ interpolation::basic_null_interpolation
✅ interpolation::dotted_names_broken_chain_resolution
✅ interpolation::basic_decimal_interpolation
✅ interpolation::basic_integer_interpolation
✅ interpolation::dotted_names_arbitrary_depth
✅ interpolation::dotted_names_broken_chains
✅ interpolation::dotted_names_ampersand_interpolation
✅ interpolation::basic_interpolation
✅ delimiters::partial_inheritence
✅ interpolation::dotted_names_basic_interpolation
✅ interpolation::dotted_names_context_precedence
✅ interpolation::implicit_iterators_basic_integer_interpolation
✅ interpolation::html_escaping
✅ interpolation::dotted_names_initial_resolution
✅ interpolation::implicit_iterators_triple_mustache
✅ interpolation::interpolation_surrounding_whitespace
✅ interpolation::implicit_iterators_ampersand
✅ interpolation::dotted_names_triple_mustache_interpolation
✅ interpolation::interpolation_standalone
✅ interpolation::implicit_iterators_basic_interpolation
✅ interpolation::interpolation_with_padding
✅ interpolation::implicit_iterators_html_escaping
✅ interpolation::triple_mustache
✅ interpolation::no_interpolation
✅ interpolation::triple_mustache_surrounding_whitespace
✅ interpolation::triple_mustache_context_miss_interpolation
✅ interpolation::triple_mustache_standalone
✅ interpolation::triple_mustache_integer_interpolation
✅ interpolation::triple_mustache_null_interpolation
✅ interpolation::triple_mustache_with_padding
✅ interpolation::triple_mustache_decimal_interpolation
✅ inverted::context_misses
✅ inverted::context
✅ inverted::dotted_names_truthy
✅ inverted::falsey
✅ inverted::dotted_names_broken_chains
✅ inverted::empty_list
✅ inverted::dotted_names_falsey
✅ inverted::list
✅ inverted::doubled
✅ inverted::indented_inline_sections
✅ inverted::internal_whitespace
✅ inverted::nested_falsey
✅ inverted::padding
✅ inverted::null_is_falsey
✅ inverted::standalone_line_endings
✅ inverted::standalone_indented_lines
✅ inverted::nested_truthy
✅ inverted::standalone_lines
✅ inverted::truthy
✅ inverted::standalone_without_previous_line
✅ partials::failed_lookup
✅ inverted::standalone_without_newline
✅ inverted::surrounding_whitespace
✅ partials::standalone_without_previous_line
✅ partials::basic_behavior
✅ partials::context
✅ partials::padding_whitespace
✅ partials::inline_indentation
✅ sections::dotted_names_broken_chains
✅ sections::dotted_names_falsey
✅ partials::standalone_line_endings
✅ partials::standalone_indentation
✅ partials::nested
✅ partials::surrounding_whitespace
✅ sections::dotted_names_truthy
✅ partials::standalone_without_newline
✅ partials::recursion
✅ sections::context
✅ sections::empty_list
✅ sections::falsey
✅ sections::context_misses
✅ sections::doubled
✅ sections::implicit_iterator_html_escaping
✅ sections::implicit_iterator_decimal
✅ sections::implicit_iterator_root_level
✅ sections::implicit_iterator_ampersand
✅ sections::implicit_iterator_string
✅ sections::implicit_iterator_integer
✅ sections::implicit_iterator_array
✅ sections::indented_standalone_lines
✅ sections::implicit_iterator_triple_mustache
✅ sections::list
✅ sections::indented_inline_sections
✅ sections::internal_whitespace
✅ sections::padding
✅ sections::deeply_nested_contexts
✅ sections::standalone_lines
✅ sections::nested_falsey
✅ sections::parent_contexts
✅ sections::standalone_line_endings
✅ sections::null_is_falsey
✅ sections::list_contexts
✅ sections::standalone_without_newline
✅ sections::surrounding_whitespace
✅ sections::nested_truthy
✅ sections::variable_test
✅ sections::truthy
✅ sections::standalone_without_previous_line
This project and everyone participating in it is governed by the Tinted Theming Code of Conduct.
Ribboncurls is licensed under the MPL-2.0 license.
This project includes third-party code licensed under the MPL-2.0 license. See the THIRD_PARTY_LICENSES file for details.