README file from
GithubGhosty Posty
Publish your Obsidian notes directly to Ghost blogs with automatic image uploads, frontmatter metadata support, and a beautiful confirmation modal.
Features
Content Publishing
- One-Command Publishing: Publish the current note to Ghost with a single command
- Markdown to HTML Conversion: Automatically converts your Obsidian markdown to Ghost-compatible HTML
- Image Upload: Automatically uploads local images to Ghost and updates references
- Featured Images: First-line images are automatically set as the post's featured image
- Wiki Link Conversion: Converts
[[links]]to plain text for Ghost compatibility
Publishing Options
- Editable Metadata: Review and edit title, tags, and status before publishing
- Post Status: Choose Draft, Published, or Scheduled
- Scheduled Publishing: Set a future date/time (in your local timezone) to publish
- Featured Posts: Toggle to mark posts as featured on your Ghost site
- Tags Management: Add comma-separated tags directly in the modal
Frontmatter Support
Control your posts with YAML frontmatter:
title: Override the filename as the post titleslug: Custom URL slug for the posttags: Array or comma-separated list of tagsstatus:draft,published, orscheduledpublish_dateordate: Schedule future publishing
Archive After Publishing
- Optional Archive Folder: Automatically move notes to a designated folder after a successful publish
- Folder Autocomplete: Suggests existing folders as you type
- Auto-Creates Folders: Creates the archive folder if it doesn't exist
- Collision Safe: Appends a timestamp if a file with the same name is already in the archive
Cross-Platform
Works on Obsidian Desktop (Mac, Windows, Linux) and Mobile (iOS, Android).
Installation
-
Download the latest release files:
main.jsmanifest.jsonstyles.css
-
Create a folder in your vault:
<vault>/.obsidian/plugins/ghosty-posty/ -
Copy all three files into this folder
-
Restart Obsidian or reload plugins
-
Enable "Ghosty Posty" in Settings → Community Plugins
Setup
1. Get Your Ghost Admin API Key
- Log in to your Ghost Admin panel
- Navigate to Settings → Integrations
- Click Add custom integration
- Give it a name (e.g., "Obsidian Publisher")
- Copy the Admin API Key (format:
id:secret)
2. Configure the Plugin
- Open Obsidian Settings
- Go to Ghosty Posty under Community Plugins
- Enter your Ghost Admin URL (e.g.,
https://yourblog.com) - Paste your Admin API Key
- Choose your Default post status (Draft recommended)
- (Optional) Set an Archive folder to automatically move notes after they're published — leave empty to disable
- Click Test Connection to verify
Usage
Basic Publishing
- Open the note you want to publish
- Open the Command Palette (
Cmd/Ctrl + P) - Run "Publish to Ghost"
- Review the metadata in the modal:
- Edit the title if needed
- Choose the status (Draft/Published/Scheduled)
- If Scheduled, pick a date and time
- Add or modify tags
- Toggle "Featured" if desired
- Click Publish
Using Frontmatter
Add YAML frontmatter to your notes for automatic metadata:
---
title: "My Awesome Blog Post"
slug: "awesome-post"
tags: [blogging, tutorial, obsidian]
status: published
publish_date: 2024-12-25T09:00:00
---
Your content here...
Image Handling
Featured Images:
- Place an image on the first line after frontmatter
- It will automatically become the featured image
- The image is removed from the post content
Inline Images:
- Both standard markdown
and Obsidian embeds![[image.png]]are supported - All local images are uploaded to Ghost automatically
- Image paths are updated to Ghost CDN URLs
- External URLs (http/https) are left unchanged
Publishing Options
Draft: Save the post but don't make it visible to readers
Published: Make the post immediately visible on your blog
Scheduled: Choose a future date and time to automatically publish (uses your local timezone)
Featured: Mark the post as featured on your Ghost site
Archiving Published Notes
If you set an Archive folder in settings, notes are automatically moved there after a successful publish:
- Leave the setting empty to keep notes in place after publishing
- The folder is created automatically if it doesn't exist
- If a file with the same name already exists in the archive, a timestamp is appended to avoid overwriting
- Internal links to the note are updated automatically when it's moved
Tips
- Use the Test Connection button in settings to verify your credentials work
- Start with drafts to preview your posts before publishing
- Tags from frontmatter will be pre-filled but can be edited in the modal
- Scheduled posts use your local timezone and are converted to UTC for Ghost
- The plugin will block publishing if any image fails to upload
Troubleshooting
"Connection failed"
- Verify your Ghost URL is correct (no trailing slash)
- Check that your Admin API Key is in the format
id:secret - Ensure your Ghost site is accessible from your network
"Image not found"
- Check that image paths are relative to your vault or the current note
- Verify the image file exists in your vault
"Failed to publish"
- Check the error message for details
- Verify you have write permissions on your Ghost site
- Try the Test Connection button to diagnose authentication issues