1" Vim plugin for converting a syntax highlighted file to HTML. 2" Maintainer: Ben Fritz <[email protected]> 3" Last Change: 2011 May 26 4" 5" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and 6" $VIMRUNTIME/syntax/2html.vim 7" 8" TODO: 9" * Options for generating the CSS in external style sheets. New :TOcss 10" command to convert the current color scheme into a (mostly) generic CSS 11" stylesheet which can be re-used. Alternate stylesheet support? 12" * Pull in code from http://www.vim.org/scripts/script.php?script_id=3113 : 13" - listchars support 14" - full-line background highlight 15" - other? 16" * Font auto-detection similar to 17" http://www.vim.org/scripts/script.php?script_id=2384 18" * Explicitly trigger IE8+ Standards Mode? 19" * Make it so deleted lines in a diff don't create side-scrolling 20" * Restore open/closed folds and cursor position after processing each file 21" with option not to restore for speed increase 22" * Undercurl support via dotted bottom border? 23" * Add extra meta info (generation time, etc.)? 24" * Tidy up so we can use strict doctype in even more situations 25" * Implementation detail: add threshold for writing the lines to the html 26" buffer before we're done (5000 or so lines should do it) 27" * TODO comments for code cleanup scattered throughout 28" 29 30if exists('g:loaded_2html_plugin') 31 finish 32endif 33let g:loaded_2html_plugin = 'vim7.3_v10' 34 35" 36" Changelog: 37" 7.3_v10 (this version): Fix error E684 when converting a range wholly inside 38" multiple nested folds with dynamic folding on. 39" Also fix problem with foldtext in this situation. 40" 7.3_v9 (0877b8d6370e): Add html_pre_wrap option active with html_use_css 41" and without html_no_pre, default value same as 42" 'wrap' option, (Andy Spencer). Don't use 43" 'fileencoding' for converted document encoding if 44" 'buftype' indicates a special buffer which isn't 45" written. 46" 7.3_v8 (85c5a72551e2): Add html_expand_tabs option to allow leaving tab 47" characters in generated output (Andy Spencer). 48" Escape text that looks like a modeline so Vim 49" doesn't use anything in the converted HTML as a 50" modeline. Bugfixes: Fix folding when a fold starts 51" before the conversion range. Remove fold column when 52" there are no folds. 53" 7.3_v7 (840c3cadb842): see betas released on vim_dev below: 54" 7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way. 55" 7.3_v7b2: Remove automatic detection of encodings that are not 56" supported by all major browsers according to 57" http://wiki.whatwg.org/wiki/Web_Encodings and 58" convert to UTF-8 for all Unicode encodings. Make 59" HTML encoding to Vim encoding detection be 60" case-insensitive for built-in pairs. 61" 7.3_v7b1: Remove use of setwinvar() function which cannot be 62" called in restricted mode (Andy Spencer). Use 63" 'fencoding' instead of 'encoding' to determine by 64" charset, and make sure the 'fenc' of the generated 65" file matches its indicated charset. Add charsets for 66" all of Vim's natively supported encodings. 67" 7.3_v6 (0d3f0e3d289b): Really fix bug with 'nowrapscan', 'magic' and other 68" user settings interfering with diff mode generation, 69" trailing whitespace (e.g. line number column) when 70" using html_no_pre, and bugs when using 71" html_hover_unfold. 72" 7.3_v5 ( unreleased ): Fix bug with 'nowrapscan' and also with out-of-sync 73" folds in diff mode when first line was folded. 74" 7.3_v4 (7e008c174cc3): Bugfixes, especially for xhtml markup, and diff mode 75" 7.3_v3 (a29075150aee): Refactor option handling and make html_use_css 76" default to true when not set to anything. Use strict 77" doctypes where possible. Rename use_xhtml option to 78" html_use_xhtml for consistency. Use .xhtml extension 79" when using this option. Add meta tag for settings. 80" 7.3_v2 (80229a724a11): Fix syntax highlighting in diff mode to use both the 81" diff colors and the normal syntax colors 82" 7.3_v1 (e7751177126b): Add conceal support and meta tags in output 83" Pre-v1 baseline: Mercurial changeset 3c9324c0800e 84 85" Define the :TOhtml command when: 86" - 'compatible' is not set 87" - this plugin was not already loaded 88" - user commands are available. 89if !&cp && !exists(":TOhtml") && has("user_commands") 90 command -range=% TOhtml :call tohtml#Convert2HTML(<line1>, <line2>) 91endif 92 93" Make sure any patches will probably use consistent indent 94" vim: ts=8 sw=2 sts=2 noet 95