-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Add plugin: Share Note #2417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add plugin: Share Note #2417
Conversation
if (!file) { new Setting(containerEl) |
Hi @joethei - changes have been made and published in
|
I have also updated the docs for |
Hi Alan, thanks for your plugin submission! We noticed that when users share notes using your plugin they are hosted at The word "Obsidian" is a trademark, and therefore you cannot use it this way. The problem with Please update your domain to not include the word |
Hi @liamcain I have migrated to a new domain: https://share.note.sx/8HitpABlzq2mOu4W The old service has been disabled, and old versions of the plugin will no longer function. Would it be ok for existing users to be given a chance to update their shared links before I turn that server off? I hope you can understand that from their perspective. |
@liamcain I see the 👍 - I'm just checking you're not waiting on anything from me here before approving the plugin to the community directory? |
All links on the old domain have been redirected to the new domain, so the old domain is no longer visible. |
Sorry, gave the thumbs up, but was waiting to get a response from the rest of the team (Monday was a holiday for us, and Tuesday was a bit busy with releases).
I think the 'fs' import is worth fixing before we merge this. Let me know if you have any questions! |
I don't understand regarding render sorry: I'm reading the total document into a DOM parser so I can get the Document
|
Yes, I was suggesting you convert the md file to HTML directly instead of ripping the HTML from the DOM. |
Ahh, we're talking about different things. The domCopy is to get theme styles and custom CSS snippets, it's not about the note content. I will see if I can get the same style information from render (for example the height of the Thanks for the assist and the merge! 🙏 |
edit: You can ignore this question - it's a moot point as using @liamcain thanks for the suggestion regarding If I render this simple markdown for a callout: > [!NOTE] Title
> Contents I get this HTML which does not include the SVG callout icon - it's just an empty <div data-callout-metadata="" data-callout-fold="" data-callout="note" class="callout node-insert-event">
<div class="callout-title">
<div class="callout-icon">
<svg width="16" height="16"></svg> <!-- 👈 Empty svg here -->
</div>
<div class="callout-title-inner">Title</div>
</div>
<div class="callout-content">
<p>Contents</p>
</div>
</div> What am I doing wrong here? Thank you! |
I am submitting a new Community Plugin
Repo URL
Link to my plugin: https://github.com/alangrainger/obsidian-share
👉 Notes for Obsidian Team
This plugin is different from the two existing plugins QuickShare and OzanShare. QuickShare does not support images or the theme of your note. OzanShare is a paid service.
Regarding the Developer policies, all data sent to the server is pre-encrypted client-side with a key that only exists inside the user's vault. At no time is the decryption key ever sent to the server. An API key is required to use, but the account ID and API key are random data. There is no personal data collected or sent, and the user does not need to manually create an account on the server.
Regarding the code, I will be very interested to get your feedback. What I've done works perfectly, but I'm not sure how "best practice" my methods are, for example how I get the pixel-perfect rendered HTML here.
Here's an example shared note (unencrypted) showing off the support for themes, images, callouts, and even Dataview queries. And here's an encrypted example. The decryption key is the part of the URL after the
#
. A URI hash fragment is exclusively client-sided and not sent to the web server, so it's perfect for this use.This sharing service has been running for over a year now, I just finally got around to turning it into a plugin - it was a Templater script originally.
Here are the docs for the server side of things. All data sent to the server is already encrypted with a key that only exists in the user's Obsidian vault, and no PII (Personally Identifiable Information) is sent, so the specific backend implementation is fairly irrelevant.
Keen to hear feedback! Thank you.
Release Checklist
main.js
manifest.json
styles.css
(optional)v
)id
in mymanifest.json
matches theid
in thecommunity-plugins.json
file.README.md
.