1071d4279SBram Moolenaar" Vim plugin for converting a syntax highlighted file to HTML. 2349b2fb0SBram Moolenaar" Maintainer: Ben Fritz <[email protected]> 3*2a8a3ecbSBram Moolenaar" Last Change: 2011 Jan 06 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*2a8a3ecbSBram Moolenaar" * Explicitly trigger IE8+ Standards Mode? 10*2a8a3ecbSBram Moolenaar" * Make it so deleted lines in a diff don't create side-scrolling 118df7f888SBram Moolenaar" * Restore open/closed folds and cursor position after processing each file 128df7f888SBram Moolenaar" with option not to restore for speed increase 13*2a8a3ecbSBram Moolenaar" * Undercurl support via dotted bottom border? 14*2a8a3ecbSBram Moolenaar" * Add extra meta info (generation time, etc.)? 15*2a8a3ecbSBram Moolenaar" * Tidy up so we can use strict doctype in even more situations 168df7f888SBram Moolenaar" * Implementation detail: add threshold for writing the lines to the html 178df7f888SBram Moolenaar" buffer before we're done (5000 or so lines should do it) 188ada2ccaSBram Moolenaar" * TODO comments for code cleanup scattered throughout 19166af9bbSBram Moolenaar" 20166af9bbSBram Moolenaar" 21166af9bbSBram Moolenaar" Changelog: 22*2a8a3ecbSBram Moolenaar" 7.3_v8 (this version): Add html_expand_tabs option to allow leaving tab 23*2a8a3ecbSBram Moolenaar" characters in generated output (Andy Spencer). Escape 24*2a8a3ecbSBram Moolenaar" text that looks like a modeline so Vim doesn't use 25*2a8a3ecbSBram Moolenaar" anything in the converted HTML as a modeline. 26*2a8a3ecbSBram Moolenaar" Bugfixes: Fix folding when a fold starts before the 27*2a8a3ecbSBram Moolenaar" conversion range. Remove fold column when there are 28*2a8a3ecbSBram Moolenaar" no folds. 29*2a8a3ecbSBram Moolenaar" 7.3_v7 (840c3cadb842): see betas released on vim_dev below: 30166af9bbSBram Moolenaar" 7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way. 31166af9bbSBram Moolenaar" 7.3_v7b2: Remove automatic detection of encodings that are not 32166af9bbSBram Moolenaar" supported by all major browsers according to 33166af9bbSBram Moolenaar" http://wiki.whatwg.org/wiki/Web_Encodings and convert 34166af9bbSBram Moolenaar" to UTF-8 for all Unicode encodings. Make HTML 35166af9bbSBram Moolenaar" encoding to Vim encoding detection be 36166af9bbSBram Moolenaar" case-insensitive for built-in pairs. 37166af9bbSBram Moolenaar" 7.3_v7b1: Remove use of setwinvar() function which cannot be 38166af9bbSBram Moolenaar" called in restricted mode (Andy Spencer). Use 39166af9bbSBram Moolenaar" 'fencoding' instead of 'encoding' to determine by 40166af9bbSBram Moolenaar" charset, and make sure the 'fenc' of the generated 41166af9bbSBram Moolenaar" file matches its indicated charset. Add charsets for 42166af9bbSBram Moolenaar" all of Vim's natively supported encodings. 43166af9bbSBram Moolenaar" 7.3_v6 (0d3f0e3d289b): Really fix bug with 'nowrapscan', 'magic' and other 44166af9bbSBram Moolenaar" user settings interfering with diff mode generation, 45166af9bbSBram Moolenaar" trailing whitespace (e.g. line number column) when 46166af9bbSBram Moolenaar" using html_no_pre, and bugs when using 47166af9bbSBram Moolenaar" html_hover_unfold. 48166af9bbSBram Moolenaar" 7.3_v5 ( unreleased ): Fix bug with 'nowrapscan' and also with out-of-sync 49166af9bbSBram Moolenaar" folds in diff mode when first line was folded. 50166af9bbSBram Moolenaar" 7.3_v4 (7e008c174cc3): Bugfixes, especially for xhtml markup, and diff mode. 51166af9bbSBram Moolenaar" 7.3_v3 (a29075150aee): Refactor option handling and make html_use_css 52166af9bbSBram Moolenaar" default to true when not set to anything. Use strict 53166af9bbSBram Moolenaar" doctypes where possible. Rename use_xhtml option to 54166af9bbSBram Moolenaar" html_use_xhtml for consistency. Use .xhtml extension 55166af9bbSBram Moolenaar" when using this option. Add meta tag for settings. 56166af9bbSBram Moolenaar" 7.3_v2 (80229a724a11): Fix syntax highlighting in diff mode to use both the 57166af9bbSBram Moolenaar" diff colors and the normal syntax colors 58166af9bbSBram Moolenaar" 7.3_v1 (e7751177126b): Add conceal support and meta tags in output 59166af9bbSBram Moolenaar" Pre-v1 baseline: Mercurial changeset 3c9324c0800e 60071d4279SBram Moolenaar 617510fe74SBram Moolenaarif exists('g:loaded_2html_plugin') 627510fe74SBram Moolenaar finish 637510fe74SBram Moolenaarendif 64*2a8a3ecbSBram Moolenaarlet g:loaded_2html_plugin = 'vim7.3_v8' 657510fe74SBram Moolenaar 66b02cbe34SBram Moolenaar" Define the :TOhtml command when: 67b02cbe34SBram Moolenaar" - 'compatible' is not set 68b02cbe34SBram Moolenaar" - this plugin was not already loaded 69b02cbe34SBram Moolenaar" - user commands are available. 70071d4279SBram Moolenaarif !&cp && !exists(":TOhtml") && has("user_commands") 71b02cbe34SBram Moolenaar command -range=% TOhtml :call tohtml#Convert2HTML(<line1>, <line2>) 72071d4279SBram Moolenaarendif 73349b2fb0SBram Moolenaar 74349b2fb0SBram Moolenaar" Make sure any patches will probably use consistent indent 757c86f4ccSBram Moolenaar" vim: ts=8 sw=2 sts=2 noet 76