Generate open graph meta tags
This commit is contained in:
@ -2,6 +2,9 @@ import Foundation
|
||||
|
||||
final class Settings: ObservableObject {
|
||||
|
||||
@Published
|
||||
var general: GeneralSettings
|
||||
|
||||
@Published
|
||||
var paths: PathSettings
|
||||
|
||||
@ -18,11 +21,13 @@ final class Settings: ObservableObject {
|
||||
@Published
|
||||
var audioPlayer: AudioPlayerSettings
|
||||
|
||||
init(paths: PathSettings,
|
||||
init(general: GeneralSettings,
|
||||
paths: PathSettings,
|
||||
navigation: NavigationSettings,
|
||||
posts: PostSettings,
|
||||
pages: PageSettings,
|
||||
audioPlayer: AudioPlayerSettings) {
|
||||
self.general = general
|
||||
self.paths = paths
|
||||
self.navigation = navigation
|
||||
self.posts = posts
|
||||
@ -43,6 +48,7 @@ extension Settings {
|
||||
|
||||
convenience init(context: LoadingContext, data: Settings.Data) {
|
||||
self.init(
|
||||
general: .init(data: data.general),
|
||||
paths: .init(data: data.paths),
|
||||
navigation: .init(context: context, data: data.navigation),
|
||||
posts: .init(context: context, data: data.posts),
|
||||
@ -52,6 +58,7 @@ extension Settings {
|
||||
|
||||
func data(tagOverview: Tag?) -> Data {
|
||||
.init(
|
||||
general: general.data,
|
||||
paths: paths.data,
|
||||
navigation: navigation.data,
|
||||
posts: posts.data,
|
||||
@ -61,6 +68,7 @@ extension Settings {
|
||||
}
|
||||
|
||||
struct Data: Codable {
|
||||
let general: GeneralSettings.Data
|
||||
let paths: PathSettings.Data
|
||||
let navigation: NavigationSettings.Data
|
||||
let posts: PostSettings.Data
|
||||
@ -73,6 +81,7 @@ extension Settings {
|
||||
extension Settings {
|
||||
|
||||
static let `default`: Settings = .init(
|
||||
general: .default,
|
||||
paths: .default,
|
||||
navigation: .default,
|
||||
posts: .default,
|
||||
@ -80,6 +89,14 @@ extension Settings {
|
||||
audioPlayer: .default)
|
||||
}
|
||||
|
||||
extension GeneralSettings {
|
||||
|
||||
static let `default`: GeneralSettings = .init(
|
||||
url: "https://example.com",
|
||||
linkPreviewImageWidth: 1200,
|
||||
linkPreviewImageHeight: 630)
|
||||
}
|
||||
|
||||
extension AudioPlayerSettings {
|
||||
|
||||
static let `default`: AudioPlayerSettings = .init(
|
||||
@ -100,15 +117,18 @@ extension PostSettings {
|
||||
swiperJsFile: nil,
|
||||
defaultCssFile: nil,
|
||||
german: .init(
|
||||
title: "Beiträge",
|
||||
description: "Alle Beiträge",
|
||||
feedUrlPrefix: "blog",
|
||||
defaultPageLinkText: "Anzeigen"),
|
||||
defaultPageLinkText: "Anzeigen",
|
||||
linkPreview: .init(
|
||||
title: "Beiträge",
|
||||
description: "Alle Beiträge")),
|
||||
english: .init(
|
||||
title: "Blog posts",
|
||||
description: "All blog posts",
|
||||
feedUrlPrefix: "blog",
|
||||
defaultPageLinkText: "View"))
|
||||
defaultPageLinkText: "View",
|
||||
linkPreview: .init(
|
||||
title: "Blog posts",
|
||||
description: "All blog posts"))
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user