xref: /vim-8.2.3635/runtime/plugin/tohtml.vim (revision 166af9bb)
1" Vim plugin for converting a syntax highlighted file to HTML.
2" Maintainer: Ben Fritz <[email protected]>
3" Last Change: 2010 Oct 28
4"
5" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
6" $VIMRUNTIME/syntax/2html.vim
7"
8" TODO:
9"   * Patch to leave tab characters in when noexpandtab set (Andy Spencer)
10"   * Make folds show up when using a range and dynamic folding
11"   * Remove fold column when there are no folds and using dynamic folding
12"   * Restore open/closed folds and cursor position after processing each file
13"     with option not to restore for speed increase
14"   * Add extra meta info (generation time, etc.)
15"   * Tidy up so we can use strict doctype in even more situations?
16"   * Implementation detail: add threshold for writing the lines to the html
17"     buffer before we're done (5000 or so lines should do it)
18"   * TODO comments for code cleanup scattered throughout
19"
20"
21" Changelog:
22"   7.3_v7 (this version): see betas released on vim_dev below:
23"                7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way.
24"                7.3_v7b2: Remove automatic detection of encodings that are not
25"                          supported by all major browsers according to
26"                          http://wiki.whatwg.org/wiki/Web_Encodings and convert
27"                          to UTF-8 for all Unicode encodings. Make HTML
28"                          encoding to Vim encoding detection be
29"                          case-insensitive for built-in pairs.
30"                7.3_v7b1: Remove use of setwinvar() function which cannot be
31"                          called in restricted mode (Andy Spencer). Use
32"                          'fencoding' instead of 'encoding' to determine by
33"                          charset, and make sure the 'fenc' of the generated
34"                          file matches its indicated charset. Add charsets for
35"                          all of Vim's natively supported encodings.
36"   7.3_v6 (0d3f0e3d289b): Really fix bug with 'nowrapscan', 'magic' and other
37"                          user settings interfering with diff mode generation,
38"                          trailing whitespace (e.g. line number column) when
39"                          using html_no_pre, and bugs when using
40"                          html_hover_unfold.
41"   7.3_v5 ( unreleased ): Fix bug with 'nowrapscan' and also with out-of-sync
42"                          folds in diff mode when first line was folded.
43"   7.3_v4 (7e008c174cc3): Bugfixes, especially for xhtml markup, and diff mode.
44"   7.3_v3 (a29075150aee): Refactor option handling and make html_use_css
45"                          default to true when not set to anything. Use strict
46"                          doctypes where possible. Rename use_xhtml option to
47"                          html_use_xhtml for consistency. Use .xhtml extension
48"                          when using this option. Add meta tag for settings.
49"   7.3_v2 (80229a724a11): Fix syntax highlighting in diff mode to use both the
50"                          diff colors and the normal syntax colors
51"   7.3_v1 (e7751177126b): Add conceal support and meta tags in output
52"   Pre-v1 baseline: Mercurial changeset 3c9324c0800e
53
54if exists('g:loaded_2html_plugin')
55  finish
56endif
57let g:loaded_2html_plugin = 'vim7.3_v7'
58
59" Define the :TOhtml command when:
60" - 'compatible' is not set
61" - this plugin was not already loaded
62" - user commands are available.
63if !&cp && !exists(":TOhtml") && has("user_commands")
64  command -range=% TOhtml :call tohtml#Convert2HTML(<line1>, <line2>)
65endif
66
67" Make sure any patches will probably use consistent indent
68"   vim: ts=8 sw=2 sts=2 noet
69