Skip to content

Commit c49f94b

Browse files
authored
Merge pull request #12030 from KacperFKorban/scaladoc/warn-if-blog-dates-differ
Warn if date in file name of blogpost and in its content differ in scaladoc
2 parents 1158b15 + 599bb75 commit c49f94b

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

scaladoc/src/dotty/tools/scaladoc/site/StaticSiteContext.scala

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,22 @@ class StaticSiteContext(
8787

8888
val templateFile = if (from.isDirectory) loadIndexPage() else loadTemplateFile(from)
8989

90-
val processedChildren = if !isBlog then children.sortBy(_.templateFile.title) else
91-
def dateFrom(p: LoadedTemplate): String =
92-
val pageSettings = p.templateFile.settings.get("page").collect{ case m: Map[String @unchecked, _] => m }
93-
pageSettings.flatMap(_.get("date").collect{ case s: String => s}).getOrElse("1900-01-01") // blogs without date are last
94-
children.sortBy(dateFrom).reverse
90+
def dateFrom(p: LoadedTemplate, default: String = "1900-01-01"): String =
91+
val pageSettings = p.templateFile.settings.get("page").collect{ case m: Map[String @unchecked, _] => m }
92+
pageSettings.flatMap(_.get("date").collect{ case s: String => s}).getOrElse(default) // blogs without date are last
93+
94+
val processedChildren: Seq[LoadedTemplate] = if !isBlog then children.sortBy(_.templateFile.title) else
95+
children.sortBy(dateFrom(_)).reverse
96+
97+
processedChildren.foreach { child =>
98+
val regex = raw"(\d*-\d*-\d*)-(.*)".r
99+
val setDate = dateFrom(child, "<no date>")
100+
child.templateFile.name match
101+
case regex(date, name) if date != setDate =>
102+
val msg = s"Date $date in blog file: ${child.templateFile.name} doesn't match date from settings: $setDate."
103+
report.warn(msg, from)
104+
case name =>
105+
}
95106

96107
val processedTemplate = // Set provided name as arg in page for `docs`
97108
if from.getParentFile.toPath == docsPath && templateFile.isIndexPage() then

0 commit comments

Comments
 (0)