val assetDir: String = "$rootDir/assets",
val templateDir: String = "$rootDir/tpl",
val jsonDocDir: String = "$rootDir/data",
- val quizDir: String = "$rootDir/quizzes",
val scriptDir: String = "$rootDir/funcs",
val dbName: String = "nslore",
val (width, height) = getSizeParam(tagParam)
if (imageUrl.endsWith(".svg"))
- File(Configuration.CurrentConfiguration.assetDir)
- .combineSafe("images/$imageUrl")
+ File(Configuration.CurrentConfiguration.assetDir, "images")
+ .combineSafe(imageUrl)
.readText()
.replace("<svg", "<svg${getImageSizeAttributes(width, height)}")
else
),
QUIZ(
TextParserTagType.Indirect(true) { _, content, _ ->
- val quizText = File(Configuration.CurrentConfiguration.quizDir).combineSafe("$content.json").readText()
- val quizJson = JsonStorageCodec.encodeToString(String.serializer(), quizText)
-
- "<script>window.renderQuiz(JSON.parse($quizJson));</script>"
+ if (content.isBlank())
+ ""
+ else {
+ val contentJson = JsonStorageCodec.parseToJsonElement(TextParserState.uncensorText(content))
+ "<script>window.renderQuiz($contentJson);</script>"
+ }
}
),
}
override fun resolveRelativePath(relativePath: String, anchorPath: String): String {
- val templateDir = File(Configuration.CurrentConfiguration.templateDir)
if ('\n' in anchorPath) // Probably a raw template contents string
return relativePath
+ val templateDir = File(Configuration.CurrentConfiguration.templateDir)
return templateDir.combineSafe("$anchorPath/$relativePath").toRelativeString(templateDir)
}