cmddocs
cmddocs copied to clipboard
An interactive commandline interface for your personal docs using python, Cmd, git and markdown
.. image:: https://travis-ci.org/noqqe/cmddocs.svg?branch=master :target: https://travis-ci.org/noqqe/cmddocs
.. image:: https://codecov.io/gh/noqqe/cmddocs/branch/master/graph/badge.svg :target: https://codecov.io/gh/noqqe/cmddocs
cmddocs
cmddocs
is an interactive commandline wiki. It
lets you easily maintain your docs/cheetsheets/notes using:
- Plain Text Files
- Write
markdown
in your local Editor - View in your local Pager
- Versioning with
git
cmddocs is like a framework around your plaintext files.
Why ?
I kind of started cmddocs
because I couldn't find something like
this on the internet. Here's my usecase. Im working as a DevOps guy
being in touch with various types of software, languages, tools,
operating systems and databases. To remember all those things I need a
place to store commands, workflows and short howtos.
Most of the software I use (and love) runs on a OpenBSD Box on the
internet and are commandline-based. These are
mutt <http://www.mutt.org>
,
taskwarrior <http://taskwarrior.org>
,
jrnl <http://maebert.github.io/jrnl/>
,
weechat <http://weechat.org>
and so on...But i was missing a tool
for documentation.
After switching to just plaintext files using
vim
and git
it was also a bit annoying. So I wrote
cmddocs
to make it easier for me to handle my plaintext files.
Markdown Rendering
cmddocs
uses the mistune <https://github.com/lepture/mistune>
__ lexer to
wrap markdown with ansi control sequences instead of html tags.
It looks something like this.
.. image:: https://raw.github.com/noqqe/cmddocs/master/cmddocs-md2ascii.png
Demo
To give you an idea what it looks/feels like I created a short terminal recording.
asciinema cmddocs demo <https://asciinema.org/a/15168>
__
Installation
::
pip install cmddocs
Also make sure you have tree
installed.
Configuration
Create .cmddocsrc
file in your $HOME with the following content
(adjust to your needs):
::
[General]
Datadir = /home/noqqe/Docs
Default_Commit_Message = small changes
Excludedir = .git/
Editor = /usr/local/bin/vim
# EditorFlags = -C
Pager = /usr/bin/less
PagerFlags = -fr
Prompt = cmddocs>
Promptcolor = 37
Intro_Message = cmddocs - press ? for help
Mail = [email protected]
Default_Extension = md
[Colors]
Header12 = 37
Header345 = 37
Codeblock = 92
The only required option is "Datadir", everything else will be guessed
or defaults to a sane default value. Once you start cmddocs.py the CLI
will be shown. Use help
for commands.
Quick Start
At first, create a very minimal config, like
::
[General]
Datadir = /home/noqqe/Docs
Editor = /usr/local/bin/vim
Pager = /usr/bin/less
Then you can start using cmddocs.
::
$ cmddocs
cmddocs - press ? for help
cmddocs> help
Documented commands (type help <topic>):
========================================
EOF delete e help list mail pwd search undo
cd diff edit info log move revert stats version
d dirs exit l ls mv rm status view
cmddocs> help l
Show files in current working dir
cmddocs> help log
Show git logs of your docs.
Usage: log # default loglines: 10)
log 20 # show 20 loglines
log 20 article # show log for specific article
log databases/mongodb 3 # same
Command Documentation
cd
Change directory
::
Usage:
cd Programming/
cd
delete
, rm
Delete an article
::
Usage:
delete databases/mongodb
rm databases/mssql
dirs
, d
Show directories in current working dir
::
Usage:
dirs
d
dirs Databases/
e
, edit
Edit or create new article.
::
Usage:
edit databases/mongodb
edit intro
list
, l
, ls
Show files in current working dir
::
Usage:
list
l
list Databases/
move
, mv
Move an article to a new location
::
Usage:
move databases/mongodb databases/MongoDB
move life/foo notes/foo
mv life/foo notes/foo
view
View an article. Creates temporary file with converted markdown to ansi colored output. Opens your PAGER. (Only less supported atm)
::
Usage:
view databases/mongodb
view intro
mail
Mail an article to a friend
::
Usage:
mail databases/mongodb
Recipient: [email protected]
mail programming/r/loops
mail intro
pwd
Show current directory
::
Usage:
pwd
search
Search for keyword in current directory
::
Usage:
search mongodb
search foo
undo
, revert
You can revert your changes (use revert from git)
::
Usage:
undo HEAD
undo 355f375
Will ask for confirmation.
diff
Show git diffs between files and commits
::
Usage:
diff 7 # show diff for last 7 changes
diff 1 article # show diff for last change to article
diff # show last 5 diffs
info
Show infos for an article
::
Usage:
info article
info Databases/mongodb
Created: 2014-01-18 11:18:03 +0100
Updated: 2015-10-23 14:14:44 +0200
Commits: 26
Lines: 116
Words: 356
Characters: 2438
log
Show git logs of your docs.
::
Usage:
log # default loglines: 10)
log 20 # show 20 loglines
log 20 article # show log for specific article
log databases/mongodb 3 # same
status
Show git repo status of your docs
::
Usage:
status
stats
Calculate some statistics on your docs
::
Usage:
stats
exit
, EOF
Exit cmddocs
::
Usage:
exit
help
List available commands with "help" or detailed help with "help cmd".
version
Show version of cmddocs
::
Usage:
version
Changelog
See Changelog_.
.. _Changelog: https://github.com/noqqe/cmddocs/blob/master/CHANGELOG.rst
License
See License_.
.. _License: https://github.com/noqqe/cmddocs/blob/master/License.txt