[sword-devel] cbible

Tim Hawes tim at selfdidactic.com
Sun Jul 26 10:36:52 MST 2015

I am thinking I should make some announcement about cbible.

This is a persoanl project. I wanted an Emacs mode that uses Sword, and
diatheke is very limiting.

I wanted to be able to turn off verse numbers, and just print the
reference for the entire passage selection at the end, rather than
getting full book/chapter/verse at the begining of every verse. I also
wanted to be able to save commentary notes in the Personal commentary
module. So I set up to write a better diatheke (of sorts).

I have not written in C++ in well over 10 years now, so this was an
opportunity for me to re-learn the language as well.

I even wrote some very simple unit tests with the Catch unit test
library (https://github.com/philsquared/Catch), and on every commit to
master, the project compiles and runs the unit tests on Travis CI

If you run the program without arguments, you will start in an
interactive mode, similar to the old KJV bible program that used to be
on the old UNIX C programs FTP site, and now is part of
Debian. Interactive mode uses the GNU readline library. I want to
implement tab-completion for Scripture references, but have not found a
good way to do this automatically.

There is a Kdevelop project file (even though I am writing this almost
entirely in Emacs).

The program will kickout the Scripture references (with ranges) you
through at it, and will turn on or off versification, and with any
module you have installed. I have not yet implemented search, but I will
in the near future. I have the component that writes to the Personal
commentary module working, but I have not yet committed those changes. I
will commit once I refine the unit tests for that piece (within the next
day or so, if not later today).

The program creates a config file for the user on first use, that right
now, just contains the default module. You can specify any module you
have installed, but uses the KJV by default, until you change it in the
config file (at ~/.cbibe.cfg).

I am using boost's program_options library. I was thinking of using
getopts at first, but I like the idea of using a configuration file as
well, and boost's library handles both commandline options and
configuration file.

I plan on doing some blogging in org-mode on Emacs in the near future,
and at some point, I will stop writing any new features for this
software, so I can write the elisp I need to be able to use this within
Emacs, but I can see potential for this lil' pet project to grow some
new features.

Yours in Christ,

Tim Hawes

Sent with my mu4e

More information about the sword-devel mailing list