From: Ben Sherratt Date: Sun, 23 Jul 2023 12:07:50 +0000 (+0100) Subject: post metadata support (not very good yet) X-Git-Url: https://git.bts.cx/cx.git/commitdiff_plain/27850f5b260560bdf75f3fca169ec5950ed00b22?ds=sidebyside post metadata support (not very good yet) --- diff --git a/cx/lib/posts.php b/cx/lib/posts.php index 6aca72e..2c2dc82 100644 --- a/cx/lib/posts.php +++ b/cx/lib/posts.php @@ -10,6 +10,16 @@ function mk_markdown($markdown) { return $Parsedown->text($markdown); } +class PostMetadata { + public $hero_image; + public $hero_image_alt; + + public function __construct($dict) { + $this->hero_image = $dict['post_hero_image']; + $this->hero_image_alt = $dict['post_hero_image_alt']; + } +} + class Post { public $id; public $title; @@ -36,6 +46,22 @@ class Post { $this->html_excerpt = mk_markdown($segments[0]); } } + + public function get_metadata() { + $data = []; + + $doc = new DOMDocument(); + $doc->loadHTML($this->html_content); + + $image_tag = $doc->getElementsByTagName('img')[0]; + + if ($image_tag != null) { + $data['post_hero_image'] = $image_tag->getAttribute('src'); + $data['post_hero_image_alt'] = htmlspecialchars($image_tag->getAttribute('alt')); + } + + return new PostMetadata($data); + } } function cx_post_make_slug($title) { diff --git a/cx/lib/template.php b/cx/lib/template.php index e368a2e..76e5318 100644 --- a/cx/lib/template.php +++ b/cx/lib/template.php @@ -1,6 +1,6 @@ + + + + + + + + + + + + + */ ?> + + diff --git a/cx/templates/public/post.php b/cx/templates/public/post.php index 9fb9fce..f44cb29 100644 --- a/cx/templates/public/post.php +++ b/cx/templates/public/post.php @@ -1,8 +1,9 @@ - -
- +get_metadata(); ?> date) . '/' . date('m', $post->date) . '/' . $post->slug; ?> + $post_metadata, 'cx_post_permalink' => $post_permalink]); ?> +
+