1071d4279SBram Moolenaar" Vim plugin for converting a syntax highlighted file to HTML. 2349b2fb0SBram Moolenaar" Maintainer: Ben Fritz <[email protected]> 3*8e5af3e5SBram Moolenaar" Last Change: 2011 Apr 09 4b02cbe34SBram Moolenaar" 5349b2fb0SBram Moolenaar" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and 6349b2fb0SBram Moolenaar" $VIMRUNTIME/syntax/2html.vim 78ada2ccaSBram Moolenaar" 88ada2ccaSBram Moolenaar" TODO: 9*8e5af3e5SBram Moolenaar" * Options for generating the CSS in external style sheets. New :TOcss 10*8e5af3e5SBram Moolenaar" command to convert the current color scheme into a (mostly) generic CSS 11*8e5af3e5SBram Moolenaar" stylesheet which can be re-used. Alternate stylesheet support? 12*8e5af3e5SBram Moolenaar" * Pull in code from http://www.vim.org/scripts/script.php?script_id=3113 : 13*8e5af3e5SBram Moolenaar" - listchars support 14*8e5af3e5SBram Moolenaar" - full-line background highlight 15*8e5af3e5SBram Moolenaar" - other? 16*8e5af3e5SBram Moolenaar" * Font auto-detection similar to 17*8e5af3e5SBram Moolenaar" http://www.vim.org/scripts/script.php?script_id=2384 182a8a3ecbSBram Moolenaar" * Explicitly trigger IE8+ Standards Mode? 192a8a3ecbSBram Moolenaar" * Make it so deleted lines in a diff don't create side-scrolling 208df7f888SBram Moolenaar" * Restore open/closed folds and cursor position after processing each file 218df7f888SBram Moolenaar" with option not to restore for speed increase 222a8a3ecbSBram Moolenaar" * Undercurl support via dotted bottom border? 232a8a3ecbSBram Moolenaar" * Add extra meta info (generation time, etc.)? 242a8a3ecbSBram Moolenaar" * Tidy up so we can use strict doctype in even more situations 258df7f888SBram Moolenaar" * Implementation detail: add threshold for writing the lines to the html 268df7f888SBram Moolenaar" buffer before we're done (5000 or so lines should do it) 278ada2ccaSBram Moolenaar" * TODO comments for code cleanup scattered throughout 28166af9bbSBram Moolenaar" 29166af9bbSBram Moolenaar" 30166af9bbSBram Moolenaar" Changelog: 31*8e5af3e5SBram Moolenaar" 7.3_v9 (this version): Add html_pre_wrap option active with html_use_css and 32*8e5af3e5SBram Moolenaar" without html_no_pre, default value same as 'wrap' 33*8e5af3e5SBram Moolenaar" option, (Andy Spencer). Don't use 'fileencoding' for 34*8e5af3e5SBram Moolenaar" converted document encoding if 'buftype' indicates a 35*8e5af3e5SBram Moolenaar" special buffer which isn't written. 36*8e5af3e5SBram Moolenaar" 7.3_v8 (85c5a72551e2): Add html_expand_tabs option to allow leaving tab 372a8a3ecbSBram Moolenaar" characters in generated output (Andy Spencer). Escape 382a8a3ecbSBram Moolenaar" text that looks like a modeline so Vim doesn't use 392a8a3ecbSBram Moolenaar" anything in the converted HTML as a modeline. 402a8a3ecbSBram Moolenaar" Bugfixes: Fix folding when a fold starts before the 412a8a3ecbSBram Moolenaar" conversion range. Remove fold column when there are 422a8a3ecbSBram Moolenaar" no folds. 432a8a3ecbSBram Moolenaar" 7.3_v7 (840c3cadb842): see betas released on vim_dev below: 44166af9bbSBram Moolenaar" 7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way. 45166af9bbSBram Moolenaar" 7.3_v7b2: Remove automatic detection of encodings that are not 46166af9bbSBram Moolenaar" supported by all major browsers according to 47166af9bbSBram Moolenaar" http://wiki.whatwg.org/wiki/Web_Encodings and convert 48166af9bbSBram Moolenaar" to UTF-8 for all Unicode encodings. Make HTML 49166af9bbSBram Moolenaar" encoding to Vim encoding detection be 50166af9bbSBram Moolenaar" case-insensitive for built-in pairs. 51166af9bbSBram Moolenaar" 7.3_v7b1: Remove use of setwinvar() function which cannot be 52166af9bbSBram Moolenaar" called in restricted mode (Andy Spencer). Use 53166af9bbSBram Moolenaar" 'fencoding' instead of 'encoding' to determine by 54166af9bbSBram Moolenaar" charset, and make sure the 'fenc' of the generated 55166af9bbSBram Moolenaar" file matches its indicated charset. Add charsets for 56166af9bbSBram Moolenaar" all of Vim's natively supported encodings. 57166af9bbSBram Moolenaar" 7.3_v6 (0d3f0e3d289b): Really fix bug with 'nowrapscan', 'magic' and other 58166af9bbSBram Moolenaar" user settings interfering with diff mode generation, 59166af9bbSBram Moolenaar" trailing whitespace (e.g. line number column) when 60166af9bbSBram Moolenaar" using html_no_pre, and bugs when using 61166af9bbSBram Moolenaar" html_hover_unfold. 62166af9bbSBram Moolenaar" 7.3_v5 ( unreleased ): Fix bug with 'nowrapscan' and also with out-of-sync 63166af9bbSBram Moolenaar" folds in diff mode when first line was folded. 64166af9bbSBram Moolenaar" 7.3_v4 (7e008c174cc3): Bugfixes, especially for xhtml markup, and diff mode. 65166af9bbSBram Moolenaar" 7.3_v3 (a29075150aee): Refactor option handling and make html_use_css 66166af9bbSBram Moolenaar" default to true when not set to anything. Use strict 67166af9bbSBram Moolenaar" doctypes where possible. Rename use_xhtml option to 68166af9bbSBram Moolenaar" html_use_xhtml for consistency. Use .xhtml extension 69166af9bbSBram Moolenaar" when using this option. Add meta tag for settings. 70166af9bbSBram Moolenaar" 7.3_v2 (80229a724a11): Fix syntax highlighting in diff mode to use both the 71166af9bbSBram Moolenaar" diff colors and the normal syntax colors 72166af9bbSBram Moolenaar" 7.3_v1 (e7751177126b): Add conceal support and meta tags in output 73166af9bbSBram Moolenaar" Pre-v1 baseline: Mercurial changeset 3c9324c0800e 74071d4279SBram Moolenaar 757510fe74SBram Moolenaarif exists('g:loaded_2html_plugin') 767510fe74SBram Moolenaar finish 777510fe74SBram Moolenaarendif 78*8e5af3e5SBram Moolenaarlet g:loaded_2html_plugin = 'vim7.3_v9' 797510fe74SBram Moolenaar 80b02cbe34SBram Moolenaar" Define the :TOhtml command when: 81b02cbe34SBram Moolenaar" - 'compatible' is not set 82b02cbe34SBram Moolenaar" - this plugin was not already loaded 83b02cbe34SBram Moolenaar" - user commands are available. 84071d4279SBram Moolenaarif !&cp && !exists(":TOhtml") && has("user_commands") 85b02cbe34SBram Moolenaar command -range=% TOhtml :call tohtml#Convert2HTML(<line1>, <line2>) 86071d4279SBram Moolenaarendif 87349b2fb0SBram Moolenaar 88349b2fb0SBram Moolenaar" Make sure any patches will probably use consistent indent 897c86f4ccSBram Moolenaar" vim: ts=8 sw=2 sts=2 noet 90