Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Custom Publish

danyimdanyim24 downloads

Command palette actions to manage frontmatter publish and visibility properties, with a copy-URL command for published pages.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates1

This is an Obsidian plugin that exposes command palette actions to set frontmatter properties for custom publishing workflows. It doesn't tie itself to a specific hosting provider (Obsidian Publish or otherwise); it assumes you already have a system that scans notes and publishes based on frontmatter properties.

Commands

Command Action
Custom Publish: Publish page Sets the publish property to true
Custom Publish: Unpublish page Sets the publish property to false
Custom Publish: Toggle publish page Flips the publish property
Custom Publish: Toggle visibility Flips the visibility property
Custom Publish: Copy published page URL Copies the published URL to the clipboard using the configured URL template

If the target property doesn't exist on the note, it will be added automatically.

Settings

Setting Default Description
Publish property publish Frontmatter key used to mark a page as published
Visibility property private Frontmatter key used to control page visibility
Publish URL template (empty) URL template for published pages. Use ${PAGE} as a placeholder for the page name
Slug style title-kebab How the page name is converted for the ${PAGE} placeholder

Publish URL template

The ${PAGE} placeholder is replaced with the current note's filename, converted using the selected slug style. Special characters are stripped and words are split on spaces, underscores, and hyphens.

Slug styles:

Style Example input ${PAGE} output
kebab-case My First Post my-first-post
Title-Kebab-Case My First Post My-First-Post
TitleCase My First Post MyFirstPost
camelCase My First Post myFirstPost

Configuration examples (using kebab-case):

Publish URL template Result for "My First Post"
https://blog.example.com/${PAGE} https://blog.example.com/my-first-post
https://example.com/posts/${PAGE}.html https://example.com/posts/my-first-post.html
https://wiki.example.com/pages/${PAGE}/ https://wiki.example.com/pages/my-first-post/

Note: The "Copy published page URL" command is only available when a Publish URL template is configured.

Development

npm install
npm run dev    # watch mode
npm run build  # production build

Installation

Copy main.js, styles.css, and manifest.json to your vault at .obsidian/plugins/obsidian-custom-publish/.

82%
HealthExcellent
ReviewSatisfactory
About
Set, unset, or toggle frontmatter flags to control publishing and visibility of notes from the command palette. Copy a note's public URL to the clipboard using a URL template with ${PAGE} replaced by a slugified filename.
PublishingCommandsProperties
Details
Current version
1.0.0
Last updated
3 months ago
Created
3 months ago
Updates
1 release
Downloads
24
Compatible with
Obsidian 1.12.2+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
danyimdanyim
GitHubdanyim
  1. Community
  2. Plugins
  3. Publishing
  4. Custom Publish

Related plugins

Permalink Opener

Open URLs based on a permalink or slug in the note properties. Useful with static site generators such as Jekyll, Hugo, Eleventy, etc.

Astro Composer

Turn your notes into posts and pages for your Astro blog with automated content management features.

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.

Quick Switcher++

Enhanced Quick Switcher, search open panels, and symbols.

Meta Bind

Make your notes interactive with inline input fields, metadata displays, and buttons.

Commander

Customize your workspace by adding commands everywhere, create macros and supercharge your mobile toolbar.

Note Toolbar

Add customizable toolbars to your notes.

Open vault in VS Code

Ribbon button and command to open vault as a Visual Studio Code (VSCode) workspace.

Task Collector (TC)

Change task status and collect tasks within a document using hotkeys and context menus.

Badges

Add inline badges/callouts to notes.