{"id":20278867,"url":"https://github.com/madladsquad/untitledtemplatingengine","last_synced_at":"2026-03-17T11:33:27.706Z","repository":{"id":37961680,"uuid":"490869155","full_name":"MadLadSquad/UntitledTemplatingEngine","owner":"MadLadSquad","description":"A templating engine powered by a lisp-like language","archived":false,"fork":false,"pushed_at":"2025-12-02T12:01:38.000Z","size":98,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-05T09:16:36.962Z","etag":null,"topics":["c","cpp","library","templating","templating-engine","templating-language"],"latest_commit_sha":null,"homepage":"https://madladsquad.com/docs/UntitledTemplatingEngine/Home","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MadLadSquad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yaml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"ko_fi":"madladsquad"}},"created_at":"2022-05-10T21:43:51.000Z","updated_at":"2025-12-02T12:01:38.000Z","dependencies_parsed_at":"2023-08-08T18:23:58.907Z","dependency_job_id":"521b1c6e-bcb0-4df8-86f2-e5cb36e25b3f","html_url":"https://github.com/MadLadSquad/UntitledTemplatingEngine","commit_stats":null,"previous_names":["madladsquad/untitledtemplatingengine"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/MadLadSquad/UntitledTemplatingEngine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadLadSquad%2FUntitledTemplatingEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadLadSquad%2FUntitledTemplatingEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadLadSquad%2FUntitledTemplatingEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadLadSquad%2FUntitledTemplatingEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MadLadSquad","download_url":"https://codeload.github.com/MadLadSquad/UntitledTemplatingEngine/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MadLadSquad%2FUntitledTemplatingEngine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30622744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T11:26:08.186Z","status":"ssl_error","status_checked_at":"2026-03-17T11:24:37.311Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cpp","library","templating","templating-engine","templating-language"],"created_at":"2024-11-14T13:26:50.400Z","updated_at":"2026-03-17T11:33:27.701Z","avatar_url":"https://github.com/MadLadSquad.png","language":"C++","readme":"# UntitledTemplatingEngine\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)\n[![Discord](https://img.shields.io/discord/717037253292982315.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)](https://discord.gg/4wgH8ZE)\n\nA C and C++ templating engine powered by a lisp-like programming language with plugin support.\n\n## Example template\nThis template showcases the whole standard library and what the language is capable of:\n```liquid\n-------------------------------------------------- STRING REPLACEMENT --------------------------------------------------\n\nThe {{ at {{ descriptors }} 0 }} {{ colour }} fox {{ at {{ actions }} a1 }} over the {{ at {{ descriptors }} 1 }} dog\n\n------------------------------------------------------ FOR LOOPS -------------------------------------------------------\n\nArrays: {{ for it {{ descriptors }} {{ func This is {{ it }}\n}} }}\n\nMaps: {{ for key val {{ actions }} {{ func Key: {{ key }}\nValue: {{ val }}\n}} }}\n\nArrays using the list function: {{ for it {{ list a b c }} {{ func {{ it }} }} }}\nMaps using the dict function: {{ for key val {{ dict a b c d e }} {{ func {{ key }}:{{ val }} }} }}\n\n----------------------------------------------------- IF STATEMENTS ----------------------------------------------------\n\n{{ if {{ == {{ value }} test }}\n    {{ func {{ test_val }} }}\n    {{ func {{ not_test_val }} }}\n}}\n\n{{ switch {{ value }}\n    test {{ func {{ test_val }} }}\n    example {{ func {{ example_val }} }}\n    {{ func {{ fallback_val }} }}\n}}\n\n{{ cond\n    {{ == {{ value }} test }}{{ func {{ test_val }} }}\n    {{ == {{ value }} example }}{{ func {{ example_val }} }}\n    {{ func {{ fallback_val }} }}\n}}\n\n----------------------------------------------------- RAW TEMPLATES ----------------------------------------------------\n\n{{ raw {{ for a arr\n    {{ func\n        {{ a }}\n    }}\n}}}}\n\n---------------------------------------------------------- END ---------------------------------------------------------\n```\nMore information about the language can be found on the \n[wiki](https://github.com/MadLadSquad/UntitledTemplatingEngine/wiki/).\n\n## Why?\nBecause not many templating engines for C and C++ support custom functions. When we first started this project, we \nneeded a templating engine for the [UVKBuildTool](https://github.com/MadLadSquad/UVKBuildTool). We first developed a\nsmall library for substituting text, but we found that too much code on the application side was written to just output\ntext with the correct formatting.\n\nAdditionally, we wanted to add a static site generator mode to the \n[UVKBuildTool](https://github.com/MadLadSquad/UVKBuildTool), for which, we needed more advanced templates.\n\n## Size and performance\nThe parser, including its header file and the whole C++ API is around 340 SLoC. The standard library is around 360 SLoC,\nwhile the C API is around 220 SLoC\n\nGiven that this library provides a language interpreter, the parser may be a bit slower than other dumb implementations.\nHowever, given that the parser is really simple and does all the parsing in 1 pass, it's safe to say that it's quite\nperformat for what it provides.\n\nAdditionally, we offer the option to replace `std::string` and `std::map` with other custom implementations, which may\nlead to massive performance gains.\n\n## Usage, installation and learning\nDocumentation can be found on the [wiki](https://github.com/MadLadSquad/UntitledTemplatingEngine/wiki/).\n","funding_links":["https://ko-fi.com/madladsquad"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadladsquad%2Funtitledtemplatingengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadladsquad%2Funtitledtemplatingengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadladsquad%2Funtitledtemplatingengine/lists"}