diff --git a/Assets/baby/images/GoodNight.m4v b/Assets/baby/images/GoodNight.m4v new file mode 100644 index 0000000..b4719c4 Binary files /dev/null and b/Assets/baby/images/GoodNight.m4v differ diff --git a/Assets/baby/images/IntermissionY6silent.m4v b/Assets/baby/images/IntermissionY6silent.m4v new file mode 100644 index 0000000..40f2d61 Binary files /dev/null and b/Assets/baby/images/IntermissionY6silent.m4v differ diff --git a/Assets/baby/images/OnWithTheShow.m4v b/Assets/baby/images/OnWithTheShow.m4v new file mode 100644 index 0000000..f30812e Binary files /dev/null and b/Assets/baby/images/OnWithTheShow.m4v differ diff --git a/Assets/baby/images/PreShowsilent.m4v b/Assets/baby/images/PreShowsilent.m4v new file mode 100644 index 0000000..9aed3aa Binary files /dev/null and b/Assets/baby/images/PreShowsilent.m4v differ diff --git a/Assets/baby/images/SoundOfMusic.jpeg b/Assets/baby/images/SoundOfMusic.jpeg new file mode 100644 index 0000000..1eeefa0 Binary files /dev/null and b/Assets/baby/images/SoundOfMusic.jpeg differ diff --git a/Assets/baby/images/lobbyCokeCorndog.jpg b/Assets/baby/images/lobbyCokeCorndog.jpg new file mode 100644 index 0000000..bef1e09 Binary files /dev/null and b/Assets/baby/images/lobbyCokeCorndog.jpg differ diff --git a/Assets/baby/images/lobbyCorndog.jpg b/Assets/baby/images/lobbyCorndog.jpg new file mode 100644 index 0000000..39c58c9 Binary files /dev/null and b/Assets/baby/images/lobbyCorndog.jpg differ diff --git a/Assets/baby/images/lobbyFriedpickle.jpg b/Assets/baby/images/lobbyFriedpickle.jpg new file mode 100644 index 0000000..35b1d37 Binary files /dev/null and b/Assets/baby/images/lobbyFriedpickle.jpg differ diff --git a/Assets/baby/images/lobbyFries.jpg b/Assets/baby/images/lobbyFries.jpg new file mode 100644 index 0000000..9303786 Binary files /dev/null and b/Assets/baby/images/lobbyFries.jpg differ diff --git a/Assets/baby/images/lobbySoda.jpg b/Assets/baby/images/lobbySoda.jpg new file mode 100644 index 0000000..e40a2f7 Binary files /dev/null and b/Assets/baby/images/lobbySoda.jpg differ diff --git a/Content/battlefleet/article/chaos.md b/Content/battlefleet/article/chaos.md new file mode 100644 index 0000000..e25e9d5 --- /dev/null +++ b/Content/battlefleet/article/chaos.md @@ -0,0 +1,12 @@ +--- +author: Rory Hinnen +description: An examination of Chaotic activity +date: 2026-05-11 6:46 +tags: Battlefleet Gothic, Scarus, Fiction +published: false +image: +title: Signs of Chaos +--- +# Signs of Chaos + +mroe woreds for yu diff --git a/Content/battlefleet/article/eldar.md b/Content/battlefleet/article/eldar.md new file mode 100644 index 0000000..43d31ea --- /dev/null +++ b/Content/battlefleet/article/eldar.md @@ -0,0 +1,12 @@ +--- +author: Rory Hinnen +description: An overview of Eldar activity +date: 2026-05-11 6:49 +tags: Battlefleet Gothic, Scarus, Fiction +published: false +image: +title: The Pirate Prince +--- +# The Pirate Prince + +mroe woreds for yu diff --git a/Content/battlefleet/article/imperial.md b/Content/battlefleet/article/imperial.md new file mode 100644 index 0000000..d0711b5 --- /dev/null +++ b/Content/battlefleet/article/imperial.md @@ -0,0 +1,12 @@ +--- +author: Rory Hinnen +description: An overview of Imperial Forces +date: 2026-05-11 6:42 +tags: Battlefleet Gothic, Scarus, Fiction +published: false +image: +title: Imperial Fleets +--- +# Fleet Composition for the Scarus Subsector + +mroe woreds for yu diff --git a/Content/battlefleet/article/necron.md b/Content/battlefleet/article/necron.md new file mode 100644 index 0000000..b3cd6db --- /dev/null +++ b/Content/battlefleet/article/necron.md @@ -0,0 +1,12 @@ +--- +author: Rory Hinnen +description: Necrons +date: 2026-05-11 6:50 +tags: Battlefleet Gothic, Scarus, Fiction +published: false +image: +title: Xeno-Archeological Expeditions +--- +# Xeno-Archeological Expeditions + +mroe woreds for yu diff --git a/Content/battlefleet/article/rebel.md b/Content/battlefleet/article/rebel.md new file mode 100644 index 0000000..6e16c24 --- /dev/null +++ b/Content/battlefleet/article/rebel.md @@ -0,0 +1,12 @@ +--- +author: Rory Hinnen +description: A report of rebellion and perfidy +date: 2026-05-11 6:48 +tags: Battlefleet Gothic, Scarus, Fiction +published: false +image: +title: The Rebel Prince +--- +# The Rebels Prince + +mroe woreds for yu diff --git a/Content/battlefleet/article/rebelList 2.md b/Content/battlefleet/article/rebelList 2.md deleted file mode 100644 index b2801ea..0000000 --- a/Content/battlefleet/article/rebelList 2.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -author: Rory Hinnen -description: A Battlelist for a Rebel Fleet -date: 2026-05-08 09:28 -tags: Battlefleet Gothic, Scarus, Fiction -published: false -image: ---- diff --git a/Content/battlefleet/article/rebelList 3.md b/Content/battlefleet/article/rebelList 3.md deleted file mode 100644 index b2801ea..0000000 --- a/Content/battlefleet/article/rebelList 3.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -author: Rory Hinnen -description: A Battlelist for a Rebel Fleet -date: 2026-05-08 09:28 -tags: Battlefleet Gothic, Scarus, Fiction -published: false -image: ---- diff --git a/Content/battlefleet/article/rebelList 4.md b/Content/battlefleet/article/rebelList 4.md deleted file mode 100644 index b2801ea..0000000 --- a/Content/battlefleet/article/rebelList 4.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -author: Rory Hinnen -description: A Battlelist for a Rebel Fleet -date: 2026-05-08 09:28 -tags: Battlefleet Gothic, Scarus, Fiction -published: false -image: ---- diff --git a/Content/battlefleet/article/rebelList.md b/Content/battlefleet/article/rebelList.md deleted file mode 100644 index b2801ea..0000000 --- a/Content/battlefleet/article/rebelList.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -author: Rory Hinnen -description: A Battlelist for a Rebel Fleet -date: 2026-05-08 09:28 -tags: Battlefleet Gothic, Scarus, Fiction -published: false -image: ---- diff --git a/Content/battlefleet/article/rebels.md b/Content/battlefleet/article/rebels.md index 290cca4..772606b 100644 --- a/Content/battlefleet/article/rebels.md +++ b/Content/battlefleet/article/rebels.md @@ -1,10 +1,13 @@ --- author: Rory Hinnen & Rory Grant -description: Rules for Rebelious Fleet Lists +description: Fleet Lists for Rebelious Sectors +imageDescription: Image Description date: 2026-05-08 08:46 tags: Battlefleet Gothic, Scarus, Rules published: true image: +title: Rebel Fleet List +joniMitchell: bothSides --- # Rebel Fleets diff --git a/Content/battlefleet/article/scarus.md b/Content/battlefleet/article/scarus.md index ccb91c1..c5c98bc 100644 --- a/Content/battlefleet/article/scarus.md +++ b/Content/battlefleet/article/scarus.md @@ -1,10 +1,11 @@ --- author: Rory Hinnen -description: An overview of the Scarus Subsector, -date: 2026-05-08 08:46 +description: An overview of the Scarus Subsector +date: 2026-05-08 08:49 tags: Battlefleet Gothic, Scarus, Fiction published: true image: +title: Subector Scarus --- # Subsector Scarus Subsector Scarus is to the north of Segmentum Terra, in the north east corner of Segmentum Obscurus. diff --git a/Content/battlefleet/article/tau.md b/Content/battlefleet/article/tau.md new file mode 100644 index 0000000..537a022 --- /dev/null +++ b/Content/battlefleet/article/tau.md @@ -0,0 +1,12 @@ +--- +author: Rory Hinnen +description: Fleet compositions and trading capabilities of the T'au +date: 2026-05-11 6:51 +tags: Battlefleet Gothic, Scarus, Fiction +published: false +image: +title: The T'au Inevitablity +--- +# The T'au Inevitability + +mroe woreds for yu diff --git a/Sources/ArticlePages/CustomStory.swift b/Sources/ArticlePages/CustomStory.swift index e1db755..899b064 100644 --- a/Sources/ArticlePages/CustomStory.swift +++ b/Sources/ArticlePages/CustomStory.swift @@ -18,6 +18,8 @@ struct CustomStory: ArticlePage { Text(article.title) .font(.title1) + Text(article.text) + if let tagLinks = article.tagLinks() { HStack(spacing: .xSmall) { ForEach(tagLinks) { link in @@ -26,6 +28,5 @@ struct CustomStory: ArticlePage { } } - Text(article.text) } } diff --git a/Sources/ArticlePages/Story.swift b/Sources/ArticlePages/Story.swift index 8edfae7..fb2be90 100644 --- a/Sources/ArticlePages/Story.swift +++ b/Sources/ArticlePages/Story.swift @@ -19,15 +19,21 @@ struct Story: ArticlePage { .cornerRadius(20) .frame(maxHeight: 300) } - - if let tags = article.tags { - Section { - Text("Tagged with: \(tags.joined(separator: ", "))") - - Text("\(article.estimatedWordCount) words; \(article.estimatedReadingMinutes) minutes to read.") - } - } - + Text(article.text) + Divider() + Group { + HStack { + if let tags = article.tags { + Text("Tags: \(tags.joined(separator: ", "))") + } + Spacer() + Text("Length: \(article.estimatedWordCount) words/\(article.estimatedReadingMinutes) minutes to read.") + + } + Text("Published: \(article.date)") + .horizontalAlignment(.center) + } + .foregroundStyle(.gray) } } diff --git a/Sources/Components/Footer.swift b/Sources/Components/Footer.swift new file mode 100644 index 0000000..9705ec9 --- /dev/null +++ b/Sources/Components/Footer.swift @@ -0,0 +1,21 @@ +// +// Footer.swift +// IgniteStarter +// +// Created by Rory on 5/8/26. +// +import Ignite + +struct Footer: HTML { + var body: some HTML { + + HStack { + IgniteFooterAlt() + Spacer() + SocialFooter() + Spacer() + VersionInfo() + } + .margin(.top, .xLarge) + } +} diff --git a/Sources/Components/Logo.swift b/Sources/Components/Logo.swift index 69ea701..be06f77 100644 --- a/Sources/Components/Logo.swift +++ b/Sources/Components/Logo.swift @@ -4,7 +4,7 @@ struct Logo: HTML { private var barTitle: String private var underTitle: String - init(barTitle: String = "Hinnen", underTitle: String = "Underground") { + init(barTitle: String = "", underTitle: String = "") { self.barTitle = barTitle self.underTitle = underTitle } diff --git a/Configuration/Robots.swift b/Sources/Configuration/Robots.swift similarity index 100% rename from Configuration/Robots.swift rename to Sources/Configuration/Robots.swift diff --git a/Sources/Layouts/MainLayout.swift b/Sources/Layouts/MainLayout.swift index eeb5658..effab1a 100644 --- a/Sources/Layouts/MainLayout.swift +++ b/Sources/Layouts/MainLayout.swift @@ -3,15 +3,9 @@ import Ignite struct MainLayout: Layout { var body: some Document { Body { - content - HStack { - IgniteFooterAlt() - Spacer() - SocialFooter() - Spacer() - VersionInfo() + VStack(alignment: .center) { + content } - .margin(.top, .xLarge) } } } diff --git a/Sources/Pages/Battlefleet.swift b/Sources/Pages/Battlefleet.swift index f3c78a5..3bf3fc3 100644 --- a/Sources/Pages/Battlefleet.swift +++ b/Sources/Pages/Battlefleet.swift @@ -1,26 +1,37 @@ import Ignite +import Foundation struct Battlefleet: StaticPage { + @Environment(\.articles) var articles var path = "/battlefleet" let title: String + let subtitle: String init() { - self.title = "Battlefleet: Subsector Scarus" + self.title = "Battlefleet:" + self.subtitle = "Subsector Scarus" } var body: some HTML { VStack { - Logo(barTitle: String(title.split(separator: " ").first ?? ""), underTitle: "Subsector Scarus") + Logo(barTitle: title, underTitle: subtitle) .horizontalAlignment(.center) - Link("Battlefleet Gothic Remastered Digital Rules", target: "/epubs/BattlefleetGothicDigitalRemaster.epub") - Link("Rebels List", target: "article/rebels") - Link("About Subsector Scarus", target: "article/scarus") - Text("Battlefleet Obscuras: Sector Scarus") - Text("Prince Magos Charlemange: Rebel") - Text("Prince CuCulain: Eldar Pirates") - Text("Chaos Raiders: Thousand Sons") - Text("Archeo Xenos: Necrons") - Text("Commonwealth: T'au") + VStack { + Link("Battlefleet Gothic Remastered Digital Rules", target: "/epubs/BattlefleetGothicDigitalRemaster.epub") + Text(markdown: "The _Battlefleet: Gothic_ rules formatted for epub.") + } + .margin(.bottom, .medium) + VStack { + ForEach(articles.typed("battlefleet").reversed()) { article in + Group { + Link(article) + Text(article.metadata["description"] as? String ?? "") + .margin(.bottom, .medium) + } + } + } } + SocialFooter() + .margin(.top, .large) } } diff --git a/Sources/Pages/Home.swift b/Sources/Pages/Home.swift index ceed972..2c544c7 100644 --- a/Sources/Pages/Home.swift +++ b/Sources/Pages/Home.swift @@ -6,8 +6,11 @@ struct Home: StaticPage { let buttonHeight = 70 var body: some HTML { + let midtitle = String(title.split(separator: " ").first ?? "") + let underTitle = String(title.split(separator: " ").last ?? "") VStack{ - Logo() + Logo(barTitle: midtitle, underTitle: underTitle) + .margin(.top, .medium) .horizontalAlignment(.center) Grid(alignment: .center, spacing: 4) { Button(name: "Rory", link: "https://rory.hinnen.us") @@ -24,6 +27,7 @@ struct Home: StaticPage { Button(name: "Battlefleet: Sector Scarus", link: "/battlefleet/") } .margin(.top, .xLarge) + Footer() } .horizontalAlignment(.center) Mastodon() diff --git a/Sources/Pages/Theatre.swift b/Sources/Pages/Theatre.swift index 2ef76d1..6883d12 100644 --- a/Sources/Pages/Theatre.swift +++ b/Sources/Pages/Theatre.swift @@ -12,7 +12,11 @@ struct Theatre: StaticPage { VStack { Logo(barTitle: "Bel Aire", underTitle: "Backyard Theatre") .horizontalAlignment(.center) - Text(markdown: """ + Group { + Image("images/SoundOfMusic.jpeg") + .frame(width: 300) + .style(.float(.self, .left)) + Text(markdown: """ I *love* movies. From my very first experiences in a theatre, to hot summer nights at the drive-in, I have always been in love with movies. @@ -25,6 +29,7 @@ As my site is being rebuilt, you'll have to satisfy yourself with just that stor *Soon.* """) + } } } } diff --git a/Sources/Site.swift b/Sources/Site.swift index 718a3d3..b4009a0 100644 --- a/Sources/Site.swift +++ b/Sources/Site.swift @@ -30,6 +30,9 @@ struct Hinnen: Site { var favicon: URL? { URL(static: "/favicon/favicon.ico") } + var robotsConfiguration = Robots() + var feedConfiguration = FeedConfiguration(mode: .full, contentCount: 20, image: .init(url: "https://www.example.com/images/icon32.png", width: 32, height: 32)) + var staticPages: [any StaticPage] { Battlefleet() Library()