Obsidian Publish: single page sharing with secret URL

I‘d be more than happy to pay for Obsidian publish, but to my best knowledge it doesn‘t cover the one use case I care about: publishing a single file (and, recursively, linked files) to a hidden, non-indexed URL.

Use case or problem

I use the same vault for a bunch of different projects — the blog I write, my work notes, events I organize, etc. Pretty often (several times a week) I just want to share my notes with other people — my editor for proof-reading, my colleague, attendees for event information, … I don‘t want to publish my whole vault, or even a whole folder in one vault, just a single page and linked pages.

Proposed solution

Craft does this rather well: you click the „secret url“ button, and it will publish your document at a random URL. Changes are automatically update, you just have to share the URL.

In Obsidian, I‘d like things to work similarly: in the command palette, I can select „Publish to secret URL“, it will render the file (and linked files) to HTML (probably locally so local plugins are used), send it to the server which renders it at a random URL (which could be stored in the YAML front matter of the file). I don‘t care if changes are automatically published or I need to run an „Update published page“ command.

With this feature, I‘d happily pay $20/mo for Obsidian (also willing to pay someone for creating a plugin that does this, contact me)

Current workaround (optional)

Current workaround is a script that copies the file I want to publish to a different folder, hashes the file name (bad as this may change), renders it with a static site creator and pushes that to GitHub on a gh-pages branch, and spits out the URL based on the hash. It‘s not great as it doesn‘t do any plugins yet (I use admonitions and a lot of MathJax) and I don‘t resolve any internal links, though that could be fixed. But at this point I just want to pay for that feature.

Any pointers arewelcome.

11 Likes

Hi,

I started to work on a plugin, which allows to convert Obsidian internal links (wiki etc) to Markdown links, convert all of the content to HTML and publish within my personal page, which is hosted on Firebase and AWS.

It is pretty complicated to publish related files together with the main file, however, I managed to implement a way, which is pretty efficient. All linked files have their parent file, which is the published file. Once you remove the main published file, it will automatically unpublish all of the rest to ensure that server is not wasted if the pages are not referenced in your file anymore.

Once you publish the file, you also see the linked files links. They are embedded within the HTML, as well. You need to refresh the publish since each refresh will create a new unique code and remove the previous one.

I can create an account for limited people to use this functionality. Registered users have unique token, which is linked to their accounts. It will allow to create, delete the pages from the server. You can see the sample view, which I created:

And some sample Published Pages under the link:

https://obsidianpublish.web.app

Since it requires keeping my server up all the time, I might require some regular payments from the users to ensure that I can pay for the server and I can invest more time to improve functionalities of the publish function. However, it is still not stable yet. For instance, I need to find a solution for the images for the moment. They will work if you have external URL, however, local files need to be uploaded to somewhere to access later on. I will see what i can do.

I already included admonition, code-block, Mermaid render and you can see in the video. I will also include render options for MathJax etc once I have a while. It requires a little bit time and energy

Looking forward to feedback! :slight_smile:

1 Like

Thanks for posting this. I came to the forums today looking for the same thing! My current workaround is to paste into Craft and then share the URL. I’d love it if I could do this from within Obsidian.

Pasting into Craft is a good option but it won’t show your transclusions, admonitions etc. as they are shown in Obsidian.

I will release the plugin and web application very soon but it will be with a monthly payment. For the moment, I think it will be 10$ and I will see the affordability.

You can see a sample shared note from Obsidian here using the plugin:

https://ozanshare.web.app/publish/g2h11qiinhxefzzjjv

Also in this video, you can see the description of most of the available features:

Below I prepared some bullet points describing the plugin:

  1. You need to have a TOKEN from me to be able to use the plugin and publish feature. You need to verify the token first and then enjoy all features available.

  2. You can PUBLISH your notes and all related notes to the main note with a single click from the CONTEXT MENU of the file.

  3. Your pages are going to be served on https://ozanshare.web.app/

  4. Plugin RENDERS as HTML:

  • Admonitions
  • Transclusions (even nested)
  • Linked Files
  • Mermaids
  • Code Blocks
  • Any Basic Markdown String
  1. You can also add your custom CSS.

  2. You can view all your published notes from the LEAF created for plugin. Just click the Ribbon Icon

  3. As long as you don’t unpublish your notes and change the place of the file in the vault, the REPUBLISH will keep the old references. It will help you to update the files you have already shared with someone. You won’t need to send a new link.

  4. IMAGES are uploaded to Firebase server, which are also served with a secret token. Image source with the provided token is automatically embedded into your final publish on OzanShare.

  5. Each publish triggers a scan of your PUBLISHED FILES and VAULT. It means you shouldn’t remove the references from FRONTMATTER manually by hand since it will trigger removing the published note from the server. You should use UNPUBLISH feature if you don’t need the note anymore to be shared.

  6. You can open the published note on Web Application directly from CONTEXT MENU

Kindly reach me out directly on Discord or by email [email protected] if you have question.

2 Likes

Hi,

The plugin is released if you are interested:

You need to have Obsidian version 0.12.16 or above to be able to install since it is the version, which starts to give support for requests with header and Mermaids.

Thanks!

+3000 for this.

scenario in the topic post is exactly the thing what i’m facing for

my current workaround is using meld encrypt plugin and add some code on publish.js for decryption & password dialog. but the user still can find my secret page with obsidian publish api. all the paths are revealed with https://publish-01.obsidian.md/cache/ api.

Here are the requirements I’ve thought of:

  • allow setting a ‘type’ for each site – ‘publish’ and ‘share’ type sites
  • the ‘publish’ type sites should offer the same functionality as they do currently
  • the ‘share’ type sites should allow users to share and access selected notes not via file paths but through unique, unpredictable hash URLs. For this type, to reduce implementation difficulty, SEO, search, graph, and sliding window features will be excluded from the first implementation.
  • int the ‘share’ type sites, files linked from notes that are not in note format (e.g., images) should be automatically shared for access. To reduce implementation difficulty, files linked in note format will not be automatically linked; users must enter the separately shared note links manually.
  • features excluded to reduce implementation difficulty may be added in future updates.