battlefleet updated
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 9.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 122 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 148 KiB |
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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:
|
|
||||||
---
|
|
||||||
@@ -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:
|
|
||||||
---
|
|
||||||
@@ -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:
|
|
||||||
---
|
|
||||||
@@ -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:
|
|
||||||
---
|
|
||||||
@@ -1,10 +1,13 @@
|
|||||||
---
|
---
|
||||||
author: Rory Hinnen & Rory Grant
|
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
|
date: 2026-05-08 08:46
|
||||||
tags: Battlefleet Gothic, Scarus, Rules
|
tags: Battlefleet Gothic, Scarus, Rules
|
||||||
published: true
|
published: true
|
||||||
image:
|
image:
|
||||||
|
title: Rebel Fleet List
|
||||||
|
joniMitchell: bothSides
|
||||||
---
|
---
|
||||||
# Rebel Fleets
|
# Rebel Fleets
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
author: Rory Hinnen
|
author: Rory Hinnen
|
||||||
description: An overview of the Scarus Subsector,
|
description: An overview of the Scarus Subsector
|
||||||
date: 2026-05-08 08:46
|
date: 2026-05-08 08:49
|
||||||
tags: Battlefleet Gothic, Scarus, Fiction
|
tags: Battlefleet Gothic, Scarus, Fiction
|
||||||
published: true
|
published: true
|
||||||
image:
|
image:
|
||||||
|
title: Subector Scarus
|
||||||
---
|
---
|
||||||
# Subsector Scarus
|
# Subsector Scarus
|
||||||
Subsector Scarus is to the north of Segmentum Terra, in the north east corner of Segmentum Obscurus.
|
Subsector Scarus is to the north of Segmentum Terra, in the north east corner of Segmentum Obscurus.
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -18,6 +18,8 @@ struct CustomStory: ArticlePage {
|
|||||||
Text(article.title)
|
Text(article.title)
|
||||||
.font(.title1)
|
.font(.title1)
|
||||||
|
|
||||||
|
Text(article.text)
|
||||||
|
|
||||||
if let tagLinks = article.tagLinks() {
|
if let tagLinks = article.tagLinks() {
|
||||||
HStack(spacing: .xSmall) {
|
HStack(spacing: .xSmall) {
|
||||||
ForEach(tagLinks) { link in
|
ForEach(tagLinks) { link in
|
||||||
@@ -26,6 +28,5 @@ struct CustomStory: ArticlePage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Text(article.text)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,14 +20,20 @@ struct Story: ArticlePage {
|
|||||||
.frame(maxHeight: 300)
|
.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)
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@ struct Logo: HTML {
|
|||||||
private var barTitle: String
|
private var barTitle: String
|
||||||
private var underTitle: String
|
private var underTitle: String
|
||||||
|
|
||||||
init(barTitle: String = "Hinnen", underTitle: String = "Underground") {
|
init(barTitle: String = "", underTitle: String = "") {
|
||||||
self.barTitle = barTitle
|
self.barTitle = barTitle
|
||||||
self.underTitle = underTitle
|
self.underTitle = underTitle
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,15 +3,9 @@ import Ignite
|
|||||||
struct MainLayout: Layout {
|
struct MainLayout: Layout {
|
||||||
var body: some Document {
|
var body: some Document {
|
||||||
Body {
|
Body {
|
||||||
|
VStack(alignment: .center) {
|
||||||
content
|
content
|
||||||
HStack {
|
|
||||||
IgniteFooterAlt()
|
|
||||||
Spacer()
|
|
||||||
SocialFooter()
|
|
||||||
Spacer()
|
|
||||||
VersionInfo()
|
|
||||||
}
|
}
|
||||||
.margin(.top, .xLarge)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,26 +1,37 @@
|
|||||||
import Ignite
|
import Ignite
|
||||||
|
import Foundation
|
||||||
|
|
||||||
struct Battlefleet: StaticPage {
|
struct Battlefleet: StaticPage {
|
||||||
|
@Environment(\.articles) var articles
|
||||||
var path = "/battlefleet"
|
var path = "/battlefleet"
|
||||||
let title: String
|
let title: String
|
||||||
|
let subtitle: String
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
self.title = "Battlefleet: Subsector Scarus"
|
self.title = "Battlefleet:"
|
||||||
|
self.subtitle = "Subsector Scarus"
|
||||||
}
|
}
|
||||||
|
|
||||||
var body: some HTML {
|
var body: some HTML {
|
||||||
VStack {
|
VStack {
|
||||||
Logo(barTitle: String(title.split(separator: " ").first ?? ""), underTitle: "Subsector Scarus")
|
Logo(barTitle: title, underTitle: subtitle)
|
||||||
.horizontalAlignment(.center)
|
.horizontalAlignment(.center)
|
||||||
|
VStack {
|
||||||
Link("Battlefleet Gothic Remastered Digital Rules", target: "/epubs/BattlefleetGothicDigitalRemaster.epub")
|
Link("Battlefleet Gothic Remastered Digital Rules", target: "/epubs/BattlefleetGothicDigitalRemaster.epub")
|
||||||
Link("Rebels List", target: "article/rebels")
|
Text(markdown: "The _Battlefleet: Gothic_ rules formatted for epub.")
|
||||||
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")
|
|
||||||
}
|
}
|
||||||
|
.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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,11 @@ struct Home: StaticPage {
|
|||||||
let buttonHeight = 70
|
let buttonHeight = 70
|
||||||
|
|
||||||
var body: some HTML {
|
var body: some HTML {
|
||||||
|
let midtitle = String(title.split(separator: " ").first ?? "")
|
||||||
|
let underTitle = String(title.split(separator: " ").last ?? "")
|
||||||
VStack{
|
VStack{
|
||||||
Logo()
|
Logo(barTitle: midtitle, underTitle: underTitle)
|
||||||
|
.margin(.top, .medium)
|
||||||
.horizontalAlignment(.center)
|
.horizontalAlignment(.center)
|
||||||
Grid(alignment: .center, spacing: 4) {
|
Grid(alignment: .center, spacing: 4) {
|
||||||
Button(name: "Rory", link: "https://rory.hinnen.us")
|
Button(name: "Rory", link: "https://rory.hinnen.us")
|
||||||
@@ -24,6 +27,7 @@ struct Home: StaticPage {
|
|||||||
Button(name: "Battlefleet: Sector Scarus", link: "/battlefleet/")
|
Button(name: "Battlefleet: Sector Scarus", link: "/battlefleet/")
|
||||||
}
|
}
|
||||||
.margin(.top, .xLarge)
|
.margin(.top, .xLarge)
|
||||||
|
Footer()
|
||||||
}
|
}
|
||||||
.horizontalAlignment(.center)
|
.horizontalAlignment(.center)
|
||||||
Mastodon()
|
Mastodon()
|
||||||
|
|||||||
@@ -12,6 +12,10 @@ struct Theatre: StaticPage {
|
|||||||
VStack {
|
VStack {
|
||||||
Logo(barTitle: "Bel Aire", underTitle: "Backyard Theatre")
|
Logo(barTitle: "Bel Aire", underTitle: "Backyard Theatre")
|
||||||
.horizontalAlignment(.center)
|
.horizontalAlignment(.center)
|
||||||
|
Group {
|
||||||
|
Image("images/SoundOfMusic.jpeg")
|
||||||
|
.frame(width: 300)
|
||||||
|
.style(.float(.self, .left))
|
||||||
Text(markdown: """
|
Text(markdown: """
|
||||||
I *love* movies.
|
I *love* movies.
|
||||||
|
|
||||||
@@ -27,4 +31,5 @@ As my site is being rebuilt, you'll have to satisfy yourself with just that stor
|
|||||||
""")
|
""")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ struct Hinnen: Site {
|
|||||||
|
|
||||||
var favicon: URL? { URL(static: "/favicon/favicon.ico") }
|
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] {
|
var staticPages: [any StaticPage] {
|
||||||
Battlefleet()
|
Battlefleet()
|
||||||
Library()
|
Library()
|
||||||
|
|||||||
Reference in New Issue
Block a user