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