aboutsummaryrefslogtreecommitdiffstats
path: root/docs/src/ngdoc.js
diff options
context:
space:
mode:
authorIgor Minar2011-02-07 15:55:23 -0800
committerIgor Minar2011-02-07 23:56:51 -0800
commitd600c608e3bf01be444a9fe25119670d55f7f757 (patch)
treee2c045c39a5ec3e4419b02845683ed44aea817ef /docs/src/ngdoc.js
parent86321d1f5722e0aefcdbe8f3e5a14bd15d4caecb (diff)
downloadangular.js-d600c608e3bf01be444a9fe25119670d55f7f757.tar.bz2
markdown pre-processor should strip all the extra indentation
- split trim into trim and indent - merged my indentation code with trim - cleaned up some small issues
Diffstat (limited to 'docs/src/ngdoc.js')
-rw-r--r--docs/src/ngdoc.js57
1 files changed, 40 insertions, 17 deletions
diff --git a/docs/src/ngdoc.js b/docs/src/ngdoc.js
index 9ca78dc6..7c4d9d1d 100644
--- a/docs/src/ngdoc.js
+++ b/docs/src/ngdoc.js
@@ -62,8 +62,10 @@ Doc.prototype = {
var IS_URL = /^(https?:\/\/|ftps?:\/\/|mailto:|\.|\/)/;
var IS_ANGULAR = /^angular\./;
if (!text) return text;
- var parts = text.split(/(<pre>[\s\S]*?<\/pre>|<doc:example>[\s\S]*?<\/doc:example>)/),
- match;
+
+ text = trim(text);
+
+ var parts = text.split(/(<pre>[\s\S]*?<\/pre>|<doc:example>[\s\S]*?<\/doc:example>)/);
parts.forEach(function(text, i){
if (text.match(/^<pre>/)) {
@@ -495,7 +497,7 @@ function scenarios(docs){
specs.push(' });');
specs.push('');
doc.scenarios.forEach(function(scenario){
- specs.push(trim(scenario, ' '));
+ specs.push(indent(trim(scenario), 2));
specs.push('');
});
specs.push('});');
@@ -564,36 +566,57 @@ function keywordSort(a, b){
//////////////////////////////////////////////////////////
-function trim(text, prefix) {
- var MAX = 9999;
+function trim(text) {
+ var MAX_INDENT = 9999;
var empty = RegExp.prototype.test.bind(/^\s*$/);
var lines = text.split('\n');
- var minIndent = MAX;
- prefix = prefix || '';
+ var minIndent = MAX_INDENT;
+ var indentRegExp;
+ var ignoreLine = (lines[0][0] != ' ' && lines.length > 1);
+ // ignore first line if it has no indentation and there is more than one line
+
lines.forEach(function(line){
- minIndent = Math.min(minIndent, indent(line));
+ if (ignoreLine) {
+ ignoreLine = false;
+ return;
+ }
+
+ var indent = line.match(/^\s*/)[0].length;
+ if (indent > 0 || minIndent == MAX_INDENT) {
+ minIndent = Math.min(minIndent, indent);
+ }
});
+
+ indentRegExp = new RegExp('^\\s{0,' + minIndent + '}');
+
for ( var i = 0; i < lines.length; i++) {
- lines[i] = prefix + lines[i].substring(minIndent);
+ lines[i] = lines[i].replace(indentRegExp, '');
}
+
// remove leading lines
while (empty(lines[0])) {
lines.shift();
}
+
// remove trailing
while (empty(lines[lines.length - 1])) {
lines.pop();
}
return lines.join('\n');
+}
- function indent(line) {
- for(var i = 0; i < line.length; i++) {
- if (line.charAt(i) != ' ') {
- return i;
- }
- }
- return MAX;
- }
+function indent(text, spaceCount) {
+ var lines = text.split('\n'),
+ indent = '',
+ fixedLines = [];
+
+ while(spaceCount--) indent += ' ';
+
+ lines.forEach(function(line) {
+ fixedLines.push(indent + line);
+ });
+
+ return fixedLines.join('\n');
}
//////////////////////////////////////////////////////////