Skip to content

Commit 47f3ec1

Browse files
vmeurissetwidi
authored andcommitted
Support config.templates.linenums
This option allows to show line numbers on source code. The option is the same as used in https://github.com/terryweiss/docstrap
1 parent ea2c790 commit 47f3ec1

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ You can set options for customizing your documentations.
4343
"title": "",
4444
"description": "",
4545
"keyword": ""
46-
}
46+
},
47+
"linenums": true
4748
}
4849
```
4950

conf.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@
2323
"title": "",
2424
"description": "",
2525
"keyword": ""
26-
}
26+
},
27+
"linenums": false
2728
},
2829
"markdown": {
2930
"parser": "gfm",
3031
"hardwrap": true,
3132
"tags": ["examples"]
3233
}
33-
}
34+
}

static/scripts/linenumber.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,26 @@
44
var source = document.getElementsByClassName('prettyprint source');
55

66
if (source && source[0]) {
7-
source = source[0].getElementsByTagName('code')[0];
7+
var linenums = config.linenums;
88

9-
numbered = source.innerHTML.split('\n');
10-
numbered = numbered.map(function(item) {
11-
counter++;
12-
return '<span id="line' + counter + '"></span>' + item;
13-
});
9+
if (linenums) {
10+
source = source[0].getElementsByTagName('ol')[0];
1411

15-
source.innerHTML = numbered.join('\n');
12+
numbered = Array.prototype.slice.apply(source.children);
13+
numbered = numbered.map(function(item) {
14+
counter++;
15+
item.id = 'line' + counter;
16+
});
17+
} else {
18+
source = source[0].getElementsByTagName('code')[0];
19+
20+
numbered = source.innerHTML.split('\n');
21+
numbered = numbered.map(function(item) {
22+
counter++;
23+
return '<span id="line' + counter + '"></span>' + item;
24+
});
25+
26+
source.innerHTML = numbered.join('\n');
27+
}
1628
}
1729
})();

tmpl/source.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
?>
44
<section>
55
<article>
6-
<pre class="prettyprint source"><code><?js= data.code ?></code></pre>
6+
<pre class="prettyprint source <?js= env.conf.templates.linenums ? 'linenums' : '' ?>"><code><?js= data.code ?></code></pre>
77
</article>
8-
</section>
8+
</section>

0 commit comments

Comments
 (0)