diff --git a/package.json b/package.json index 4a4301ac1..4410ba2ee 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "doc:lib": "watch 'npm run doc' lib", "doc:images": "watch 'node src/modules/images.js' src/templates/docs/images", "doc:bgsize": "watch 'node src/modules/background-size.js' src/templates/docs/background-size", - "build:all": "node build.js && bash script.sh" + "build:all": "node build.js && bash script.sh", + "cson": "node src/components-cson-build.js" }, "repository": "tachyons-css/tachyons-css.github.io", "author": "mrmrs", diff --git a/src/components-cson-build.js b/src/components-cson-build.js new file mode 100644 index 000000000..bf08b9793 --- /dev/null +++ b/src/components-cson-build.js @@ -0,0 +1,42 @@ +var fs = require('fs') +var _ = require('lodash') +var path = require('path') +var glob = require('glob') +var titleize = require('titleize') +var fm = require('json-front-matter') +var rmHtmlExt = require('remove-html-extension') + +glob('src/components/**/*.html', {}, function (err, components) { + if (err) { + console.error(err) + return + } + + var cson = '".text.html":\n\n' + components.forEach(function (component) { + var prefix = rmHtmlExt(component.replace('src/components/', '')).split('/')[1] + var componentHtml = fs.readFileSync(component, 'utf8') + + var fmParsed = fm.parse(componentHtml) + var frontMatter = fmParsed.attributes || {} + + cson += ` + '${frontMatter.title || getTitle(component)}': + 'prefix': '${prefix}' + 'body': """ + ${fmParsed.body.trim()} + """ +` + }) + + console.log(cson) +}) + +function getTitle(component) { + var title = rmHtmlExt(component).replace('src/components/', '').replace(/(\/|_|-)/g, ' ') + return titleize(title) +} + +function getName(component) { + return titleize(getTitle(component.split('/')[3])) +}