Kitchen Sink — All Ghost Editor Elements
A comprehensive showcase of every Ghost editor element, from headings and lists to callouts, toggles, embeds, and code blocks.
Headings
This post demonstrates every element available in the Ghost editor. Use it to verify that your theme styles all content types correctly.
Third-Level Heading
Below is an H4 heading, followed by H5 and H6.
Fourth-Level Heading
Fifth-Level Heading
Sixth-Level Heading
Text Formatting
This paragraph contains bold text, italic text, bold italic text, inline code, a hyperlink, and strikethrough text. All of these inline styles should render correctly within a paragraph.
Here is a second paragraph to demonstrate spacing between consecutive paragraphs. Good typography requires consistent spacing that creates a readable rhythm.
Lists
Unordered List
- First item in the list
- Second item with more detail
- Nested item one
- Nested item two
- Deeply nested item
- Third item back at the top level
- Fourth item to show consistent spacing
Ordered List
- Clone the repository from GitHub
- Install dependencies with npm
- Run
npm installin the root directory - Verify all packages installed correctly
- Run
- Configure your environment variables
- Start the development server
Blockquotes
The best way to predict the future is to create it. — Abraham Lincoln
This is a multi-paragraph blockquote.
It contains two paragraphs to test how your theme handles longer quoted content with paragraph breaks inside the quote block.
Table
| Feature | Free | Pro | Enterprise |
|---|---|---|---|
| Listings | 50 | 500 | Unlimited |
| Categories | 5 | 25 | Unlimited |
| API Access | No | Yes | Yes |
| Custom Domain | No | Yes | Yes |
| Priority Support | No | No | Yes |
Images
Code Blocks
JavaScript
// Fetch resources from the Ghost Content API
const GhostContentAPI = require('@tryghost/content-api');
const api = new GhostContentAPI({
url: 'https://beacon.kontemi.com',
key: 'your-content-api-key',
version: 'v5.0'
});
async function getResources(tag) {
const posts = await api.posts.browse({
filter: `tag:${tag}`,
include: 'tags,authors',
limit: 12
});
return posts;
}Python
import requests
def fetch_resources(base_url, api_key, tag):
"""Fetch resources from Ghost Content API by tag."""
url = f"{base_url}/ghost/api/content/posts/"
params = {
'key': api_key,
'filter': f'tag:{tag}',
'include': 'tags,authors',
'limit': 12
}
response = requests.get(url, params=params)
return response.json()['posts']CSS
.listing-card {
display: grid;
grid-template-rows: auto 1fr auto;
border-radius: 12px;
overflow: hidden;
background: var(--color-surface);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.listing-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}Callout Cards
Toggle Cards
How do I submit a resource?
What makes a resource eligible for listing?
Can I update my listing after submission?
Bookmark Card

YouTube Embed
Button Card
This concludes the kitchen sink demonstration. Every element above should be properly styled by the theme with correct spacing, colors, and responsive behavior.