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

@ -36,6 +36,14 @@ enum HeaderElement {
case description(String)
case ogTitle(String)
case ogDescription(String)
case ogImage(String)
case ogUrl(String)
case charset
case viewport
@ -44,30 +52,24 @@ enum HeaderElement {
var order: Int {
switch self {
case .charset:
return 1
case .robots:
return 2
case .viewport:
return 3
case .icon:
return 10
case .css(_, let order):
return order
case .js:
return 20
case .jsModule:
return 30
case .author:
return 100
case .title:
return 101
case .description:
return 102
case .charset: 1
case .robots: 2
case .viewport: 3
case .icon: 10
case .css(_, let order): order
case .js: 20
case .jsModule: 30
case .author: 100
case .title: 101
case .description: 102
case .ogTitle: 103
case .ogDescription: 104
case .ogImage: 105
case .ogUrl: 106
}
}
var file: FileResource? {
var requiredFile: FileResource? {
switch self {
case .icon(let file, _, _):
return file
@ -113,6 +115,14 @@ extension HeaderElement {
return "<title>\(title)</title>"
case .description(let description):
return "<meta name='description' content=\"\(description)\">"
case .ogTitle(let title):
return "<meta property='og:title' content='\(title)'>"
case .ogDescription(let description):
return "<meta property='og:description' content='\(description)'>"
case .ogImage(let image):
return "<meta property='og:image' content='\(image)'>"
case .ogUrl(let url):
return "<meta property='og:url' content='\(url)'>"
case .charset:
return "<meta charset='utf-8' />"
case .viewport:
@ -141,6 +151,14 @@ extension HeaderElement: CustomStringConvertible {
return "title"
case .description:
return "description"
case .ogTitle:
return "og:title"
case .ogDescription:
return "og:description"
case .ogImage:
return "og:image"
case .ogUrl:
return "og:url"
case .charset:
return "charset"
case .viewport: