I’m a programmer which naturally means I hate performing repetitive tasks… Publishing my Vim plug-ins quickly turned out to fall in this category; I’d keep making the same mistakes and having users e-mail me because I screwed up again and uploaded a broken release to www.vim.org. After a while this got embarrassing so I decided to solve this annoying problem once and for all.
Things started out small but as my existing Vim plug-ins mature and I publish
more Vim plug-ins to the world, the vim-tools
repository grows with me. It
now contains several Python modules which can be useful to other people (mostly
Vim plug-in developers) which is why I’m sharing it with the world.
The Python module html2vimdoc.py
converts Markdown and HTML documents
to Vim help files.
It has a command line interface but can also be used as a plain Python module.
The html2vimdoc.py
module has several dependencies, the easiest way to
install them is in a Python virtual environment:
# Clone the repository git clone https://github.com/xolox/vim-tools.git cd vim-tools # Create the virtual environment. virtualenv html2vimdoc # Install the dependencies. html2vimdoc/bin/pip install beautifulsoup coloredlogs markdown # Run the program. html2vimdoc/bin/python ./html2vimdoc.py --help
I use this module to convert my Vim plug-in README.md
files and the Lua, LPeg and Lua/APR manuals to Vim’s help file format.
Here’s my workflow involving the documentation of my Vim plug-ins:
README.md
files because
GitHub renders such files as a “repository homepage”.html2vimdoc.py
to convert README.md
file to a
Vim help file which is included in the commit.README.md
is fetched and used as the plug-in homepage on my website.The Python module vimdoctool.py
extracts the public functions and related
comments (assumed to contain text in Markdown format) from the Vim
scripts in and/or below the current working directory. The extracted
documentation is combined into one chunk of text and then this chunk of text is
embedded in the Markdown document given on the command line.
I use this module to publish the documentation of my vim-misc scripts.
This module has a dependency on my coloredlogs module which is available on PyPi (the Python package index).
This program (written in Python) makes it easier for me to publish my Vim plug-ins on GitHub and Vim Online. It automates most of my release management, here’s a short summary:
doc/tags
is included in .gitignore
README.md
is up to datevimdoctool.py
to update function documentation embedded in
README.md
html2vimdoc.py
to update Vim help file based on README.md
master
branchvim-plugin-manager -r
):
git archive
is used to generate a ZIP archive with a
clean copy (no local changes) of the last commitvim-plugin-manager -c
)It might be a bit specific to my workflow but you never know, someone might find it useful :-)
If you have questions, bug reports, suggestions, etc. the author can be contacted at peter@peterodding.com. The latest version is available at http://peterodding.com/code/vim/tools/ and http://github.com/xolox/vim-tools.
This software is licensed under the MIT license.
© 2013 Peter Odding <peter@peterodding.com>.
The html2vimdoc.py
module bundles soupselect.py
by Simon Willison. The
soupselect module is also licensed under the MIT license. You can find
the soupselect module on GitHub and Google Code.
Last updated Thu May 21 22:10:30 UTC 2015.