space-case-templates
v1.0.13
Published
a string templater.
Downloads
205
Readme
Space-Case-Templates
easy string templates
note: everything here is subject to change. eventually the plug wrappers will support inline javascript RegExp which will make templating more expressive and standardized.
Example Usage
Bring the Templator class into your project:
#!/usr/bin/env node
let Templater = require('space-case-templates').Templater;
let t = new Templater();
Create a few plugs -- varaibles that you will use to hydrate your template:
let plugs = {
'classname': 'Baked Potato',
'anotherClassname': 'bacon service.test blah.blah-blah_blah'
}
Create your template:
let template = `
no spaces: ~classname~
with spaces: ~anotherClassname ~
hyphenated: ~anotherClassname-~
hpyhenated + lowercase: ~anotherClassname-\\~
underscore-separated upper case: ~anotherClassname_/~
upper case preserve spacing ~anotherClassname! /~
no spaces uppercase: ~anotherClassname/~
capitalize first: ~anotherClassname^~
camel case: ~anotherClassname^^~
pascal case: ~anotherClassname^^^~
this var doesn't exist: ~yetAnotherClassname~
`;
See what it does:
console.log(t.plug(template, plugs));
output:
no spaces: BakedPotato
with spaces: bacon service test blah blah blah blah
hyphenated: bacon-service-test-blah-blah-blah-blah
hpyhenated + lowercase: bacon-service-test-blah-blah-blah-blah
underscore-separated upper case: BACON_SERVICE_TEST_BLAH_BLAH_BLAH_BLAH
upper case preserve spacing BACON SERVICE.TEST BLAH.BLAH-BLAH_BLAH
no spaces uppercase: BACONSERVICETESTBLAHBLAHBLAHBLAH
capitalize first: Baconservicetestblahblahblahblah
camel case: baconServiceTestBlahBlahBlahBlah
pascal case: BaconServiceTestBlahBlahBlahBlah
this var doesn't exist: ~yetAnotherClassname~
Explanation
Each variable reference in the template is has a wrapper: '~' e.g.: ~myVariable~
The variable reference can specify a case modifier immediately before the end of the wrapper:
| case | modifier | example reference | |------------------|----------|-------------------| | all uppercase | / | ~myVar/~ | | all lowercase | \ | ~myVar\~ | | capitalize first | ^ | ~myVar^~ | | camel case | ^^ | ~myVar^^~ | | pascal case | ^^^ | ~myVar^^^~ |
A space modifier may be inserted before the case modifier.
Space modofiers replace the symbols in the following RegExp: /[\s.,_-]/g
Except forthe 'preserve spacing'space modifier, each modifer replaces all of the matches to the above RegExp with the symbol modifier:
Review the example usage above and it should make sense.
| symbol | description | |----------|-------------------| | ' ' | space | | '.' | dot | | ',' | comma | | '_' | underscore | | '-' | dash | | '! ' | preserve spacing |
if a space modifier is not provided all spaces will be removed from the variable
so if the value of ~myval~ is 'this is my var', then the text inserted in the template will be 'thisismyvar'.
to keep spacing in the above variable you'd say ~myval! ~. (the preserve spacing symbol).