{% 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