import plantuml from 'plantuml-encoder'; import crypto from 'crypto'; export default class PlantUML { constructor(crowi) { this.crowi = crowi; } generateId(token) { const hasher = require('crypto').createHash('md5'); hasher.update(token); return hasher.digest('hex'); } process(code, lang) { const config = crowi.getConfig(); if (!config.env.PLANTUML_URI) { return `
${Crowi.escape(code, true)}\n`;
}
let plantumlUri = config.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 `