forked from 0x2620/oxjs
add method source to parent source; strip leading and trailing newlines
This commit is contained in:
parent
b1d171282c
commit
72d3ec87c2
2 changed files with 28 additions and 14 deletions
22
source/Ox.js
22
source/Ox.js
|
|
@ -200,13 +200,33 @@ Ox.doc = (function() {
|
|||
.replace(re.test, encodeLinebreaks)
|
||||
.split('\n');
|
||||
// create a tree and parse its root node
|
||||
item = Ox.extend(parseNode(parseTree(lines)), {source: tokens[i]});
|
||||
item = parseNode(parseTree(lines));
|
||||
|
||||
///*
|
||||
item.source = [];
|
||||
var tokenBuffer = [], tokenFlag = false;
|
||||
tokens[i].forEach(function(token) {
|
||||
if (['linebreak', 'whitespace'].indexOf(token.type) > -1) {
|
||||
tokenBuffer.push(token);
|
||||
} else {
|
||||
if (!tokenFlag) {
|
||||
item.source.push(token);
|
||||
tokenFlag = true;
|
||||
} else {
|
||||
item.source = Ox.merge(item.source, tokenBuffer, [token]);
|
||||
}
|
||||
tokenBuffer = [];
|
||||
}
|
||||
});
|
||||
//*/
|
||||
|
||||
if (/^[A-Z]/.test(item.name)) {
|
||||
items.push(item);
|
||||
} else {
|
||||
lastItem = items[items.length - 1];
|
||||
lastItem.properties = lastItem.properties || [];
|
||||
lastItem.properties.push(item);
|
||||
lastItem.source = Ox.merge(lastItem.source, item.source);
|
||||
}
|
||||
});
|
||||
function decodeLinebreaks(match, submatch) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue