Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/moustacheful/config-dye
A CLI tool for processing templates using nunjucks, focused on theming config files.
https://github.com/moustacheful/config-dye
cli js node nunjucks templating
Last synced: 10 days ago
JSON representation
A CLI tool for processing templates using nunjucks, focused on theming config files.
- Host: GitHub
- URL: https://github.com/moustacheful/config-dye
- Owner: moustacheful
- Created: 2018-12-31T02:38:47.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-02T19:50:15.000Z (about 2 years ago)
- Last Synced: 2024-11-08T12:09:05.473Z (2 months ago)
- Topics: cli, js, node, nunjucks, templating
- Language: JavaScript
- Homepage:
- Size: 63.5 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# config-dye
A CLI tool for processing templates using nunjucks, focused on theming.
For example, if we had an i3 configuration file
```
client.focused #FF0000 #FF0000 #333333 #FFFFFF #FF0000
client.unfocused #333333 #333333 #FF0000 #FF0000
```We could extract the colors there to a data.json file:
```json
{
"accent": "#FF0000",
"background": "#333333",
"light" "#FFFFFF"
}
```And have our config file as
```nunjucks
client.focused {{accent}} {{accent}} {{background}} {{light}} {{accent}}
client.unfocused {{background}} {{background}} {{accent}} {{accent}}
```Which will result into the first block. This allows to process many config files with the same variables under a single process pass.
### Usage
```bash
npx config-dye --path=./templates --data=data.json --dest=./.config
```This will recursively process all the `.njk` files within ./templates, and output them, applying data.json, with the same structure to ./config.
`npx` will pull all the dependencies and execute with the given parameters. It will always do this if you're using it as is, so if you want to avoid that step, you can also do
```bash
npm i -g config-dye # Needs sudo
config-dye --path=./templates --data=data.json --dest=./.config
```### Filters
Additionally the templating process has filters to process colors using [color](https://www.npmjs.com/package/color).
For example , for the following
```nunjucks
{{accent | lighten(0.5) | hex}}
```Results in `#FF8080`.
You can also chain more commands as necessary:```nunjucks
{{accent | lighten(0.5) | rotate(50) | hex}}
```Will result in `#FFEA80`
When processing colors, remember to finish off with the proper output format (e.g.: `hex`, `rgb`, `hsl`)
The following methods are supported
- lighten
- darken
- hsl
- rgb
- saturate
- desaturate
- rotate
- hex
- isDark
- isLight
- contrast### Templating
All [nunjucks](https://mozilla.github.io/nunjucks/templating.html) features are available.
`include` is possible, and allows for further config file organization. Keep in mind all files are relative to the one being rendered.
You can also have partials within your template files, which means they will not output directly to a file, and just exist to be included within other files. These files are prepended with an underscore `_`, e.g.: \_header.njk.