Recently I was working on a low level library which I wanted to add a dependent library to. For things like this I really wish they’d have better docs. So if I was going to contribute to the world of lower level libraries I was going to at least try to make some docs for it.
First step was to pick a tool. In the end I went with doxygen which seems to integrate well with autoconf. I set up the build environment and soon had docs that would build locally. Still, that’s a big commitment for a potential user; how can you give a potential developer using your lib a chance to get a quick look at library.
One way is to use GitHub Pages. The way it works
is that you put your docs in a special branch - gh-pages
- and then you
can view them at YOUR-NAME-ON-GITHUB.github.io/YOUR-PROJECT-NAME
. Even
better you can put a file called CNAME
in the base of that branch with the name
of the domain you want to be served.
The problem is that it’s a separate branch from your normal branch - typically it’s an orphan branch - and it’s kind of a pain to switch back and forth from. So I wrote a make rule to do it all for me w/o disturbing my tree.
This is the initial setup. You only do this once; I just ran it from the shell.
|
|
I should note here that the make rules will not work on OS X. I use
the -r
flag for xargs
which sadly OS X’s xargs
does not support.
If you use OS X you could modify this to check for ls-files --deleted
being empty. Or perhaps remove the -r
and change rm
to rm -f
some.file.you.never.expect.to.exist
which would mean rm
would always
have at least one file. Anyway, this way looks a bit nicer to me so
this is what I went with:
|
|
Now make gh-pages
will do a new release of the doxygen
docs and the
gcov
output. The result lives at
http://text.protobuf-c.io/ and looks
quite well if I do say so myself.