atproto blogging
at main 88 lines 2.4 kB view raw
1{ 2 "lexicon": 1, 3 "id": "blog.pckt.block.image", 4 "description": "An image block for displaying visual content. Supports both external URLs and AT Protocol blob storage with automatic aspect ratio preservation.", 5 "defs": { 6 "aspectRatio": { 7 "type": "object", 8 "description": "Image aspect ratio represented as width and height dimensions", 9 "required": [ 10 "width", 11 "height" 12 ], 13 "properties": { 14 "height": { 15 "type": "integer", 16 "description": "Height component of aspect ratio", 17 "minimum": 1 18 }, 19 "width": { 20 "type": "integer", 21 "description": "Width component of aspect ratio", 22 "minimum": 1 23 } 24 } 25 }, 26 "imageAttrs": { 27 "type": "object", 28 "description": "Image attributes", 29 "required": [ 30 "src" 31 ], 32 "properties": { 33 "align": { 34 "type": "string", 35 "description": "Horizontal alignment of the image within its container", 36 "enum": [ 37 "left", 38 "center", 39 "right" 40 ] 41 }, 42 "alt": { 43 "type": "string", 44 "description": "Alternative text description for accessibility and screen readers", 45 "maxLength": 1000, 46 "maxGraphemes": 300 47 }, 48 "aspectRatio": { 49 "type": "ref", 50 "description": "Image aspect ratio for proper layout before loading", 51 "ref": "#aspectRatio" 52 }, 53 "blob": { 54 "type": "blob", 55 "description": "AT Protocol blob reference (10MB max). Used when image is uploaded to PDS.", 56 "accept": [ 57 "image/*" 58 ], 59 "maxSize": 10000000 60 }, 61 "src": { 62 "type": "string", 63 "description": "Image source URL or blob reference (blob:CID format for AT Protocol blobs)", 64 "maxLength": 2000 65 }, 66 "title": { 67 "type": "string", 68 "description": "Optional image title displayed on hover", 69 "maxLength": 500, 70 "maxGraphemes": 200 71 } 72 } 73 }, 74 "main": { 75 "type": "object", 76 "required": [ 77 "attrs" 78 ], 79 "properties": { 80 "attrs": { 81 "type": "ref", 82 "description": "Image attributes", 83 "ref": "#imageAttrs" 84 } 85 } 86 } 87 } 88}