Coder Social home page Coder Social logo

efls / zetteldeft Goto Github PK

View Code? Open in Web Editor NEW
388.0 17.0 42.0 1.5 MB

A Zettelkasten system! Or rather, some functions on top of the emacs deft package.

Home Page: https://efls.github.io/zetteldeft

License: GNU General Public License v3.0

Emacs Lisp 100.00%
emacs spacemacs zettelkasten org-mode

zetteldeft's Introduction

Zetteldeft

http://melpa.org/packages/zetteldeft-badge.svg


UPDATE 2023: Zetteldeft is no longer in active development, as its main author is moving away from a note-taking system based on Deft towards one based on Denote. The Emacs package and this repository will remain available, but might no longer receive updates.


The zetteldeft.org file in this repository contains documented code for a set of functions for emacs, which aims to extend the deft package and turn it into a (very very) basic Zettelkasten note-taking system.

The best way to get to know Zetteldeft, is from within Zetteldeft. Get started by cloning the zd-tutorial repository, available at https://github.com/EFLS/zd-tutorial. Bootstrap use-package installation instructions included.

If you’d rather start with an introduction of key concepts and basic functions, check out an introduction here: efls.github.io/zetteldeft.

Documentation, literate code and further technical details can be found in the .org file of this repository, or can be read in a more convenient format over at efls.github.io/zetteldeft/zetteldeft.html.

zetteldeft is available on MELPA. If you use use-package, installing is as easy as

(use-package zetteldeft
  :after deft
  :config
    (zetteldeft-set-classic-keybindings))

Please note that this was originally written for personal use and that I’m far from an emacs lisp expert. That said, contributions and feedback are more than welcome.

zetteldeft's People

Contributors

brunosmmm avatar eeljen avatar efls avatar fitzgen avatar jeffvalk avatar jhonaker avatar knazarov avatar localauthor avatar maw avatar natdash avatar perchard avatar puzan avatar robertseaton avatar rotlaus avatar sodaware avatar sorpaas 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

zetteldeft's Issues

Add variable to specify a prefix to the filename

Can we have a variable where the user can specify a prefix for the filename? After adding so many notes in one Emacs session I'll have lots of buffers open. I'd like to be able to kill them all easily, and if they all began with a prefix it would be quite easy.

Help with getting zetteldeft-follow-link to work with Archive-style link indicators

Description

Hi,

I'm relatively new to Emacs & Zettelkasten so it's quite possible that there is a PEBKAC issue here so apologies in advance. But I've haven't been able to figure out what I'm doing wrong so am hoping to get some advice on what to fix.

I've been modifying some parts of zetteldeft so that I can use "The Archive" style links (similar to the discussion in #4) and have been successful with the actual link generation. However, I cannot get the zetteldeft-follow-link functions or deft-based functions like deft-open-preview to recognize the links. This is the case irrespective of whether I use just the Zettel ID or the full-link.

Reproduction guide

  • Start Spacemacs distribution of Emacs
  • Change zetteldeft-link-indicator with (setq zetteldeft-link-indicator "[[")
  • Override zetteldeft-find-file-id-insert using (advice-add 'zetteldeft-find-file-id-insert :override #'my-private-layer/zetteldeft-find-file-id-insert) as the following function:
zetteldeft-find-file-id-insert
(defun my-private-layer/zetteldeft-find-file-id-insert (file)
  "Find deft file FILE and insert a markdown-style link."
  (interactive (list
                (completing-read "File to insert id from: "
                                 (deft-find-all-files-no-prefix))))
  (insert (concat zetteldeft-link-indicator (zetteldeft--lift-id file) "]]")))

  • Override zetteldeft-find-file-full-title-insert using (advice-add 'zetteldeft-find-file-full-title-insert :override #'my-private-layer/zetteldeft-find-file-full-title-insert as the following function:
zetteldeft-find-file-full-title-insert
(defun my-private-layer/zetteldeft-find-file-full-title-insert (file)
  "find deft file file and insert a markdown-style link with title."
  (interactive (list
                (completing-read "file to insert full title from: "
                                 (deft-find-all-files-no-prefix))))
  (insert (concat zetteldeft-link-indicator (file-name-base file) "]]")))

  • Generate a zettel in markdown format with links generated using the override functions as follows:
# foobaz
[[2020-04-12-1600]]
[[2020-04-12-1600 foobar]]

Where 2020-04-12-1600 foobar.md is the linked Zettel and is visible in Deft.

Observed behaviour:

  • zetteldeft-follow-link does not open the linked Zettel in new buffer, irrespective of whether cursor is at start of link or at start of Zettel ID/Name.

Expected behaviour:

  • Zetteldeft magic! ❤️

System Info 💻

  • OS: windows-nt
  • Emacs: 26.3
  • Spacemacs: 0.300.0
  • Spacemacs branch: develop (rev. 72f280dc0)
  • Graphic display: t
  • Distribution: spacemacs
  • Editing style: vim
  • Completion: helm
  • Layers:
(html helm auto-completion emacs-lisp git markdown org
      (shell :variables shell-default-shell 'shell shell-default-height 30 shell-default-position 'bottom)
      spell-checking emoji shell-scripts windows-scripts yaml dash chrome nginx
      (deft :variables deft-zetteldeft t)
      windows-defaults my-private-layer)
  • System configuration features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS LCMS2

Feature Request: ability to change format of title

Note: this is probably considered a subset of #5. I'm not sure if it's appropriate to file as a separate issue, but I think so.

I am using zetteldeft to create markdown notes, which is working well with the changes you've made re: #5. One of the few issues I have still is that the title is always inserted in org format. What I use for the "title" is very similar, but instead of

#+title: 201905040327 test file
I use
# 201905040327 test file

Looking at the internals, it seems that this format is hardcoded. I propose setting a variable for the prefix, set the way you do it by default, which any user could change in an init file (or maybe in customize, but I don't know how much extra work that is for you). This would also open up opportunities for others to include custom formatting for titles should it be needed.

New zettel in doom-emacs ends up with two TITLE-Tags

To reproduce:

Start a Deft search and type in some text

Create a new zettel with C-c C-d n and type in your filename

The new zettel has two titles:

  • the one derived from the deft search
  • the one you typed in

Error with spacemacs key bindings

Hey, I'm trying out Deft and Zetteldeft for the first time, using Spacemacs (evil mode), and I've come across the following error:

Error (use-package): deft/:init: Key sequence a n n starts with non-prefix key a n
Error (use-package): zetteldeft/:init: Key sequence a n z n starts with non-prefix key a n

Should this work out of the box, or do I just need to define my own keybindings?

Feature request: Queue random note for spontaneous recall and related notes

In using org-brain, I really liked its wander feature, which brings a note randomly. It essentially randomly samples the notes created and displays it. This can be helpful as an informal 'quiz' of your knowledge base or at least refresh your memory that the particular note exists. From there you can edit it with current knowledge or link it to other notes.

I'd like to propose a similar function in zetteldeft.

I've created a simple function to accomplish this.

(defun etl/zetteldeft-ergodic ()
  "Find a random file in the deft directory."
  (interactive)
  (deft-filter-clear)
  (kill-new
   (zetteldeft--lift-id
    (nth (random (length (directory-files deft-directory)))
         (directory-files deft-directory)))
    nil)
  (deft-filter-yank))

I'd run this after being in the deft buffer. So after running deft (C-c d d), I'd run the above etl/zetteldeft-ergodic which will randomly retrieve a random note ID and search for it.

Thanks for creating this package.

zd IDs not linking

zd IDs are not linking to their respective documents, regardless of how they generated, either manually or automated by "zd-find-file-id-insert", etc.

e.g.

  • §2019-03-07-2215 Title A
  • §2019-03-07-2213 Title B
  • §2019-03-07-2308
  • §2019-03-08-1352 Title C

How to make these IDs links to their respective document? Am I missing something? Many thanks in advance!!

Sorry to overwhelm you with issues! I really love and appreciate what you are doing with zetteldeft, and am slowing moving everything over to it. Thanks again!

A way to insert zettel-id but make it a link to the org file?

I was wishing that there were a way to add links with zettel ids into my notes, and spent some time thinking about it. This is what I came up with, which does the job for me? It doesn't use Deft or Zetteldeft, though -- is it even possible to modify this to bring in some of the Deft stuff, like hopping out to deft, getting the id from the note I filter down to, and then coming back?

(defun org-insert-zettel (file-name)
  "Finds a file, inserts it as a link with the base file name as the link name, and adds the zettel-id to the front."
  (interactive (list (read-file-name "File: ")))
  (org-insert-link file-name file-name (concat "§" (file-name-base file-name))))

zd-avy-tag-search "wrong type argument" error

Hello!

Within the last week or two, I started getting errors when trying to use zd-avy-tag-search, specifically:

avy--regex-candidates: Wrong type argument: number-or-marker-p, at-full

Just to eliminate possible problems, I made a new init in a clean .emacs.d directory that loaded only the current versions of deft, avy, and the zetteldeft -- still got the error. I'm on Windows.

The backtrace looks like this:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p at-full)
avy--find-visible-regions(at-full 348)
avy--regex-candidates("[#@][a-z-]+" at-full nil)
avy--generic-jump("[#@][a-z-]+" nil at-full)
(save-excursion (avy--generic-jump zd-tag-regex nil avy-style) (zd-search-at-point))
zd-avy-tag-search()
funcall-interactively(zd-avy-tag-search)
call-interactively(zd-avy-tag-search record nil)
command-execute(zd-avy-tag-search record)
execute-extended-command(nil "zd-avy-tag-search" "zd-avy-ta")
funcall-interactively(execute-extended-command nil "zd-avy-tag-search" "zd-avy-ta")
call-interactively(execute-extended-command nil nil)
command-execute(execute-extended-command)

And an example zettel looks like this:

#+title: 20190217213916 Omar Khayyam on Paradise

Tags: #quotebox #cargocult #romance

CF: §20190217213730 for Anacreon's take on the same idea

#+begin_quote
A Book of Verses underneath the Bough,
A Jug of Wine, a Loaf of Bread—and Thou
Beside me singing in the Wilderness—
Oh, Wilderness were Paradise enow!
-- Omar Khayyam, "Quatrain XII", from
The Rubaiyat of Omark Khayyam (1889 Edition)
[Edward FitzGerald, Translator]
#+end_quote

Comparison to org-brain, org-wiki, org-roam, org-zettelkasten or other zettelkasten tools?

How would zetteldeft compare to org-brain or org-wiki or org-roam or other similar zettelkasten tools?

Currently I am using org-brain together with obvz mostly. But planning using org-wiki in parallel as well, as they do not disturb each other, and both can work on same org-files, but using kind of different "tunnels".

Now, I guess even zetteldeft can be added to this arsenal, bringing a third "tunnel" on same org-file notes collection. What do others think? Any comments are welcome, thanks in advance.

I did not test zetteldeft yet.

#+title should be capitalized by default

When creating a new zettel an org-mode title is inserted into the zettel uncapitalized (#+title:)
But Org-mode defines the title as uppercase (#+TITLE:).
In the suggested deft setup it is hinted to configure deft to ignore the lowercase org-mode title, but in my opinion that is not the right way to go forward, it should be capitalized in the first place.

Opinions on this?

Question re zettelkasten workflow

Do you tend to keep project files, including to do lists, outlines for writing, or even rough drafts inside your zetteldeft folder? How do you organize these kinds of files, if you have them, in relation to your zettelkasten? Many thanks in advance!

Question about tags

First off, this project is amazing!

I'm a org-mode noob. I understand that zetteldeft has a separate tagging system from org-mode. How to you choose which tag to use? Do you use org-mode's tagging facilities at all in you Zettelkasten?

Thanks.

Error: Symbol’s function definition is void

I have installed zetteldeft on Windows 10, emacs 26.3 and I have received the following message error:

Error (use-package): zetteldeft/:init: Symbol’s function definition is void: zetteldeft-set-classic-keybindings

Automated back links

It would be quite handy to have a function which appends to the document a section containing a list of links to files which link to the current one (updating this section if it already exists).

More precisely, iterate over files in the deft directory, adding a link to each such file.

Feature Request: wikiword as tags

I think it would be neat to have WikiWord as tags and set faces to such WikiWord (much like todo keyword). Sure it would be more work for user to write 2 capital letter than just a # symbol, but I think the presentation is much nicer for someone who like to drop Tags in the middle of the body text instead of in the top or middle of the notes (like myself).

Disallow Certain Characters in the Filename

Can we disallow certain characters from being part of the filename? As an example I recently made a title that ended with a question mark. Deft could not handle it (not sure if it's an Emacs thing, or my OS, but the error came from Deft). The annoying part was that even if I tried to manually save it with a different file name Deft would override any attempts to do so. I had to start a new note and copy/pasted the content.

Of course, figuring out what characters to strip may be a challenge. Instead of taking that challenge, perhaps let the user specify it in an alist and simply strip out characters that reside therein?

Generated Zettel IDs are not unique

I was just trying zetteldeft and created some notes, as well as linking notes to other notes. I ended up with the following list of nodes:

2020-03-29-1226 SD-WAN                                                                                 2020-03-29 12:27
2020-03-29-1226 Networking                                                                             2020-03-29 12:26

But shouldn't the ID be unique? I'm also having trouble with following links, probably because of the ID cluttering. Trying to follow the "Networking" link in "SD-WAN" doesn't work.

Edit: Just saw that it's simply the current time, accurate to minutes. Now, creating lots of small notes, probably while copying something written on paper, is a pretty common usecase I presume. Maybe using second-resolution would be a wiser choice? Or is this not related?

Drop the link indicator

I'm rewriting the avy related functions (used to jump to and open links) to rely on avy-jump rather than avy-goto-char. This means that we can jump to regular expressions such as the zetteldeft-id-regex, instead of jumping to the zetteldeft-link-indicator -- also known as "that stupid § symbol".

More importantly, this means that we can completely drop the link indicator, and use 2020-04-15-1818 to link to notes, rather than §2020-04-15-1818. It would also remove the conceptual distinction between a link and a note ID.

In other words: the link indicator can be dropped completely.

Before I do that, I'd like some input of people who use Zetteldeft. Does this make sense? It might require some adjustments to currently existing Zettelkästen, but also make things easier, especially for interoperability with other Zettelkasten implementations.

What do you guys think? Should I keep the link indicator and simply allow people to set it to nil if they want to, or completely remove it from the code?

Inserts texts when clicking on zettel with mouse

When clicking on a zettel from inside zetteldeft buffer, it opens the zettel as expected but also automatically inserts/pastes text into zettel. The inserted text seems to be whatever was previously highlighted by the cursor, whether in emacs or other program such as Firefox. This behaviour does not happen when one opens a zettel from the zetteldeft buffer by hitting "return". Any thoughts?

Insert ID by searching for a term

First of all: Thank you for this neat package!

Currently only zetteldeft-find-file-id-insert allows to insert the ID by searching for the file name.

I'm looking for a function zetteldeft-search-id-insert that allows to search the files based on a term like when using deft, opens up a list of files (maybe even with a second preview minibuffer like in swiper-helm) in helm and allows to select the specific file and insert its zetteldeft ID

Feature Request: option to not use §

As far as I can tell, the § convention is falling out of favor with the ZK community. In private communication with sfast, he implied strongly that he no longer uses it in most note titles, and has relegated it to some specific meaning. And it's quite a few keystrokes to replicate in emacs :).

Therefore, can we have a flag that toggles whether or not functions that use § do so? I almost never use it, and every time I create a note link I have to delete it.

From my understanding, this should be fairly easy in terms of file creation, the only thing I see that might make this hard is the zd-avy-link-search, but I don't really understand the internals of that. And personally I never use that anyway, so if that function requires the § I'm ok with that.

Thanks!

Missing "(require 'ace-window)" in zetteldeft.org documentation

I tried to used C-c d F and got an error message. By reading the code, I've discovered that "require" inside the defun...
Furthermore, it seems 'thingatpt' is also needed. Wait, I've just found it's a builtin package :)

nicolas@benny:~/zetteldeft$ grep "(require" zetteldeft.el
(require 'deft)
(unless (require 'avy nil 'no-error)
(require 'thingatpt)
  (require 'ace-window)

make zetteldeft a minor mode

Thanks for this great set of functions! One possible enhancement would be to turn this into a minor mode. An advantage of doing so is that it would allow easy use of deft with multiple directories, only some of which are Zettelkästen. I have found one implementation of a minor mode here. But I find your functions documented more clearly - so I'm trying to see how the two might work together. In any case, I appreciate your work 👏

Suggest default keybindings

To make this a package that is usable out of the box, I'd like to suggest some default keybindings.

Since I use evil myself, I'm looking for someone willing to share personal keybindings setup.

Where should these bindings go? What is the best used as a prefix?

Error installing package in doom emacs.

I am beginner and have never used emacs before. I have installed deft and trying to install zetteldeft package but it is throwing package not found in repositories. I found the the package is there in MELPA but somehow doom emacs is not locating.

my config is.

packages.el 
(package! zettledeft)

config.el
(use-package! deft
  :commands (deft)
  :config (setq deft-directory "~/zk"
                deft-extensions '("org")))
(use-package! zetteldeft
  :after deft
  :init
)

Package error: (error Could not find package zettledeft in recipe repositories: (org-elpa melpa gnu-elpa-mirror emacsmirror-mirror))

If any doom user can help on this would be great.

keybinding problem

Hi, I wonder if anybody has managed to set the keybindings for zettedeft:

; Remove C-c d that I want to use for me personally as a prefix.
(global-set-key (kbd "C-c d") nil) ;; was 'crux-duplicate-current-line'
(global-set-key (kbd "C-c d") 'zetteldeft-new-file)

As you see, by default Emacs has that binding assigned to crux-duplicate-current-line. I try to remove the binding first, and assigned it in my init file. However, this does not work. The binding continues to be assigned to crux-duplicate-current-line.

Any help welcome,
Thanks,
E

Highlighting #tags and improving the tag regex

Hello,
Thanks for the incredible package. I'm re-learning emacs and the day to day evolution of the Ztteldeft package is nice to follow-up.

In my setup, I tried to add a sexp to highlight #tags, but for some reason, it doesn't work. Here's my use-package section (last lines are releveant). I'm still a noob in emacs-lisp...

;; Zetteldeft https://www.eliasstorms.net/zetteldeft/
(use-package zetteldeft
  :ensure t
  :after (deft avy)
  :config
  (zetteldeft-set-classic-keybindings)
  ;;  (advice-add 'zetteldeft-find-file-id-insert :override #'my-private-function/zetteldeft-find-file-id-insert)
  ;;  (advice-add 'zetteldeft-find-file-full-title-insert :override #'my-private-function/zetteldeft-find-file-full-title-insert)
  (setq zetteldeft-link-indicator "[["
	zetteldeft-link-suffix "]]")
  ;; To highlight links you need to set up font-lock keywords for markdown-mode.
  (font-lock-add-keywords 'markdown-mode
			  `((,zetteldeft-id-regex
			     . font-lock-warning-face))
			  `((,zetteldeft-tag-regex
			     . font-lock-warning-face))
			  )
)

graph function with tags

Hi,
Can the graphs be generated only for links or also for tags? My notes contain tags but not links.
Thank you,

Feature request: A tag code in file name based knowledge management system

I am using org files to keep notes with
https://github.com/abo-abo/plain-org-wiki/blob/master/plain-org-wiki.el
As time goes by, the file is getting bigger and bigger, which bring a lot of duplication, also makes auto save and backup files big and cause a lot more extra disk io, not good for the hard drive. :-)

So I am thinking about a purely simple tag base system:

  1. a tag datafile: (tag . value), tag is a string without blank characters, value is a numeric value, eg. ((linux . 10) (debian . 2) (emacs . 3))
  2. a notes folder: note file name is the joined string of tag values sort in ascending order, eg. a note with both linux and debian tag should be named 2-10, just plain org files without the .org extension

The search operation is simple too:

  1. a search tag function: search tag datafile with keywords separated by space to find all the matched values, each single tag uses fuzzy matching, eg. search for "dbian linx" will retrun files match the glob pattern *2*10* , but the file name list is converted to tag names like "1. debian linux 2. debian emacs linux", you can select the file to open with number, or you can goto 2.
  2. open them all in a temp buffer with all files inserted using https://github.com/whacked/transclusion-minor-mode , the nice thing is you can view all of them in one buffer, and maybe cut and paste from one file to another

The tag manipulation is very simple:

  1. Delete a tag: remove the tag from the datafile, replace the tag value from all notes files names, move file name the same as tag value to trash and warn the user. save the tag value to a file named available-tag-values.
  2. Add a new tag: search the tag datafile if no match, create a new tag value and associate to the tag name, the value in available-tag-values will used first.
  3. Add a tag to the current note: rename it to a name include the tag value
  4. rename a tag: just rename it in the tag datafile.

This will break big notes files into smaller ones and does not affect the viewing thanks to org translusion. However, I only have a very limited knowledge of emacs. I am looking forward to hear your opinion and on how to bring the feature to this repo.
Thank you!

Feature Request: option to create new notes as .md

For interoperability with The Archive, and general software-agnosticism. I'm doing most of my notes in md now, it works fine in deft and zetteldeft, and much better in The Archive. Zetteldeft makes it far more convenient to create new files in the flow of writing (thanks for that!), but I have to reformat and rename them to md when doing so.

I admit I don't understand the internals well enough to understand how difficult this would be.

How to configure deft for Spacemacs

Hi,

I am new to Emacs (trying it out now for the first time because I want to create a zettelkasten with zetteldeft!). I am using the develop branch of Spacemacs and emacs26.

I am trying to install zetteldeft in the recommended way for Spacemacs users (following the tutorial on https://www.eliasstorms.net/zetteldeft/) but since I am completely new to Emacs I can't fully follow.

  1. Should I first install zetteldeft and then activate the deft layer (i.e. in the installation tutorial, should I first follow step 1.2.1 and then step 1.2.2) or do I just have to activate the deft layer (i.e. should I only do step 1.2.2 of the tutorial)?
  2. What files do I have to modify to configure deft as explained in section 3.2? The code for the configuration is given but I can't see where to paste it (I assume this is obvious to even the beginner Spacemacs user but I am not even at beginner level yet!)

Thanks a lot.

Problem with completing-read not using helm by default

Thank you for the package, have found it very useful.

One annoyance that I was having in terms of hyperlinking and using the built-in dynamic linking syntax was that emacs' built-in completing-read is called when calling zetteldeft-find-file-full-title-insert and its friend, zetteldeft-find-file-id-insert. This doesn't allow for the fuzzy searching of filenames to insert, and since I don't have the IDs or the titles of my files perfectly memorized, the linking function becomes pretty cumbersome.

As someone who uses helm, my solution was to replace the default zetteldeft-find-file-full-title-insert and zetteldeft-find-file-id-insert functions with the following:

(defun ab/zetteldeft-find-file-full-title-insert (file)
  "Find deft file FILE with helm and insert a link with title."
  (interactive (list
    (helm-comp-read "File to insert full title from: "
      (deft-find-all-files-no-prefix))))
  (insert (concat zetteldeft-link-indicator (file-name-base file))))

The only change here being the replacement of the default completing-read with helm-comp-read. I made such a replacement for zetteldeft-find-file-id-insert as well.

I envision a function that calls for helm's version of helm-comp-read, its ivy equivalent, or then_only if neither are available_ using the emacs default, non-fuzzy completing-read. I unfortunately don't have the elisp skill to implement such a this in a pull request, but I'm putting this here in case other users are having the same problem or you'd be interested in incorporating the above suggestion.

Thanks again!

Create separate variable zetteldeft-directory

I didn't know much about deft before finding your package, but I find deft quite handy on its own, and it is inconvenient to have to change and refresh the deft-directory value if I want to add a zettel entry, and then change back if I am just going to use plain deft. Is there a natural workaround at present to have a separate directory for zetteldeft that doesn't require this, or is the dependency on deft such that it isn't practical? Maybe the deft developer would consider adding a zetteldeft-directory variable to deft that could just point to 'deft-directory by default or nil, and be ignored by deft users, but set by zetteldeft users to allow us to have our zettel new files go in a separate location from our main text file directory (specifically I use a sub-directory of my ~/org/ directory for my zettels and I use deft to point to ~/org/)?

Thanks for your excellent work.

zd--check "not in zetteldeft territory"

When I use zd-new-file I keep getting the user-error "Not in zetteldeft territory.", probably because the zd--check function concludes that my file does not have the deft-directory in it's path. But I have checked, and this is untrue.

It looks like the buffer created (before being saved) does not match the criteria of zd--check, but after being saved in to deft-directory it would.

Kind regards, Simon Hogerzeil

Possible to have multiple zettelkastens?

How difficult would it be to setup zetteldeft to work with two (or more) separate zettelkastens? I understand this is not necessarily best practice, but I have a very large writing project that I'd like to keep separate from my main zettelkasten. Many thanks in advance!

Suggested spacemacs keys

I've actually implemented zetteldeft support under the deft layer in spacemacs, and that has been merged into the develop branch: syl20bnr/spacemacs#13256.

I was thinking about submitting a pull request with updated documentation in the section with "suggested keybindings", however I started to second guess myself about what would be appropriate - mentioning enabling zetteldeft support in spacemacs, which comes with keybindings already setup (those are actually different from the currently suggested) AND/OR (keeping/removing) current suggestions.

Any ideas? If I get any pointers, I'll modify the docs accordingly and submit a PR.

Edit: reference PR instead of commit on spacemacs repo

Support deft subdirectories

Including the ability to create new zd files in those sub-directories from the deft buffer, with something like /project X/...concept.org

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.