{% for res in resources('wiki') %}
- [{{ res.title }}]({{ res.reference.originalFullFilename | replace({'wiki/': ''}) }}) {% endfor %}
package com.example | |
import com.eden.orchid.api.compilers.TemplateFunction | |
import com.eden.orchid.api.registration.OrchidModule | |
import com.example.ResourcesFunction | |
// in Orchid sourceroot: src/orchid/kotlin | |
class MyModule : OrchidModule() { | |
override fun configure() { | |
addToSet(TemplateFunction::class.java, ResourcesFunction::class.java) | |
} | |
} |
package com.example | |
import com.eden.orchid.api.OrchidContext | |
import com.eden.orchid.api.compilers.TemplateFunction | |
import com.eden.orchid.api.options.annotations.BooleanDefault | |
import com.eden.orchid.api.options.annotations.Option | |
import javax.inject.Inject | |
// in Orchid sourceroot: src/orchid/kotlin | |
class ResourcesFunction | |
@Inject | |
constructor( | |
private val context: OrchidContext | |
) : TemplateFunction("resources", false) { | |
@Option | |
lateinit var path: String | |
@Option | |
lateinit var extensions: Array<String> | |
@Option | |
var recursive: Boolean = false | |
@Option | |
@BooleanDefault(true) | |
var local: Boolean = true | |
override fun parameters(): Array<String> { | |
return arrayOf("path", "extensions", "recursive") | |
} | |
override fun apply(): Any { | |
val actualExtensions = if (extensions.isEmpty()) null else extensions | |
val resources = if (local) context.getLocalResourceEntries(path, actualExtensions, recursive) else context.getResourceEntries(path, actualExtensions, recursive) | |
// return resources.sortedBy { (it.embeddedData.element as JSONObject).getInt("pageOrder") } // to sort these Resources by a property in their Front Matter | |
return resources | |
} | |
} |
{% for res in resources('wiki') %}
title |
---|
Page 1 |
Wiki page 1