Skip to content

Commit

Permalink
Merge pull request #8 from floatplane/readme
Browse files Browse the repository at this point in the history
Update README.md
  • Loading branch information
floatplane authored Jul 8, 2024
2 parents 7567e3b + 58a7e0b commit 9fbf730
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 12 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# Ministache

A spec-complete implementation of the [Mustache](https://mustache.github.io/) templating language for Arduino. A sane alternative to building up complex strings via concatenation and custom code. Very useful for embedded web servers!
A spec-complete implementation of the [Mustache](https://mustache.github.io/) template language for Arduino. The best way to generate complex text content such as HTML, with full support for all Mustache features and 100% test coverage. A sane alternative to building up complex strings via concatenation and custom code. Very useful for embedded web servers!

## Features

Expand Down
18 changes: 12 additions & 6 deletions examples/partials/partials.ino
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,24 @@ void setup() {
JsonDocument data;
deserializeJson(data, json);

// Create a template string that renders the data for a single person. This is a *partial*.
String personString = "Name: {{name}}\tRole: {{role}}\n";
// Create a template that renders the data for a single person. This is a *partial*.
auto personTemplate = "Name: {{name}}\tRole: {{role}}\n";

// Create a template string that renders the data for all people. This is the main template.
// Note that it loops over a field called "people" and includes the partial "person" for each of
// Create a template that renders the data for all people. This is the main template.
// Note that it loops over a data field called "people", and includes the partial "person" for each of
// them.
String reportString = "People report:\n{{#people}}{{> person}}{{/people}}";
auto reportTemplate = R"""(
People report:
{{#people}}
{{> person}}
{{/people}}
)""";

// Render the template with the data. The third argument is the partials list. This
// defines how to map a partial reference like "person" to a particular template
// ("personString").
String output = ministache::render(reportString, data, {{"person", personString}});
ministache::PartialList partials = {{"person", personTemplate}};
auto output = ministache::render(reportTemplate, data, partials);

// Print the result
Serial.println(output);
Expand Down
4 changes: 2 additions & 2 deletions library.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "Ministache",
"version": "1.0.0",
"description": "Ministache is a small, fast and spec-complete implementation of the Mustache templating language for Arduino. All core Mustache tags are supported: interpolation, partials, sections, inverted sections, custom delimiters, and comments.",
"version": "1.0.1",
"description": "A small, fast and spec-complete implementation of the Mustache template language for Arduino, supporting interpolation, partials, sections, inverted sections, custom delimiters, and comments.",
"keywords": ["mustache", "moustache", "text", "text processor", "template", "logic-less", "html"],
"repository": {
"type": "git",
Expand Down
6 changes: 3 additions & 3 deletions library.properties
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name=Ministache
version=1.0.0
version=1.0.1
author=Brian Sharon <[email protected]>
maintainer=Brian Sharon <[email protected]>
sentence=Complete implementation of a Mustache template processor for Arduino
paragraph=Ministache is a small, fast and spec-complete implementation of the Mustache templating language for Arduino. All core Mustache tags are supported: interpolation, partials, sections, inverted sections, custom delimiters, and comments.
sentence=Mustache template engine for Arduino and ESP32 - render HTML templates dynamically
paragraph=A small, fast and spec-complete implementation of the Mustache template language for Arduino, supporting interpolation, partials, sections, inverted sections, custom delimiters, and comments.
category=Data Processing
url=https://github.com/floatplane/ministache
architectures=*
Expand Down

0 comments on commit 9fbf730

Please sign in to comment.