Create Blog Post
neuron_create_blog_postCreate a new blog post. Body can be authored two ways: (1) content as markdown (GFM) + inline raw HTML, or (2) blocks — a structured array of typed layout blocks rendered as styled components (heroes, columns, callouts, code cards, embeds, CTAs, sanitized custom HTML). Prefer blocks for rich, magazine-style layouts; use content for simple prose. If both are given, blocks renders and content is kept as a fallback.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | List of tag names or slugs to categorize the post | |
| title | Yes | Title of the blog post (max 500 characters) | |
| blocks | No | Structured layout blocks, rendered top-to-bottom as styled components. Each block is an object with a `type` and its fields: - hero: { type:'hero', title, kicker?, subtitle?, imageUrl?, align?:'left'|'center', ctaLabel?, ctaHref? } - richText: { type:'richText', markdown } (full GFM markdown) - callout: { type:'callout', variant:'info'|'tip'|'warning'|'success'|'danger', title?, markdown } - columns: { type:'columns', ratio?:'1-1'|'1-2'|'2-1', columns:[ [block,...], [block,...] ] } (exactly 2 columns of leaf blocks; no nested columns) - codeCard: { type:'codeCard', language?, filename?, code } - imageGrid: { type:'imageGrid', columns?:1|2|3|4, images:[{ url, alt?, caption? }] } - quote: { type:'quote', quote, attribution? } - embed: { type:'embed', provider:'youtube'|'loom'|'vimeo'|'generic', url, title? } (paste the normal share URL) - cta: { type:'cta', headline, body?, buttonLabel, buttonHref, secondaryLabel?, secondaryHref?, accent?:'#hex' } - divider: { type:'divider' } - html: { type:'html', html, sandboxed?, height? } (custom HTML. Default is sanitized + indexable, no scripts. Set sandboxed:true to run scripts inside an isolated iframe — NOT indexed by search.) Build magazine-style posts by composing these, e.g. a hero, then richText, then a columns block, a callout, a codeCard, and a closing cta. | |
| status | No | Initial publication status of the post (default: 'draft') | draft |
| content | No | Optional markdown body (GFM + inline raw HTML). Used when `blocks` is not provided, and kept as a fallback when it is. Rich options: , <video src controls>, <iframe> embeds (16:9), <details><summary>, <mark>, <kbd>. | |
| excerpt | No | Short summary or preview text for the blog post | |
| seoTitle | No | Custom SEO title override for search engine results | |
| authorType | Yes | Whether the post is authored by an individual user or the organization | |
| seoKeywords | No | List of SEO keywords for search engine optimization | |
| coverImageUrl | No | URL of the cover image displayed at the top of the post | |
| seoDescription | No | Meta description for search engine result snippets |