mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Fixes #31 - Add support for providing prefix when scanning for tags
This commit is contained in:
parent
1ced83a177
commit
d262c1512b
@ -281,10 +281,22 @@ function buildTag(tagObject, path, taglib, dirname) {
|
|||||||
/**
|
/**
|
||||||
* @param {String} tagsConfigPath path to tag definition file
|
* @param {String} tagsConfigPath path to tag definition file
|
||||||
* @param {String} tagsConfigDirname path to directory of tags config file (should be path.dirname(tagsConfigPath))
|
* @param {String} tagsConfigDirname path to directory of tags config file (should be path.dirname(tagsConfigPath))
|
||||||
* @param {String} dir the path to directory to scan
|
* @param {String|Object} dir the path to directory to scan
|
||||||
* @param {String} taglib the taglib that is being loaded
|
* @param {String} taglib the taglib that is being loaded
|
||||||
*/
|
*/
|
||||||
function scanTagsDir(tagsConfigPath, tagsConfigDirname, dir, taglib) {
|
function scanTagsDir(tagsConfigPath, tagsConfigDirname, dir, taglib) {
|
||||||
|
var prefix;
|
||||||
|
|
||||||
|
if (typeof dir === 'object') {
|
||||||
|
prefix = dir.prefix;
|
||||||
|
dir = dir.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prefix == null) {
|
||||||
|
// no prefix by default
|
||||||
|
prefix = '';
|
||||||
|
}
|
||||||
|
|
||||||
dir = nodePath.resolve(tagsConfigDirname, dir);
|
dir = nodePath.resolve(tagsConfigDirname, dir);
|
||||||
var children = fs.readdirSync(dir);
|
var children = fs.readdirSync(dir);
|
||||||
var rendererJSFile;
|
var rendererJSFile;
|
||||||
@ -295,6 +307,8 @@ function scanTagsDir(tagsConfigPath, tagsConfigDirname, dir, taglib) {
|
|||||||
if (childFilename === 'node_modules') {
|
if (childFilename === 'node_modules') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var tagName = prefix + childFilename;
|
||||||
var tagDirname = nodePath.join(dir, childFilename);
|
var tagDirname = nodePath.join(dir, childFilename);
|
||||||
var tagFile = nodePath.join(dir, childFilename, 'marko-tag.json');
|
var tagFile = nodePath.join(dir, childFilename, 'marko-tag.json');
|
||||||
var tag = null;
|
var tag = null;
|
||||||
@ -325,7 +339,7 @@ function scanTagsDir(tagsConfigPath, tagsConfigDirname, dir, taglib) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tag = buildTag(tagDef, tagsConfigPath, taglib, tagDirname);
|
tag = buildTag(tagDef, tagsConfigPath, taglib, tagDirname);
|
||||||
tag.name = childFilename;
|
tag.name = tagName;
|
||||||
taglib.addTag(tag);
|
taglib.addTag(tag);
|
||||||
} else {
|
} else {
|
||||||
// marko-tag.json does *not* exist... checking for a 'renderer.js'
|
// marko-tag.json does *not* exist... checking for a 'renderer.js'
|
||||||
@ -363,13 +377,13 @@ function scanTagsDir(tagsConfigPath, tagsConfigDirname, dir, taglib) {
|
|||||||
|
|
||||||
tagDef.renderer = rendererJSFile;
|
tagDef.renderer = rendererJSFile;
|
||||||
tag = buildTag(tagDef, tagsConfigPath, taglib, tagDirname);
|
tag = buildTag(tagDef, tagsConfigPath, taglib, tagDirname);
|
||||||
tag.name = childFilename;
|
tag.name = tagName;
|
||||||
taglib.addTag(tag);
|
taglib.addTag(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tagDef) {
|
if (tagDef) {
|
||||||
tag = buildTag(tagDef, tagsConfigPath, taglib, tagDirname);
|
tag = buildTag(tagDef, tagsConfigPath, taglib, tagDirname);
|
||||||
tag.name = childFilename;
|
tag.name = tagName;
|
||||||
taglib.addTag(tag);
|
taglib.addTag(tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user