All Projects → WillForan → zim-wiki-mode

WillForan / zim-wiki-mode

Licence: other
Zim Wiki mode for emacs -- an extention of dokuwiki mode

Programming Languages

emacs lisp
2029 projects
shell
77523 projects

Projects that are alternatives of or similar to zim-wiki-mode

akka-persistance-ignite
Akka persistance plugin implementation with Apache Ignite
Stars: ✭ 20 (+53.85%)
Mutual labels:  journal
MO-Problem-Journal
A journal of theorems, lemmas and problems for Mathematical Olympiads.
Stars: ✭ 45 (+246.15%)
Mutual labels:  journal
write
📝 A stream-of-consciousness writing app. Built with React.
Stars: ✭ 57 (+338.46%)
Mutual labels:  journal
Hazama
simple cross-platform diary app
Stars: ✭ 24 (+84.62%)
Mutual labels:  journal
sysdweb
Control systemd services through Web or REST API
Stars: ✭ 65 (+400%)
Mutual labels:  journal
lunatask
All-in-one encrypted to-do list, notebook, habit and mood tracker, pomodoro timer, and journaling app
Stars: ✭ 35 (+169.23%)
Mutual labels:  journal
Blog
h2O's Blog
Stars: ✭ 18 (+38.46%)
Mutual labels:  journal
akka-persistence-redis
Akka persistence plugin for Redis
Stars: ✭ 27 (+107.69%)
Mutual labels:  journal
tick
This repository has been moved to sourcehut under the same username and repository name. Tick is a CLI time-tracking tool written in Rust. ⏱
Stars: ✭ 15 (+15.38%)
Mutual labels:  journal
reactivejournal
ReactiveJournal a journalling facility for Reactive Streams. Intended for testing, remote connections and effective handling of back pressure
Stars: ✭ 27 (+107.69%)
Mutual labels:  journal
preact-journal
14k offline-capable journaling PWA using preact, node, MySQL, and IndexedDB.
Stars: ✭ 33 (+153.85%)
Mutual labels:  journal
habitus
🏄 State-of-the-art Tracker for emotions, habits and thoughts. | Gamified. | Anonymous and open source. | Healthiest version of you
Stars: ✭ 23 (+76.92%)
Mutual labels:  journal
pdiary
A simple terminal diary journal application written in Python with encryption support.
Stars: ✭ 24 (+84.62%)
Mutual labels:  journal
epic-journal
A clean and modern encrypted journal/diary app
Stars: ✭ 80 (+515.38%)
Mutual labels:  journal
knut
knut is an efficient plain text accounting tool with support for multiple currencies and valuation.
Stars: ✭ 40 (+207.69%)
Mutual labels:  journal
akka-persistence-dynamodb
DynamoDBJournal for Akka Persistence
Stars: ✭ 85 (+553.85%)
Mutual labels:  journal
MyJournal.Notebook
My Journal Add-In for Microsoft OneNote
Stars: ✭ 41 (+215.38%)
Mutual labels:  journal
Hibi
[No Active Development] An Android app for learning Japanese by keeping a journal.
Stars: ✭ 37 (+184.62%)
Mutual labels:  journal
logback-journal
systemd journal appender for Logback
Stars: ✭ 25 (+92.31%)
Mutual labels:  journal
markdown.today
Store your journal as an encrypted markdown file on Dropbox and edit/view it from any browser
Stars: ✭ 61 (+369.23%)
Mutual labels:  journal

zim-wiki-mode

An elisp package for editing zim-wiki in emacs.

This package primarily provides convenient page linking and journaling by extending dokuwiki-mode and wrapping functions around helm-projectile, helm-ag, and link-hint. A menu is provided through pretty-hydra. A very basic and slow completion method (zim-wiki-mode-complete) uses company-mode.

Motivation

Zim's plain text markup is open to any editor. But only Zim Desktop Wiki itself is any good at actually editing pages. zim-wiki-mode intends to improve the editing expereence in Emacs.

use-package

zim-wiki-mode is a recipe in melpa!

If you want bleading edge, grab from the dev branch.

curl "https://raw.githubusercontent.com/WillForan/zim-wiki-mode/dev/zim-wiki-mode.el" > ~/path/to/zim-wiki-mode.el

~/.emacs might look like

;; setup wiki mode
(use-package zim-wiki-mode
  :load-path "~/path/to/zim-wiki-mode.el" ; if using dev branch, otherwise no need
  :bind ("C-c C-n" . zim-wiki-goto-now)
  :init
    (add-hook 'zim-wiki-mode-hook 'flyspell-mode)
  :config
    (setq zim-wiki-always-root "~/notes/PersonalWiki") ; if not set, would use projectile directory
    (setq zim-wiki-journal-datestr "Calendar/%Y/%02m.txt")
    (evil-leader/set-key-for-mode 'zim-wiki-mode "z" 'zim-wiki-hydra/body)
)

Setup

  • You should already have a notebook established with zim-wiki, referenced using (setq zim-wiki-always-root ... above
  • This mode was developed with both the journal and version control plugins enabled.
    • VC (.git directory) is necessary for projectile related commands.
  • If not a la use-package above, interactively set the location to your already existing zim notebook M-x customize-group RET zim-wiki RET

Keys

Default keys. Rearranged and annotated output of C-c ?

; menu
C-c C-z      zim-wiki-hydra/body              see all the options

; go places
C-c C-n		zim-wiki-goto-now                 jump to now page
C-c M-f		zim-wiki-helm-projectile          go to page by title search
C-c C-f		zim-wiki-search                   go to page by content search
C-c RET		zim-wiki-ffap                     go to link cursor is over
C-c M-RET	zim-wiki-ffap-below               open link in new window below current

; insert links
C-c M-l		zim-wiki-insert-helm-projectile   insert link by title searching
C-c C-l		zim-wiki-insert-search            insert link by filename/title search
C-c C-N		zim-wiki-insert-now-link          link now page on current page
C-c M-w		zim-wiki-link-wrap                wrap e.g a:b:c into [[a:b:c]]

; link based on history
C-c C-p		zim-wiki-insert-prev-buffer-link  insert link on current page to previous buffer
C-c M-y		zim-wiki-buffer-path-to-kill-ring copy current buffer file name
C-c M-p		zim-wiki-insert-kill-ring-as-link paste filename as link

; date operations
C-c C-n		zim-wiki-goto-now                 jump to now page
C-c C-N		zim-wiki-insert-now-link          link now page on current page
C-c M-n		zim-wiki-insert-current-at-now    put current page link on now page, go to now page

Demo

using zim-wiki-mode with evil-mode and leuven theme

demo gif

  1. C-c C-n go to the "now" page
    • now page date format defined by zim-wiki-journal-datestr
  2. C-c l create a new page in hierarchy by searching current tree
    • via helm-projectile
  3. C-c RET follow the link we just created
  4. C-c N insert a link to the current date
  5. write up some text about what we did
  6. C-c C-l link in that page that has "emacs cider" content but whos name is not memberible
    • helm provides C-z to preview
  7. C-c f go to title: we want to add things to that just linked in page.
    • could C-c RET on the link we created, but lets go there with by search file names (page titles)
    • or go by search text again (C-c C-f)
  8. C-c C-p link prev page: while we are there lets add where we came from
  9. C-c C-n then link the page we are currently editing to the now page
  10. C-c w paths freehand and wrap them in a link

N.B.

  • when following a link, we need to be on the word (not the [[ or ]] part)
  • no autosave
  • wiki must be under version control for helm-projectile (C-c f and C-c l)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].