PotatoX / ESPTemplateProcessor

Library for the ESP8266 Arduino to process templates and stream them with the ESP8266WebServer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ESPTemplateProcessor

This library is designed to work with the ESP8266 Arduino SDK and SPIFFS.

Usage

  1. Create an HTML template. Substitutions are indicated by a keyword surrounded with % symbols, like %KEY_HERE%. Here is an example:

    <html>
      <title>%TITLE%</title>
      <body>%BODY%</body>
    </html>
  2. Upload your templates to SPIFFS. There is are instruction to do so HERE.

  3. Include the library, call SPIFFS.begin() and setup a handler.

    #include "ESPTemplateProcessor.h"
    
    ...
    
    void setup(void){
      SPIFFS.begin();
    
      ...
    
      server.on("/", handleRoot);
    }
  4. Create a callback method used to fill in substitutions. The callback is defined typedef String ProcessorCallback(const String& key);:

    String indexProcessor(const String& key) {
      Serial.println(String("KEY IS ") + key);
      if (key == "TITLE") return "Hello World!";
      else if (key == "BODY") return "It works!";
    
      return "oops";
    }
  5. Now in your handler use the processor to tie everything together:

    void handleRoot() {
      if (ESPTemplateProcessor(server).send(String("/index.html"), indexProcessor)) {
        Serial.println("SUCCESS");
      } else {
        Serial.println("FAIL");
        server.send(200, "text/plain", "page not found.");
      }
    }

Example

In the example directory is a demo showing full functionality.

About

Library for the ESP8266 Arduino to process templates and stream them with the ESP8266WebServer.


Languages

Language:C++ 81.6%Language:Arduino 16.8%Language:HTML 1.7%