Content Publisher

by roomi-fields
5
4
3
2
1
Score: 35/100

Description

This plugin has not been manually reviewed by Obsidian staff. Publish your notes to multiple platforms: Substack, WordPress, and LinkedIn.

Reviews

No reviews yet.

Stats

stars
234
downloads
0
forks
1
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Obsidian Content Publisher

Publish your Obsidian notes to multiple platforms: Substack, WordPress, and more

CI codecov TypeScript Obsidian License: MIT Node.js

InstallationPlatformsUsageRoadmap


Supported Platforms

Platform Status Features
Substack Draft/publish, images, audience targeting, sections
WordPress Multi-server, categories, tags, Rank Math SEO, Polylang
LinkedIn Text/article posts, draft support, editable preview

See PLATFORMS.md for detailed setup and frontmatter documentation.


Features

Substack

  • One-Click Login — Automatic Substack authentication (desktop only)
  • Draft & Publish — Save as draft or publish immediately
  • Multi-Publication — Manage multiple Substack publications
  • Audience Control — Target everyone, paid-only, free-only, or founding members
  • Tags & Sections — Organize posts with tags and publication sections

WordPress

  • Multi-Server — Configure multiple WordPress sites (production, staging, etc.)
  • Server Selector — Choose which server to publish to
  • Categories & Tags — Auto-fetch categories, create tags on the fly
  • SEO Integration — Rank Math meta fields support
  • Wikilinks — Automatic conversion to WordPress internal links
  • Drop Cap Images — Decorative initial images (see Advanced Features)
  • Bilingual Publishing — FR/EN with Polylang (see Advanced Features)

LinkedIn

  • Text & Article Posts — Share text or articles with link preview
  • Auto Article URL — Uses wordpress_url or substack_url from frontmatter
  • Editable Preview — Edit content before publishing (3000 char limit)
  • Draft Support — Save as draft before publishing
  • Bilingual Support — Publish FR or EN version separately

General

  • Markdown Conversion — Full conversion to platform formats
  • Image Upload — Local images auto-uploaded to platform CDN
  • Frontmatter Support — Configure per-post settings via YAML
  • Cross-Platform — Publish to WordPress first, then Substack with link

Installation

From Community Plugins (Coming Soon)

  1. Open Settings → Community plugins
  2. Search for "Content Publisher"
  3. Install and enable

Manual Installation

  1. Download main.js, manifest.json, styles.css from latest release
  2. Create folder: .obsidian/plugins/content-publisher/
  3. Copy files into the folder
  4. Restart Obsidian → Enable plugin

Quick Start

Substack

  1. Go to Settings → Content Publisher → Authentication
  2. Click "Login" to authenticate with Substack
  3. Click "Refresh" to fetch your publications

WordPress

  1. Go to Settings → Content Publisher → WordPress
  2. Enable WordPress publishing
  3. Add a server with your WordPress URL and Application Password
  4. Click "Fetch from WP" to load categories

LinkedIn

  1. Go to Settings → Content Publisher → LinkedIn
  2. Enable LinkedIn publishing
  3. Follow the Setup guide in settings to get your access token via Postman
  4. Test connection to verify

Usage

  1. Open any Markdown note
  2. Add frontmatter (optional) for platform-specific settings
  3. Click the ribbon icon or use command palette
  4. Select platform and options
  5. Publish or save as draft

See PLATFORMS.md for frontmatter examples and platform-specific options.


Advanced Features

These optional features activate automatically when specific patterns are detected in your content.

Drop Cap Images (WordPress)

Add decorative initial images (medieval manuscript style) to your WordPress posts. The image floats left as a visual drop cap while the first letter remains in the HTML for SEO.

Usage: Name your image file with enluminure in the path:

![[Assets/enluminure-A.png]]

Your article content starts here...

Or specify in frontmatter:

---
enluminure: Assets/drop-caps/letter-A.png
---

The image will be:

  • Uploaded to WordPress
  • Positioned as a floating drop cap (200px max-width)
  • Set as the featured image and Open Graph image (Rank Math)
  • Removed from inline content to avoid duplication

Note: This feature only activates when "enluminure" appears in an image path. Regular images are unaffected.

Bilingual Publishing (WordPress + Polylang)

Publish French and English versions of your content simultaneously using the Polylang plugin.

1. Enable in Settings:

  • Go to WordPress server settings
  • Enable "Polylang" in the Multilingual section
  • Configure category mappings for each language

2. Write bilingual content using callouts:

> [!info]- 🇫🇷 Titre français
> Votre contenu en français ici.
>
> Plusieurs paragraphes sont supportés.

> [!info]- 🇬🇧 English Title
> Your English content here.
>
> Multiple paragraphs are supported.

3. Publish: The plugin will create two linked WordPress posts (one FR, one EN) with proper Polylang language tags.

Note: This feature only activates when both 🇫🇷 and 🇬🇧 callouts are present and Polylang is enabled.


Privacy & Security

  • Credentials stored locally in your vault
  • No telemetry or data collection
  • WordPress uses Application Passwords (not your login)
  • Open source — audit the code yourself

Troubleshooting

Error Solution
"Session expired" (Substack) Re-login via Settings → Login
"Publication not found" Check subdomain spelling
"401 Unauthorized" (WordPress) Check Application Password
Plugin not loading Enable in Community plugins, restart Obsidian

Roadmap

See ROADMAP.md for planned features.

Coming soon:

  • Cover image support
  • Scheduled publishing

Credits

Built upon these open-source projects:

See ATTRIBUTIONS.md for details.


License

MIT License — See LICENSE for details.


Contributing

Found a bug? Have an idea? Open an issue or submit a PR!

See CONTRIBUTING.md for guidelines.


Disclaimer: This plugin uses unofficial APIs. Not affiliated with Substack or WordPress.

Star on GitHub if this helps you!