aboutsummaryrefslogtreecommitdiff
path: root/scripts/gen_help_html.lua
Commit message (Collapse)AuthorAge
* docs: miscdundargoc2024-10-23
| | | | | | | Co-authored-by: David Pedersen <limero@me.com> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: Leo Schlosser <Leo.Schlosser@Student.HTW-Berlin.de> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* feat(vim.validate): improve fast form and deprecate spec formLewis Russell2024-10-21
| | | | | | | | | | | | | | Problem: `vim.validate()` takes two forms when it only needs one. Solution: - Teach the fast form all the features of the spec form. - Deprecate the spec form. - General optimizations for both forms. - Add a `message` argument which can be used alongside or in place of the `optional` argument.
* fix(gen_help_html): first tag in h2 is broken #30720Justin M. Keyes2024-10-08
| | | | | | | | | | | | | | | Problem: In h2 headings, the first tag points to an invalid anchor. This used to work but regressed a few months ago, possibly related to ceea6898a8bdcb6c4cfe06b8dc4739c144e6b1f8. Solution: - Simplify the logic, don't try to be clever: - Always use to_heading_tag() for the h2 `id`. - Also: - Render tags as `<span>`, because `<code>` is unnecessary and doesn't look great in headings. - In the main h1, use "foo.txt" as the anchor `name` (rarely used), prefer the next found tag for the `href`.
* docs(gen_help_html.lua): h4 pseudo-heading layoutJustin M. Keyes2024-10-01
| | | | | | | | | | | | | | | Problem: The <br> hack in a0c64fe816f8 causes weird layout if a "h4 pseudo-heading" is not the only tag on the line. For example in the help text below, the "*'buflisted'*" tag was treated as h4 and followed by <br>, which is obviously wrong: *'buflisted'* *'bl'* *'nobuflisted'* *'nobl'* *E85* 'buflisted' 'bl' boolean (default on) Solution: Only treat a tag as "h4 pseudo-heading" if it is the only tag in the line. This is fragile, but in practice seems to get the right balance.
* docs(gen_help_html.lua): h4 pseudo-heading layout #30609Justin M. Keyes2024-10-01
| | | | | | | | | Problem: The right-aligned tag "pseudo-heading" layout mushes together with the left-aligned text. This is especially messy in a narrow viewport. Solution: Put a `<br>` on it. This is a hack until tree-sitter-vimdoc recognizes these pseudo-headings.
* docs: graduate editorconfig.txt to "flow layout"Justin M. Keyes2024-09-30
| | | | fix #25401
* fix(treesitter): suppress get_parser warnings via opts.errorRiley Bruins2024-09-28
|
* docs: graduate tui.txt to "flow layout" #30413Justin M. Keyes2024-09-18
|
* docs(tui): rename term.txt, nvim_terminal_emulator.txt #30398Justin M. Keyes2024-09-18
| | | | | | | | | | | | Problem: It has long been a convention that references to the builtin terminal UI should mention "tui", not "term", in order to avoid ambiguity vs the builtin `:terminal` feature. The final step was to rename term.txt; let's that step. Solution: - rename term.txt => tui.txt - rename nvim_terminal_emulator.txt => terminal.txt - `gen_help_html.lua`: generate redirects for renamed pages.
* feat(treesitter): start moving get_parser to return nil #30313Riley Bruins2024-09-13
| | | | | | | | | | | | | | | | | | | **Problem:** `vim.treesitter.get_parser` will throw an error if no parser can be found. - This means the caller is responsible for wrapping it in a `pcall`, which is easy to forget - It also makes it slightly harder to potentially memoize `get_parser` in the future - It's a bit unintuitive since many other `get_*` style functions conventionally return `nil` if no object is found (e.g. `get_node`, `get_lang`, `query.get`, etc.) **Solution:** Return `nil` if no parser can be found or created - This requires a function signature change, and some new assertions in places where the parser will always (or should always) be found. - This commit starts by making this change internally, since it is breaking. Eventually it will be rolled out to the public API.
* docs(gen_help_html): wrap headings for narrow viewport #29903Rosen Stoyanov2024-08-20
| | | | | | | | Problem: The headings and help tags overlap when browsing the docs in neovim.io/doc/user/ from a mobile phone. Solution: Apply the correct CSS rules so that the headings and help tags wrap nicely below one another.
* fix(lua): change some vim.fn.expand() to vim.fs.normalize() (#29583)zeertzjq2024-07-09
| | | Unlike vim.fn.expand(), vim.fs.normalize() doesn't expand wildcards.
* fix(gen_help_html): handle delimiter, heading #29415Justin M. Keyes2024-06-19
| | | | | | | | | | Problem: vimdoc grammar added new forms that are not handled in our HTML generator. https://github.com/neovim/tree-sitter-vimdoc/pull/134 Solution: Update `gen_help_html.lua`. Fixes #29277
* refactor: fix luals type warningsdundargoc2024-05-27
|
* test(lintdoc): check that input list is same length as output list (#28976)dundargoc2024-05-25
|
* docs: extract health to its own filedundargoc2024-05-24
|
* build(docs): update CSS #28896Saien Govender2024-05-23
| | | | | | | | | | Problem: Not using minified version of bootstrap. Don't need to load normalize with new version of bootstrap. See https://github.com/neovim/neovim.github.io/pull/350 Solution: Update link to bootstrap file. Remove link to normalize.
* docs: move vim.health documentation to lua.txtdundargoc2024-05-22
| | | | | | `vim.health` is not a "plugin" but part of our Lua API and the documentation should reflect that. This also helps make the documentation maintenance easier as it is now generated.
* docs(gen_help_html.lua): handle modeline and note nodesJongwook Choi2024-05-17
| | | | | | | | | | | | | | Problem: 'modeline' and 'note' are unhandled in the online HTML documentation. Some (not all) modelines are parsed by the vimdoc parser as a node of type 'modeline'. Solution: - Ignore 'modeline' in HTML rendering. - Render 'note' text in boldface.
* docs: news #28773Justin M. Keyes2024-05-16
|
* docs: nvim.appdata.xml, set faq to "flow" layout #28769Justin M. Keyes2024-05-16
|
* docs(gen_help_html.lua): fix broken pre text, and handle linewrapJongwook Choi2024-05-16
| | | | | | | | | | | | | | | | | | | | | Problem: - Since #28678, pre-formatted text in the online documentation do not render whitespaces correctly: should be pre-like text, but shown like normal paragraph (see #28754). - Code blocks with long lines should not be wrapped (e.g. see |dev-vimpatch-list-management|). Solution: - Use `white-space: pre-wrap`. Compared to `white-space: pre`, this option will make long lines including a very long URL wrapped. This properly fixes #28754 and #28678. - Use horizontal scrollbar for the code blocks that are horizontally too long, instead of wrapping text. This will make the code easy to read while the pre-text block not interfering with the navigation bar.
* docs: newsJustin M. Keyes2024-05-15
| | | | Set dev_xx.txt help files to use "flow" layout.
* docs(gen_help_html.lua): wrap legacy help at word-boundary #28678gusain712024-05-14
| | | | | | | | | | | Problem: On the page: https://neovim.io/doc/user/dev_vimpatch.html The links extend beyond the container and thus end up behind the navigation to the right. Solution: Add these lines to get_help_html.lua: white-space: normal; word-wrap: break-word;
* docs: format vim_diff.txt for "flow" layout #28584Justin M. Keyes2024-04-30
|
* docs: improve/add documentation of Lua typesLewis Russell2024-03-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added `@inlinedoc` so single use Lua types can be inlined into the functions docs. E.g. ```lua --- @class myopts --- @inlinedoc --- --- Documentation for some field --- @field somefield integer --- @param opts myOpts function foo(opts) end ``` Will be rendered as ``` foo(opts) Parameters: - {opts} (table) Object with the fields: - somefield (integer) Documentation for some field ``` - Marked many classes with with `@nodoc` or `(private)`. We can eventually introduce these when we want to.
* fix(gen_help_html): type warnings, spell_ignore_files #27254Jongwook Choi2024-01-29
| | | | | - Add type annotations, fix most of the type warnings. - Fix a minor bug on `spell_ignore_files`: nil error when an invalid spelling is found but the file is not ignored.
* docs: enforce "treesitter" spelling #27110Jongwook Choi2024-01-28
| | | It's the "tree-sitter" project, but "treesitter" in our code and docs.
* build(docs): separate lint job to validate vimdoc #27227Jongwook Choi2024-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Separate the lint job (`make lintdoc`) to validate runtime/doc, it is no longer as a part of functionaltest (help_spec). Build (cmake) and CI: - `make lintdoc`: validate vimdoc files and test-generate HTML docs. CI will run this as a part of the "docs" workflow. - `scripts/lintdoc.lua` is added as an entry point (executable script) for validating vimdoc files. scripts/gen_help_html.lua: - Move the tests for validating docs and generating HTMLs from `help_spec.lua` to `gen_help_html`. Added: - `gen_help_html.run_validate()`. - `gen_help_html.test_gen()`. - Do not hard-code `help_dir` to `build/runtime/doc`, but resolve from `$VIMRUNTIME`. Therefore, the `make lintdoc` job will check doc files on `./runtime/doc`, not on `./build/runtime/doc`. - Add type annotations for gen_help_html.
* fix(lua): return after assert returns assert message (#27064)altermo2024-01-17
|
* docs: convert BACKERS.md to backers.txtdundargoc2023-12-28
| | | | | | There is no reason for this file to be in project root, which is crowded as is. This also fits nicely part of the ongoing work towards gathering as much of the documentation as possible into one place.
* docs: add wiki FAQ to the runtime documentation (#26539)dundargoc2023-12-13
| | | | | | Problem: Wiki contents are not discoverable and hard to maintain. Solution: Move FAQ to runtime docs. Co-authored-by: Christian Clason <c.clason@uni-graz.at>
* build: enable lintlua for scripts/ dir #26391Justin M. Keyes2023-12-04
| | | | | | | | | | | Problem: We don't enable stylua for many Lua scripts. Automating code-style is an important tool for reducing time spent on accidental (non-essential) complexity. Solution: - Enable lintlua for `scripts/` directory. - Specify `call_parentheses = "Input"`, we should allow kwargs-style function invocations.
* Revert "docs: adjust help-tag-right CSS for HTML" #26046Justin M. Keyes2023-11-14
| | | | | The style change is mostly a regression. Reverts #25858 d50274812b275edff58418b3d17868385599fc14
* docs: adjust help-tag-right CSS for HTML #25858rsynnest2023-11-14
|
* docs: small fixes (#25831)dundargoc2023-11-03
| | | Co-authored-by: Peter Aronoff <peter@aronoff.org>
* feat(gen_help_html): add anchors to help tags #25112Sergey Slipchenko2023-09-12
| | | | | Fixes #21911 Co-authored by: wispl
* docs: also change "vimL" and "viml" to "Vimscript" (#24414)zeertzjq2023-07-21
|
* fix(docs): match DocSearch style with site themeJustin M. Keyes2023-07-08
| | | | ref https://github.com/neovim/neovim.github.io/commit/2b4f9e47809c16743f7d31d0dc1f1e3c2f313a56
* docs(gen_help_html): accept "~/" in file/dir params #24240Justin M. Keyes2023-07-03
|
* fix(docs): ignore_invalid #24174Justin M. Keyes2023-06-27
| | | Regex bug in scripts/gen_help_html.lua:ignore_invalid()
* fix(docs): too much whitespace around <pre> blocks #24151Justin M. Keyes2023-06-25
| | | | | | | | | | | | | Problem: In the generated docs HTML there is too much whitespace before/after `<pre>` blocks. - In the old layout (fixed-width), all text in `.old-help-para` is formatted as `white-space:pre`. - In the new layout, when `<pre>` is at the end of a `<div>`, the margins of both are redundant, causing too much space. Solution: - In the old layout, always remove `<pre>` margin. - In the new layout, disable `<pre>` margin if it is the last child.
* fix(docs): vimdoc syntax errorsJustin M. Keyes2023-06-25
| | | | gen_help_html: truncate parse-error sample text
* test: spellcheck :help (vimdoc) files #24109Justin M. Keyes2023-06-22
| | | | | | | Enforce consistent terminology (defined in `gen_help_html.lua:spell_dict`) for common misspellings. This does not spellcheck English in general (perhaps a future TODO, though it may be noisy).
* feat(gen_help_html): ignore pi_netrw.txt errorsJustin M. Keyes2023-06-22
| | | | IDGAF about netrw
* feat(gen_help_html): non-default vimdoc.so parserJustin M. Keyes2023-06-22
| | | | Callers can specify a non-default vimdoc.so file path.
* docs: lsp, vim_diffJustin M. Keyes2023-06-22
| | | | | | | - quickstart - mark lsp.txt as `new_layout` - remove lsp-handler documentation for notifications: they don't have handlers because they don't have server responses.
* docs #24061Justin M. Keyes2023-06-19
| | | | | | | | | | | | | | - nvim requires rpc responses in reverse order. https://github.com/neovim/neovim/issues/19932 - NVIM_APPNAME: UIs normally should NOT set this. ref #23520 fix #24050 fix #23660 fix #23353 fix #23337 fix #22213 fix #19161 fix #18088 fix #20693
* docs(html): define anchors for search engine #23879Justin M. Keyes2023-06-02
| | | | | | | | | | | | | Problem: Selecting a search result from the Algolia Docsearch widget does not navigate to a page anchor. The docs HTML provides `<a name=…>` anchors _near_ the `<h1>`/`<h2>`/… headings, but Algolia Docsearch expects the anchors to be _defined on_ the headings. That's also "semantically" nicer. https://docsearch.algolia.com/docs/manage-your-crawls/ Solution: Set `id` on the heading element instead of placing `<a name=…>` nearby. related: 3913ebbfcde7 #23839
* docs(html): algolia docsearch #23839Justin M. Keyes2023-05-30
| | | | | | | | | Need to manually include this in the generated docs html because it doesn't use the website's (jekyll) layout template. Maintenance notes: https://github.com/neovim/neovim.github.io/#maintenance Related: https://github.com/neovim/neovim.github.io/commit/ce9aef12eb1c98135965e3a9c5c792bf9e506a76