You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Efertone bd8b8791c5
update drone
1 year ago
doku Update readme + bump version 2 years ago
tests Some of them are ugly 2 years ago
.drone.yml update drone 1 year ago
.gitignore Some of them are ugly 2 years ago
.travis.yml py37: unable to download @travis :/ 2 years ago
LICENSE initial commit 2 years ago initial commit 2 years ago
Makefile initial commit 2 years ago
README.rst add travis and coveralls (instead of my drone) 2 years ago
requirements.txt initial commit 2 years ago initial commit 2 years ago
test-requirements.txt Some of them are ugly 2 years ago
tox.ini add py36 to tox 2 years ago



.. image::

.. image::

**doku** is a cli tool to read and manipulate
documents in DokuWiki via its XMLRPC endpoint.


* Python 3.6+
* DokuWiki access (somewhere) with enabled XML-RPC



pip install doku

# or as a user
pip install --user doku

# upgrade
pip install --upgrade doku


Enable XML RPC on your DokuWiki instance:
:code:`Admin > Configuration Settings > Authentication`

Create a new file: :code:`$HOME/.doku.ini`


domain =
username = your-username
password = your-password
ssl = true
path = /

indexpage = root
diaryroot = diary

Example usage:


❯ doku list
[2019-01-06 09:29:03] playground:playground
[2019-01-06 09:18:47] wiki:dokuwiki
[2019-01-06 09:18:47] wiki:syntax
[2019-01-06 09:18:47] wiki:welcome

doku list --namespace :playground
[2019-01-06 09:29:03] playground:playground

❯ doku edit wiki:welcome
# this will open your $EDITOR
# with the full content of the wiki page
Document saved.

❯ doku cat playground:playground
====== PlayGround ======

❯ doku --help
Usage: doku [OPTIONS] COMMAND [ARGS]...

--help Show this message and exit.



With :code:`diary` commands, you can use your wiki as a diary (surprise).

The :code:`show` command will show you all your logs (today).

The :code:`log` command will open up your :code:`$EDITOR` and after save+quit,
it will append it for your diary page (today).

When you call log, doku will check all the path back and generates
content for the tree.

For example:


# Today is 2019-02-21 and your index is configured to be 'root'
doku diary log

# This will create the following pages if it's not exist

# Will regenerate this page
# if you log an entry in a year previously was not there

# from stdin (pipe)
echo 'message' | doku diary log --pipe

# decorate with <code>...</code>
# automatically activated the --pipe flag
ls -la | doku diary log --code