This post exists as a feature reference — every markdown extension the blog supports is demonstrated below. Drop a copy of this file, change the frontmatter, and write your real post over the body.

Headings

Use ## for section headings (h2). The hero already renders the post title as h1. Keep h3 (###) for sub-sections within a section, h4 sparingly.

Inline formatting

Standard markdown: bold, italic, inline code, strikethrough, external link, internal link.

External links auto-get target="_blank" and rel="noopener nofollow". Internal links (anything containing "finder") stay in-tab.

Lists

Bullets:

  • First item
  • Second item
  • Nested:
    • Sub-item A
    • Sub-item B

Numbered:

  1. Step one
  2. Step two
  3. Step three

Task lists:

  • Done
  • Pending
  • Also pending

Code blocks

Inline code with backticks. Fenced blocks with language hint get pygments syntax highlighting:

from src.dashboard import blog as blog_mod

def example(posts_root, locale):
    posts = blog_mod.list_posts(posts_root, locale)
    return [p for p in posts if not p.draft]
# shell example
docker compose --env-file .env --env-file .env.test up -d dashboard
curl -s http://localhost:8765/blog | head -3
# YAML example — frontmatter format
slug: my-post
title: "My post title"
date: 2026-05-04
tags: [strategy, education]

Tables

Tier Spread Min profit at $1k Frequency
LOW ≥ 1.5% $10 50–150 / day
MEDIUM ≥ 5% $25 15–30 / day
HIGH ≥ 10% $50 2–8 / day
VERY_HIGH ≥ 15% $150 0–3 / day

Callouts

A standard note. Use for context that's interesting but not action-required.
Tip with a title

Pro insight. Highlight when the reader can save time / money / pain by following advice here.

Heads-up

Use for non-fatal cautions — "this exchange takes 10 minutes to confirm withdrawals", "this strategy needs $5k+ to overcome fixed fees".

Don't do this

Use sparingly for genuine "you can lose money" warnings. Liquidation risk, account-ban triggers, regulatory issues.

Callouts can contain bold, italic, links, and lists:

Multi-paragraph callout

First paragraph.

Second paragraph with a list:

  • Item one
  • Item two

Closing thought.

Math (KaTeX)

Inline math: \(P = (p_{sell} - p_{buy}) / p_{buy} \cdot S - F\) where \(S\) is size and \(F\) is total fees.

Display math:

$$ \text{Net at $1k} = 1000 \cdot \frac{p_{sell} - p_{buy}}{p_{buy}} - 2 \cdot t_{fee} \cdot 1000 - g_{network} \[

Funding-rate normalisation:

\] r_{8h} = r_{cycle} \cdot \frac{8h}{t_{cycle}} $$

Embeds

Lazy Twitter/X — placeholder card, click to open in a new tab. No third-party JS loaded:

YouTube — thumbnail with play overlay, click opens YouTube in a new tab. No iframe / cookies until consent:

Blockquotes

Standard markdown blockquote. Useful for emphasising a line or pulling a quote from elsewhere.

Horizontal rules


Use --- to break a long post into thematic sections.

Images

Local images live in landing/assets/blog/ and are referenced by absolute path:

![alt text](/assets/blog/funding-chart.webp)

Frontmatter reference

Every field supported in the --- block at the top:

Field Required Description
slug yes URL slug, stable after publication
title yes h1 + <title> + OG title
description no meta description; falls back to title
date yes publish date YYYY-MM-DD
updated no last-edited date for dateModified; defaults to date
author no defaults to Finder team
tags no list of strings, lowercased
hero_image no absolute path under /assets/blog/... for OG image
en_slug / ru_slug no cross-locale link for hreflang + lang switch
draft no true = hidden from list/sitemap, URL stays accessible with noindex

That's it. Delete this skeleton file or move it under posts/_drafts/ once real posts exist.