aboutsummaryrefslogtreecommitdiff
path: root/semantic/tasks/docs/metadata.js
diff options
context:
space:
mode:
Diffstat (limited to 'semantic/tasks/docs/metadata.js')
-rw-r--r--semantic/tasks/docs/metadata.js138
1 files changed, 0 insertions, 138 deletions
diff --git a/semantic/tasks/docs/metadata.js b/semantic/tasks/docs/metadata.js
deleted file mode 100644
index bfc8630..0000000
--- a/semantic/tasks/docs/metadata.js
+++ /dev/null
@@ -1,138 +0,0 @@
-
-/*******************************
- Summarize Docs
-*******************************/
-
-var
- // node dependencies
- console = require('better-console'),
- fs = require('fs'),
- YAML = require('yamljs')
-;
-
-var data = {};
-
-/**
- * Test for prefix in string.
- * @param {string} str
- * @param {string} prefix
- * @return {boolean}
- */
-function startsWith(str, prefix) {
- return str.indexOf(prefix) === 0;
-};
-
-function inArray(needle, haystack) {
- var length = haystack.length;
- for(var i = 0; i < length; i++) {
- if(haystack[i] == needle) return true;
- }
- return false;
-}
-
-/**
- * Parses a file for metadata and stores result in data object.
- * @param {File} file - object provided by map-stream.
- * @param {function(?,File)} - callback provided by map-stream to
- * reply when done.
- */
-function parser(file, callback) {
- // file exit conditions
- if(file.isNull()) {
- return callback(null, file); // pass along
- }
-
- if(file.isStream()) {
- return callback(new Error('Streaming not supported'));
- }
-
- try {
-
- var
- /** @type {string} */
- text = String(file.contents.toString('utf8')),
- lines = text.split('\n'),
- filename = file.path.substring(0, file.path.length - 4),
- key = 'server/documents',
- position = filename.indexOf(key)
- ;
-
- // exit conditions
- if(!lines) {
- return;
- }
- if(position < 0) {
- return callback(null, file);
- }
-
- filename = filename.substring(position + key.length + 1, filename.length);
-
- var
- lineCount = lines.length,
- active = false,
- yaml = [],
- categories = [
- 'UI Element',
- 'UI Global',
- 'UI Collection',
- 'UI View',
- 'UI Module',
- 'UI Behavior'
- ],
- index,
- meta,
- line
- ;
-
- for(index = 0; index < lineCount; index++) {
-
- line = lines[index];
-
- // Wait for metadata block to begin
- if(!active) {
- if(startsWith(line, '---')) {
- active = true;
- }
- continue;
- }
- // End of metadata block, stop parsing.
- if(startsWith(line, '---')) {
- break;
- }
- yaml.push(line);
- }
-
-
- // Parse yaml.
- meta = YAML.parse(yaml.join('\n'));
- if(meta && meta.type && meta.title && inArray(meta.type, categories) ) {
- meta.category = meta.type;
- meta.filename = filename;
- meta.url = '/' + filename;
- meta.title = meta.title;
- // Primary key will by filepath
- data[meta.element] = meta;
- }
- else {
- // skip
- // console.log(meta);
- }
-
-
- }
-
- catch(error) {
- console.log(error, filename);
- }
-
- callback(null, file);
-
-}
-
-/**
- * Export function expected by map-stream.
- */
-module.exports = {
- result : data,
- parser : parser
-};