Markdown Style Reference
A complete reference for every markdown component available on this site. Use this as a cheat sheet when writing new posts.
This post documents every markdown element available on badry.dev. Keep it around as a reference — it shows exactly how each element renders so you know what you have to work with.
Headings
H1 — Page-level title
H2 — Major section (gets a bottom border)
H3 — Subsection
H4 — Minor label (uppercase, muted)
Paragraphs and inline text
Regular paragraph text sits at 92% font size with generous line height for long-form reading. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
Bold text stands out with a brighter color. Italic text leans and softens. You can combine them: bold italic for maximum emphasis. Use inline code for technical terms, commands, or variable names — it renders in neon green on a dark surface.
You can ==highlight text== using double equals. And reference keyboard shortcuts like Ctrl + K for the command palette.
Links
External link to GitHub — renders in neon green with a subtle underline that brightens on hover.
Code blocks
Inline code: run astro dev to start the local server.
Fenced code block with syntax highlighting:
// Fetching posts in Astro
const posts = await Astro.glob('../posts/*.md');
const sorted = posts.sort(
(a, b) => new Date(b.frontmatter.date) - new Date(a.frontmatter.date)
);
# Oracle SQL query via cx_Oracle
import cx_Oracle
conn = cx_Oracle.connect(user="badry", password="...", dsn="localhost/XEPDB1")
cursor = conn.cursor()
cursor.execute("SELECT * FROM projects WHERE status = 'active'")
for row in cursor:
print(row)
-- Oracle SQL: projects with row count
SELECT
p.project_id,
p.name,
COUNT(t.task_id) AS task_count
FROM projects p
LEFT JOIN tasks t ON t.project_id = p.project_id
WHERE p.status = 'active'
GROUP BY p.project_id, p.name
ORDER BY task_count DESC
FETCH FIRST 10 ROWS ONLY;
# Deploy to Vercel
npm run build
vercel --prod
Blockquotes
“The best tool is the one that disappears while you’re using it.”
Longer blockquotes work too. Use them for notable quotes, callouts, or anything worth setting apart from the main flow. The neon green left border draws the eye without shouting.
Lists
Unordered list
- Items render with a
→arrow marker in neon green - Clean, terminal-native feel
- Nesting works too:
- Sub-item one
- Sub-item two
- Back to top level
Ordered list
- Step one — install dependencies
- Step two — configure environment variables
- Step three — run the dev server
- Step four — ship it
Tables
| Tool | Category | Use case |
|---|---|---|
| Next.js | Frontend | App routing, SSR, static generation |
| Flask | Backend | REST APIs, internal tooling |
| Sanity CMS | Content | Structured content, headless CMS |
| Oracle SQL | Database | Complex queries, enterprise data |
| Astro | Static | Markdown-first sites (this one) |
| Vercel | Deploy | Frontend hosting, edge functions |
Horizontal rules
Use --- to insert a full-width divider. Good for separating major sections within a long post.
Images
Images render with a dark border and rounded corners. Add a caption by placing an italic line immediately after:
Caption goes here — rendered in small muted text below the image.
Frontmatter reference
Every post needs frontmatter at the top:
---
layout: ../../layouts/Post.astro
title: "Your Post Title"
date: 2026-02-17
excerpt: "One sentence summary shown in listings and meta description."
tags: ["tag-one", "tag-two"]
---
| Field | Required | Notes |
|---|---|---|
layout | ✅ | Always ../../layouts/Post.astro |
title | ✅ | Shown in hero and <title> tag |
date | ✅ | ISO format YYYY-MM-DD, used for sorting |
excerpt | Optional | Shown in post listings and meta |
tags | Optional | Rendered as green badges in the post hero |
File naming convention
Posts live in src/pages/posts/. The filename becomes the URL:
src/pages/posts/my-first-post.md → badry.dev/posts/my-first-post
src/pages/posts/oracle-tips.md → badry.dev/posts/oracle-tips
src/pages/posts/ai-workflow.md → badry.dev/posts/ai-workflow
Use lowercase kebab-case. Keep it short and descriptive.
Quick start
To add a new post:
- Duplicate this file or any existing post
- Update the frontmatter (
title,date,excerpt,tags) - Write your content below the second
--- - Save — Astro picks it up automatically, no config needed
- It will appear in the homepage listing and
/postspage sorted by date