feat: Improved opengraph defaults.

This commit is contained in:
Spencer Brower
2026-07-20 14:27:27 -04:00
parent 1cb13a6a55
commit 566d6f0768
7 changed files with 285 additions and 66 deletions
+25 -2
View File
@@ -8,11 +8,13 @@ Frontmatter :: struct {
title: string,
description: string,
date: string,
lastmod: string,
publishDate: string,
draft: bool,
isStarred: bool,
menu: string,
layout: string,
og: Open_Graph,
draft: bool,
isStarred: bool,
}
// parse_frontmatter splits raw file content into a Frontmatter struct and the
@@ -49,11 +51,13 @@ parse_frontmatter :: proc(content: string) -> (fm: Frontmatter, body: string, ok
fm.title = json_get_string(obj, "title")
fm.description = json_get_string(obj, "description")
fm.date = json_get_string(obj, "date")
fm.lastmod = json_get_string(obj, "lastmod")
fm.publishDate = json_get_string(obj, "publishDate")
fm.draft = json_get_bool(obj, "draft")
fm.isStarred = json_get_bool(obj, "isStarred")
fm.menu = json_get_string(obj, "menu")
fm.layout = json_get_string(obj, "layout")
fm.og = json_get_open_graph(obj, "og")
ok = true
return
@@ -77,3 +81,22 @@ json_get_bool :: proc(obj: json.Object, key: string) -> bool {
return false
}
json_get_open_graph :: proc(obj: json.Object, key: string) -> Open_Graph {
og: Open_Graph
if v, ok := obj[key]; ok {
if inner, ok2 := v.(json.Object); ok2 {
og.title = json_get_string(inner, "title")
og.type = json_get_string(inner, "type")
og.image = json_get_string(inner, "image")
og.url = json_get_string(inner, "url")
og.description = json_get_string(inner, "description")
og.locale = json_get_string(inner, "locale")
og.site_name = json_get_string(inner, "site_name")
og.published_time = json_get_string(inner, "published_time")
og.modified_time = json_get_string(inner, "modified_time")
og.section = json_get_string(inner, "section")
}
}
return og
}