ViralMag

Blog · Creative Workflow

Markdown kitchen sink — headings, images, lists, code, and more

Elena Cho 3 min read

A reference post that exercises every markdown element we render on ViralMag blog pages — useful for checking layout and sanitization.

Markdown kitchen sink — headings, images, lists, code, and more

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.

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:

Product-aware creative illustration
Custom figcaption — product-aware creative, not the alt string.

Brand mark:

ViralMag logo mark
ViralMag logo 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

  1. Write the product brief
  2. Pick this week's angles
  3. Generate scripts
  4. 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.

Continue Reading

Related Playbooks & Articles

Your next week of UGC starts with one brief.

No timeline editor to learn. No freelancer to re-brief. Product context stays in the loop from brief to render.

Start creating See a live demo

Cancel anytime. Your first brief ships this week.