plantuml.js 644 B

12345678910111213141516171819202122232425
  1. import plantumlEncoder from 'plantuml-encoder';
  2. import urljoin from 'url-join';
  3. export default class PlantUMLConfigurer {
  4. constructor(crowi) {
  5. this.crowi = crowi;
  6. const config = crowi.getConfig();
  7. this.serverUrl = config.env.PLANTUML_URI || 'http://plantuml.com/plantuml';
  8. this.generateSource = this.generateSource.bind(this);
  9. }
  10. configure(md) {
  11. md.use(require('markdown-it-plantuml'), {
  12. generateSource: this.generateSource,
  13. });
  14. }
  15. generateSource(umlCode) {
  16. const zippedCode = plantumlEncoder.encode(`@startuml\n${umlCode}\n@enduml`);
  17. return urljoin(this.serverUrl, 'svg', zippedCode);
  18. }
  19. }