Publisher

unlisted

by Mark Ayers

Publish notes to GitHub for Hugo processing. Automatically converts wikilinks, images, and filenames to Hugo-compatible formats.

Updated 2d agoMIT
View on GitHub

Obsidian Publisher

Publish Obsidian notes to GitHub for Hugo processing. Tailored for hugo-coder as used by philoserf.com.

Content Transformations

The plugin converts Obsidian-specific syntax to Hugo-compatible markdown during publish:

ObsidianHugo
[[Page Name]][Page Name]({{< ref "page-name" >}})
![[image.png]]![image.png](/images/image.png)
![[image.png|300]]![image.png](/images/image.png) (sizing stripped)
![[Note Name]] (embed)[Note Name]({{< ref "note-name" >}})
%%comment%%Removed
==highlight==<mark>highlight</mark>
> [!note] Title{{< notice note "Title" >}} (hugo-coder)
```mermaid{{< mermaid >}} (hugo-coder)

Callout types are mapped from Obsidian's ~20 types to hugo-coder's 7 notice types (note, tip, info, question, warning, error, example).

Security

This plugin requires a GitHub Personal Access Token (PAT) to publish content.

  • Use a fine-grained token scoped to your target repository with contents:write permission (add pull_requests:write if using the PR workflow). Avoid classic tokens with broad repo scope.
  • Token storage: The token is stored in Obsidian's plugin data file (data.json) as plaintext. This is an Obsidian platform constraint — there is no encrypted storage API. Anyone with file system access to your vault can read the token.
  • Recommendations: Use a token scoped to a single repository. On shared devices, be aware that the token is accessible on disk.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.