Feature Description: When publishing blog posts using pipup.social, users are currently unable to include standardized metadata like title, author, date, tags, or description directly within their content files (e.g., Markdown files).
This limitation makes it difficult to:
- Automatically generate SEO-friendly <title> and <meta> tags for blog post pages. See section below for more details.
- Categorize content effectively using tags without relying purely on post content parsing or manual data entry in a separate system.
See suggested stages of adoption below.
Why Is This Needed?
The lack of explicit, parsable metadata limits the application's ability to present blog content in a structured, professional, and easily discoverable manner.
Suggested Solution(s): I would like to request the implementation of a front matter parser, most commonly found in static site generators like Jekyll, or MkDocs. This would allow users to define metadata at the very beginning of their Markdown files using YAML, TOML, or JSON format delimiters.
The application should:
- Detect the presence of front matter (e.g., text enclosed by --- lines at the top of the file).
- Parse this data into usable key-value pairs upon processing the content.
- Make this metadata available for use in the post-publishing part of the lifecycle of the post.
- Ignore the section when a page is in
viewmode.
---
title: "A Comprehensive Guide to AT Protocol"
author: "Jane Doe"
date: 2025-12-01
tags: ["ATproto", "Bluesky", "Decentralization"] # format 1
tags: ATproto, Bluesky, Decentralization
# tags may or may not start with a '#'
# tags & labels may not contain space
labels: swearwords, mild-sentence-nudity
# AT Protocol API: must be lowercase a-z or contain dashes
# ',' used as delimeter for both
description: "An overview of the Authenticated Transfer Protocol."
---
# A Comprehensive Guide to AT Protocol
The Authenticated Transfer Protocol (AT Protocol) is a new decentralized social networking protocol...
Alternatives Considered:
Inferring metadata from content: The current potential workaround is parsing the first h1 heading as the title, or searching the text for keywords for tags. This is brittle and doesn't handle all metadata types (like dates or authors).
Manual configuration: Storing metadata in a separate database or configuration file requires users to manage two locations for a single post's information, which is error-prone and inefficient.
Additional context
Additional Context: This feature aligns with industry standards for modern blog platforms and significantly enhances the utility and professional presentation capabilities of pipup.social. Implementing this would streamline content management for users familiar with static site generators.
Environment(s): any
Suggested levels of support - or stages of implementation
- ghost support - accept and ignore. The metadata block is preserve in the 'blobs' collection as is (i.e. in the main text), but is ignored upon rendering, i.e. doesn't display (except and viewer). It is present in edit.
- documented partial support list explicitely fields that are overwritten by the app, i.e. XYZ, implemented and what they do
Fields priority:
- High priority -
- title:
- tags & labels:
- description:
- Medium priority -
- thumbnail/image & alt:
- low priority:
- language/languages:
- date + source:
Vote: You can vote for the feature, and further vote for the order of implementation of fields. Other use cases may require different fields.
html head for pipup - SEO enhancements & bksy visibility#
Use of 'tags' and 'labels' fields:
These are supported by the bksy lexicon, pass them along.
At a later time, possibly support them in the bsky post UI.
Auto hashtag-ify tags content, or require explicit format, e.g. '#' or not, spaces, delimiter, etc.
Use of 'title' field
<title>--- | PiPup</title>
<meta name="og:title" content="---">
<meta property="og:title" content="---">
<meta name="twitter:title" content="---">
Currently html <title> is hardcoded to site, and socials meta to incorrectly truncated portion of the excerpt (I think).
Use of 'description' field
'description' could be used to pre-populate the body in the bksy post UI.
<meta name="description" content="--- CURRENTLY auto excerpt">
<meta name="og:description" content="--- CURRENTLY auto excerpt...">
<meta property="og:description" content="--- CURRENTLY auto excerpt">
<meta name="twitter:description" content="--- CURRENTLY auto excerpt">
Use of 'image' or 'thumbnail' field
<meta name="og:image" content="https://pipup.social/og/default.png">
<meta property="og:image" content="https://pipup.social/og/default.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://pipup.social/og/default.png">
Use of 'alt' field
<meta property="og:image:alt" content="---">
Possible use of 'language' field - all posts are auto marked as en_US currently
<meta property="og:locale" content="en_US">
Other fields, for different usecases:
'date', 'original' or 'source': can be used by writers who cross-post
'series' to organize groups of blog posts that belong in a sequential collection.
author, draft, lastmod / updated: explicitely ignore, as you have your own.
should read: Other fields, for different usecases:
'date', 'original' or 'source': can be used by writers who cross-post.
'series' to organize groups of blog posts that belong in a sequential collection.