aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/org/pacien/pandoc/filter/plantuml/PlantUml.kt
blob: 2a8da1b25f2134e8c1f2e6682c82e85455330f97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package org.pacien.pandoc.filter.plantuml

import net.sourceforge.plantuml.FileFormat
import net.sourceforge.plantuml.FileFormatOption
import net.sourceforge.plantuml.SourceStringReader
import java.io.ByteArrayOutputStream

object PlantUml {
  private val OUTPUT_FORMAT = FileFormatOption(FileFormat.LATEX_NO_PREAMBLE)

  private fun SourceStringReader.generateImage(outputFormat: FileFormatOption) =
    ByteArrayOutputStream().use { buffer ->
      generateImage(buffer, outputFormat)
      buffer.toString().lineSequence()
    }

  fun renderTikz(plantuml: String) =
    SourceStringReader(plantuml)
      .generateImage(OUTPUT_FORMAT)
      .toLatex()
}