DannyBen / madness

Instant Markdown Server
https://madness.dannyb.co
MIT License
126 stars 17 forks source link

Support for Obsidian-style [[links]] and information about backlinks #124

Closed ghost closed 2 years ago

ghost commented 2 years ago

Nice to see a simple project that serves markdown files as html <3

I'm looking for something like this, with two additions. If you're not familiar with Obsidian and "Zettelkasten" style smart notes, this might make little sense...

Would you be generally interested in this?

I'm not a ruby dev but I did have a brief look at your code - sadly I couldn't find any markdown parsing. Are you offloading that to another library?

DannyBen commented 2 years ago

Well - yes, madness is not parsing markdown on its own, since there are multiple libraries that do it. Specifically, I am using CommonMarker here:

https://github.com/DannyBen/madness/blob/6d7e29c6d924ffad82407ff45f5a43ad67a0de59/lib/madness/document.rb#L72-L87

As for adding non standard markdown elements, it is quite unlikely. One goal of madness is to be compatible with other markdown renderers, and to be easily displayable on GitHub as well.

Backlinks are also not a feature that is likely to make it in - mainly because it requires a knowledge that is external to the page that is currently being displayed, which would have to be done in a separate (non real time) fashion, and to store the backlinks per page in some data structure.

I might be convinced otherwise on both counts if you can share a meaningful use case since personally the downside of implementing any of these outweighs the value for me.

ghost commented 2 years ago

Thanks for the quick reply. I share your sentiment on the non-standard links. The feature could have been implemented with standard markdown link syntax just as well. I'm not affiliated with Obsidian so I can only guess why they chose the other [[syntax]]. Maybe it was readability or since its a bit easier to write. Either way, I share your feelings on that. Maybe it could be done in madness as an optional "extension" - since its a syntax on top of the normal links it wouldn't break anything. If you don't mind I'll have a look at the code if I find the time.

About backlinks: The benefit is hard do describe in a few words, but it creates an interconnected web of thoughts. I'm planning to use markdown as a knowledge base in the way that every .md file contains one concise thought / idea / knowledge. Linking from the idea outward is useful, but also knowing what links toward the idea creates new interconnection and is useful to create insights. Like I said, its hard to describe in a few words. Unfortunatelly if you google "backlinks" you'll find mostly articles on search engine optimization. Maybe you'll find this article here useful: https://zettelkasten.de/introduction/

DannyBen commented 2 years ago

Version 0.9.7 is released with the short links feature. The backlinks feature is unlikely to happen at this point - can we close this issue?

ghost commented 2 years ago

Thanks a ton for short links in the first place. Go ahead and close this. I'll learn some Ruby at some point any maybe get back to you with a pr that can hold at least a little bit of water.

thanks!

DannyBen commented 2 years ago

Excellent, thanks for participating.