Files: 6a055e1be48956691b060c261266f3d9e41250d9 / tmpl / com.part.js
1061 bytesRaw
1 | |
2 | // `examples` is an object, mapping language->example |
3 | module.exports.code = examples => { |
4 | return `<div class="code-examples"> |
5 | <div class="head"> |
6 | ${ Object.keys(examples).sort(langPrioritySort).map(lang => `<div class="tab">${lang}</div>`).join('') } |
7 | </div> |
8 | <div class="body"> |
9 | ${ Object.keys(examples).sort(langPrioritySort).map(lang => `<pre><code class="language-${lang}">${cleanupCode(examples[lang])}</code></pre>`).join('') } |
10 | </div> |
11 | </div>` |
12 | } |
13 | |
14 | module.exports.tableOfContents = items => { |
15 | items = items |
16 | .map(item => [item.children[0].url, item.children[1].value]) |
17 | .filter(item => item[0] && item[1]) |
18 | return `<div class="table-of-contents"> |
19 | <a href="#">Jump to section</a> |
20 | <ul> |
21 | ${ items.map(item => `<li><a href="${item[0]}">${item[1]}</a></li>`).join('') } |
22 | </ul> |
23 | </div>` |
24 | } |
25 | |
26 | // enforce an order to the language tabs |
27 | function langPrioritySort (a, b) { |
28 | if (b == 'bash' && a != 'bash') |
29 | return 1 |
30 | return -1 |
31 | } |
32 | |
33 | // do some cleanup on the code |
34 | function cleanupCode (str) { |
35 | return str.trim() |
36 | } |
Built with git-ssb-web