A framework for premodern Chinese texts
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 175 commits behind mandoku:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Mandoku project

About mandoku


Mandoku is a framework for supporting research on premodern Chinese texts. This includes the tasks of

  • Philologically establishing a text, possibly by referencing and collating multiple versions of a text and digital facsimile(s).
  • Reading, annotating, analyzing and translating a text.
  • Working with repositories of texts, compare, study and analyze differences among these texts.
  • Establish and maintain metadata about such texts, for example concerning the dates, authors, place of creation etc. of the texts.
  • Compare notes, share information with other researchers working on these texts.

Technically speaking this is achieved by

  • defining a text format.
  • establishing conventions for collaboration to use texts based on this format.
  • developing a working environment and tools for handling these texts.

The mandoku text format

The format used by mandoku is derived from the file format used in Emacs’ org-mode (see Org-Mode: Your Life in Plain Text) with some extensions and additional conventions. For more information, see mandoku-format.org.


Mandoku and related repositories needed are now on melpa, the archive for emacs packages. The easiest way to get up and running is to get a working Emacs (for OS X, I recommend https://github.com/railwaycat/homebrew-emacsmacport/releases ), start it up, copy and paste the follwing code into the Emacs scratch buffer, go to the end and press C-x C-e.

For advanced users: The second line sets the base directory for the folder hierarchy used by Mandoku. If it does not suit you, change it as needed.

(unless (require 'mandoku nil t)
(setq mandoku-base-dir "~/krp")
(require 'cl)
(load "package")
;;we need the melpa repository for mandoku
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)

(defvar mandoku-starter-packages
	'org 'org-plus-contrib
	'mandoku 'mandoku-meta-kr 'mandoku-meta-zb
  "Libraries that should be installed by default.")

(unless (every #'package-installed-p mandoku-starter-packages)
  (dolist (package mandoku-starter-packages)
    (unless (package-installed-p package)
      (message "installing %s" package)
      (package-install package))))

(require 'mandoku)
;; (require 'mandoku-link)
(unless (< 0 (length mandoku-user-account))
  (find-file (expand-file-name "mandoku-settings.org" mandoku-user-dir ))
  (search-forward "uservalues"))

The first time you run this, a lot of packages will be downloaded into the elpa folder. This takes a few minutes. You will then be asked for some additional information and might have to restart emacs.