Skip to content
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

Canvas support and minor improvements #19

Open
mrdrprofuroboros opened this issue Mar 19, 2023 · 1 comment
Open

Canvas support and minor improvements #19

mrdrprofuroboros opened this issue Mar 19, 2023 · 1 comment

Comments

@mrdrprofuroboros
Copy link

I was recently browsing for an opensource solution to publish my obsidian wiki with canvases and finally came up to taking your https://github.com/TuanManhCao/digital-garden and updating it with https://github.com/zachdoty/BrainPress ideas to enable canvases

I forked digital-garden and made my own solution (https://github.com/mrdrprofuroboros/digital-garden) which serves me well, but is definitely an ad-hog for my purposes, so I'd like to prepare a normal PR for everybody.

This is a proposal list for what I've done in my fork and I'd like to involve you in prioritization and discussion:
1st priority:

  • nextjs 13 (needed for rectflow for canvases)
  • caching (current backend architecture reads filesystem too many times. it would be much better to rewrite it a bit more accurate, but a simple cache in couple of places speeds up building a magnitude)
  • gfm (github flavour markdown, external link were not recognized in current build)
  • customizable index page (I need it to be a canvas page in my project and I'd suggest making a config file which will be parametrizing the index page name

2nd priority:

  • docker (I'm deploying it to a vps with docker, made a docker build + compose with traefik proxy for auth if needed)
  • canvases support (with reactflow) - needs discussion on the essential steps - supporting the whole functionality of obsidian would be too much work, needs prioritization here. my own request is rather simple - I need a link-type cards (without iframe previews) that can be connected with simple arrows, have colors. each card has a href link to a corresponding markdown page
  • I'd suggest changing slug system - current one is a bit hacky and seem too bulky + the urls aren't pretty enough.
  • strip .md extension from file names in a tree
  • update favicon =)

3rd priority:

  • ideally - split tree view and pages to be separately loaded to minimize page size (I have several hundreds of pages and it gets fat pretty fast)
  • full typescript migration
  • further work on canvas support (files, iframes)
  • search! (https://github.com/turtton/volglass has a search and it is a great helper)
  • dark mode (not so essential for me, but a nice-to have)

what do you think about it? if there is something more important you'd suggest including in that list?

@TuanManhCao
Copy link
Owner

Hi Dmitry,

Thanks for your very details write up. I agree with most of the items that you have above. I think I would like to approach building MindStone out in a few key principles below:

  1. It should be easy to deploy, and lean toward free options like: Vercel, Netlify, etc. Which allow user to just set up the project on Github, and just point Vercel or Netlify to the repo, hit deploy and have everything up. In short, deployment should be as simple as possible
  2. It should use easy to use tech stack, in our case, I think it's a safe bet to use NextJS and Typescript (although type script might add a little bit of friction for new people, since its getting more and more popular and has great value to improve the project in the future so I think. NextJS + Typescript is probably the way to go here
  3. Let's focus on just a few key features, and do it well.

Ok, so circling back to your suggestions, I would love to have:

First Priority

Second priority:

  • Better slug system as you said, but getting this one right is a bit tricky, since there are many edge cases, and we want to use some human-readable format but also avoid name conflicts
  • strip .md extension from file names in a tree => Yes, since it's shouldn't be too difficult
  • Canvases support (with reactflow) -, yes go ahead, and do this, but I would love to make this one optional if possible.
  • GFM (github flavour markdown, external link were not recognized in current build)

Some other items I think are lower priority are:

  • Improve caching, from my experience, only if I work in local environment, this is an issues. Otherwise, when I tested deploying with some large collection of notes like Nick Milo's template, Vercel can still handle it. So I would worry about performance later on.
  • Docker support, I would love to keep deployment simpler, but if you already get it working feel free to add it, but also add a clear instructions for people who are not technical savvy enough to deploy with docker.
  • Search, yeah super awesome if we can add it in, but let's keep in mind that it should be a free solution and easy enough to build :D
  • Dark mode, yeah, would be nice.

Also here are a few other things I wanted to build when I started
🎯 Obsidian, Notion, VSCode Plugin
🎯 Page Preview (like Obsidian Core plugin)
🎯 Andy Sliding pane
🎯 Full text search with Cmd + K
🎯 Infinite canvas for browsing through notes and connections

Thanks Dmitry, hope this is helpful. Looking forward to see your's PR.

mrdrprofuroboros pushed a commit to mrdrprofuroboros/digital-garden that referenced this issue Dec 23, 2023
* chore: fix dev command

* chore: remove unused libraries

* chore: remove unused document

* chore: ignore public file contents

* chore: replace linter/formatter to rome

* style: format codes

* ci: fix lint command
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants