diff --git a/scaladoc/src/dotty/tools/scaladoc/site/StaticSiteContext.scala b/scaladoc/src/dotty/tools/scaladoc/site/StaticSiteContext.scala index 7c51eda1c5b9..4a216530d48c 100644 --- a/scaladoc/src/dotty/tools/scaladoc/site/StaticSiteContext.scala +++ b/scaladoc/src/dotty/tools/scaladoc/site/StaticSiteContext.scala @@ -87,11 +87,22 @@ class StaticSiteContext( val templateFile = if (from.isDirectory) loadIndexPage() else loadTemplateFile(from) - val processedChildren = if !isBlog then children.sortBy(_.templateFile.title) else - def dateFrom(p: LoadedTemplate): String = - val pageSettings = p.templateFile.settings.get("page").collect{ case m: Map[String @unchecked, _] => m } - pageSettings.flatMap(_.get("date").collect{ case s: String => s}).getOrElse("1900-01-01") // blogs without date are last - children.sortBy(dateFrom).reverse + def dateFrom(p: LoadedTemplate, default: String = "1900-01-01"): String = + val pageSettings = p.templateFile.settings.get("page").collect{ case m: Map[String @unchecked, _] => m } + pageSettings.flatMap(_.get("date").collect{ case s: String => s}).getOrElse(default) // blogs without date are last + + val processedChildren: Seq[LoadedTemplate] = if !isBlog then children.sortBy(_.templateFile.title) else + children.sortBy(dateFrom(_)).reverse + + processedChildren.foreach { child => + val regex = raw"(\d*-\d*-\d*)-(.*)".r + val setDate = dateFrom(child, "") + child.templateFile.name match + case regex(date, name) if date != setDate => + val msg = s"Date $date in blog file: ${child.templateFile.name} doesn't match date from settings: $setDate." + report.warn(msg, from) + case name => + } val processedTemplate = // Set provided name as arg in page for `docs` if from.getParentFile.toPath == docsPath && templateFile.isIndexPage() then