···11+{
22+ "id": "at.markpub.markdown",
33+ "defs": {
44+ "main": {
55+ "type": "object",
66+ "required": [
77+ "text"
88+ ],
99+ "properties": {
1010+ "text": {
1111+ "ref": "at.markpub.text",
1212+ "type": "ref",
1313+ "description": "An object that includes the text in markdown. May include anything that is valid markdown syntax for your flavor. Make sure it is properly escaped if necessary."
1414+ },
1515+ "flavor": {
1616+ "type": "string",
1717+ "description": "Markdown may be rendered in many flavors. The most common are CommonMark and Github Flavored Markdown (GFM). Generally your markdown is one of those two and if you don't know then it is likely CommonMark. At this time the lexicon only recognizes these two flavors. Submit a PR if you think one should be added.",
1818+ "knownValues": [
1919+ "gfm",
2020+ "commonmark"
2121+ ]
2222+ },
2323+ "extensions": {
2424+ "type": "array",
2525+ "items": {
2626+ "type": "string"
2727+ },
2828+ "description": "The Markdown community expects certain extensions to mainline Markdown flavors. This setting allows you to note to a renderer what extensions might be expected. The most common is LaTeX. Rendering systems may choose to render these extensions in a variety of ways or present them raw. It is not required that you include YAML in the markdown text itself, if you choose to include a YAML metadata block, note it in this field."
2929+ },
3030+ "frontMatter": {
3131+ "type": "array",
3232+ "items": {
3333+ "refs": [],
3434+ "type": "union",
3535+ "closed": false
3636+ },
3737+ "description": "If your markdown includes a front matter block, you can include it here as a set of objects describing the data. This is optional but may be more convenient for some systems to have it separate. It is expected that if you include this field that the front matter block is not included in the raw markdown text field. It would likely be parsed out of a YAML block and transformed into this array of objects or an array holding a single object."
3838+ },
3939+ "renderingRules": {
4040+ "type": "string",
4141+ "description": "Using this field is highly suggested. Different rendering systems for Markdown may introduce slight or significant changes to the resulting HTML. This setting allows you to specify your renderer so systems can understand the rules you expect. Keep in mind that no consuming entity is obligated to honor this preference. While rendering views may infer rules established by different Markdown renderers with this field, they can and should use the rendering system of their choice. Do **not** use rendering systems you don't know. Some examples might be `marked`, `pandoc`, `markdown-it` `mdxt`, etc. Generally, this lexicon assumes that you are pulling the Markdown from an existing site that includes an existing rendering process. The processor used for that process to build your site's pages is the one you should include here. If you don't know then just leave this field out."
4242+ }
4343+ }
4444+ }
4545+ },
4646+ "$type": "com.atproto.lexicon.schema",
4747+ "lexicon": 1
4848+}
···11+{
22+ "id": "at.markpub.text",
33+ "defs": {
44+ "main": {
55+ "type": "object",
66+ "required": [
77+ "markdown"
88+ ],
99+ "properties": {
1010+ "facets": {
1111+ "type": "array",
1212+ "items": {
1313+ "refs": [],
1414+ "type": "union",
1515+ "closed": false
1616+ },
1717+ "description": "Facets here represent rendered versions of Markdown strings. A bold Markdown string `**bold**` might be represented by a richtext facet of #bold, in which case it is suggested to be presented without the Markdown markup as `<strong>bold</strong>`. Facets select their character ranges based on position in the Markdown text but should be rendered without the related characters. For example: `### Header` will be selected using a character range that includes the hashes like (0,9) but will be rendered without the hashes like `<h3>Header</h3>`. It is recommended that processors to not transform in-place for this reason. The goal of having an open union for facets is that constructing systems may choose to use the facets they prefer from across the ecosystem, either here or in other places like `pub.leaflet.richtext.facet`"
1818+ },
1919+ "lenses": {
2020+ "type": "array",
2121+ "items": {
2222+ "refs": [],
2323+ "type": "union",
2424+ "closed": false
2525+ },
2626+ "description": "Lenses are lexicons that define translatable facets for rendering layers with limited facets. `pub.leaflet.richtext.facet#bold` and `at.markpub.facets.baseFormatting#strong` expect the same output. A lens would then include a union with both those facets and a renderer that understands either of them could translate between the two."
2727+ },
2828+ "markdown": {
2929+ "type": "string",
3030+ "description": "The raw text in markdown. May include anything that is valid markdown syntax for your flavor. Make sure it is properly escaped if necessary."
3131+ },
3232+ "textBlob": {
3333+ "type": "blob",
3434+ "accept": [
3535+ "text/*"
3636+ ],
3737+ "maxSize": 1000000,
3838+ "description": "Text may be blob-ified as raw Markdown and stored on a PDS, pass it here by reference. If you use this property it is assumed that it overrides the \"rawMarkdown\" property. It is a PDS address for a markdown text file. You still must provide some value, even if it is a preview for \"rawMarkdown\" in this field."
3939+ }
4040+ }
4141+ }
4242+ },
4343+ "$type": "com.atproto.lexicon.schema",
4444+ "lexicon": 1
4545+}
···11+{
22+ "id": "com.atproto.label.defs",
33+ "defs": {
44+ "label": {
55+ "type": "object",
66+ "required": [
77+ "src",
88+ "uri",
99+ "val",
1010+ "cts"
1111+ ],
1212+ "properties": {
1313+ "cid": {
1414+ "type": "string",
1515+ "format": "cid",
1616+ "description": "Optionally, CID specifying the specific version of 'uri' resource this label applies to."
1717+ },
1818+ "cts": {
1919+ "type": "string",
2020+ "format": "datetime",
2121+ "description": "Timestamp when this label was created."
2222+ },
2323+ "exp": {
2424+ "type": "string",
2525+ "format": "datetime",
2626+ "description": "Timestamp at which this label expires (no longer applies)."
2727+ },
2828+ "neg": {
2929+ "type": "boolean",
3030+ "description": "If true, this is a negation label, overwriting a previous label."
3131+ },
3232+ "sig": {
3333+ "type": "bytes",
3434+ "description": "Signature of dag-cbor encoded label."
3535+ },
3636+ "src": {
3737+ "type": "string",
3838+ "format": "did",
3939+ "description": "DID of the actor who created this label."
4040+ },
4141+ "uri": {
4242+ "type": "string",
4343+ "format": "uri",
4444+ "description": "AT URI of the record, repository (account), or other resource that this label applies to."
4545+ },
4646+ "val": {
4747+ "type": "string",
4848+ "maxLength": 128,
4949+ "description": "The short string name of the value or type of this label."
5050+ },
5151+ "ver": {
5252+ "type": "integer",
5353+ "description": "The AT Protocol version of the label object."
5454+ }
5555+ },
5656+ "description": "Metadata tag on an atproto resource (eg, repo or record)."
5757+ },
5858+ "selfLabel": {
5959+ "type": "object",
6060+ "required": [
6161+ "val"
6262+ ],
6363+ "properties": {
6464+ "val": {
6565+ "type": "string",
6666+ "maxLength": 128,
6767+ "description": "The short string name of the value or type of this label."
6868+ }
6969+ },
7070+ "description": "Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel."
7171+ },
7272+ "labelValue": {
7373+ "type": "string",
7474+ "knownValues": [
7575+ "!hide",
7676+ "!warn",
7777+ "!no-unauthenticated",
7878+ "porn",
7979+ "sexual",
8080+ "nudity",
8181+ "graphic-media",
8282+ "bot"
8383+ ]
8484+ },
8585+ "selfLabels": {
8686+ "type": "object",
8787+ "required": [
8888+ "values"
8989+ ],
9090+ "properties": {
9191+ "values": {
9292+ "type": "array",
9393+ "items": {
9494+ "ref": "#selfLabel",
9595+ "type": "ref"
9696+ },
9797+ "maxLength": 10
9898+ }
9999+ },
100100+ "description": "Metadata tags on an atproto record, published by the author within the record."
101101+ },
102102+ "labelValueDefinition": {
103103+ "type": "object",
104104+ "required": [
105105+ "identifier",
106106+ "severity",
107107+ "blurs",
108108+ "locales"
109109+ ],
110110+ "properties": {
111111+ "blurs": {
112112+ "type": "string",
113113+ "description": "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
114114+ "knownValues": [
115115+ "content",
116116+ "media",
117117+ "none"
118118+ ]
119119+ },
120120+ "locales": {
121121+ "type": "array",
122122+ "items": {
123123+ "ref": "#labelValueDefinitionStrings",
124124+ "type": "ref"
125125+ }
126126+ },
127127+ "severity": {
128128+ "type": "string",
129129+ "description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
130130+ "knownValues": [
131131+ "inform",
132132+ "alert",
133133+ "none"
134134+ ]
135135+ },
136136+ "adultOnly": {
137137+ "type": "boolean",
138138+ "description": "Does the user need to have adult content enabled in order to configure this label?"
139139+ },
140140+ "identifier": {
141141+ "type": "string",
142142+ "maxLength": 100,
143143+ "description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
144144+ "maxGraphemes": 100
145145+ },
146146+ "defaultSetting": {
147147+ "type": "string",
148148+ "default": "warn",
149149+ "description": "The default setting for this label.",
150150+ "knownValues": [
151151+ "ignore",
152152+ "warn",
153153+ "hide"
154154+ ]
155155+ }
156156+ },
157157+ "description": "Declares a label value and its expected interpretations and behaviors."
158158+ },
159159+ "labelValueDefinitionStrings": {
160160+ "type": "object",
161161+ "required": [
162162+ "lang",
163163+ "name",
164164+ "description"
165165+ ],
166166+ "properties": {
167167+ "lang": {
168168+ "type": "string",
169169+ "format": "language",
170170+ "description": "The code of the language these strings are written in."
171171+ },
172172+ "name": {
173173+ "type": "string",
174174+ "maxLength": 640,
175175+ "description": "A short human-readable name for the label.",
176176+ "maxGraphemes": 64
177177+ },
178178+ "description": {
179179+ "type": "string",
180180+ "maxLength": 100000,
181181+ "description": "A longer description of what the label means and why it might be applied.",
182182+ "maxGraphemes": 10000
183183+ }
184184+ },
185185+ "description": "Strings which describe the label in the UI, localized into a specific language."
186186+ }
187187+ },
188188+ "$type": "com.atproto.lexicon.schema",
189189+ "lexicon": 1
190190+}