Code Monkey home page Code Monkey logo

Comments (5)

 avatar commented on June 18, 2024 5

Thanks for the in-depth explanation.

Ive had troubles linking files across systems, or getting them to work in visualization scripts like this. Also. it allows for easier auto-completion in a terminal hel -> hello-world.md. Furthermore, the daily note seems to be written as yyyy-mm-dd. Nevertheless, it might be smart to wait for this to get some votes. For me, this is more of a nice-to-have

About the wikilinks: Ive totally missed the features. I am terribly sorry about that. [Sidenote: On the other hand, that might also be a sign that the README could be better structured. There are lots of rather small flashy gifs sandwiched in bullet points. It gets better for Notes and Images preview, but in the end it becomes smaller again. And the gifs demonstrating everything in a glaring bright theme doesn't help either, if you are watching them in the middle of the night inside VSC with a dark theme on.]

Let me end with a big thank you for developing this awesome extension and feel free to prioritize and work on anything you want. You are doing great!

(Sidenote: I absolutely would love to contribute (as this extension absolutely fills my needs), but first I got to start on my thesis.. Luckily I will need to learn JS/TS for it, so maybe there is hope πŸ‘)

from memo.

bs avatar bs commented on June 18, 2024 2

Spent some time reading and reflecting on this tonight, after trying to find reference to Github's rendering of [[WikiLinks]] (in repo markdown files) based on slugs. Without any mention in the Github Flavored Markdown Spec, I finally found this commit by an old friend :).

I'd suggest maintaining the current Memo behavior, that is– differentiating between notes, spaced or dashed.

@svsool, I agree that converting to and from a typed name would likely introduce complexity-inconsistency down the road, not to mention the fact that it's a surprising behavior. It also seems that most implementations have or plan to move to supporting the literal filename, spaced or dashed (including Foam).

from memo.

nixsee avatar nixsee commented on June 18, 2024 1

I support this request as well. The worry that you wouldn't be able to use both Hello World and Hello-World doesn't seem like a problem if every file is slugified with dashes, which makes it more compatible as Annegrim has pointed out. Perhaps a solution would be to automatically change an entry for [[Hello World]] into [[Hello-World|Hello World]]?

from memo.

svsool avatar svsool commented on June 18, 2024

Hi,

Thanks for the feature request.

It would be great if you can explain not only "what" you would like, but also "why" you would like this.

At the moment I am forced to create it as hello world.md, which makes linking to a file path more difficult -> hello%20world.md.

Linking to a file from where? Memo provides autocomplete as well as any descent terminal or file explorer provides autocomplete for file paths, so I'm not sure what exactly is difficult in your case.

At this point, I have an opinion that slugification will make links design fragile. Let me explain one case. For instance, you have two files with dashes and without dashes in the name:

hello world.md // with space
hello-world.md // with dash

Now any user decides to use links autocomplete and autocomplete will give results as mentioned above. Still, the problem which I can foresee is that as soon as the user picks any of hello world.md with space or hello-world.md with dash clicking on such link will always bring user to hello-world.md leaving hello world.md file unreachable via links, and this kind of ambiguous cases I would like to keep out of Memo's design. I can anticipate problems for automatic links synchronization feature and certain ambiguous cases against slugified / normal filenames.

Memo's link is a filename when created to the filesystem and simply text when not. This logic also makes automatic links synchronization easier. If you would like filenames with dashes and preview without dashes, you can use labels (links with piping); for example, hello-world|hello world should give you expected results. Another way to solve this problem is by showing links without dashes (pre-processing) in preview and keeping dashes as part of the links in the text editor and filenames. However, it's not going to work if user wants to see both dashes and spaces in preview without introducing some escaping logic, which makes links more complex.

image

Also I would like to write the wiki-link with piping: This is a common [[greeting|Hello World]], which would link to hello-world.md.

You can already write wiki-link with piping in Memo, except that you suggested leading labels and Memo uses trailing labels as described in Wikipedia. Example of a link with label in Memo [[my note|My Note Label]] it will refer user to the file my note.md and show it as My Note Label in the preview vs suggested [[My Note Label|my note]]. Obsidian also uses trailing labels and its users, so it will be easier for them to switch.

image

In general switching between trailing / leading labels in wiki-links can be implemented in Memo under configuration flag, but I would like to see if it gains a critical mass of 20 upvotes πŸ‘ under this or your comment, if so I might consider implementing it in the future. Also, feel free to contribute.

Currently I'm going to focus on some other features such as image pasting from clipboard, links rename via RenameProvider, html -> markdown copy and possibility to open links to common types in the default app.

from memo.

svsool avatar svsool commented on June 18, 2024

I re-visited this issue one more time and went through the discussion and opinions, and I agree that differentiating between spaced and dashed links makes sense for keeping links design unambiguous.

Closing this issue in favor of maintaining the current Memo behavior.

Thank everyone for the discussion!

from memo.

Related Issues (20)

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.