@@ -253,22 +253,25 @@ object LaikaCustomizations {
253253 TemplateDirectives .eval(" forBlogPosts" ) {
254254 import TemplateDirectives .dsl .*
255255
256- (cursor, parsedBody, source).mapN { (c, b, s) =>
257- def contentScope (value : ConfigValue ) =
258- TemplateScope (TemplateSpanSequence (b), value, s)
256+ val count = attribute(0 ).as[Int ].optional
259257
260- val posts = c.parent.allDocuments.flatMap { d =>
261- d.config.get[ OffsetDateTime ]( " date " ).toList.tupleLeft(d)
262- }
258+ (count, cursor, parsedBody, source).mapN { (count, c, b, s) =>
259+ def contentScope ( value : ConfigValue ) =
260+ TemplateScope ( TemplateSpanSequence (b), value, s)
263261
264- posts
265- .sortBy(_._2)(using summon[Ordering [OffsetDateTime ]].reverse)
266- .traverse { (d, _) =>
267- d.config.get[ConfigValue ](" " ).map(contentScope(_))
262+ val posts = c.parent.allDocuments.flatMap { d =>
263+ d.config.get[OffsetDateTime ](" date" ).toList.tupleLeft(d)
268264 }
269- .leftMap(_.message)
270- .map(TemplateSpanSequence (_))
271- }
265+
266+ posts
267+ .sortBy(_._2)(using summon[Ordering [OffsetDateTime ]].reverse)
268+ .take(count.getOrElse(Int .MaxValue ))
269+ .traverse { (d, _) =>
270+ d.config.get[ConfigValue ](" " ).map(contentScope(_))
271+ }
272+ .leftMap(_.message)
273+ .map(TemplateSpanSequence (_))
274+ }
272275 },
273276 TemplateDirectives .create(" svg" ) {
274277 import TemplateDirectives .dsl .*
0 commit comments