Code Monkey home page Code Monkey logo

dendron's Introduction

StandWithUkraine

dendronhq on Twitter Dendron on YouTube Discord VS Code Installs of Dendron

All Contributors

Dendron

Dendron Logo

Dendron is an open-source, local-first, markdown-based, note-taking tool. It's a personal knowledge management solution (PKM) built specifically for developers and integrates natively with IDEs like VS Code and VSCodium.

Motivation

"We are overwhelmed with information and we don't have the tools to properly index and filter through it. [The development of these tools, which] will give society access to and command over the inherited knowledge of the ages [should] be the first objective of our scientist" - Vannevar Bush, 1945

Why

Most PKM tools help you create notes but slam into a wall retrieving them once your knowledge base reaches a certain size threshold. That threshold varies with the tool, but virtually everything stops working past 10k notes unless the user was extremely diligent about organizing their knowledge. Past this threshold, entropy wins and every query becomes a keyword search and scrolling through pages of results.

Dendron's mission is to help humans organize, find, and work with any amount of knowledge.

It not only helps you create notes but also retrieve them - retrieval works as well with ten notes as it does with ten thousand.

How

Dendron builds on top of the past five decades of programming languages and developer tooling. We apply the key lessons from software to the management of general knowledge. We make managing general knowledge like managing code and your PKM like an IDE.

Design Principles

Developer Centric

Dendron aims to create a world class developer experience for managing knowledge.

Our goal is to provide a tool with the efficiency of Vim, the extensibility of Emacs, and the approachability of VS Code.

What this means:

  • dendron features are text centric and composables
  • dendron provides the lowest friction interface for working with your knowledge base
  • dendron optimizes for efficiency, speed, and keyboard focused ux
  • dendron comes with sane defaults and the ability to customize to your liking
  • dendron can be extended along any dimension

Gradual Structure

Dendron extends markdown with structural primitives to make it easier to manage at scale and tooling on top to work with this structure.

Different knowledge bases require different levels of structure - a PKM used for keeping daily journals is different than a company wide knowledge base used by thousands of developers.

Dendron works with any level of structure, meaning you can take free form notes when starting out and gradually layer on more structure as your knowledge base grows more.

Flexible and Consistent

Dendron is both flexible and consistent. It provides a consistent structure for all your notes and gives you the flexibility to change that structure.

In Dendron, you can refactor notes and Dendron will make sure that your PKM is consistent throughout. This means that you have the best of both worlds: a basic structure for the organization but the flexibility to change it.

Features

Dendron has hundreds of features. The following is a list of highlights.

It's just Plaintext

  • manage using git
  • use git blame to see individual edits
  • edit in anything that works on text files (eg. Vim)

Markdown and More

  • create diagrams using mermaid
  • write math using katex
  • embed notes (and parts of notes) in multiple places using note references

Lookup

  • one unified way to find and create notes
  • quickly traverse and create new hierarchies

Schema

  • ensure consistency for your knowledge base
  • get autocomplete hints when creating new notes
  • automatically apply common templates to notes on creation

Navigation

  • explore relationships using backlinks
  • navigate to notes, headers and arbitrary blocks
  • visualize your knowledge base using the graph view

Refactor

  • restructure your knowledge base without breaking links
  • rename a single note or refactor using arbitrary regex
  • rename and move individual sections within notes

Vaults

  • mix and match knowledge using vaults, a git backed folder for your notes
  • use vaults to separate concerns, like personal notes and work notes
  • publish vaults on git to collaborate and share knowledge with others

Publish

  • export your knowledge base as a static (nextjs) site
  • lookup locally and share globally with generated links
  • manage what you publish using fine grained permissions on a per vault, per hierarchy and per note basis

Use Cases

  • personal knowledge management (PKM)
  • documentation
  • meeting notes
  • tasks and todos
  • blogging
  • customer relationship management

Getting Started

Interested in trying out Dendron? Jump right in with the Getting Started Guide!

Join Us

Dendron wouldn't be what it is today without our wonderful set of members and supporters.

Community Calendar

We have a bunch of community events that we host throughout the week. You can stay up to date on whats happening by taking a look at our community calendar!

Dendron Newsletter

Dendron sends out a weekly newsletter highlighting:

Join other Dendrologists

There are a variety of ways to connect with Dendron devs, contributors, and other members of the Dendron community:

Contributors ✨

Dendron wouldn't be what it is today without help from the wonderful gardeners πŸ‘¨β€πŸŒΎπŸ‘©β€πŸŒΎ

If you would like to contribute (docs, code, finance, or advocacy), you can find instructions to do so here. For setup of local development environment run ./setup.sh which automates the setup.

lsernau
lsernau

πŸ› πŸ’΅
Kaan Genç
Kaan Genç

πŸ“– πŸ’»
Mandar Vaze
Mandar Vaze

πŸ“–
hfellerhoff
hfellerhoff

πŸ“–
Fayçal
Fayçal

πŸ“– πŸ›
Ronald
Ronald

πŸ› πŸ’΅
Simon-Claudius
Simon-Claudius

πŸ›
Scott Spence
Scott Spence

πŸ›
Zhang Handuo
Zhang Handuo

πŸ›
Cameron Yick
Cameron Yick

πŸ“ πŸ“– πŸ’»
Bryan Jenks
Bryan Jenks

πŸ“– πŸ›
Simon J S Liu
Simon J S Liu

πŸ›
b0xian
b0xian

πŸ›
Orcomp
Orcomp

πŸ› πŸ“–
Shekhar Neupane
Shekhar Neupane

πŸ“–
John Meyer
John Meyer

πŸ›
John Young
John Young

πŸ›
Max Krieger
Max Krieger

πŸ“– πŸ“ πŸ›
Alan Ionita
Alan Ionita

πŸ“–
 Aditya
Aditya

πŸ›
Gijs-Jan Roelofs
Gijs-Jan Roelofs

πŸ›
Vivek Raja
Vivek Raja

πŸ›
Kevin Poorman
Kevin Poorman

πŸ›
Lars Solberg
Lars Solberg

πŸ›
8brandon
8brandon

πŸ’»
Aleksey Rowan
Aleksey Rowan

πŸ’» πŸ“– πŸ›
Paul Wright
Paul Wright

πŸ“–
Jeff Barr
Jeff Barr

πŸ“–
Stephen Krider
Stephen Krider

πŸ“–
Nikita Voloboev
Nikita Voloboev

πŸ’»
Jason Jones
Jason Jones

πŸ“–
Mark Hyunik Choi
Mark Hyunik Choi

πŸ’» πŸ› πŸ§‘β€πŸ« πŸ“– πŸ“
Peter Arwanitis
Peter Arwanitis

πŸ›
flammehawk
flammehawk

πŸ“– πŸ’΅ πŸ’»
Kevin Lin
Kevin Lin

πŸ’» πŸ§‘β€πŸ« πŸ“– πŸ“ πŸ›
Kiran Pathakota
Kiran Pathakota

πŸ’» πŸ§‘β€πŸ« πŸ“– πŸ“ πŸ›
jn64
jn64

πŸ›
Thelusion
Thelusion

πŸ›
VΓ­ctor Reyes RodrΓ­guez
VΓ­ctor Reyes RodrΓ­guez

πŸ›
funnym0nk3y
funnym0nk3y

πŸ›
sidwellr
sidwellr

πŸ›
Darren Brierton
Darren Brierton

πŸ›
timDeHof
timDeHof

πŸ›
singlebungle
singlebungle

πŸ›
elliotfielstein
elliotfielstein

πŸ›
jonathanyeung
jonathanyeung

πŸ’»
SR--
SR--

πŸ“– πŸ› πŸ’»
Denis Sikuler
Denis Sikuler

πŸ“–
Mat Chavez
Mat Chavez

πŸ›
micharris42
micharris42

πŸ› πŸ“–
teauxfu
teauxfu

πŸ“–
andrey-jef
andrey-jef

πŸ“– πŸ›
Samuel Hobl
Samuel Hobl

πŸ’» πŸ“– πŸ”§
apastuszak
apastuszak

πŸ› πŸ“–
Felipe Whitaker
Felipe Whitaker

πŸ“–
unamusedmon
unamusedmon

πŸ›
Do Soon Kim
Do Soon Kim

πŸ›
Daria Vasyukova
Daria Vasyukova

πŸ›
Dave Richardson
Dave Richardson

πŸ› πŸ“–
Ding
Ding

πŸ“– πŸ›
John
John

πŸ›
Jeff Hopper
Jeff Hopper

πŸ›
Ryan Randall
Ryan Randall

πŸ› πŸ“–
CyberFoxar
CyberFoxar

πŸ›
Britt Selvitelle
Britt Selvitelle

πŸ› πŸ’΅ πŸ“– πŸ’»
lenamio
lenamio

πŸ“–
Sai Santosh
Sai Santosh

πŸ’»
viz
viz

πŸ’» πŸ“–
Jminding
Jminding

πŸ“–
Lukas OrsvΓ€rn
Lukas OrsvΓ€rn

πŸ›
sotn3m
sotn3m

πŸ›
Matias Forbord
Matias Forbord

πŸ“–
Kyle Tycholiz
Kyle Tycholiz

πŸ› πŸ“–
Stedag
Stedag

πŸ’»
Miguel Pereira
Miguel Pereira

πŸ“– πŸ›
LaurenΘ›iu Nicola
LaurenΘ›iu Nicola

πŸ› πŸ“–
Eric Marthinsen
Eric Marthinsen

πŸ›
Jonathan Dorety
Jonathan Dorety

πŸ“–
Buck DeFore
Buck DeFore

πŸ“–
Ikko Ashimine
Ikko Ashimine

πŸ“– ⚠️
simkimsia
simkimsia

πŸ› πŸ’΅ βœ… πŸ“– πŸ’‘
demorganslaw
demorganslaw

πŸ›
guilhermesfc
guilhermesfc

πŸ›
Idan Gazit
Idan Gazit

πŸ›
ragamroll
ragamroll

πŸ›
Denis Novikov
Denis Novikov

πŸ› πŸ–‹
Mo
Mo

πŸ›
Claus Conrad
Claus Conrad

πŸ› πŸ“– πŸ’΅
johndendron
johndendron

πŸ›
Aaron Meese
Aaron Meese

πŸ“–
Jeff Teter
Jeff Teter

πŸ›
Mari Rajaram
Mari Rajaram

πŸ“–
Zero King
Zero King

πŸ’» πŸ›
benhsm
benhsm

πŸ“– πŸ’»
icedwater
icedwater

πŸ› πŸ’»
Bassmann
Bassmann

πŸ›
Im
Im

πŸ›
David Paquet Pitts
David Paquet Pitts

πŸ›
John Wells
John Wells

πŸ“–
Luke Carrier
Luke Carrier

πŸ› πŸ“– πŸ’»
maximilianigl
maximilianigl

πŸ›
byron wall
byron wall

πŸ“–
Carlos CΓ‘mara
Carlos CΓ‘mara

πŸ“– πŸ›
Garran Plum
Garran Plum

πŸ› πŸ’»
tma66
tma66

πŸ’»
not-so-smart
not-so-smart

πŸ“–
Jules Sam. Randolph
Jules Sam. Randolph

πŸ›
Mario Kahlhofer
Mario Kahlhofer

πŸ›
Anatoliy Kostin
Anatoliy Kostin

πŸ›
r-good
r-good

πŸ›
Sagar Behere
Sagar Behere

πŸ›
Nicklas Gummesson
Nicklas Gummesson

πŸ› πŸ’»
jquesada2016
jquesada2016

πŸ› πŸ“–
Phani Rithvij
Phani Rithvij

πŸ›
Kumudan
Kumudan

πŸ›
Florian Beijers
Florian Beijers

πŸ› ️️️️♿️
Ryan Hill
Ryan Hill

πŸ“– πŸ› πŸ’»
Jim Tittsler
Jim Tittsler

πŸ“–
Rick Berger
Rick Berger

πŸ›
Thibault
Thibault

πŸ›
redsolver
redsolver

πŸ›
NahomBefekadu
NahomBefekadu

πŸ›
jaroslavknotek
jaroslavknotek

πŸ›
Matthew Giallourakis
Matthew Giallourakis

πŸ›
Murtaza Nazir
Murtaza Nazir

πŸ›
emmjayvee
emmjayvee

πŸ“–
Dan Gilleland
Dan Gilleland

πŸ“–
Harman
Harman

πŸ“–
Adam G
Adam G

πŸ› πŸ“–
Chisomo Chiweza
Chisomo Chiweza

πŸ›
rzd-test
rzd-test

πŸ›
Carmen Bianca Bakker
Carmen Bianca Bakker

πŸ“– πŸ’‘
KamQb
KamQb

πŸ’»
sahil48
sahil48

πŸ›
Tsvetomir Bonev
Tsvetomir Bonev

πŸ› πŸ’» πŸ”§
I'm a lightbulb
I'm a lightbulb

πŸ›
James
James

πŸ› πŸ“–
Callum Macdonald
Callum Macdonald

πŸ’» πŸ› πŸ“–
Vik
Vik

πŸ’»
David Gomes
David Gomes

πŸ›
Binly42
Binly42

πŸ›
Alexander Putilin
Alexander Putilin

πŸ’»
Pavel Vorona
Pavel Vorona

πŸ’»
d1onysus
d1onysus

πŸ“– πŸ›
Bill Moriarty
Bill Moriarty

πŸ›
Jamie Bilinski
Jamie Bilinski

πŸ“–
Thanos Lefteris
Thanos Lefteris

πŸ› πŸ’»
Yi Seunggi
Yi Seunggi

πŸ›
Joshua Jeschek
Joshua Jeschek

πŸ›
SkepticMystic
SkepticMystic

πŸ”§
raeyulca
raeyulca

πŸ›
Sam Wagner
Sam Wagner

πŸ›
Sai Kishore Komanduri
Sai Kishore Komanduri

πŸ“–
Shein Lin Phyo
Shein Lin Phyo

πŸ“–
Patrick Yates
Patrick Yates

πŸ“– πŸ’»
Trevor Sullivan
Trevor Sullivan

πŸ›
Vincent Dansereau
Vincent Dansereau

πŸ“–
Raffaello Fraboni
Raffaello Fraboni

πŸ›
Xanaxus
Xanaxus

πŸ›
Gander7
Gander7

πŸ›
jgmpjgmp
jgmpjgmp

πŸ›
Non-J
Non-J

πŸ›
Jody Foo
Jody Foo

πŸ› πŸ“– πŸ’‘
Raymond K
Raymond K

πŸ›
John Hoang
John Hoang

πŸ›
Nickolay Kondratyev
Nickolay Kondratyev

πŸ›
mysoonyu
mysoonyu

πŸ›
gbieging
gbieging

πŸ›
oolonek
oolonek

πŸ›
Mettcon
Mettcon

πŸ›
LamentConfiguration
LamentConfiguration

πŸ›
irishandyb
irishandyb

πŸ›
PabloLION
PabloLION

πŸ’»
Dmytro Shapovalov
Dmytro Shapovalov

πŸ“– πŸ’‘
lexthanthree
lexthanthree

πŸ“– πŸ›
GlitchByte
GlitchByte

πŸ›
Steven Fan
Steven Fan

πŸ›
LukΓ‘Ε‘ Kucharczyk
LukΓ‘Ε‘ Kucharczyk

πŸ›
Daniel Brandenburg
Daniel Brandenburg

πŸ› πŸ’»
Paolo Dina
Paolo Dina

πŸ“–
Alexandru Ichim
Alexandru Ichim

πŸ“–
Derek Ardolf
Derek Ardolf

πŸ“–
huland
huland

πŸ’»
Vaden Masrani
Vaden Masrani

πŸ› πŸ”£
Shane Perry
Shane Perry

πŸ“–
aodhagan
aodhagan

πŸ›
harrijer
harrijer

πŸ›
P.J. Wu 吳秉儒
P.J. Wu 吳秉儒

πŸ›
AshSimmonds
AshSimmonds

πŸ› πŸ–‹
ManuelSpari
ManuelSpari

πŸ› πŸ’»
William Faunce
William Faunce

πŸ›
ebromberg
ebromberg

πŸ›
Steven Hilton
Steven Hilton

πŸ”§
Taran Lu
Taran Lu

πŸ›
Norbert Klamann
Norbert Klamann

πŸ“–
Marek S. Łukasiewicz
Marek S. Łukasiewicz

πŸ“– πŸ’» πŸ”§
abunavas
abunavas

πŸ€”
Mihai Constantin
Mihai Constantin

πŸ”§
riccardo dozzo
riccardo dozzo

πŸ›
bugfixd
bugfixd

πŸ›
Kevin Fischer
Kevin Fischer

πŸ“– πŸ–‹
Nikhil Jha
Nikhil Jha

πŸ›
avhb
avhb

πŸ’»
cquick01
cquick01

πŸ› πŸ’»
Weiming
Weiming

πŸ“– βœ…
JosΓ© Longo
JosΓ© Longo

πŸ›
ΰΆ‚
ΰΆ‚

πŸ›
Phoebian
Phoebian

πŸ“–
Patrik Grip-Jansson
Patrik Grip-Jansson

πŸ“– πŸ›
Robert van Kints
Robert van Kints

πŸ›
Patrick Wilkie
Patrick Wilkie

πŸ›
Michael Greene
Michael Greene

πŸ›
Bryan Lee
Bryan Lee

πŸ“–
Lodrus
Lodrus

πŸ›
rogue2971
rogue2971

πŸ› πŸ–‹
doylejg
doylejg

πŸ›
Virile
Virile

πŸ›
Christophe Benz
Christophe Benz

πŸ“–
Tanamr
Tanamr

πŸ›
cwtowns
cwtowns

πŸ›
Henry
Henry

πŸ›
Brian Parma
Brian Parma

πŸ›
Vladimir Sanchez
Vladimir Sanchez

πŸ“–
Wilhelm Payne
Wilhelm Payne

πŸ›
Yttrium ZHAO
Yttrium ZHAO

πŸ›
Sean Li
Sean Li

πŸ’»
bigheadghost
bigheadghost

πŸ›
Swithun
Swithun

πŸ›
NuclearPowerNerd
NuclearPowerNerd

πŸ›
Vikram G
Vikram G

πŸ’»
ericthomas1
ericthomas1

πŸ›
jeep
jeep

πŸ›
Vianney Stroebel
Vianney Stroebel

πŸ›
mivanit
mivanit

πŸ”§
tjr357
tjr357

πŸ›
Pedro
Pedro

πŸ›
JM-Laurel
JM-Laurel

πŸ›
Rob Lourens
Rob Lourens

πŸ›
Emily Marigold Klassen
Emily Marigold Klassen

πŸ›
Harshita Joshi
Harshita Joshi

πŸ›
KitLeskinen
KitLeskinen

πŸ›
Wiktoria Mielcarek
Wiktoria Mielcarek

πŸ›
Allison Bellows
Allison Bellows

πŸ›
Karsten Gresch
Karsten Gresch

πŸ›

(emoji key):

This project follows the all-contributors specification. We welcome community contributions and pull requests. See the Dendron development guide for information on how to set up a development environment and submit code.

License

Dendron is distributed under the Apache License, Version 2.0.

See LICENSE and NOTICE for more information.

dendron's People

Contributors

5h1ru avatar allcontributors[bot] avatar benhsm avatar bs avatar dendron-bot avatar dependabot[bot] avatar eleweek avatar github-actions[bot] avatar github-user-23 avatar harshita-mindfire avatar hayata-suenaga avatar hfellerhoff avatar hikchoi avatar hkievet avatar hydrosquall avatar jonathanyeung avatar kevinslin avatar kpathakota avatar l2dy avatar lsernau avatar lukecarrier avatar namjul avatar nickolay-kondratyev avatar nikitavoloboev avatar scriptautomate avatar seedublancaster avatar seriousbug avatar tma66 avatar tyler-dot-earth avatar viztor 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  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

dendron's Issues

LocalFile Pod should handle symlinks

Context

LocalFile pod does not deal with symlinks

Proposal

  • configuration:
    • localFilePod.symlinks: follow|ignore, default: (ignore)
  • feature: treat symlinks according to config

Option to store frontmatter separate from note

Some users, especially with existing notes, would like it if dendron didn't add frontmatter to the note itself. Support alternative mode where Dendron wrote file metadata in a separate file instead

Seeds v0

Seeds v0

Goal

Make it easy for people to publish and find high quality notes for any topic they care about

Details

Dendron lets anyone publish an online version of the notes inside their Dendron vault. The Dendron Website is an example of a published vault.

Dendron seeds is a project to to curate notes from existing open source material. This means re-mixing existing open source content into public references. For example, og-aws is a fantastic resource for AWS. TLDR is a great reference for CLI. The former is only available as a README, the latter via the console. It should be easy to take the content from these sites and publish them as public Dendron vaults. The information in these vaults can also be enriched from other sources. In this way, Dendron can help build the highest quality, most up to date, information for any respective domain that people care about.

Tasks

  • establish basic seed framework
  • use seeds for CLI
  • create 3 seeds in 3 different verticals #wip

Next

  • use seeds from within the dendron extension
  • automatically keep seeded vaults up to date
  • create index of high quality seeds

Links

How to use dendron with current workspace

Hello!

I use a single workspace in vscode for all of my projects. How would I get dendron to work with that? Would have to add the dedron settings to settings.json? If so, what would it be?

Thanks!

Support for multi-level schemas

Is your feature request related to a problem? Please describe.
I attempted to set up a two-level schema like so:
image
and got the error message displayed above. The message goes away if the second level is removed.

Describe the solution you'd like
Support for multi-level schemas.

Better markdown-preview Button UI

Context

Currently, there's two markdown preview button's that show up when focusing on a markdown file: one is the default built in by vscode, the other is from Dendron. Currently, there's no way to hide the button from vscode. We have an open issue to vs-code about this here

Research and Prior Work

  • override window.registerCustomEditorProvider
    • vscode builtin markdown is created using a CustomEditor
    • blocked: can't register multiple custom providers with same type
  • use window.on*|workspace.on* method to figure out when default markdown preview launches
    • blocked: custom editor doesn't show up in window.on* or workspace.on* methods
  • use vscode-custom-css to override css
    • hacky and will cause vscode to complain that vscode is corrupted

Proposal

  • research additional means to resolve button ui issue

Design Backlink Support

Context

When creating new notes in Dendron, it's useful to automatically create backlinks between the newly created note and the original note. This issue is to propose and gather feedback on auto backlinking newly created notes.

Scope

There are multiple points at which Dendron can create a backlink. A few examples below:

  • during Lookup when creating a new note
  • when using [[wiki-links]] to go to a note that does not exist
  • when creating a journal note
  • when creating a scratch note

Backlink Creation

Backlinks can be created in a few different ways and in a few different places:

  • How
      1. manually copying a link (link copied to clipboard)
      1. add a link to the frontmatter
      1. add a link to the end of the document in a special # Links section
      1. add a link to the current position in the document
  • Where
    • A. adding a link to the domain of the current hierarchy
    • B. adding a link to the current note
    • C. adding a link to a entirely new domain

Proposal

Note that numbers and letters will be used as abbreviations. eg: (2, A) = automatically add link to the frontmatter to the domain of the current hierarchy

loookup

  • default: nothing
  • configurable override:
    • (1)
    • (2, [A|B|C])
    • (3, [A|B|C])

wiki-links

  • default: nothing (a link is already created by nature of having a wiki-link in the original note)
  • configurable override:
    • (1)
    • (2, [A|C])
    • (3, [A|C])

journal note

  • default: (1)
  • configurable override:
    • (2, [A|B|C])
    • (3, [A|B|C])

scratch note

  • default:
    • if text is selected, turn text into a link
    • otherwise, (4, B)
  • configurable override:
    • (2, [A|B|C])
    • (3, [A|B|C])

Wiki link navigation

Describe the bug
Navigate to wiki links fails.

To Reproduce
Steps to reproduce the behavior:

  1. Select one of the available options in the wiki links popup.
  2. It gets inserted with the ".md" extension.
  3. Attempt to navigate to the referenced file.
  4. Dendron looks for file "xxx.md.md", fails to find it and offers to create it.

Expected behavior
Navigate to the referenced file.

Desktop (please complete the following information):

  • OS: Win10
  • Browser: Chrome
  • Version: 83

Standalone Vaults

Goal

Support activating Dendron features without being in a workspace.

Context

Dendron currently requires a dedicated VSCode workspace in order to work. This is inconvenient for the following cases:

  • user has an existing project and doesn't want to open another workspace
  • user has an existing project and wants to use dendron on docs in existing workspace
  • user wants to use dendron functionality (eg. insert note) in non-dendron files

Test on Windows

Dendron has not been rigorously tested on a windows machine. Need to test installation sequence here

Adding front matter after the fact

Is your feature request related to a problem? Please describe.
I usually create new pages as placeholder links and then navigate to them but then I'm sad that there's no front matter (even though I don't use the front matter yet).

Describe the solution you'd like
Ideally when I navigate to the page via dendron, the front matter will be added for me.

Describe alternatives you've considered
I would accept just having a shortcut to add the front matter (so I might be missing a simple way to do this).

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

Deep hierarchies and wiki links

I am not sure if this is a bug or a feature request. It concerns the interaction between Dendron and the wiki links feature of Markdown Notes.

Describe the bug
Scaling of hierarchies when combined with wiki links becomes quickly unworkable.

To Reproduce
Steps to reproduce the behavior:

  1. Create a vault with a hierarchy of files going a few levels deep.
  2. Attempt to set a wiki link between two files

Expected behavior
Being able to select a file from the popup.

Screenshots
You end up with something like this. You can't see the target file title.
image

Desktop (please complete the following information):

  • OS: Win10
  • Browser: Chome
  • Version: 83

Additional context
Why go so many levels deep? Because you want to set custom keys in the individual files' frontmatter. Should the file titles be shorter and make use of the frontmatter's title key?

Additional issues:

  • What about spaces? Are they allowed or not? If not, use a hyphen or an underscore?
  • What about titles with non-latin character sets? Allowed or not?
  • Small inconvenience: when an option is selected from the wiki links popup, it gets inserted with the ".md" extension. However if you then attempt to navigate there, Dendron looks for "xxx.md.md" and proposes to create it.

Given Dendron's current roadmap which is the safest way forward? Use only latin, hyphenated, short file titles?

Didn't work in fresh installed VSCode in Windows10 - v0.3.21

When I installed in Windows10 and tried to run Dendron: initialize workspace I got the following error:

Command 'Dendron: Initialize Workspace' resulted in an error (command 'dendron.initWS' not found)

open '/tmp/dendron-dev.log' at Object.openSync (fs.js:447:3) at Object.func (electron/js2c/asar.js:140:31) at Object.func [as openSync] (electron/js2c/asar.js:140:31) at u (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:277:14975) at new c (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:277:15518) at Y (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:11:103292) at Function.J.destination (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:277:12746) at Object.t.createLogger (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:289:1838) at Object.<anonymous> (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:277:40786) at n (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:1:186) at Object.<anonymous> (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:277:37957) at n (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:1:186) at Object.<anonymous> (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:289:26096) at n (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:1:186) at Object.<anonymous> (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:11:92725) at n (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:1:186) at Object.<anonymous> (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:277:25295) at Object.<anonymous> (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:277:37699) at n (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:1:186) at Object.<anonymous> (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:277:70858) at n (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:1:186) at c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:1:985 at Object.<anonymous> (c:\Users\me\.vscode\extensions\dendron.dendron-0.3.21\dist\extension.js:1:996) at Module.o._compile (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\loader.js:15:956) at Object.Module._extensions..js (internal/modules/cjs/loader.js:937:10) at Module.load (internal/modules/cjs/loader.js:780:32) at Module._load (internal/modules/cjs/loader.js:693:12) at Module._load (electron/js2c/asar.js:717:26) at Function.Module._load (electron/js2c/asar.js:717:26) at Function.t._load (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:974:348) at Function.i._load (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:943:839) at Function.n._load (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:940:198) at Module.require (internal/modules/cjs/loader.js:820:19) at require (internal/modules/cjs/helpers.js:68:18) at Function.s [as __$__nodeRequire] (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\loader.js:33:205) at h._loadCommonJSModule (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:945:34) at h._doActivateExtension (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:835:599) at h._activateExtension (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:834:692) at Object.actualActivateExtension (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:832:453) at h._activateExtension (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:601:405) at c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:601:83 at Array.map (<anonymous>) at h._activateExtensions (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:601:71) at h._activateExtensions (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:601:140) at h.activateByEvent (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:598:546) at h._activateByEvent (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:833:300) at h._handleEagerExtensions (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:838:218) at c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:841:872 at processTicksAndRejections (internal/process/task_queues.js:85:5)

better configuration for new journal

Context

  • currently, journals are created with the following hierarchy {domain}.journal.{Y-MM-DD-HHmmss} by default and added to the links section of the current note. This should be configurable, ideally on a per-domain basis.

Proposal

  • new configs:
    • dendron.journalDateFormat, default: Y-MM-DD-HHmmss
    • dendron.journalName, default: journal
    • dendron.journalBacklinkBehavior, default: add

Vaults keep their original path

Describe the bug
Vaults seem to keep their original path.

To Reproduce
Steps to reproduce the behavior:

  1. At PC1 create a dendron workspace containing a default vault.
  2. Create a github repository and upload the vault you just created.
  3. Clone the repository at PC2.
  4. Attempt to open the vault's files.

Expected behavior
See the vault's contents.

Screenshots
I get an error message: "Unable to resolve workspace folder".

image

Desktop

  • OS: Win10
  • Browser: Chrome
  • Version: 83

Cache Engine Results

Dendron re-indexes all vaults on every run. Smarter solution is to cache results and incrementally update

Note template declarations in schema

Is your feature request related to a problem? Please describe.
Not related to a problem really, but it can be formulated from that perspective anyhow. Something like this: When I create a new note that is of a certain type I'd like to do that with a structure for that type.

Describe the solution you'd like
I'd like to be able to specify templates in the {name}.schema.yml files so that the templates can be picked up and used when creating new notes of that certain type.

Describe alternatives you've considered
Not considered any alternatives.

Additional context
This could be used also for what you call scratch files and journal files. So that scratch files and journal files would be normal types described in schemas but with predefined templates. Maybe something similar is already in use, but I haven't studied dendron enough to know! =)

Sidenote: interesting project!

Support publishing a vault

Context

Be able to publish a vault as a github page

Proposal

  • use a modified version of the just-the-docs jekyll theme to support publishing a vault with limited lookup support

Command to clean Dendron workspace

Context

Dendron is flexible in how it ingest notes. If a note doesn't have frontmatter for example, Dendron will happily index it and leave it alone. This could cause trouble down the line IE style if we are too flexible in the sort of formats we accept.

Proposal

Dendron: Tune Up command that will go through the workspace and fix all note discrepancies. In the beginning, this will be adding front matter to files that do not have it.

Related

#44

Support moving cursor to end

Context

Instead of highlighting the current document path with lookup, the cursor should be set to the end so the user can navigate without needing to use a direction button

Proposal

Not sure if this is supported in any public vscode API. need to research best way of accomplishing this

adding journal after manually deleting link will cause error

To add backlinks to the current note, dendron will check if the file has a link field in the frontmatter and add it if it doesn't exist. Because dendron doesn't track file changes, if the link field gets deleted or modified, Dendron will throw an error.

Dendron needs to track file changes and be able to sync engine representation of a note with the actual file as it changes

Note refactoring support

Context

Support automatically renaming files and links.

Proposal

  • create > Dendron: Refactor Hierarchy Command
  • algo
    • take regex as an input that includes a match pattern and replace pattern
    • gather all files that match regex and rename match to replace
    • gather all files with backlinks to renamed files and update links

Example

  • original file structure
.
β”œβ”€β”€ pro.foo.md
β”œβ”€β”€ pro.foo.child.md
β”œβ”€β”€ pro.foo.child.grandchild.mmd
└── bar.foo.md  # has link to [[pro.foo]]
  • after running > Dendron: Refactor Hierarchy with s/^pro//
.
β”œβ”€β”€ foo.md
β”œβ”€β”€ foo.child.md
β”œβ”€β”€ foo.child.grandchild.mmd
└── bar.foo.md  # has link to [[foo]]

Multi-Vault Support

Multi Vault Support

Goals

Users should be able to initialize their workspace with multiple workspaces

Details

This enables many use cases like keeping a private local only vault and a synced dropbox vault.

Tasks

  • writeup design
  • collect feedback
  • implement

Links

New journal note fails

Describe the bug
Journal notes don't seem to work.

To Reproduce
Steps to reproduce the behavior:

  1. Open a note
  2. Enter the command "Dendron: New Journal Note"

Expected behavior
Open the journal note.

Screenshots
I get this:
image

Desktop (please complete the following information):

  • OS: Win10
  • Browser: Chrome
  • Version: 84

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.