Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: General Purpose Templating Engine
3 points by aliasxneo on May 24, 2022 | hide | past | favorite | 8 comments
The title attempts to distill the essence of the question, however, I suspect my lack of terminology in this area may make things more difficult.

What I'm looking for is a standalone general purpose templating engine. I envision this to meet the following criteria

- Available as a single binary with a CLI interface

- Ingests common data formats (i.e. JSON, etc.)

- Exports textual data of any format

The primary use-case is not generating HTML, but rather various textual data with differing structural requirements. It's very hard to search in this space because you're inevitably met with Javascript solutions aiming to template HTML. I'd prefer not to be tied to a JS runtime and the idiosyncrasies of trying to template HTML.



Most templating engines can produce any format even if their directives are XML-like.

Taking input from JSON is probably rarer because all of them are programming language focused.

For CLI, you could combine it with things like jq (there was also something else that allowed using css selectors on JSON) and other tools like awk.

Or you could simply use PHP for a built in templating language (i.e. put <? ?> statements into whatever your file format is).


I'm not sure if it fits your description, but a while ago me and my associate made https://github.com/link-society/gotempl


Jinja2 started out as a general template engine, although most people use it to generate HTML these days. Not a single binary but really powerful and very easy to customize and extend.


You could looking to using: http://template-toolkit.org/


jq was made specifically to process JSON, and is a CLI tool.

If you're familiar with UNIX tools you could probably do a lot with the shell, sed, and awk.

Knowing Perl might be useful in this situation, too, and it's an old and stable language with a huge library of modules (CPAN).


https://docs.hofstadter.io

Built to generate anything, works on directories of files for input / output. CUE is the primary input, which means JSON & Yaml are also supported. It also supports writing custom code in the output, changing your designs and regenerating, while not losing the custom parts.


This seems promising, but a bit bloated for my use-case. For example, it's not apparent that it would be simple to go from a JSON input to say a NGINX configuration output.


Indeed, I need a one liner example. Happy to help you through that in Slack




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: