Giter Site home page Giter Site logo

mcndt / obsidian-quickshare Goto Github PK

View Code? Open in Web Editor NEW
238.0 5.0 7.0 1.7 MB

📝 An Obsidian plugin for sharing encrypted Markdown notes on the web. Zero configuration required.

License: MIT License

JavaScript 6.05% TypeScript 66.75% Svelte 26.73% CSS 0.24% Shell 0.23%
end-to-end-encryption notes obsidian-md

obsidian-quickshare's People

Contributors

dependabot[bot] avatar mcndt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

obsidian-quickshare's Issues

[Feature] RTL Support

Is your feature request related to a problem? Please describe.
Yes. Despite the RTL support of obsidian, the published version doesn't have RTL support and sentences are rendered wrong.

[Bug] With disabled option 'Use frontmatter', a unshare still adds a text-block quickshare

Describe the bug
With disabled option Use frontmatter, a unshare still adds a block:

---
quickshare-date: "N/A"
quickshare-url: "Removed"
---

to the original md-file.

To Reproduce
Steps to reproduce the behavior:

  • Share your note with disabled option Use frontmatter
  • Unshare your note
  • View the original text of the note

Expected behavior
The absence of any changes in the source file, both a share or unshare note.

Screenshots
image
9b5d7da00539c8

Environment (please complete the following information):

  • OS: Ubuntu, Android

[Bug] Can't render LaTeX

Describe the bug
This LaTeX causes error $\min_{I}\sum_{l\in L_{F}}\left|F^{l}(I)-\hat{F}^{l}(I_{0})\right|{F}^{2}+ \alpha\sum{l\in L_{G}}\left|G^{l}(I)-\hat{G}^{l}(I_{0})\right|_{F}^{2} \tag{3}$
To Reproduce
Steps to reproduce the behavior:

Expected behavior

  • In Obsidian, it's rendered correctly |50pct

Screenshots

[Bug] Certain Symbols Break Tag Rendering

It seems ü and - among others break the rendering of tags:

image

Text in the picture:

> [!metadata]-
> - *status*:: draft
> - *source*:: [[2022-04-25 Pathologie Vorlesung]]
> - *tags*:: #krankheitsbild/entzündung #anatomie/darm 
> - *course*:: [[Pathologie]]
> - *review*:: #review/semester-5/pathologie 

### Epidemiologie

Title of note renders twice

Describe the bug
Title of note renders twice. Happens when the title of the note is the same as the first H1 heading.

To Reproduce
Steps to reproduce the behavior:

  • Publish a note with an H1 heading the same as the filename of the note. If a plugin is installed like Filename Heading Sync, this will be the case on 100% of notes.

Expected behavior
Heading/name of file should only appear once in share render when they are the same.

Screenshots

Screenshot 2024-02-11 at 6 49 55 PM

Environment (please complete the following information):

  • OS: macOS
  • Browser: Safari
  • Version 17.2.1 (19617.1.17.11.12)

[Refactor] Migrate to SubtleCrypto

SubtleCrypto is a web standard and built into most browsers, offering better reliability and performance.

I see this as a blocking issue for image embedding.

[Feature request] Allow send instance as backend

First off: amazing idea! I've wanted this sort of functionality for a while. Once my server is up and running, I'm thinking of implementing a "send" option, so the notes can be uploaded to a send instance, and then a link is copied to the user clipboard.

Request failed, status 429

When I looked it up, seems it should be due to too many requests. Does this mean the only way to use the service would be to set up a self-hosted version of this?

[Feature request] Offer a way to strip content not meant for publishing

That's a super nice service, thanks for working on it. I have a relatively simple feature request, which I might eventually work on if you don't get to it first:

It would be nice if we could strip some content off the note before publishing. Some of the details of the note are meant for cross linking with other notes which are not going to be available. None of it is a secret, but it's not relevant to any of the readers either.

There are a number of ways to implement it, but we could just offer, for example, a setting that takes a regular expressions for where to start the note. Or maybe a list of regular expressions to be filtered / stripped.

In either case, the goal is just to have some way to polish the output without having to compromise the internal organization.

Thanks for considering it.

[Feature request]close share option

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Key generation enables verifying note contents

Generating keys purely from note content make the keys stable for specific content. Actors can verify if some note they got without any identifying information comes from. While attacks from external actors would be difficult because note IDs aren't easily enumerable, whoever runs the storage service can easily check whether there is a note with specific content in the system, and which user uploaded it (since uploads are logged with an user ID). As far as I understand the security model obsidian-quickshare is intended to satisfy, this is a security issue.

Fix would be to use a secure random generator to generate the key, like Crypto.getRandomValues

[Feature request] Show filename on share page

Is your feature request related to a problem? Please describe.
When I share a note, the title is usually important for the initial context.

Describe the solution you'd like
Display the filename as a title on the page. Like the inline title in Obsidian 1.0

Describe alternatives you've considered
Tell the person you’re sharing to the filename

Additional context

[Feature request] Remember Shared Note Status + Edit Share Options

  • Right now you can click ... option and choose share link to share a note. However, after a note is shared there is no way to update the shared note, delete the shared note, or view/get the share not link again. You could click share note again but that will just create a brand new note.

  • It would be great if when you clicked share a link, if you then clicked the ... option again it would show the following options.

  1. Update Share Link
  2. Delete Share Link
  3. View Share Link
  4. Copy Share Link

OzanShare seems to have the sort of functionality I'm describing which can be seen in this video.
https://www.youtube.com/watch?v=yrwg4wqUg3A

I assume you could so something similar to OzanShare by storing the key/link in the frontmatter

[Bug] sidebar pane is navigable

Describe the bug

navigation on the sidebar pane should be set to false. Otherwise it takes focus. This has two implications.

To Reproduce

  1. Click on it, go back to the outline, it will not show the outline of the original file that was selected but nothing. The original file needs to be reselected.
  2. Files can be opened in it when it is clicked (activated).

Expected behavior

It shouldn’t be navigable.

Environment (please complete the following information):

  • OS: MacOS

Additional context

https://github.com/obsidianmd/obsidian-api/blob/38dd22168d2925086371bfc59e36fd9121527a39/obsidian.d.ts#L3845

public navigation = true;

add a toggle to the web viewer to toggle between narrow and wide margins

Is your feature request related to a problem? Please describe.
Preference, maybe, not a problem.

Describe the solution you'd like
Per https://discord.com/channels/1005079685434183743/1005079686067527702/1049230918667223050

Add a toggle to the web viewer to toggle between narrow and wide margins

Additional context
I typically view long lines of text in my notes (logs) and the readable line length default is pretty narrow, making more than half of the screen width into blank space.

Thanks!
ACE

[Feature request] Allow download (GET) of unrendered file

Allow another Obsidian user to download the file directly into their vault.

Could use a plugin command "Download shared note" that would accept the encrypted URL, and make the GET request with an Accept: text/markdown,text/plain or to indicate that the file should be returned as-is, without the rendered web view.

It isn't clear to me if you could use this to share other kinds of files as well.

[Feature request] Hide backticks for inline code

Not sure if this is a feature request or a bug, but inline code syntax/highlighting does use a different font but leaves the backticks in place when they should not appear. See example below:

FOVWW6r 1

It would be nice if the backticks were hidden and if the code could be shown as it is in Obsidian reading view. Thanks.

Bug - 404 error on shareNote

Hey guys,
looks like an awesome plugin, but its not working for me.

Error: Request failed, status 404
    at new t (app.js:1:710073)
    at Aw (app.js:1:710265)
    at app.js:1:710942
    at app.js:1:235505
    at Object.next (app.js:1:235610)
    at a (app.js:1:234349)

Inside Func shareNote I keep on getting inside the catch block .catch(this.handleSharingError);
Title and body is looking good, seems like serverUrl is making some trouble?

  • I tried with various configurations inside plugin options, but It keeps failing
  • I also created a new empty Vault without other plugins, does not work here, too :(

Do you have any advice for me?

[Security] Static IV during encryption/decryption

Came from https://mcndt.dev/posts/how-to-e2e-encryption/ 👋🏻

Describe the bug

Currently the code sets the IV to static value of 0s, and this is considered to be insecure.. Consider randomizing your IVs.

const buf_ciphertext: ArrayBuffer = await window.crypto.subtle.encrypt(
{ name: "AES-CBC", iv: new Uint8Array(16) },
await _getAesKey(secret),
plaintext
);

https://github.com/mcndt/noteshare.space/blob/f84ddba528b73c160a16b707ede064b752d3528a/webapp/src/lib/crypto/decrypt.ts#L54-L59

Also, please consider reading https://security.stackexchange.com/a/17046 with regards to secure usage of AES-CBC on your service. I honestly think it's better off to do something with GCM than with CBC mode.

[Feature request] Share history

Is it possible to add a shared history for each document? If I update a document and then share it again, I lose control of the version I previously shared and can't delete it from the cloud.

Easier way to get the sidebar icon back!

Awesome plugin! 🎸

I sometimes intentionally or accidentally close the sidebar "cloud" icon. There doesn't seem to be an easy way to get it back, other than quitting and relaunching the app.

I figured out I could run this at the console, but that's less than ideal

this.app.plugins.plugins["obsidian-quickshare"].initLeaf()

Possible to add a "Show/Hide Sidebar icon" command somewhere?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.