Fix viewing of WIP or old factbooks
authorLanius Trolling <lanius@laniustrolling.dev>
Thu, 28 Dec 2023 17:37:32 +0000 (12:37 -0500)
committerLanius Trolling <lanius@laniustrolling.dev>
Thu, 28 Dec 2023 17:37:32 +0000 (12:37 -0500)
src/jvmMain/kotlin/info/mechyrdia/lore/views_lore.kt

index 43ccce1de1fe9b6fe1f838d0b37c718fe8a6655d..9a32057d0f8bc39572a39fe19eb521d45778ea0f 100644 (file)
@@ -56,75 +56,78 @@ suspend fun ApplicationCall.loreArticlePage(): HTML.() -> Unit {
                canCommentAs.await() to comments.await()
        }
        
-       if (pageFile.isDirectory) {
-               val navbar = standardNavBar(pagePathParts.takeIf { it.isNotEmpty() })
-               
-               val title = pagePath.takeIf { it.isNotEmpty() }?.toFriendlyIndexTitle() ?: "Table of Contents"
-               
-               val sidebar = PageNavSidebar(
-                       listOf(
-                               NavLink("#page-top", title, aClasses = "left"),
-                               NavLink("#comments", "Comments", aClasses = "left")
+       val isValid = pageFile.exists() && (Configuration.CurrentConfiguration.isDevMode || !(pageFile.name.endsWith(".wip") || pageFile.name.endsWith(".old")))
+       
+       if (isValid) {
+               if (pageFile.isDirectory) {
+                       val navbar = standardNavBar(pagePathParts.takeIf { it.isNotEmpty() })
+                       
+                       val title = pagePath.takeIf { it.isNotEmpty() }?.toFriendlyIndexTitle() ?: "Table of Contents"
+                       
+                       val sidebar = PageNavSidebar(
+                               listOf(
+                                       NavLink("#page-top", title, aClasses = "left"),
+                                       NavLink("#comments", "Comments", aClasses = "left")
+                               )
                        )
-               )
-               
-               return page(title, navbar, sidebar) {
-                       section {
-                               a { id = "page-top" }
-                               h1 { +title }
-                               ul {
-                                       pageNode.subNodes.renderInto(this, pagePath.takeIf { it.isNotEmpty() })
+                       
+                       return page(title, navbar, sidebar) {
+                               section {
+                                       a { id = "page-top" }
+                                       h1 { +title }
+                                       ul {
+                                               pageNode.subNodes.renderInto(this, pagePath.takeIf { it.isNotEmpty() })
+                                       }
                                }
+                               
+                               finalSection(pagePath, canCommentAs, comments, totalsData)
                        }
-                       
-                       finalSection(pagePath, canCommentAs, comments, totalsData)
                }
-       } else if (pageFile.isFile) {
-               val pageTemplate = pageFile.readText()
-               val pageMarkup = PreParser.preparse(pagePath, pageTemplate)
-               val pageHtml = TextParserState.parseText(pageMarkup, TextParserFormattingTag.asTags, Unit)
-               
-               val pageToC = TableOfContentsBuilder()
-               TextParserState.parseText(pageMarkup, TextParserToCBuilderTag.asTags, pageToC)
-               
-               val pageNav = pageToC.toNavBar() + NavLink("#comments", "Comments", aClasses = "left")
-               
-               val navbar = standardNavBar(pagePathParts)
-               val sidebar = PageNavSidebar(pageNav)
-               
-               return page(pageToC.toPageTitle(), navbar, sidebar, pageToC.toOpenGraph()) {
-                       section {
-                               a { id = "page-top" }
-                               unsafe { raw(pageHtml) }
-                       }
+               if (pageFile.isFile) {
+                       val pageTemplate = pageFile.readText()
+                       val pageMarkup = PreParser.preparse(pagePath, pageTemplate)
+                       val pageHtml = TextParserState.parseText(pageMarkup, TextParserFormattingTag.asTags, Unit)
+                       
+                       val pageToC = TableOfContentsBuilder()
+                       TextParserState.parseText(pageMarkup, TextParserToCBuilderTag.asTags, pageToC)
+                       
+                       val pageNav = pageToC.toNavBar() + NavLink("#comments", "Comments", aClasses = "left")
                        
-                       finalSection(pagePath, canCommentAs, comments, totalsData)
+                       val navbar = standardNavBar(pagePathParts)
+                       val sidebar = PageNavSidebar(pageNav)
+                       
+                       return page(pageToC.toPageTitle(), navbar, sidebar, pageToC.toOpenGraph()) {
+                               section {
+                                       a { id = "page-top" }
+                                       unsafe { raw(pageHtml) }
+                               }
+                               
+                               finalSection(pagePath, canCommentAs, comments, totalsData)
+                       }
                }
-       } else {
-               val title = pagePathParts.last().toFriendlyPageTitle()
-               
-               val navbar = standardNavBar(pagePathParts)
-               
-               val sidebar = PageNavSidebar(
-                       listOf(
-                               NavLink("#page-top", title, aClasses = "left"),
-                               NavLink("#comments", "Comments", aClasses = "left")
-                       )
+       }
+       
+       val title = pagePathParts.last().toFriendlyPageTitle()
+       val navbar = standardNavBar(pagePathParts)
+       val sidebar = PageNavSidebar(
+               listOf(
+                       NavLink("#page-top", title, aClasses = "left"),
+                       NavLink("#comments", "Comments", aClasses = "left")
                )
-               
-               return page(title, navbar, sidebar) {
-                       section {
-                               a { id = "page-top" }
-                               h1 { +title }
-                               p {
-                                       +"This factbook does not exist. Would you like to "
-                                       a(href = "/") { +"return to the index page" }
-                                       +"?"
-                               }
+       )
+       
+       return page(title, navbar, sidebar) {
+               section {
+                       a { id = "page-top" }
+                       h1 { +title }
+                       p {
+                               +"This factbook does not exist. Would you like to "
+                               a(href = "/") { +"return to the index page" }
+                               +"?"
                        }
-                       
-                       finalSection(pagePath, canCommentAs, comments, totalsData)
                }
+               
+               finalSection(pagePath, canCommentAs, comments, totalsData)
        }
 }