blob: 3c7d7750b43f701d601feff91dc5021e6e68b13d [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim plugin for converting a syntax highlighted file to HTML.
Bram Moolenaar349b2fb2010-07-16 20:35:36 +02002" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
Bram Moolenaar251e1912011-06-19 05:09:16 +02003" Last Change: 2011 May 26
Bram Moolenaarb02cbe32010-07-11 22:38:52 +02004"
Bram Moolenaar349b2fb2010-07-16 20:35:36 +02005" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
6" $VIMRUNTIME/syntax/2html.vim
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +02007"
8" TODO:
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +02009" * 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
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +010018" * Explicitly trigger IE8+ Standards Mode?
19" * Make it so deleted lines in a diff don't create side-scrolling
Bram Moolenaar8df7f882010-08-13 11:30:02 +020020" * Restore open/closed folds and cursor position after processing each file
21" with option not to restore for speed increase
Bram Moolenaar2a8a3ec2011-01-08 16:06:37 +010022" * 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
Bram Moolenaar8df7f882010-08-13 11:30:02 +020025" * Implementation detail: add threshold for writing the lines to the html
26" buffer before we're done (5000 or so lines should do it)
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +020027" * TODO comments for code cleanup scattered throughout
Bram Moolenaar166af9b2010-11-16 20:34:40 +010028"
Bram Moolenaar071d4272004-06-13 20:20:40 +000029
Bram Moolenaar7510fe72010-07-25 12:46:44 +020030if exists('g:loaded_2html_plugin')
31 finish
32endif
Bram Moolenaar251e1912011-06-19 05:09:16 +020033let 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
Bram Moolenaar7510fe72010-07-25 12:46:44 +020084
Bram Moolenaarb02cbe32010-07-11 22:38:52 +020085" Define the :TOhtml command when:
86" - 'compatible' is not set
87" - this plugin was not already loaded
88" - user commands are available.
Bram Moolenaar071d4272004-06-13 20:20:40 +000089if !&cp && !exists(":TOhtml") && has("user_commands")
Bram Moolenaarb02cbe32010-07-11 22:38:52 +020090 command -range=% TOhtml :call tohtml#Convert2HTML(<line1>, <line2>)
Bram Moolenaar071d4272004-06-13 20:20:40 +000091endif
Bram Moolenaar349b2fb2010-07-16 20:35:36 +020092
93" Make sure any patches will probably use consistent indent
Bram Moolenaar7c86f4c2010-07-18 14:07:22 +020094" vim: ts=8 sw=2 sts=2 noet