···99 site: lx.string({
1010 required: true,
1111 format: 'uri',
1212- description: 'Required URI for parent site or publication (https:// or at://). Use https:// for loose documents. Avoid trailing slashes.'
1212+ description: 'Points to a publication record (at://) or a publication url (https://) for loose documents. Avoid trailing slashes.'
1313 }),
1414 path: lx.string({
1515- description: 'Optional path, combined with site or publication url value to construct a full url to the document. Prepend with a leading slash.'
1515+ description: 'Combine with site or publication url to construct a canonical URL to the document. Prepend with a leading slash.'
1616 }),
1717 title: lx.string({
1818 required: true,
1919 maxLength: 1280,
2020 maxGraphemes: 128,
2121- description: 'Required title of the document.'
2121+ description: 'Title of the document.'
2222 }),
2323 description: lx.string({
2424 maxLength: 3000,
2525 maxGraphemes: 300,
2626- description: 'Optional brief description or expert of the document.'
2626+ description: 'A brief description or excerpt from the document.'
2727 }),
2828 coverImage: lx.blob({
2929 maxSize: 1 * MB,
3030 accept: ['image/*'],
3131- description: 'Optional image to use as the documents cover. Less than 1MB is size.'
3131+ description: 'Image to used for thumbnail or cover image. Less than 1MB is size.'
3232 }),
3333 content: lx.union([], {
3434 closed: false,
3535- description: 'Optional open union to construct content within the record. Can be extended with other lexicons to define any content format.'
3535+ description: 'Open union used to define the record\'s content. Each entry must specify a $type and may be extended with other lexicons to support additional content formats.'
3636 }),
3737 textContent: lx.string({
3838- description: 'Optional plaintext representation of the documents contents. Useful for search and other cases.'
3838+ description: 'Plaintext representation of the documents contents. Should not contain markdown or other formatting.'
3939 }),
4040 bskyPostRef: lx.ref('com.atproto.repo.strongRef', {
4141- description: 'Optional strong reference to a Bluesky post. Useful to keep track of comments off-platform.'
4141+ description: 'Strong reference to a Bluesky post. Useful to keep track of comments off-platform.'
4242 }),
4343 tags: lx.array({
4444 type: 'string',
4545 }, {
4646 maxLength: 100,
4747- description: 'Optional array of strings used to tag/categorize the document. Avoid prepending tags with hashtags ("#").'
4747+ description: 'Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags.'
4848 }),
4949 publishedAt: lx.string({
5050 required: true,
5151 format: 'datetime',
5252- description: 'Required timestamp of the documents publication.'
5252+ description: 'Timestamp of the documents publish time.'
5353 }),
5454 updatedAt: lx.string({
5555 format: 'datetime',
5656- description: 'Optional timestamp of the documents last edit.'
5656+ description: 'Timestamp of the documents last edit.'
5757 })
5858 }),
5959+ description: 'A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently.'
5960 })
6061})
+1-1
src/lexicons/site.standard.graph.subscription.ts
···88 publication: lx.string({
99 required: true,
1010 format: 'at-uri',
1111- description: 'Required publication at-uri.'
1111+ description: 'AT-URI reference to the publication record being subscribed to (ex: at://did:plc:abc123/site.standard.publication/xyz789).'
1212 })
1313 }),
1414 description: 'Record declaring a subscription to a publication.'
+11-8
src/lexicons/site.standard.publication.ts
···1010 url: lx.string({
1111 required: true,
1212 format: 'uri',
1313- description: 'Required base publication URL (ex: https://standard.site).'
1313+ description: 'Base publication url (ex: https://standard.site). The canonical document URL is formed by combining this value with the document path.'
1414 }),
1515 icon: lx.blob({
1616 maxSize: 1 * MB,
1717- accept: ['image/*']
1717+ accept: ['image/*'],
1818+ description: 'Square image to identify the publication. Should be at least 256x256.'
1819 }),
1920 name: lx.string({
2021 required: true,
2122 maxLength: 1280,
2223 maxGraphemes: 128,
2323- description: 'Required name of the publication.'
2424+ description: 'Name of the publication.'
2425 }),
2526 description: lx.string({
2627 maxLength: 3000,
2728 maxGraphemes: 300,
2828- description: 'Optional brief description of the publication.'
2929+ description: 'Brief description of the publication.'
2930 }),
3031 basicTheme: lx.ref(siteStandardThemeBasic.json.id, {
3131- description: 'Optional simplified publication theme for tools and apps to easily implement when displaying content.'
3232+ description: 'Simplified publication theme for tools and apps to utilize when displaying content.'
3233 }),
3334 preferences: lx.ref('#preferences', {
3434- description: 'Optional object containing platform specific preferences (with a few shared properties).'
3535+ description: 'Object containing platform specific preferences (with a few shared properties).'
3536 })
3637 }),
3838+ description: 'A publication record representing a blog, website, or content platform. Publications serve as containers for documents and define the overall branding and settings.'
3739 }),
3840 preferences: lx.object({
3941 showInDiscover: lx.boolean({
4042 default: true,
4141- description: 'Optional boolean which decides whether the publication should appear in discovery feeds.'
4242- })
4343+ description: 'Boolean which decides whether the publication should appear in discovery feeds.'
4444+ }),
4545+ description: 'Platform-specific preferences for the publication, including discovery and visibility settings.'
4346 })
4447})
+5-4
src/lexicons/site.standard.theme.basic.ts
···88 record: lx.object({
99 background: lx.union([siteStandardThemeColor.json.id + '#rgb'], {
1010 required: true,
1111- description: 'Required color used for content background.'
1111+ description: 'Color used for content background.'
1212 }),
1313 foreground: lx.union([siteStandardThemeColor.json.id + '#rgb'], {
1414 required: true,
1515- description: 'Required color used for content text.'
1515+ description: 'Color used for content text.'
1616 }),
1717 accent: lx.union([siteStandardThemeColor.json.id + '#rgb'], {
1818 required: true,
1919- description: 'Required color used for links and button backgrounds.'
1919+ description: 'Color used for links and button backgrounds.'
2020 }),
2121 accentForeground: lx.union([siteStandardThemeColor.json.id + '#rgb'], {
2222 required: true,
2323- description: 'Required color used for button text.'
2323+ description: 'Color used for button text.'
2424 })
2525 }),
2626+ description: 'A simplified theme definition for publications, providing basic color customization for content display across different platforms and applications.'
2627 })
2728})