| mixin para(t, hypertext) |
| if t |
| if hypertext |
| //- TODO! need to sanitize |
| p=t |
| //- | !{t} |
| else |
| each line in t.split(/\n/) |
| if line |
| if line.startsWith(' ') |
| code=line |
| br |
| else |
| p=line |
| |
| mixin mpara(l, hypertext) |
| if l |
| each d in l |
| if d.value |
| +para(d.value, hypertext) |
| mixin aggpara(l) |
| if l |
| ul |
| each k, v in l |
| li |
| b=k.join(', ') |
| p |
| +para(v) |
| |
| mixin linklist(l, url) |
| each v, i in l |
| if(i < l.length-2) |
| if(url) |
| a(href=url+v)=v |
| else |
| = v |
| | , |
| else |
| if(i == l.length - 1 && i > 0) |
| | and |
| if(url) |
| a(href=url+v)=v |
| else |
| =v |
| |
| mixin CVSS(value) |
| = value.baseScore.toFixed(1) |
| | |
| if value.version >= "3.0" |
| | ( |
| a(href="https://cvssjs.github.io/#" + value.vectorString)=value.vectorString |
| | ) |
| else |
| a(href='https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator?vector='+value.vectorString)=value.vectorString |
| |
| mixin renderDate(value) |
| - var v = false; |
| - if (value instanceof Date) { v = value;} else { |
| - var timestamp = Date.parse(value); |
| - v = isNaN(timestamp) ? false : new Date(timestamp) |
| - } |
| if v |
| = v.toJSON().substr(0,10) |
| |
| mixin page(obj) |
| if obj !== null |
| if typeof obj === 'string' |
| if obj.length < 20 |
| span(class=obj)=obj |
| else |
| span.wrp=obj |
| else if obj instanceof Array |
| if obj.length > 0 |
| ol |
| for v, k in obj |
| li |
| +page(v) |
| else if typeof obj === 'object' |
| for v, k in obj |
| if obj.hasOwnProperty(k) |
| .indent |
| b.ico(class=k)=k |
| | : |
| | |
| +page(v) |
| else |
| =obj |
| |
| |
| block content |
| .big=doc_id |
| if doc |
| if renderTemplate == 'default' |
| - delete doc._id; |
| +page(doc) |
| else if renderTemplate != undefined |
| block renderPage |
| - try { |
| +#{renderTemplate}(doc) |
| - } catch(e) { |
| - delete doc._id; |
| +page(doc) |
| - } |
| else |
| .tred Document not found |