choppy
Version:
It slices! It dices!
70 lines (53 loc) • 1.82 kB
JSX
// If layer comp ends in `?` set `placeholder` to true.
(function(){
var doc = app.activeDocument;
for (var i =0; i < doc.layerComps.length; i++){
var layerComp = doc.layerComps[i];
// Shorthand props and flags in brackets
var flags = [];
var bPartsIn = layerComp.name.split('(');
if (bPartsIn.length == 2){
var bPartsOut = bPartsIn[1].split(')');
if (bPartsOut.length == 2){
var commaParts = bPartsOut[0].split(',');
for (var j = 0; j < commaParts.length; j++){
var colonParts = commaParts[j].split(':');
if (colonParts.length == 2){
setCommentProp(layerComp, trim(colonParts[0]), trim(colonParts[1]));
} else { // Flag declaration
flags.push(trim(commaParts[j]));
}
}
bPartsOut.splice(0,1)
bPartsIn[1] = bPartsOut.join('')
layerComp.name = bPartsIn.join('');
}
}
if (flags.length > 0){
setCommentProp(layerComp, 'flags', flags.join(','));
}
// Extension
var outputNameExt = getExt(layerComp.name).toLowerCase();
if (outputNameExt.length > 0){
if (VALID_OUTPUT_EXTS.indexOf(outputNameExt) > -1){
setCommentProp(layerComp, 'ext', outputNameExt);
} else {
if (outputNameExt == 'div' || outputNameExt == 'rect' || outputNameExt == 'guide' ){
setCommentProp(layerComp, 'placeholder', 'true');
}
setCommentProp(layerComp, 'type', outputNameExt);
}
layerComp.name = layerComp.name.substr(0, layerComp.name.length - outputNameExt.length - 1);
}
// Relative path
var path = layerComp.name.split('\\').join('/');
var pathArr = path.split('/');
if (pathArr.length > 1){
pathArr.splice(pathArr.length - 1, 1);
var relativePath = pathArr.join('/') + '/';
setCommentProp(layerComp, 'relativePath', relativePath);
layerComp.name = layerComp.name.substr(relativePath.length);
}
}
})();