A markdown document with extended theme and LaTeX support.
tid
Timestamp-based ID
Properties
blobs
array
of
ref
app.greengale.blog.defs#blobMetadata
Optional
No description available.
content
string
Required
Markdown content of the document
maxLength: 100000 byteslatex
boolean
Optional
Legacy field for LaTeX math rendering. LaTeX is now always enabled for GreenGale posts; this field is kept for backward compatibility.
falseogp
ref
app.greengale.blog.defs#ogp
Optional
No description available.
path
string
Required
Document path relative to the publication URL (e.g., /handle/rkey)
maxLength: 500 bytespublishedAt
string
datetime
Required
Publication timestamp
subtitle
string
Optional
No description available.
maxLength: 1000 bytestags
array
of
string
Optional
Optional array of strings to tag/categorize the document. Avoid prepending with hashtags.
maxLength: 100 itemstheme
ref
app.greengale.blog.defs#theme
Optional
No description available.
title
string
Required
Document title
maxLength: 1000 bytesurl
string
uri
Required
Base publication URL (e.g., https://greengale.app)
maxLength: 2048 bytesvisibility
string
Optional
Controls who can view this document
maxLength: 16 bytespublic, url, authorpublicView raw schema
{
"description": "A markdown document with extended theme and LaTeX support.",
"key": "tid",
"record": {
"properties": {
"blobs": {
"items": {
"ref": "app.greengale.blog.defs#blobMetadata",
"type": "ref"
},
"type": "array"
},
"content": {
"description": "Markdown content of the document",
"maxLength": 100000,
"type": "string"
},
"latex": {
"default": false,
"description": "Legacy field for LaTeX math rendering. LaTeX is now always enabled for GreenGale posts; this field is kept for backward compatibility.",
"type": "boolean"
},
"ogp": {
"ref": "app.greengale.blog.defs#ogp",
"type": "ref"
},
"path": {
"description": "Document path relative to the publication URL (e.g., /handle/rkey)",
"maxLength": 500,
"type": "string"
},
"publishedAt": {
"description": "Publication timestamp",
"format": "datetime",
"type": "string"
},
"subtitle": {
"maxLength": 1000,
"type": "string"
},
"tags": {
"description": "Optional array of strings to tag/categorize the document. Avoid prepending with hashtags.",
"items": {
"maxGraphemes": 50,
"maxLength": 100,
"type": "string"
},
"maxLength": 100,
"type": "array"
},
"theme": {
"ref": "app.greengale.blog.defs#theme",
"type": "ref"
},
"title": {
"description": "Document title",
"maxLength": 1000,
"type": "string"
},
"url": {
"description": "Base publication URL (e.g., https://greengale.app)",
"format": "uri",
"maxLength": 2048,
"type": "string"
},
"visibility": {
"default": "public",
"description": "Controls who can view this document",
"enum": [
"public",
"url",
"author"
],
"maxLength": 16,
"type": "string"
}
},
"required": [
"content",
"url",
"path",
"title",
"publishedAt"
],
"type": "object"
},
"type": "record"
}