Blog · Creative Workflow
Markdown kitchen sink — headings, images, lists, code, and more
A reference post that exercises every markdown element we render on ViralMag blog pages — useful for checking layout and sanitization.
This post is a visual checklist of the markdown surface the blog supports. It is product-safe editorial copy with no fabricated stats — only formatting samples.
Headings (h2)
Body copy never uses a top-level # heading — the page title is already the h1. Section titles start at ##.
Subheading (h3)
Use h3 for nested sections under an h2.
Smaller heading (h4)
h4 and h5 are available for dense reference material.
Smallest heading (h5)
Useful for labeled notes inside a section.
Paragraphs, emphasis, and inline code
Regular paragraphs support italic, bold, and bold italic. You can also mark deleted text when comparing drafts.
Inline code looks like seed_content or make sync-content — monospaced, without becoming a full code block.
Links
Internal product links stay on-site:
External links get rel="noopener noreferrer" after sanitize:
Email links are allowed when you need a contact affordance: hello@viralmag.net.
Images
Markdown images are wrapped in <figure>; the alt text becomes the caption.
You can also write an explicit figure with a custom caption:
Brand mark:

Blockquotes
Reusable briefs cut the re-briefing cycle. New topics become a matter of choosing an angle, not re-explaining the product from scratch.
Nested emphasis still works inside quotes:
Ship the same brief through topics, scripts, and renders — without rewriting it every week.
Lists
Unordered
- Brief once
- Generate topics from that brief
- Render variants in parallel
- Review, then publish
Ordered
- Write the product brief
- Pick this week's angles
- Generate scripts
- Render and schedule
Nested
- Production system
- Briefing
- Scripting
- Rendering
- Distribution
- Organic
- Paid social
Code blocks
Fenced blocks keep indentation and newlines:
# Sync dated-folder markdown into Postgres
python manage.py sync_content
# Or via Make (Docker web container)
make sync-content
Another sample with a short Python snippet:
from apps.core.markdown_utils import render_markdown
html = render_markdown("Hello **world**")
Tables
| Stage | Owner | Output |
|---|---|---|
| Brief | Marketing | Audience, tone, product context |
| Topics | Growth | Angles for the week |
| Scripts | Creative | Spoken lines + captions |
| Render | Pipeline | Short-form variants |
Admonitions
Docusaurus-style callouts in markdown:
Horizontal rule
Content above this line is the kitchen-sink tour.
Content below the rule is a short closing note: sync this file with make sync-content (or make seed-content) after editing, then open /blog/markdown-kitchen-sink/ to review rendering.
markdown · reference · design-qa
Elena Cho
Head of Content, ViralMag
Writes about creative production systems and what actually changes when briefing stops being the bottleneck.