Skip to content

Latest commit

 

History

History
35 lines (29 loc) · 1.36 KB

README.md

File metadata and controls

35 lines (29 loc) · 1.36 KB

liquidpp

C++ version of the Liquid Markup Language. It is build on "Modern C++" techniques (C++14).

Usage

liquidpp::Context c;
c.set("name", "Donald Drumpf");
auto rendered = liquidpp::render("Hello {{name}}!", c);
REQUIRE("Hello Donald Drumpf!" == rendered);

Features

  • Extendable with your own value types
  • Extendable with your own reflection/container types (support for std::vector, std::map, std::tuple, boost::variant, boost::property_tree, RapidJSON and Google ProtoBuf included)
  • Fast rendering (you can cache parsed templates and context objects)
  • Optimized for speed (no regular expressions and few allocations)

Requirements

  • cmake
  • C++14 compiler + STL (GCC, CLANG or MSVC 2015)
  • BOOST (only header: lexical_cast, variant, optional, container)
  • CATCH Unit Test Framework (shipped)
  • C++17 string_view (shipped version is used if not available on your system)

Status

This software has beta state but supports nearly all features of the original Ruby version of the Liquid Markup Language.

  • on Travis-CI: Travis Build Status
  • on AppVeyor: AppVeyor Build Status