Skip to content

fedor/json2text

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

json2text

json2text generate free-format text from JSON templates (e.g. HTML generation).

Install package globally:

npm install json2text -g

Tools

  • j2t [EXTENSION]: compile templates
  • j2n FILE: generate template stubs from FILE
  • j2f FILE [EXTENSION]: convers _text fields from FILE to _file fields.

How to use example

1. Define template elements

Create file with .j2.node.json extension (e.g. elements.j2.node.json). Include the following text:

[
	{
		"_name": "list",
		"style": "disc",
		"_text": "<ul style='list-style-type:%%style%%'>\n%%_text%%</ul>"
	}, {
		"_name": "item",
		"_text": "<li> %%_text%% </li>\n"
	}
]

JSON fields:

  • _name: node(s) names.
  • _text: node's templating string.
  • OPTIONAL: other fileds represent arguments with default values (e.g. style)

2. Define template layout

Create file with .j2.json extension (e.g. layout.j2.json). Include the following text:

{
	"_node": "list",
	"style": "circle",
	"_child": [
		{"_node": "item", "_child": "list item #1"},
		{"_node": "item", "_child": "list item #2"}
	]
}

JSON fields:

  • _node: element name
  • _child: (string|object|list): node content
  • OPTIONAL: other fileds represent arguments values (e.g. style = circle)

3. Compile template

Run:

j2t html

This command will search current work directory file-tree for .j2.node.json and .j2.json files and would compile .html output files (.out by default):

<ul style='list-style-type:circle'>
<li> list item #1 </li>
<li> list item #2 </li>
</ul>

Features and info

  • Each .j2.node.json and .j2.json change leads to output file(s) regeneration
  • JSON fields starts with _ (underscore) (e.g. _node, _name) are reserved for json2text future use, don't use them for attributes

TODO

  • Replace fsmonitor. Updates detection on Mac is reported to be slow. Copy & paste does not detected
  • Add flag to generate ones and exit
  • Color console print

About

Generate free-format text from JSON templates

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published