xref: /vim-8.2.3635/runtime/plugin/tohtml.vim (revision 2a8a3ecb)
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