diff options
| author | reptee <[email protected]> | 2025-09-15 12:45:28 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-09-15 12:45:28 +0200 |
| commit | a0cfb3fd31bc3729266cc3a7aaac1416df183445 (patch) | |
| tree | 188945541576851557ac34e3b19c01cd45bd0197 /test | |
| parent | 0ce85b0cfa8e5d3155dddc77b1408b4d7d7890fa (diff) | |
Vimdoc writer (#11132)
Support for vimdoc, documentation format used by vim in its help pages.
Relies heavily on definition lists and precise text alignment to generate tags.
Diffstat (limited to 'test')
| -rw-r--r-- | test/Tests/Old.hs | 18 | ||||
| -rw-r--r-- | test/tables.vimdoc | 65 | ||||
| -rw-r--r-- | test/vimdoc/definition-lists.markdown | 70 | ||||
| -rw-r--r-- | test/vimdoc/definition-lists.vimdoc | 71 | ||||
| -rw-r--r-- | test/vimdoc/headers-numbered.vimdoc | 108 | ||||
| -rw-r--r-- | test/vimdoc/headers.markdown | 45 | ||||
| -rw-r--r-- | test/vimdoc/headers.vimdoc | 94 | ||||
| -rw-r--r-- | test/vimdoc/vim-online-doc.markdown | 42 | ||||
| -rw-r--r-- | test/vimdoc/vim-online-doc.vimdoc | 53 | ||||
| -rw-r--r-- | test/writer.vimdoc | 669 |
10 files changed, 1235 insertions, 0 deletions
diff --git a/test/Tests/Old.hs b/test/Tests/Old.hs index d74fa3d36..2dcccf013 100644 --- a/test/Tests/Old.hs +++ b/test/Tests/Old.hs @@ -257,6 +257,24 @@ tests pandocPath = [ test' "pod" ["-f", "pod", "-t", "native"] "pod-reader.pod" "pod-reader.native" ] + , testGroup "vimdoc" [ testGroup "writer" $ + writerTests' "vimdoc" ++ + [ test' "vimdoc-specific definition lists" + ["-s", "-r", "markdown", "-w", "vimdoc", "--toc", "--columns=78"] + "vimdoc/definition-lists.markdown" "vimdoc/definition-lists.vimdoc" + , test' "linking to docs" + ["-s", "-r", "markdown", "-w", "vimdoc", "--toc", "--columns=78"] + "vimdoc/vim-online-doc.markdown" "vimdoc/vim-online-doc.vimdoc" + , test' "unnumbered TOC up to level 2 headers" + ["-s", "-r", "markdown", "-w", "vimdoc", "--toc", "--columns=78", + "--toc-depth=2"] + "vimdoc/headers.markdown" "vimdoc/headers.vimdoc" + , test' "numbered TOC" + ["-s", "-r", "markdown", "-w", "vimdoc", "--toc", "--columns=78", + "-N"] + "vimdoc/headers.markdown" "vimdoc/headers-numbered.vimdoc" + ] + ] ] where test' = test pandocPath diff --git a/test/tables.vimdoc b/test/tables.vimdoc new file mode 100644 index 000000000..0f0492095 --- /dev/null +++ b/test/tables.vimdoc @@ -0,0 +1,65 @@ +Simple table with caption: + + Right Left Center Default ~ + 12 12 12 12 + 123 123 123 123 + 1 1 1 1 + + Demonstration of simple table syntax. + +Simple table without caption: + + Right Left Center Default ~ + 12 12 12 12 + 123 123 123 123 + 1 1 1 1 + +Simple table indented two spaces: + + Right Left Center Default ~ + 12 12 12 12 + 123 123 123 123 + 1 1 1 1 + + Demonstration of simple table syntax. + +Multiline table with caption: + + Centered Left Right Default aligned + Header Aligned Aligned ~ + + First row 12.0 Example of a row that + spans multiple lines. + + Second row 5.0 Here's another one. + Note the blank line + between rows. + + Here's the caption. It may span multiple lines. + +Multiline table without caption: + + Centered Left Right Default aligned + Header Aligned Aligned ~ + + First row 12.0 Example of a row that + spans multiple lines. + + Second row 5.0 Here's another one. + Note the blank line + between rows. + +Table without column headers: + + 12 12 12 12 + 123 123 123 123 + 1 1 1 1 + +Multiline table without column headers: + + First row 12.0 Example of a row that + spans multiple lines. + + Second row 5.0 Here's another one. + Note the blank line + between rows. diff --git a/test/vimdoc/definition-lists.markdown b/test/vimdoc/definition-lists.markdown new file mode 100644 index 000000000..a075d5125 --- /dev/null +++ b/test/vimdoc/definition-lists.markdown @@ -0,0 +1,70 @@ +--- +vimdoc-prefix: pandoc +abstract: "A short description" +filename: "definition-lists.txt" +author: Author +title: Title +--- + +## Basic + +Term 1 +: Definition I + +Term 2 +: Definition II + +Term 3 +: Definition III + +## Code + +<!-- Source: <https://github.com/ggandor/leap.nvim/blob/c4a215acef90749851d85ddba08bc282867b50eb/doc/leap.txt#L283-L294> --> + +`leap.opts.keys.next_target` +: Jump to the next available target (use the previous search pattern if no input + has been given). `:h leap-repeat` + +`leap.opts.keys.prev_target` +: Jump to the previous target (revert `next_target`). + +`leap.opts.keys.next_group` +: Shift to the next group of labeled targets. + +`leap.opts.keys.prev_group` +: Shift to the previous group of labeled targets (revert `next_group`). + +## Span + +[Important concept]{#important-concept} +: Definition + +[I am too long to fit on the same line as a reference, so reference is put above me!]{#i-am-too-long} +: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. + +## Commands + +In markdown vim commands are represented as inline code starting with colon (ie. +`:MyCommand`), but writer strips the backticks + +`:FnlCompileBuffer`{#:FnlCompileBuffer} + +: Compiles current active fennel buffer + +`:FnlCompile[!]`{#:FnlCompile} + +: Diff compiles all indexed fennel files + If bang! is present then forcefully compiles all `source` files + +`:[range]Fnl {expr}`{#:Fnl} + +: Evaluates {expr} or range + + ``` + :'<,'>Fnl + + :Fnl (print "Hello World") + + :Fnl (values some_var) + ``` diff --git a/test/vimdoc/definition-lists.vimdoc b/test/vimdoc/definition-lists.vimdoc new file mode 100644 index 000000000..3061de6be --- /dev/null +++ b/test/vimdoc/definition-lists.vimdoc @@ -0,0 +1,71 @@ +*definition-lists.txt* A short description + + Title by Author + + + Type |gO| to see the table of contents. + +Basic ........................................................... |pandoc-basic| +Code ............................................................. |pandoc-code| +Span ............................................................. |pandoc-span| +Commands ..................................................... |pandoc-commands| + +------------------------------------------------------------------------------ +Basic *pandoc-basic* + +Term 1 + Definition I +Term 2 + Definition II +Term 3 + Definition III + +------------------------------------------------------------------------------ +Code *pandoc-code* + +`leap.opts.keys.next_target` + Jump to the next available target (use the previous search pattern if no + input has been given). |leap-repeat| +`leap.opts.keys.prev_target` + Jump to the previous target (revert `next_target`). +`leap.opts.keys.next_group` + Shift to the next group of labeled targets. +`leap.opts.keys.prev_group` + Shift to the previous group of labeled targets (revert `next_group`). + +------------------------------------------------------------------------------ +Span *pandoc-span* + +Important concept *pandoc-important-concept* + Definition + *pandoc-i-am-too-long* +I am too long to fit on the same line as a reference, so reference is put +above me! + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. + +------------------------------------------------------------------------------ +Commands *pandoc-commands* + +In markdown vim commands are represented as inline code starting with colon +(ie. `:MyCommand`), but writer strips the backticks + +:FnlCompileBuffer *:FnlCompileBuffer* + Compiles current active fennel buffer + +:FnlCompile[!] *:FnlCompile* + Diff compiles all indexed fennel files If bang! is present then forcefully + compiles all `source` files + +:[range]Fnl {expr} *:Fnl* + Evaluates {expr} or range + + > + :'<,'>Fnl + + :Fnl (print "Hello World") + + :Fnl (values some_var) +< + + vim:tw=78:sw=4:ts=4:ft=help:norl:et: diff --git a/test/vimdoc/headers-numbered.vimdoc b/test/vimdoc/headers-numbered.vimdoc new file mode 100644 index 000000000..4bbb48107 --- /dev/null +++ b/test/vimdoc/headers-numbered.vimdoc @@ -0,0 +1,108 @@ + Type |gO| to see the table of contents. + +1. unremarkable header 1 ............................... |unremarkable-header-1| + 1.1 unremarkable header 2 ............................ |unremarkable-header-2| + 1.1.1 unremarkable header 3 ...................... |unremarkable-header-3| + 1.1.2 unremarkable header 3 .................... |unremarkable-header-3-1| + unremarkable header 2 .............................. |unremarkable-header-2-1| + unremarkable header 3 ............................ |unremarkable-header-3-2| + unremarkable header 3 ............................ |unremarkable-header-3-3| +2. bold italic underline strikethrough ............................... |short11| + 2.1 superscript2 subscript3 ........................................ |short21| + 2.1.1 smallcaps code inline math display math .................. |short31| + 2.1.2 link image ............................................... |short32| +3. Long header 1 long header 1 long header 1 long header 1 long heade... |long1| + 3.1 Long header 2 long header 2 long header 2 long header 2 long h... |long21| + 3.1.1 Long header 3 long header 3 long header 3 long header 3.... |long31| + 3.1.2 Long header 3 long header 3 long header 3 long header 3.... |long32| + 3.2 Long header 2 long header 2 long header 2 long header 2 long h... |long22| + 3.2.1 Long header 3 long header 3 long header 3 long header 3.... |long33| + 3.2.2 Long header 3 long header 3 long header 3 long header 3.... |long34| +4. ... |long-header-1-long-header-1-long-header-1-long-header-1-long-header-1-long-header-1-long-header-1| + 4.1 ... |long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2| + 4.1.1 ... |long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3| + 4.1.2 ... |long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-1| + 4.2 ... |long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-1| + 4.2.1 ... |long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-2| + 4.2.2 ... |long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-3| + + +Headers with a short title and implicit ref. Last 3 headers are unnumbered. + +============================================================================== +unremarkable header 1 *unremarkable-header-1* + +------------------------------------------------------------------------------ +unremarkable header 2 *unremarkable-header-2* + +UNREMARKABLE HEADER 3 *unremarkable-header-3* + +UNREMARKABLE HEADER 3 *unremarkable-header-3-1* + +------------------------------------------------------------------------------ +unremarkable header 2 *unremarkable-header-2-1* + +UNREMARKABLE HEADER 3 *unremarkable-header-3-2* + +UNREMARKABLE HEADER 3 *unremarkable-header-3-3* + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +Headers with various inline elements + +============================================================================== +bold italic underline strikethrough *short11* + +------------------------------------------------------------------------------ +superscript2 subscript3 *short21* + +SMALLCAPS `code` `$inline math$` `$display math$` *short31* + +LINK example.com *short32* + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +Headers with a long name and explicit short ref + +============================================================================== +Long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 *long1* + +------------------------------------------------------------------------------ +Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 *long21* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long31* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long32* + +------------------------------------------------------------------------------ +Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 *long22* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long33* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long34* + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +Headers with a long name and implicit ref. + +Since implicit ref is very lengthy, there is no way to fit it. Therefore title +is not rendered and the references exceed the columns (textwidth) limit + +============================================================================== +Long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 *long-header-1-long-header-1-long-header-1-long-header-1-long-header-1-long-header-1-long-header-1* + +------------------------------------------------------------------------------ +Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 *long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-1* + +------------------------------------------------------------------------------ +Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 *long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-1* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-2* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-3* + + vim:tw=78:sw=4:ts=4:ft=help:norl:et: diff --git a/test/vimdoc/headers.markdown b/test/vimdoc/headers.markdown new file mode 100644 index 000000000..fa285c8b1 --- /dev/null +++ b/test/vimdoc/headers.markdown @@ -0,0 +1,45 @@ +Headers with a short title and implicit ref. Last 3 headers are unnumbered. + +# unremarkable header 1 +## unremarkable header 2 +### unremarkable header 3 +### unremarkable header 3 +## unremarkable header 2 {.unnumbered} +### unremarkable header 3 {.unnumbered} +### unremarkable header 3 {.unnumbered} + +--- + +Headers with various inline elements + +# **bold** *italic* [underline]{.underline} ~strikethrough~ {#short11} +## superscript^2^ subscript~3~ {#short21} +### [smallcaps]{.smallcaps} `code` $inline math$ $$display math$$ {#short31} +### [link](example.com)  {#short32} + +--- + +Headers with a long name and explicit short ref + +# Long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 {#long1} +## Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 {#long21} +### Long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 {#long31} +### Long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 {#long32} +## Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 {#long22} +### Long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 {#long33} +### Long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 {#long34} + +--- + +Headers with a long name and implicit ref. + +Since implicit ref is very lengthy, there is no way to fit it. Therefore title +is not rendered and the references exceed the columns (textwidth) limit + +# Long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 +## Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 +### Long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 +### Long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 +## Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 +### Long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 +### Long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 long header 3 diff --git a/test/vimdoc/headers.vimdoc b/test/vimdoc/headers.vimdoc new file mode 100644 index 000000000..a73e69770 --- /dev/null +++ b/test/vimdoc/headers.vimdoc @@ -0,0 +1,94 @@ + Type |gO| to see the table of contents. + +unremarkable header 1 .................................. |unremarkable-header-1| + unremarkable header 2 ................................ |unremarkable-header-2| + unremarkable header 2 .............................. |unremarkable-header-2-1| +bold italic underline strikethrough .................................. |short11| + superscript2 subscript3 ............................................ |short21| +Long header 1 long header 1 long header 1 long header 1 long header 1... |long1| + Long header 2 long header 2 long header 2 long header 2 long heade... |long21| + Long header 2 long header 2 long header 2 long header 2 long heade... |long22| +... |long-header-1-long-header-1-long-header-1-long-header-1-long-header-1-long-header-1-long-header-1| + ... |long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2| + ... |long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-1| + + +Headers with a short title and implicit ref. Last 3 headers are unnumbered. + +============================================================================== +unremarkable header 1 *unremarkable-header-1* + +------------------------------------------------------------------------------ +unremarkable header 2 *unremarkable-header-2* + +UNREMARKABLE HEADER 3 *unremarkable-header-3* + +UNREMARKABLE HEADER 3 *unremarkable-header-3-1* + +------------------------------------------------------------------------------ +unremarkable header 2 *unremarkable-header-2-1* + +UNREMARKABLE HEADER 3 *unremarkable-header-3-2* + +UNREMARKABLE HEADER 3 *unremarkable-header-3-3* + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +Headers with various inline elements + +============================================================================== +bold italic underline strikethrough *short11* + +------------------------------------------------------------------------------ +superscript2 subscript3 *short21* + +SMALLCAPS `code` `$inline math$` `$display math$` *short31* + +LINK example.com *short32* + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +Headers with a long name and explicit short ref + +============================================================================== +Long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 *long1* + +------------------------------------------------------------------------------ +Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 *long21* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long31* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long32* + +------------------------------------------------------------------------------ +Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 *long22* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long33* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long34* + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +Headers with a long name and implicit ref. + +Since implicit ref is very lengthy, there is no way to fit it. Therefore title +is not rendered and the references exceed the columns (textwidth) limit + +============================================================================== +Long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 long header 1 *long-header-1-long-header-1-long-header-1-long-header-1-long-header-1-long-header-1-long-header-1* + +------------------------------------------------------------------------------ +Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 *long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-1* + +------------------------------------------------------------------------------ +Long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 long header 2 *long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-long-header-2-1* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-2* + +LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 LONG HEADER 3 *long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-long-header-3-3* + + vim:tw=78:sw=4:ts=4:ft=help:norl:et: diff --git a/test/vimdoc/vim-online-doc.markdown b/test/vimdoc/vim-online-doc.markdown new file mode 100644 index 000000000..ecc80b400 --- /dev/null +++ b/test/vimdoc/vim-online-doc.markdown @@ -0,0 +1,42 @@ +# Online vim documentation + +While vim documentation can be accessed with `:help`, it may be beneficial to +link to the websites inside readme/markdown docs. Two most common websites are: + +- <https://vimhelp.org/> and +- <https://neovim.io/doc/user> + +Also it is not uncommon to reference documentation as `:h <topic>` + +## Links to vimhelp.org {#vimhelp-links} + +For introduction to writing help files see +<https://vimhelp.org/helphelp.txt.html#help-writing> + +Named link: [vimhelp link](https://vimhelp.org/helphelp.txt.html#help-writing) + +## Links to neo.vimhelp.org {#neo-vimhelp-links} + +For introduction to writing help files see +<https://neo.vimhelp.org/helphelp.txt.html#help-writing> + +Named link: [vimhelp link](https://neo.vimhelp.org/helphelp.txt.html#help-writing) + +## Links to neovim.io {#neovim-io-links} + +For introduction to writing help files see +<https://neovim.io/doc/user/helphelp.html#help-writing> + +Named link: [neovim.io link](https://neovim.io/doc/user/helphelp.html#help-writing) + +You can also reference whole files with topic omitted: +<https://neovim.io/doc/user/vim_diff.html> + +## :h-style documentation {#colon-h-docs} + +For introduction to writing help files see +`:h help-writing` + +Long name for `:help` is also supported: `:help help-writing` + +This is malformed: `:help help-writing `, but this is not: `:help help-writing` diff --git a/test/vimdoc/vim-online-doc.vimdoc b/test/vimdoc/vim-online-doc.vimdoc new file mode 100644 index 000000000..179454f91 --- /dev/null +++ b/test/vimdoc/vim-online-doc.vimdoc @@ -0,0 +1,53 @@ + Type |gO| to see the table of contents. + +Online vim documentation ............................ |online-vim-documentation| + Links to vimhelp.org ......................................... |vimhelp-links| + Links to neo.vimhelp.org ................................. |neo-vimhelp-links| + Links to neovim.io ......................................... |neovim-io-links| + :h-style documentation ........................................ |colon-h-docs| + +============================================================================== +Online vim documentation *online-vim-documentation* + +While vim documentation can be accessed with `:help`, it may be beneficial to +link to the websites inside readme/markdown docs. Two most common websites +are: + +- https://vimhelp.org/ and +- https://neovim.io/doc/user + +Also it is not uncommon to reference documentation as |<topic>| + +------------------------------------------------------------------------------ +Links to vimhelp.org *vimhelp-links* + +For introduction to writing help files see |help-writing| + +Named link: vimhelp link |help-writing| + +------------------------------------------------------------------------------ +Links to neo.vimhelp.org *neo-vimhelp-links* + +For introduction to writing help files see |help-writing| + +Named link: vimhelp link |help-writing| + +------------------------------------------------------------------------------ +Links to neovim.io *neovim-io-links* + +For introduction to writing help files see |help-writing| + +Named link: neovim.io link |help-writing| + +You can also reference whole files with topic omitted: |vim_diff.txt| + +------------------------------------------------------------------------------ +:h-style documentation *colon-h-docs* + +For introduction to writing help files see |help-writing| + +Long name for `:help` is also supported: |help-writing| + +This is malformed: |help-writing|, but this is not: |help-writing| + + vim:tw=78:sw=4:ts=4:ft=help:norl:et: diff --git a/test/writer.vimdoc b/test/writer.vimdoc new file mode 100644 index 000000000..daacdae02 --- /dev/null +++ b/test/writer.vimdoc @@ -0,0 +1,669 @@ + Pandoc Test Suite by John MacFarlane, Anonymous + + + Type |gO| to see the table of contents. + + +This is a set of tests for pandoc. Most of them are adapted from John Gruber's +markdown test suite. + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Headers *headers* + +-------------------------------------------------------------------------------- +Level 2 with an embedded link /url *level-2-with-an-embedded-link* + +LEVEL 3 WITH EMPHASIS *level-3-with-emphasis* + +Level 4 *level-4* + +Level 5 *level-5* + +================================================================================ +Level 1 *level-1* + +-------------------------------------------------------------------------------- +Level 2 with emphasis *level-2-with-emphasis* + +LEVEL 3 *level-3* + +with no blank line + +-------------------------------------------------------------------------------- +Level 2 *level-2* + +with no blank line + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Paragraphs *paragraphs* + +Here's a regular paragraph. + +In Markdown 1.0.0 and earlier. Version 8. This line turns into a list item. +Because a hard-wrapped line in the middle of a paragraph looked like a list +item. + +Here's one with a bullet. * criminey. + +There should be a hard line break +here. + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Block Quotes *block-quotes* + +E-mail style: + + This is a block quote. It is pretty short. + + Code in a block quote: + + > + sub status { + print "working"; + } +< + A list: + + 1. item one + 2. item two + + Nested block quotes: + + nested + + nested + +This should not be a block quote: 2 > 1. + +And a following paragraph. + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Code Blocks *code-blocks* + +Code: + +> + ---- (should be four hyphens) + + sub status { + print "working"; + } + + this code block is indented by one tab +< +And: + +> + this code block is indented by two tabs + + These should not be escaped: \$ \\ \> \[ \{ +< + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Lists *lists* + +-------------------------------------------------------------------------------- +Unordered *unordered* + +Asterisks tight: + +- asterisk 1 +- asterisk 2 +- asterisk 3 + +Asterisks loose: + +- asterisk 1 + +- asterisk 2 + +- asterisk 3 + +Pluses tight: + +- Plus 1 +- Plus 2 +- Plus 3 + +Pluses loose: + +- Plus 1 + +- Plus 2 + +- Plus 3 + +Minuses tight: + +- Minus 1 +- Minus 2 +- Minus 3 + +Minuses loose: + +- Minus 1 + +- Minus 2 + +- Minus 3 + +-------------------------------------------------------------------------------- +Ordered *ordered* + +Tight: + +1. First +2. Second +3. Third + +and: + +1. One +2. Two +3. Three + +Loose using tabs: + +1. First + +2. Second + +3. Third + +and using spaces: + +1. One + +2. Two + +3. Three + +Multiple paragraphs: + +1. Item 1, graf one. + + Item 1. graf two. The quick brown fox jumped over the lazy dog's back. + +2. Item 2. + +3. Item 3. + +-------------------------------------------------------------------------------- +Nested *nested* + +- Tab + - Tab + - Tab + +Here's another: + +1. First +2. Second: + - Fee + - Fie + - Foe +3. Third + +Same thing but with paragraphs: + +1. First + +2. Second: + + - Fee + - Fie + - Foe + +3. Third + +-------------------------------------------------------------------------------- +Tabs and spaces *tabs-and-spaces* + +- this is a list item indented with tabs + +- this is a list item indented with spaces + + - this is an example list item indented with tabs + + - this is an example list item indented with spaces + +-------------------------------------------------------------------------------- +Fancy list markers *fancy-list-markers* + +(2) begins with 2 + +(3) and now 3 + + with a continuation + + iv. sublist with roman numerals, starting with 4 + v. more items + (A) a subsublist + (B) a subsublist + +Nesting: + +A. Upper Alpha + I. Upper Roman. + (6) Decimal start with 6 + c) Lower alpha with paren + +Autonumbering: + +1. Autonumber. +2. More. + 1. Nested. + +Should not be a list item: + +M.A. 2007 + +B. Williams + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Definition Lists *definition-lists* + +Tight using spaces: + +apple + red fruit +orange + orange fruit +banana + yellow fruit + +Tight using tabs: + +apple + red fruit +orange + orange fruit +banana + yellow fruit + +Loose: + +apple + red fruit + +orange + orange fruit + +banana + yellow fruit + +Multiple blocks with italics: + +apple + red fruit + + contains seeds, crisp, pleasant to taste + +orange + orange fruit + + > + { orange code block } +< + orange block quote + +Multiple definitions, tight: + +apple + red fruit + computer +orange + orange fruit + bank + +Multiple definitions, loose: + +apple + red fruit + + computer + +orange + orange fruit + + bank + +Blank line after term, indented marker, alternate markers: + +apple + red fruit + + computer + +orange + orange fruit + + 1. sublist + 2. sublist + +================================================================================ +HTML Blocks *html-blocks* + +Simple block on one line: + +foo +And nested without indentation: + +foo + +bar +Interpreted markdown in a table: + +This is emphasized +And this is strong +Here's a simple block: + +foo + +This should be a code block, though: + +> + <div> + foo + </div> +< +As should this: + +> + <div>foo</div> +< +Now, nested: + +foo +This should just be an HTML comment: + +Multiline: + +Code block: + +> + <!-- Comment --> +< +Just plain comment, with trailing spaces on the line: + +Code: + +> + <hr /> +< +Hr's: + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Inline Markup *inline-markup* + +This is emphasized, and so is this. + +This is strong, and so is this. + +An emphasized link /url. + +This is strong and em. + +So is this word. + +This is strong and em. + +So is this word. + +This is code: `>`, `$`, `\`, `\$`, `<html>`. + +This is strikeout. + +Superscripts: abcd ahello ahello there. + +Subscripts: H2O, H23O, Hmany of themO. + +These should not be superscripts or subscripts, because of the unescaped spaces: +a^b c^d, a~b c~d. + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Smart quotes, ellipses, dashes *smart-quotes-ellipses-dashes* + +"Hello," said the spider. "'Shelob' is my name." + +'A', 'B', and 'C' are letters. + +'Oak,' 'elm,' and 'beech' are names of trees. So is 'pine.' + +'He said, "I want to go."' Were you alive in the 70's? + +Here is some quoted '`code`' and a "quoted link +http://example.com/?foo=1&bar=2". + +Some dashes: one---two --- three---four --- five. + +Dashes between numbers: 5--7, 255--66, 1987--1999. + +Ellipses...and...and.... + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +LaTeX *latex* + +- +- `$2+2=4$` +- `$x \in y$` +- `$\alpha \wedge \omega$` +- `$223$` +- `$p$`-Tree +- Here's some display math: + `$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$` +- Here's one that has a line break in it: `$\alpha + \omega \times x^2$`. + +These shouldn't be math: + +- To get the famous equation, write `$e = mc^2$`. +- $22,000 is a lot of money. So is $34,000. (It worked if "lot" is emphasized.) +- Shoes ($20) and socks ($5). +- Escaped `$`: $73 this should be emphasized 23$. + +Here's a LaTeX table: + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Special Characters *special-characters* + +Here is some unicode: + +- I hat: Î +- o umlaut: ö +- section: § +- set membership: ∈ +- copyright: © + +AT&T has an ampersand in their name. + +AT&T is another way to write it. + +This & that. + +4 < 5. + +6 > 5. + +Backslash: \ + +Backtick: ` + +Asterisk: * + +Underscore: _ + +Left brace: { + +Right brace: } + +Left bracket: [ + +Right bracket: ] + +Left paren: ( + +Right paren: ) + +Greater-than: > + +Hash: # + +Period: . + +Bang: ! + +Plus: + + +Minus: - + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Links *links* + +-------------------------------------------------------------------------------- +Explicit *explicit* + +Just a URL /url/. + +URL and title /url/. + +URL and title /url/. + +URL and title /url/. + +URL and title /url/ + +URL and title /url/ + +with_underscore /url/with_underscore + +Email link [email protected] + +Empty . + +-------------------------------------------------------------------------------- +Reference *reference* + +Foo bar /url/. + +With embedded [brackets] /url/. + +b /url/ by itself should be a link. + +Indented once /url. + +Indented twice /url. + +Indented thrice /url. + +This should [not][] be a link. + +> + [not]: /url +< +Foo bar /url/. + +Foo biz /url/. + +-------------------------------------------------------------------------------- +With ampersands *with-ampersands* + +Here's a link with an ampersand in the URL http://example.com/?foo=1&bar=2. + +Here's a link with an amersand in the link text: AT&T http://att.com/. + +Here's an inline link /script?foo=1&bar=2. + +Here's an inline link in pointy braces /script?foo=1&bar=2. + +-------------------------------------------------------------------------------- +Autolinks *autolinks* + +With an ampersand: http://example.com/?foo=1&bar=2 + +- In a list? +- http://example.com/ +- It should. + +An e-mail address: [email protected] + + Blockquoted: http://example.com/ + +Auto-links should not occur here: `<http://example.com/>` + +> + or here: <http://example.com/> +< + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Images *images* + +From "Voyage dans la Lune" by Georges Melies (1902): + +Here is a movie icon. + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + +================================================================================ +Footnotes *footnotes* + +Here is a footnote reference, |footnote1| and another. |footnote2| This should +not be a footnote reference, because it contains a space.[^my note] Here is an +inline note. |footnote3| + + Notes can go in quotes. |footnote4| + +1. And in list items. |footnote5| + +This paragraph should not be part of the note, as it is not indented. + + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + + *footnote1* +Here is the footnote. It can go anywhere after the footnote reference. It need +not be placed at the end of the document. + + *footnote2* +Here's the long note. This one contains multiple blocks. + +Subsequent blocks are indented to show that they belong to the footnote (as with +list items). + +> + { <code> } +< +If you want, you can indent every line, but you can also be lazy and just indent +the first line of each block. + + *footnote3* +This is easier to type. Inline notes may contain links http://google.com and `]` +verbatim characters, as well as [bracketed text]. + + *footnote4* +In quote. + + *footnote5* +In list. + + vim:tw=80:sw=4:ts=4:ft=help:norl:et: |
