Generate open graph meta tags

This commit is contained in:
Christoph Hagen
2025-01-15 22:04:48 +01:00
parent 4b448f3415
commit f6b868502d
21 changed files with 324 additions and 109 deletions

View File

@@ -2,13 +2,7 @@ import Foundation
final class LocalizedPostSettings: ObservableObject {
/// The page title for the post feed
@Published
var title: String
/// The page description for the post feed
@Published
var description: String
var linkPreview: LinkPreview
/// The path to the feed in the final website, appended with the page number
@Published
@@ -22,11 +16,10 @@ final class LocalizedPostSettings: ObservableObject {
@Published
var defaultPageLinkText: String
init(title: String, description: String, feedUrlPrefix: String, defaultPageLinkText: String) {
self.title = title
self.description = description
init(feedUrlPrefix: String, defaultPageLinkText: String, linkPreview: LinkPreview) {
self.feedUrlPrefix = feedUrlPrefix
self.defaultPageLinkText = defaultPageLinkText
self.linkPreview = linkPreview
}
}
@@ -34,26 +27,23 @@ final class LocalizedPostSettings: ObservableObject {
extension LocalizedPostSettings {
convenience init(data: Data) {
convenience init(context: LoadingContext, data: Data) {
self.init(
title: data.feedTitle,
description: data.feedDescription,
feedUrlPrefix: data.feedUrlPrefix,
defaultPageLinkText: data.defaultPageLinkText)
defaultPageLinkText: data.defaultPageLinkText,
linkPreview: .init(context: context, data: data.linkPreview))
}
var data: Data {
.init(
feedTitle: title,
feedDescription: description,
feedUrlPrefix: feedUrlPrefix,
defaultPageLinkText: defaultPageLinkText)
defaultPageLinkText: defaultPageLinkText,
linkPreview: linkPreview.data)
}
struct Data: Codable {
let feedTitle: String
let feedDescription: String
let feedUrlPrefix: String
let defaultPageLinkText: String
let linkPreview: LinkPreview.Data
}
}