Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import CrowiUtil from 'client/crowi'
import plantuml from 'plantuml-encoder'
import * as crypto from 'crypto'
import crowi from 'client/util/Crowi'
export default class PlantUML {
crowi: crowi
constructor(crowi: crowi) {
this.crowi = crowi
}
generateId(token: string) {
const hasher = crypto.createHash('md5')
hasher.update(token)
return hasher.digest('hex')
}
process(code: string, lang: string) {
const { env } = this.crowi.getConfig()
if (!env || !env.PLANTUML_URI) {
return `<pre class="wiki-code"><code>${CrowiUtil.escape(code)}\n</code></pre>`
}
let plantumlUri = env.PLANTUML_URI
if (plantumlUri.substr(-1) !== '/') {
plantumlUri += '/'
}
const id = this.generateId(code + lang)
const encoded = plantuml.encode(`@startuml
skinparam monochrome true
${code}
@enduml`)
return `
<div id="${id}" class="plantuml noborder">
<img src="${plantumlUri}svg/${encoded}">
</div>
`
}
}
|