{"ref":"artifact:monstermichl-handlebarsabap","page":"/artifacts/monstermichl-handlebarsabap","json":"/artifacts/monstermichl-handlebarsabap.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"monstermichl-handlebarsabap","name":"HandlebarsABAP","artifact_type":"package","ecosystem":"abap","domain":"integration-and-messaging","origin_ring":"independent","description":{"one_line":"A single-file Handlebars templating implementation for ABAP 7.40 SP02 and up that fills a template from an ABAP structure or table, with block helpers, partials and custom helpers.","short":"Single-file Handlebars templating for ABAP 7.40 SP02 and up","what_it_solves":"Merging structured ABAP data into HTML or text templates with the built-in WWW_HTML_MERGER function module is very limited. HandlebarsABAP compiles a Handlebars template and fills it from an ABAP structure or table, resolving deeply nested structures automatically, with block helpers such as if, unless and each, partials, and custom helpers registered as class methods, function modules or forms. A template can be compiled from a string or, when stored in SMW0, from binary data so language-specific characters are not misread."},"links":{"repo":"https://github.com/monstermichl/HandlebarsABAP"},"identity":{"license":"MIT"},"source_available":true,"provides":[{"capability":"capability:document-output","what_it_does":"Compiles a Handlebars template and fills it from ABAP data, with block helpers, partials and custom helpers registered as class methods, function modules or forms.","sources":[{"url":"https://github.com/monstermichl/HandlebarsABAP","title":"monstermichl/HandlebarsABAP — README","checked":"2026-09-14","quote":"Single-file Handlebars implementation for ABAP"}]}],"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-14"},"drafted_with_ai":true,"maintainers":["actor:monstermichl"],"contributors":["actor:marcfbe","actor:monstermichl"],"changed_in":[{"version":"1.0.0","date":"2026-07-24","what_changed":"Helpers accept hash arguments, and the signature a custom helper implements changed with it: `io_instance`, `iv_name` and `ir_data` give way to an `is_options` parameter beside `it_args`.","invalidates":"Custom helper methods written against releases before 1.0.0 with the `io_instance`, `iv_name` and `ir_data` parameters.","source":{"url":"https://github.com/monstermichl/HandlebarsABAP/issues/8#issuecomment-5072874511","title":"HandlebarsABAP issue #8, the maintainer's comment on 1.0.0","checked":"2026-10-19","quote":"Support is added in version 1.0.0. This introduces a breaking change for custom helper implementations."}}]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors"},{"label":"Repository","tier":"good","evidence":"pushed 2026-08, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":"SAP_BASIS 740 and up, in its abaplint config: includes every maintained line to 816"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"good","evidence":"HandlebarsABAP workflow green, 2026-08-03"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 10 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":8,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","npm":"not published under this name","stars":8,"forks":1,"open_issues":0,"archived":false,"pushed_at":"2026-08-03","license_spdx":"MIT","org_owned":false,"default_branch":"main","created_at":"2025-12-06T08:57:05Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":1,"other_ci":false,"readme_bytes":10366,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2025-12-06","last_commit":"2026-08-03","commits":102,"contributors":2,"ci_status":"success","ci_run_at":"2026-08-03","ci_workflow":"HandlebarsABAP workflow","ci_event":"push","readme_path":"README.md","readme_sha":"b5bdc083c484cecb968044d63fdd2530f4d8eeee","repo_read":"2026-10-25","abap_syntax":{"repo":"monstermichl/HandlebarsABAP","file":"abaplint.json","url":"https://github.com/monstermichl/HandlebarsABAP/blob/HEAD/abaplint.json","version":"v740sp02","floor":"740","checked":"2026-10-26"}},"release_notes":{"license":"MIT","quotable":true,"source":{"kind":"github-releases","url":"https://github.com/monstermichl/HandlebarsABAP/releases"},"format":"github-releases","releases":[{"version":"2.0.0","date":"2026-08-02","date_source":"github","heading":"v2.0.0","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v2.0.0","sections":[{"kind":"change","heading":"Fresh stuff","items":3},{"kind":"fix","heading":"Fixes","items":7}],"hash":"8c18b98b82dfdfb0"},{"version":"1.0.1","date":"2026-07-25","date_source":"github","heading":"v1.0.1","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v1.0.1","sections":[{"kind":"change","heading":"Fresh stuff","items":1},{"kind":"fix","heading":"Fixes","items":1}],"hash":"da895c7622769bbc"},{"version":"1.0.0","date":"2026-07-24","date_source":"github","heading":"v1.0.0","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v1.0.0","sections":[{"kind":"breaking","heading":null,"items":1},{"kind":"change","heading":"Fresh stuff","items":1},{"kind":"fix","heading":"Fixes","items":2}],"hash":"1bca511c385983bc"},{"version":"0.2.4","date":"2026-03-18","date_source":"github","heading":"v0.2.4","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v0.2.4","sections":[{"kind":"change","heading":"Changes","items":1}],"hash":"4c49e49ad83673c9"},{"version":"0.2.3","date":"2026-01-04","date_source":"github","heading":"v0.2.3","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v0.2.3","sections":[{"kind":"change","heading":"Changes","items":2}],"hash":"ed37212dc984c9ef"},{"version":"0.2.2","date":"2025-12-20","date_source":"github","heading":"v0.2.2","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v0.2.2","sections":[{"kind":"change","heading":"Changes","items":1}],"hash":"9782a2b01c3b1321"},{"version":"0.2.1","date":"2025-12-16","date_source":"github","heading":"v0.2.1","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v0.2.1","sections":[{"kind":"change","heading":"Changes","items":1}],"hash":"e0d34c9e0b974ab9"},{"version":"0.2.0","date":"2025-12-12","date_source":"github","heading":"v0.2.0","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v0.2.0","sections":[{"kind":"change","heading":"Changes","items":3}],"hash":"ea18f7d6743f2336"},{"version":"0.1.1","date":"2025-12-09","date_source":"github","heading":"v0.1.1","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v0.1.1","sections":[{"kind":"change","heading":"Changes","items":1}],"hash":"8005fe186d6ed2b2"},{"version":"0.1.0","date":"2025-12-08","date_source":"github","heading":"v0.1.0","url":"https://github.com/monstermichl/HandlebarsABAP/releases/tag/v0.1.0","sections":[{"kind":"change","heading":"Changes","items":1}],"hash":"a11e7feb30bd6fd5"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:monstermichl","name":"Michel","json":"/actors/monstermichl.json"}],"contributors":[{"ref":"actor:marcfbe","name":"Marc F. Bernard","json":"/actors/marcfbe.json"},{"ref":"actor:monstermichl","name":"Michel","json":"/actors/monstermichl.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}