1234567891011121314151617181920212223242526272829303132333435 |
- package io.github.zadam.triliumsender.services
- class HtmlConverter {
- fun convertPlainTextToHtml(s: String): String {
- val builder = StringBuilder()
- var previousWasASpace = false
- for (c in s.toCharArray()) {
- if (c == ' ') {
- if (previousWasASpace) {
- builder.append(" ")
- previousWasASpace = false
- continue
- }
- previousWasASpace = true
- } else {
- previousWasASpace = false
- }
- when (c) {
- '<' -> builder.append("<")
- '>' -> builder.append(">")
- '&' -> builder.append("&")
- '"' -> builder.append(""")
- '\n' -> builder.append("<p>")
- // We need Tab support here, because we print StackTraces as HTML
- '\t' -> builder.append(" ")
- else -> if (c.toInt() < 128) {
- builder.append(c)
- } else {
- builder.append("&#").append(c.toInt()).append(";")
- }
- }
- }
- return builder.toString()
- }
- }
|