{"id":19364277,"url":"https://github.com/mity/mustache4c","last_synced_at":"2025-04-23T14:30:44.925Z","repository":{"id":152121428,"uuid":"101207338","full_name":"mity/mustache4c","owner":"mity","description":"C {{mustache}} parser library.","archived":false,"fork":false,"pushed_at":"2024-01-24T08:52:44.000Z","size":105,"stargazers_count":20,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T15:42:55.015Z","etag":null,"topics":["c","library","mit-license","mustache","parser"],"latest_commit_sha":null,"homepage":"","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/mity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2017-08-23T17:27:35.000Z","updated_at":"2025-03-15T10:01:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"315a6c25-550e-402d-8eb1-fae5ade749fc","html_url":"https://github.com/mity/mustache4c","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mity%2Fmustache4c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mity%2Fmustache4c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mity%2Fmustache4c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mity%2Fmustache4c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mity","download_url":"https://codeload.github.com/mity/mustache4c/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250451579,"owners_count":21432851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","library","mit-license","mustache","parser"],"created_at":"2024-11-10T07:36:54.183Z","updated_at":"2025-04-23T14:30:42.501Z","avatar_url":"https://github.com/mity.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Mustache4C Readme\n\n* Home: https://github.com/mity/mustache4c\n\n\n## What is {{mustache}}\n\n[{{mustache}}] is logic-less template system. The term \"logic-less\" means\nit lacks any explicit `if` or `else` conditionals or `for` loops, however both\nlooping and conditional evaluation can be achieved using section tags\nprocessing lists.\n\nIt is named {{mustache}} because of heavy use of curly braces (`{` and `}`)\nwhich resemble a sideways mustache.\n\n[{{mustache(5)}}][man5] can provide you an idea about {{mustache}} capabilities\nand its syntax. More advanced use and understanding can be reached if you\nimmerse in [{{mustache}} official specification][spec].\n\n\n## What is Mustache4C\n\nMustache4C is C implementation of {{mustache}} parser and processor,\nintended mainly for embedding in other C/C++ code.\n\nNote it does not enforce any explicit data structures for data. Many other\nimplementations assume some particular data storage (typically JSON) which is\nready and provided before the template processing begins.\n\nInstead of that, Mustache4C asks the application for any data referred\nfrom the template via some callback functions, and Mustache4C does not\nassume anything but tree hierarchy of those data and that each node in the\ntree may be represented with a single opaque pointer (`void*`).\n\nThis even allows the application to generate the data on the fly, or retrieve\nit from a database instead of getting and preparing whole data set beforehand\nin the computer memory.\n\nA documentation of its API is currently only available directly in the [header\nfile `mustache.h`][mustache.h].\n\n\n## Current Status\n\n### Specification Conformance\n\nMustache4C is compliant to [{{mustache}} specification 1.3.0][spec].\n\n * [x] **Variables** (`{{foo}}`, `{{{bar}}}`):\n       Implemented. All [spec tests][spec-interpolation] are passing.\n\n * [x] **(Regular) Sections**  (`{{#foo}} ... {{/foo}}`):\n       Implemented. All [spec tests][spec-sections] are passing.\n\n * [x] **Inverted Sections** (`{{^foo}} ... {{/foo}}`):\n       Implemented. All [spec tests][spec-inverted] are passing.\n\n * [x] **Comments** (`{{! foo bar }}`):\n       Implemented. All [spec tests][spec-comments] are passing.\n\n * [x] **Partials** (`{{\u003efoo}}`):\n       Implemented. All [spec tests][spec-partials] are passing.\n\n * [x] **Set Delimiter** (`{{=\u003c% %\u003e=}}`):\n       Implemented. All [spec tests][spec-delimiters] are passing.\n\n### Extensions\n\nCurrently none.\n\n\n### Note about Lambdas\n\nThe design of Mustache4C in general supports generating or retrieving some data\nin run-time, which more or less allows application to support lambda. But such\nimplementation is and will be on the application using Mustache4C, and the\nimplementation likely shall be limited to things needed by the application.\n\nFull lambda support as seen in many modern scripting languages is not and\nwill not be supported by Mustache4C.\n\n\n## License\n\nMustache4C is covered with MIT license, see the file `LICENSE.md`.\n\n\n## Reporting Bugs\n\nIf you encounter any bug, please be so kind and report it. Unheard bugs cannot\nget fixed. You can submit bug reports here:\n\n* https://github.com/mity/mustache4c/issues\n\n\n\n\n[{{mustache}}]: https://mustache.github.io/\n[man5]: https://mustache.github.io/mustache.5.html\n[spec]: https://github.com/mustache/spec\n[spec-comments]: https://github.com/mustache/spec/blob/master/specs/comments.yml\n[spec-delimiters]: https://github.com/mustache/spec/blob/master/specs/delimiters.yml\n[spec-interpolation]: https://github.com/mustache/spec/blob/master/specs/interpolationv.yml\n[spec-inverted]: https://github.com/mustache/spec/blob/master/specs/inverted.yml\n[spec-partials]: https://github.com/mustache/spec/blob/master/specs/partials.yml\n[spec-sections]: https://github.com/mustache/spec/blob/master/specs/sections.yml\n[spec-lambdas]: https://github.com/mustache/spec/blob/master/specs/~lambdas.yml\n[mustache.h]: https://github.com/mity/mustache4c/blob/master/src/mustache.h\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmity%2Fmustache4c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmity%2Fmustache4c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmity%2Fmustache4c/lists"}