sponsor Vim development Vim logo Vim Book Ad

publish.vim : Publish hyperlinked, highlighted source code using Vim, 2html.vim and rsync

 script karma  Rating 17/5, Downloaded by 2051    Comments, bugs, improvements  Vim wiki

created by
Peter Odding
 
script type
utility
 
description
This plug-in uses the 2html.vim script included with Vim's runtime files to publish a collection of syntax highlighted files as HTML documents and then replaces identifiers such as function and variable names in the HTML output with hyper links (based on available tags as generated by Exuberant Ctags). The result is a directory (tree) of syntax highlighted, interlinked HTML documents. I've published the plug-in's source code as a demonstration at http://peterodding.com/code/vim/profile/plugin/publish.vim. For more information about the plug-in please refer to its homepage or the project page on GitHub:

http://peterodding.com/code/vim/publish/
http://github.com/xolox/vim-publish

If you have questions, bug reports, suggestions, etc. the author can be contacted at peter@peterodding.com. If you like this plug-in please vote for it below!
 
install details
Unzip the most recent ZIP archive file (see below) inside your Vim profile directory (usually this is "~/.vim" on UNIX and "%USERPROFILE%\vimfiles" on Windows), restart Vim and execute the command ":helptags ~/.vim/doc" (use ":helptags ~\vimfiles\doc" instead on Windows).

As an example we'll publish the plug-in using itself. First create a tags file that contains entries for the files you want to publish using a shell command such as:

    ctags -Rf ~/.publish_tags ~/.vim/

If this doesn't work because "ctags" isn't installed you can download it from the Exuberant Ctags homepage http://ctags.sourceforge.net/ or if you're running Debian/Ubuntu you can install it by executing the following shell command:

    sudo apt-get install exuberant-ctags

The plug-in needs an up-to-date tags file so that it can create hyper links between the published files. Now start Vim and write a script that registers the tags file you just created and calls the function Publish() as follows:

    set tags=~/.publish_tags
    let sources = '/home/peter/.vim'
    let target = 'sftp://peterodding.com/code/vim/profile'
    call Publish(sources, target, [
        \ 'autoload/xolox/escape.vim',
        \ 'autoload/xolox/path.vim',
        \ 'autoload/publish.vim',
        \ 'plugin/publish.vim',
        \ ])

Change the "sources" and "target" variables to reflect your situation, save the script as "~/publish_test.vim" and execute it in Vim by typing ":source ~/publish_test.vim" (without the quotes) and pressing Enter↵. If everything goes well Vim will be busy for a moment and after that you will find a bunch of syntax highlighted, interlinked HTML documents in the target directory!
 

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
publish.zip 1.7.14 2013-08-19 7.0 Peter Odding Remove compatibility checking of miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/fecbb5e

Cleaned up old miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/cc0c218

Document vim-misc as external dependency:
   http://github.com/xolox/vim-publish/commit/4cb3c4c

Make sure vim-misc is installed, politely complain if it isn't:
   http://github.com/xolox/vim-publish/commit/4aa630e
publish.zip 1.7.13 2013-05-20 7.0 Peter Odding Updated miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/47adaca
publish.zip 1.7.12 2013-05-19 7.0 Peter Odding Updated miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/89cfda3
publish.zip 1.7.11 2013-05-13 7.0 Peter Odding Updated miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/ace88ae
   http://github.com/xolox/vim-publish/commit/9c88b0e
publish.zip 1.7.10 2013-05-02 7.0 Peter Odding Updated miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/3ef4495
publish.zip 1.7.9 2013-04-28 7.0 Peter Odding Updated miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/24c2a1b
publish.zip 1.7.8 2013-04-21 7.0 Peter Odding Make compatibility with miscellaneous scripts explicit:
   http://github.com/xolox/vim-publish/commit/6e3ba5c
publish.zip 1.7.7 2011-11-26 7.0 Peter Odding Updated miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/3025ff5
   http://github.com/xolox/vim-publish/commit/5ddefd0
   http://github.com/xolox/vim-publish/commit/9b4c774
publish.zip 1.7.6 2011-11-21 7.0 Peter Odding Updated miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/ca5f8f4
publish.zip 1.7.5 2011-09-25 7.0 Peter Odding Updated miscellaneous scripts:
   http://github.com/xolox/vim-publish/commit/8f196b6
publish.zip 1.7.4 2011-09-04 7.0 Peter Odding Move version variable to autoload script, include in every message:
   http://github.com/xolox/vim-publish/commit/f0d2b02

Updated miscellaneous scripts
publish.zip 1.7.1 2010-09-05 7.0 Peter Odding Bug fix: Avoid Vim's hit-enter prompt:
   http://github.com/xolox/vim-publish/commit/7a2705cbdcefa12116f6ca007af9683729c2b37a

Instrumented plug-in with xolox#timer#* calls:
   http://github.com/xolox/vim-publish/commit/514a5f7be3b5d09dc8a944fd594ce1fbd0e17e1b

Proper HTML encoding, foolproof publish#customize_html():
   http://github.com/xolox/vim-publish/commit/be773a134cf404723cc463ab034eaf0b26f7d279

Bug fix: Make 2html ignore text folding:
   http://github.com/xolox/vim-publish/commit/892be723e17dbfd21bec0d72d600519e26e0f6c1

Bug fix: Proper escaping in pattern_to_lnum():
   http://github.com/xolox/vim-publish/commit/43c57b7a8b2d5b030fc3c539df293d0bb350840b

Bug fix: Proper escaping in create_subst_cmd() to avoid E33:
   http://github.com/xolox/vim-publish/commit/4fa75be69245eb5723279793e4a587bb3848aa6c

Bug fix for publish#html_encode():
   http://github.com/xolox/vim-publish/commit/5df4c3d750654a330e077eb96a781c9b8d4dab7c

Simplified tags -> hyperlinks conversion hack:
   http://github.com/xolox/vim-publish/commit/459b8293a2a85885872603765699a210fe72fb74

Smarter integration with easytags.vim:
   http://github.com/xolox/vim-publish/commit/be98f4328bb631cd4c67d8951ff7c413b7cb6355

Fixed easytags#update() to overcome argument limit:
   http://github.com/xolox/vim-publish/commit/87b0305bd27d4ee3715790cddc76cc2cfead7c14
publish.zip 1.6 2010-06-15 7.0 Peter Odding * Bug fix for :doautocmd User PublishPre hook:
  http://github.com/xolox/vim-publish/commit/964e4dbb486f203ae7a1cb426af9491f44225db1

* Bug fix: Escape ~ in tag search patterns:
  http://github.com/xolox/vim-publish/commit/2da32565a73c0a9ab25d4fd9b0f6626336202d07

* Improved handling of VimL script-local functions:
  http://github.com/xolox/vim-publish/commit/537fe778d8bec47001367193323a813c3333d038

* Always prefer earlier tag definitions in the same document:
  http://github.com/xolox/vim-publish/commit/17b9e7563464da908baf45870831599e2bc9c809

* Faster remote publishing using rsync (automatically enabled):
  http://github.com/xolox/vim-publish/commit/027a2f0f4f8ccd6a7f1739f023b4825944e71b57
publish.zip 1.5.2 2010-06-06 7.0 Peter Odding Now includes generated Vim documentation based on README
publish.zip 1.5.1 2010-06-05 7.0 Peter Odding Bug fix: Fixed usage instructions to include tags generation :-\
http://github.com/xolox/vim-publish/commit/8eee22a18373125398d853dc3848d4101865576b
publish.zip 1.5 2010-06-05 7.0 Peter Odding Completely switched directions by forgetting about incremental, automatic publishing (which interferes with the user because "2html.vim" is too slow) and instead focusing on batch publishing of multiple related files, which means the plug-in can now include hyperlinks between the published files based on tags.
publish.vim 1.0 2008-05-25 7.0 Peter Odding Initial upload
ip used for rating: 54.89.79.183

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
   
SourceForge.net Logo