@@ -2,6 +2,8 @@ package com.potomushto.statik.generators
22
33import com.potomushto.statik.config.StaticDatasourceConfig
44import com.potomushto.statik.logging.LoggerFactory
5+ import com.potomushto.statik.metadata.string
6+ import com.potomushto.statik.metadata.toStringMap
57import com.potomushto.statik.models.BlogPost
68import com.potomushto.statik.models.SitePage
79import com.potomushto.statik.processors.ContentProcessor
@@ -205,16 +207,16 @@ class StaticDatasourceGenerator(
205207 .filter { it.isNotEmpty() }
206208 .joinToString(" /" )
207209
208- val id = parsed.metadata[ " id" ] ?.ifBlank { null }
210+ val id = parsed.metadata.string( " id" ) ?.ifBlank { null }
209211 ? : combinedSlug.replace(' /' , ' -' ).ifBlank { file.nameWithoutExtension }
210- val title = parsed.metadata[ " title" ] ?.ifBlank { null } ? : id
212+ val title = parsed.metadata.string( " title" ) ?.ifBlank { null } ? : id
211213
212214 val item = EntityDatasourceItem (
213215 dataset = dataset.name,
214216 id = id,
215217 title = title,
216218 content = parsed.content,
217- metadata = parsed.metadata,
219+ metadata = parsed.metadata.toStringMap() ,
218220 source = DatasourceItemSource (
219221 type = dataset.name,
220222 id = id,
@@ -244,15 +246,15 @@ class StaticDatasourceGenerator(
244246
245247 if (sources.contains(DatasetSource .POSTS )) {
246248 posts.forEach { post ->
247- val metadataValue = post.metadata[key]?.trim( ) ? : return @forEach
249+ val metadataValue = post.metadata.string(key ) ? : return @forEach
248250 if (expectedValue == null || metadataValue == expectedValue) {
249251 items.add(
250252 EntityDatasourceItem (
251253 dataset = dataset.name,
252- id = post.metadata[ " id" ] ?.ifBlank { null } ? : post.id,
254+ id = post.metadata.string( " id" ) ?.ifBlank { null } ? : post.id,
253255 title = post.title,
254256 content = post.content,
255- metadata = post.metadata,
257+ metadata = post.metadata.toStringMap() ,
256258 source = DatasourceItemSource (
257259 type = " post" ,
258260 id = post.id,
@@ -267,15 +269,15 @@ class StaticDatasourceGenerator(
267269
268270 if (sources.contains(DatasetSource .PAGES )) {
269271 pages.forEach { page ->
270- val metadataValue = page.metadata[key]?.trim( ) ? : return @forEach
272+ val metadataValue = page.metadata.string(key ) ? : return @forEach
271273 if (expectedValue == null || metadataValue == expectedValue) {
272274 items.add(
273275 EntityDatasourceItem (
274276 dataset = dataset.name,
275- id = page.metadata[ " id" ] ?.ifBlank { null } ? : page.id,
277+ id = page.metadata.string( " id" ) ?.ifBlank { null } ? : page.id,
276278 title = page.title,
277279 content = page.content,
278- metadata = page.metadata,
280+ metadata = page.metadata.toStringMap() ,
279281 source = DatasourceItemSource (
280282 type = " page" ,
281283 id = page.id,
@@ -339,7 +341,7 @@ class StaticDatasourceGenerator(
339341 val title : String ,
340342 val path : String ,
341343 val html : String ,
342- val metadata : Map <String , String >
344+ val metadata : Map <String , Any ? >
343345 )
344346
345347 private enum class SourceType (val label : String ) {
0 commit comments