aboutsummaryrefslogtreecommitdiff
path: root/docs/build/node_modules/hogan.js/bin/hulk
diff options
context:
space:
mode:
authorJacob Thornton <[email protected]>2012-01-31 13:18:34 -0800
committerJacob Thornton <[email protected]>2012-01-31 13:18:34 -0800
commit0bfbe5058d61ae93d82b09f1dff7eb30dc22426e (patch)
tree6ccf3dd9c36ff4b1f6cde5edbce21cdf0de78497 /docs/build/node_modules/hogan.js/bin/hulk
parent43cbc9440425b7c97c943690eefd14520de708e1 (diff)
parent4bd1ba4e0dc44d1d16161306576548f378ab1f8a (diff)
downloadbootstrap-0bfbe5058d61ae93d82b09f1dff7eb30dc22426e.tar.xz
bootstrap-0bfbe5058d61ae93d82b09f1dff7eb30dc22426e.zip
Merge branch '2.0-wip'
Conflicts: .gitignore LICENSE Makefile bootstrap.css bootstrap.min.css docs/assets/js/application.js docs/assets/js/google-code-prettify/prettify.css docs/index.html docs/javascript.html examples/container-app.html examples/fluid.html examples/hero.html js/bootstrap-alerts.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tabs.js js/bootstrap-twipsy.js js/tests/index.html js/tests/unit/bootstrap-modal.js js/tests/unit/bootstrap-popover.js js/tests/unit/bootstrap-tabs.js lib/forms.less lib/mixins.less lib/patterns.less lib/scaffolding.less lib/tables.less
Diffstat (limited to 'docs/build/node_modules/hogan.js/bin/hulk')
-rwxr-xr-xdocs/build/node_modules/hogan.js/bin/hulk93
1 files changed, 93 insertions, 0 deletions
diff --git a/docs/build/node_modules/hogan.js/bin/hulk b/docs/build/node_modules/hogan.js/bin/hulk
new file mode 100755
index 000000000..dd5c4a60d
--- /dev/null
+++ b/docs/build/node_modules/hogan.js/bin/hulk
@@ -0,0 +1,93 @@
+#!/usr/bin/env node
+
+/*
+ * Copyright 2011 Twitter, Inc.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var hogan = require('../lib/hogan.js'),
+ path = require('path'),
+ fs = require('fs');
+
+var specials = ['/', '.', '*', '+', '?', '|','(', ')', '[', ']', '{', '}', '\\'],
+ specialsRegExp = new RegExp('(\\' + specials.join('|\\') + ')', 'g'),
+ templates;
+
+
+// Escape special regexp characters
+function esc(text) {
+ return text.replace(specialsRegExp, '\\$1');
+}
+
+
+// Check for dirs and correct ext (<3 for windows)
+function extractFiles(args) {
+ var usage = 'USAGE: hulk ./templates/*.mustaches\n' +
+ 'NOTE: hulk supports the "*" wildcard and allows you to target specific extensions too',
+ files = [];
+
+ if (!args.length) {
+ console.log(usage);
+ process.exit(-1);
+ }
+
+ args.forEach(function (arg) {
+
+ if (/\*/.test(arg)) {
+ arg = arg.split('*');
+ return files = files.concat(
+ fs.readdirSync(arg[0] || '.')
+ .map(function (f) {
+ return new RegExp(esc(arg[1]) + '$').test(f) && path.join(arg[0], f);
+ })
+ .filter(function (f) {
+ return f;
+ })
+ );
+ }
+
+ files.push(arg);
+
+ })
+
+ return files;
+}
+
+
+// Remove utf-8 byte order mark, http://en.wikipedia.org/wiki/Byte_order_mark
+function removeByteOrderMark(text) {
+ if (text.charCodeAt(0) === 0xfeff) {
+ return text.substring(1);
+ }
+ return text;
+}
+
+
+// Write a template foreach file that matches template extension
+templates = extractFiles(process.argv.slice(2))
+ .map(function (file) {
+ var openedFile = fs.readFileSync(file, 'utf-8'), name;
+ if (!openedFile) return;
+ name = file.replace(/\..*$/, '');
+ openedFile = removeByteOrderMark(openedFile.trim());
+ return 'templates.' + name + ' = new Hogan.Template(' + hogan.compile(openedFile, { asString: 1 }) + ');';
+ })
+ .filter(function (t) {
+ return t;
+ });
+
+
+// Output templates
+if (!templates.length) return;
+console.log('var templates = {};');
+console.log(templates.join('\n')); \ No newline at end of file