summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/gen_help_html.lua
AgeCommit message (Collapse)AuthorFiles
2025-02-26build: move all generator scripts to `src/gen/`Lewis Russell1
- Move all generator Lua scripts to the `src/gen/` - Add a `.luarc.json` to `src/gen/` - Add a `preload.lua` to `src/gen/` - Add `src` to `package.path` so it aligns with `.luarc.json' - Fix all `require` statements in `src/gen/` so they are consistent: - `require('scripts.foo')` -> `require('gen.foo')` - `require('src.nvim.options')` -> `require('nvim.options')` - `require('api.dispatch_deprecated')` -> `require('nvim.api.dispatch_deprecated')`
2024-12-05docs: graduate intro.txt to "flow layout" #31462Justin M. Keyes1
- move credits and backers to credits.txt
2024-12-05docs: graduate gui.txt to "flow layout"Justin M. Keyes1
2024-10-23docs: miscdundargoc1
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>
2024-10-21feat(vim.validate): improve fast form and deprecate spec formLewis Russell1
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.
2024-10-08fix(gen_help_html): first tag in h2 is broken #30720Justin M. Keyes1
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`.
2024-10-01docs(gen_help_html.lua): h4 pseudo-heading layoutJustin M. Keyes1
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.
2024-10-01docs(gen_help_html.lua): h4 pseudo-heading layout #30609Justin M. Keyes1
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.
2024-09-30docs: graduate editorconfig.txt to "flow layout"Justin M. Keyes1
fix #25401
2024-09-28fix(treesitter): suppress get_parser warnings via opts.errorRiley Bruins1
2024-09-18docs: graduate tui.txt to "flow layout" #30413Justin M. Keyes1
2024-09-18docs(tui): rename term.txt, nvim_terminal_emulator.txt #30398Justin M. Keyes1
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.
2024-09-13feat(treesitter): start moving get_parser to return nil #30313Riley Bruins1
**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.
2024-08-20docs(gen_help_html): wrap headings for narrow viewport #29903Rosen Stoyanov1
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.
2024-07-09fix(lua): change some vim.fn.expand() to vim.fs.normalize() (#29583)zeertzjq1
Unlike vim.fn.expand(), vim.fs.normalize() doesn't expand wildcards.
2024-06-19fix(gen_help_html): handle delimiter, heading #29415Justin M. Keyes1
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
2024-05-27refactor: fix luals type warningsdundargoc1
2024-05-25test(lintdoc): check that input list is same length as output list (#28976)dundargoc1
2024-05-24docs: extract health to its own filedundargoc1
2024-05-23build(docs): update CSS #28896Saien Govender1
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.
2024-05-22docs: move vim.health documentation to lua.txtdundargoc1
`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.
2024-05-17docs(gen_help_html.lua): handle modeline and note nodesJongwook Choi1
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.
2024-05-16docs: news #28773Justin M. Keyes1
2024-05-16docs: nvim.appdata.xml, set faq to "flow" layout #28769Justin M. Keyes1
2024-05-16docs(gen_help_html.lua): fix broken pre text, and handle linewrapJongwook Choi1
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.
2024-05-15docs: newsJustin M. Keyes1
Set dev_xx.txt help files to use "flow" layout.
2024-05-14docs(gen_help_html.lua): wrap legacy help at word-boundary #28678gusain711
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;
2024-04-30docs: format vim_diff.txt for "flow" layout #28584Justin M. Keyes1
2024-03-01docs: improve/add documentation of Lua typesLewis Russell1
- 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.
2024-01-29fix(gen_help_html): type warnings, spell_ignore_files #27254Jongwook Choi1
- 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.
2024-01-28docs: enforce "treesitter" spelling #27110Jongwook Choi1
It's the "tree-sitter" project, but "treesitter" in our code and docs.
2024-01-28build(docs): separate lint job to validate vimdoc #27227Jongwook Choi1
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.
2024-01-17fix(lua): return after assert returns assert message (#27064)altermo1
2023-12-28docs: convert BACKERS.md to backers.txtdundargoc1
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.
2023-12-13docs: add wiki FAQ to the runtime documentation (#26539)dundargoc1
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>
2023-12-04build: enable lintlua for scripts/ dir #26391Justin M. Keyes1
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.
2023-11-14Revert "docs: adjust help-tag-right CSS for HTML" #26046Justin M. Keyes1
The style change is mostly a regression. Reverts #25858 d50274812b275edff58418b3d17868385599fc14
2023-11-14docs: adjust help-tag-right CSS for HTML #25858rsynnest1
2023-11-03docs: small fixes (#25831)dundargoc1
Co-authored-by: Peter Aronoff <peter@aronoff.org>
2023-09-12feat(gen_help_html): add anchors to help tags #25112Sergey Slipchenko1
Fixes #21911 Co-authored by: wispl
2023-07-21docs: also change "vimL" and "viml" to "Vimscript" (#24414)zeertzjq1
2023-07-08fix(docs): match DocSearch style with site themeJustin M. Keyes1
ref https://github.com/neovim/neovim.github.io/commit/2b4f9e47809c16743f7d31d0dc1f1e3c2f313a56
2023-07-03docs(gen_help_html): accept "~/" in file/dir params #24240Justin M. Keyes1
2023-06-27fix(docs): ignore_invalid #24174Justin M. Keyes1
Regex bug in scripts/gen_help_html.lua:ignore_invalid()
2023-06-25fix(docs): too much whitespace around <pre> blocks #24151Justin M. Keyes1
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.
2023-06-25fix(docs): vimdoc syntax errorsJustin M. Keyes1
gen_help_html: truncate parse-error sample text
2023-06-22test: spellcheck :help (vimdoc) files #24109Justin M. Keyes1
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).
2023-06-22feat(gen_help_html): ignore pi_netrw.txt errorsJustin M. Keyes1
IDGAF about netrw
2023-06-22feat(gen_help_html): non-default vimdoc.so parserJustin M. Keyes1
Callers can specify a non-default vimdoc.so file path.
2023-06-22docs: lsp, vim_diffJustin M. Keyes1
- 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.