diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index a43a9445..d85c28da 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -8,42 +8,23 @@ ## Welcome -I'm glad you are thinking about contributing to nvf! If you're unsure about -anything, just ask - or submit the issue or pull request anyway. The worst that -can happen is you'll be politely asked to change something. Friendly -contributions are always welcome. +I'm glad you are thinking about contributing to neovim-flake! If you're unsure about anything, just ask - or submit the issue or pull request anyway. The worst that can happen is you'll be politely asked to change something. Friendly contributions are always welcome. -Before you contribute, I encourage you to read this project's CONTRIBUTING -policy (you are here) and its [LICENSE](../LICENSE) to understand how your -contributions are licensed. +Before you contribute, I encourage you to read this project's CONTRIBUTING policy (you are here), its [LICENSE](LICENSE.md), and its [README](README.md). -If you have any questions regarding those files, feel free to open an issue or -[shoot me an email](mailto:me@notashelf.dev). Discussions tab is also available -for more informal discussions. +If you have any questions regarding those files, feel free to open an issue or [shoot me an email](mailto:me@notashelf.dev). Discussions tab is also available for more informal discussions. ## Contributing -The contribution process is mostly documented in the -[pull request template](PULL_REQUEST_TEMPLATE/pull_request_template.md). You -will find a checklist of items to complete before submitting a pull request. -Please make sure you complete it before submitting a pull request. If you are -unsure about any of the items, please ask. +The contribution process is mostly documented in the [pull request template](pull_request_template.md). You will find a checklist of items to complete before submitting a pull request. Please make sure you complete it before submitting a pull request. If you are unsure about any of the items, please ask. ### Guidelines -We provide instructions on a healthy contribution to neovim-flake - including -styling, commit formats, how-to guides for adding new modules and options. You -are very well recommended to read the contributing guidelines over at -[the documentation](https://notashelf.github.io/nvf#hacking) +We provide instructions on a healthy contribution to neovim-flake - including styling, commit formats, how-to guides for adding new modules and options. +You are very well recommended to read the contributing guideliner over at [the documentation](https://notashelf.github.io/neovim-flake#hacking) ### Code of Conduct -This project does not quite have a code of conduct yet. And to be perfectly -honest, I'm not sure if I want one or if it will ever have one. I'm not -expecting this project to be a hotbed of activity, but I do want to make sure -that everyone who does contribute feels welcome and safe. As such, I will do my -best to make sure that those who distrupt the project are dealt with swiftly and -appropriately. +This project does not quite have a code of conduct yet. And to be honest, I'm not sure if I want one or if it will ever have one. I'm not expecting this project to be a hotbed of activity, but I do want to make sure that everyone who does contribute feels welcome and safe. As such, I will do my best to make sure that those who distrupt the project are dealt with swiftly and appropriately. -If you feel that you are not being treated with respect, please contact me -directly. +If you feel that you are not being treated with respect, please contact me directly. diff --git a/.github/README.md b/.github/README.md index 029f2fc8..531d062b 100644 --- a/.github/README.md +++ b/.github/README.md @@ -48,7 +48,7 @@ [Documentation]: #documentation [Help]: #help [Contribute]: #contributing -[FAQ]: #frequently-asked-questions +[FAQ]: #faq [Credits]: #credits **[
 Features
][Features]** @@ -56,7 +56,7 @@ **[
 Documentation 
][Documentation]** **[
 Help 
][Help]** **[
 Contribute 
][Contribute]** -**[
 FAQ 
][FAQ]** **[
 Credits 
][Credits]** +**[
 FAQ 
][Faq]** **[
 Credits 
][Credits]**

@@ -64,21 +64,12 @@ ## Features -[standalone]: https://notashelf.github.io/nvf/index.xhtml#ch-standalone-installation -[NixOS module]: https://notashelf.github.io/nvf/index.xhtml#ch-standalone-nixos -[Home-Manager module]: https://notashelf.github.io/nvf/index.xhtml#ch-standalone-hm - -- **Simple**: One language to rule them all! Use Nix to configure everything, - with additional Lua Support - **Reproducible**: Your configuration will behave the same _anywhere_. No surprises, promise! - **Portable**: nvf depends _solely_ on your Nix store, and nothing else. No more global binaries! Works on all platforms, without hassle. - - Options to install [standalone], [NixOS module] or [Home-Manager module]. - **Customizable**: There are _almost no defaults_ to annoy you. nvf is fully customizable through the Nix module system. -- Not comfortable with a full-nix config or want to bring your Lua config? You - can do just that, no unnecessary restrictions. - **Well-documented**: Documentation is priority. You will _never_ face undocumented, obscure behaviour. - **Idiomatic**: nvf does things ✨ _the right way_ ✨ - the codebase is, and @@ -129,9 +120,7 @@ instructions. ## Documentation -### Installation - -The _recommended_ way of installing nvf is using either the NixOS or the +The _recommended_ way of installing **nvf** is using either the NixOS or the Home-Manager module, though it is completely possible and no less supported to install **nvf** as a standalone package, or a flake output. @@ -149,13 +138,11 @@ Please create an issue on the [issue tracker] if you find the documentation lacking or confusing. Any improvements to the documentation through pull requests are also welcome, and appreciated. -## Getting Help +## Help -If you are confused, stuck or would like to ask a simple question; you may -create an issue on the [issue tracker] to ask questions or report bugs. - -We are not not yet on spaces like matrix or IRC, so please use the issue tracker -for now. +You can create an issue on the [issue tracker] to ask questions or report bugs. +I am not yet on spaces like matrix or IRC, so please use the issue tracker for +now. ## Contributing @@ -165,7 +152,7 @@ submitting a pull request. You can also create an issue on the [issue tracker] before submitting a pull request if you would like to discuss a feature or bug fix. -## Frequently Asked Questions +## FAQ [appropriate issue template]: https://github.com/NotAShelf/nvf/issues/new/choose [list of branches]: https://github.com/NotAShelf/nvf/branches @@ -173,15 +160,13 @@ fix. **Q**: What platforms are supported?
**A**: nvf actively supports Linux and Darwin platforms using standalone -Nix, NixOS or Home-Manager. Please take a look at the [nvf manual] for available -installation instructions. +Nix, NixOS or Home-Manager. Please take a look at the **Q**: Can you add _X_?
**A**: Maybe! It is not one of our goals to support each and every Neovim plugin, however, I am always open to new modules and plugin setup additions to **nvf**. Use the [appropriate issue template] and I will consider a module -addition. As mentioned before, pull requests to add new features are also -welcome. +addition. As mentioned before, PRs adding new features are also welcome. **Q**: A plugin I need is not available in **nvf**. What to do?
**A**: **nvf** exposes several APIs for you to be able to add your own @@ -200,26 +185,22 @@ better prepare to breaking changes. ### Contributors -[mnw]: https://github.com/gerg-l/mnw +Special, heart-felt thanks to -nvf would not be what it is today without the awesome people below. Special, -heart-felt thanks to - -- [@fufexan](https://github.com/fufexan) - For the transition to flake-parts and - invaluable Nix assistance. -- [@FlafyDev](https://github.com/FlafyDev) - For getting home-manager module to - work and Nix assistance. +- [@fufexan](https://github.com/fufexan) - For the transition to flake-parts +- [@FlafyDev](https://github.com/FlafyDev) - For getting the home-manager to + work - [@n3oney](https://github.com/n3oney) - For making custom keybinds finally - possible, and other module additions. + possible - [@horriblename](https://github.com/horriblename) - For actively implementing - planned features and quality of life updates. + planned features and quality of life updates - [@Yavko](https://github.com/Yavko) - For the amazing **nvf** logo - [@FrothyMarrow](https://github.com/FrothyMarrow) - For seeing mistakes that I - could not. -- [@Diniamo](https://github.com/Diniamo) - For actively submitting pull - requests, issues and assistance with maintenance of nvf. -- [@Gerg-l](https://github.com/gerg-l) - For the modern Neovim wrapper, [mnw], - and occasional code improvements. + could not +- [@Diniamo](https://github.com/Diniamo) - For actively submitting PRs, pull + requests and overall assistence +- [@Gerg-l](https://github.com/gerg-l) - For the modern Neovim wrapper, mnw and + occasional code improvements and everyone who has submitted issues or pull requests! @@ -233,7 +214,7 @@ including: is originally based on. - [@sioodmy's](https://github.com/sioodmy) [dotfiles](https://github.com/sioodmy/dotfiles) that inspired the design - choices for UI and plugin defaults. + choices. - [@wiltaylor's](https://github.com/wiltaylor) [neovim-flake](https://github.com/wiltaylor/neovim-flake) for plugin and design ideas. @@ -248,11 +229,10 @@ recommend checking their work out. ## License Following the license of the -[original neovim-flake](https://github.com/jordanisaacs/neovim-flake), nvf has -been made available under the [**MIT License**](LICENSE). However, all assets -and documentation are published under the -[**CC BY License**](https://github.com/NotAShelf/nvf/blob/main/.github/assets/LICENSE) -under explicit permission by the artist. +[original neovim-flake](https://github.com/jordanisaacs/neovim-flake), **nvf** +has been made available under the [**MIT License**](LICENSE). However, all +assets and documentation are published under the +[**CC BY License**](https://github.com/NotAShelf/nvf/blob/main/.github/assets/LICENSE).
Yes, this includes the logo work too. Stop taking artwork that is not yours!
diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/pull_request_template.md similarity index 83% rename from .github/PULL_REQUEST_TEMPLATE/pull_request_template.md rename to .github/pull_request_template.md index b2a26919..7768d36e 100644 --- a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +++ b/.github/pull_request_template.md @@ -6,7 +6,7 @@ or dependency in this section. If your pull request aims to fix an open issue or a please bug, please also link the relevant issue below this line. You may attach an issue to your pull request with `Fixes #` outside -this comment, and it will be closed when your pull request is merged. +this comment. --> ## Sanity Checking @@ -23,20 +23,20 @@ it above in your description. [editorconfig]: https://editorconfig.org [changelog]: https://github.com/NotAShelf/nvf/tree/main/docs/release-notes -- [ ] I have updated the [changelog] as per my changes -- [ ] I have tested, and self-reviewed my code +- [ ] I have updated the [changelog] as per my changes. +- [ ] I have tested, and self-reviewed my code. - Style and consistency - - [ ] I ran **Alejandra** to format my code (`nix fmt`) - - [ ] My code conforms to the [editorconfig] configuration of the project - - [ ] My changes are consistent with the rest of the codebase + - [ ] I ran **Alejandra** to format my code (`nix fmt`). + - [ ] My code conforms to the [editorconfig] configuration of the project. + - [ ] My changes are consistent with the rest of the codebase. - If new changes are particularly complex: - [ ] My code includes comments in particularly complex areas - - [ ] I have added a section in the manual - - [ ] _(For breaking changes)_ I have included a migration guide + - [ ] I have added a section in the manual. + - [ ] _(For breaking changes)_ I have included a migration guide. - Package(s) built: - [ ] `.#nix` (default package) - [ ] `.#maximal` - - [ ] `.#docs-html` (manual, must build) + - [ ] `.#docs-html` - Tested on platform(s) - [ ] `x86_64-linux` - [ ] `aarch64-linux` diff --git a/.github/typos.toml b/.github/typos.toml deleted file mode 100644 index df76201c..00000000 --- a/.github/typos.toml +++ /dev/null @@ -1,2 +0,0 @@ - -default.extend-ignore-words-re = ["(?i)(noice)", "befores", "annote", "viw"] diff --git a/.github/workflows/check-docs.yml b/.github/workflows/check-docs.yml index b543c813..18e6a2ef 100644 --- a/.github/workflows/check-docs.yml +++ b/.github/workflows/check-docs.yml @@ -19,12 +19,19 @@ jobs: - docs-manpages - docs-json steps: + - uses: easimon/maximize-build-space@v10 + with: + overprovision-lvm: true + remove-android: true + remove-dotnet: true + remove-haskell: true + - name: Install Nix uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/magic-nix-cache-action@main - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + name: Checkout - name: Set default git branch (to reduce log spam) run: git config --global init.defaultBranch main @@ -42,16 +49,3 @@ jobs: with: name: "${{ matrix.package }}" path: result/share/doc/nvf - flake-docs-linkcheck: - name: Validate hyperlinks in documentation sources - runs-on: ubuntu-latest - steps: - - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main - - uses: DeterminateSystems/magic-nix-cache-action@main - - - name: Checkout - uses: actions/checkout@v4 - - - name: Build documentation packages - run: nix build .#docs-linkcheck -Lv diff --git a/.github/workflows/editorconfig.yml b/.github/workflows/editorconfig.yml index d411c89f..68176c7f 100644 --- a/.github/workflows/editorconfig.yml +++ b/.github/workflows/editorconfig.yml @@ -15,7 +15,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh api \ - repos/notashelf/nvf/pulls/${{github.event.number}}/files --paginate \ + repos/notashelf/neovim-flake/pulls/${{github.event.number}}/files --paginate \ | jq '.[] | select(.status != "removed") | .filename' \ > "$HOME/changed_files" diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index 5b66c8a6..23381e4e 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -47,7 +47,7 @@ jobs: - uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/magic-nix-cache-action@main - run: | - nix build .#docs -Lv + nix build .#docs cp -r result/share/doc/nvf public - uses: peaceiris/actions-gh-pages@v4 with: diff --git a/.github/workflows/typos.yml b/.github/workflows/typos.yml deleted file mode 100644 index d74ee5b7..00000000 --- a/.github/workflows/typos.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: "Check for typos in the source tree" - -permissions: read-all - -on: - pull_request: - workflow_dispatch: - push: - -jobs: - check-typos: - runs-on: ubuntu-latest - if: "!contains(github.event.pull_request.title, '[skip ci]')" - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Check for typos - uses: crate-ci/typos@master - with: - config: .github/typos.toml - - - name: Fail Gracefully - if: ${{ failure() }} - shell: bash - run: | - echo "::error:: Current codebase contains typos that were caught by the CI!" - echo "If those typos were intentional, please add them to the ignored regexes in .github/typos.toml" - echo "[skip ci] label may be used if this is a one-time issue" - exit 1 diff --git a/docs/manual.nix b/docs/manual.nix index 531a6d4e..f5b23d04 100644 --- a/docs/manual.nix +++ b/docs/manual.nix @@ -1,112 +1,63 @@ { lib, stdenvNoCC, - fetchzip, - runCommandLocal, # build inputs nixos-render-docs, documentation-highlighter, - dart-sass, path, # nrd configuration release, optionsJSON, -} @ args: let - manual-release = args.release or "unstable"; - - scss-reset = fetchzip { - url = "https://github.com/Frontend-Layers/scss-reset/archive/refs/tags/1.4.2.zip"; - hash = "sha256-cif5Sx8Ca5vxdw/mNAgpulLH15TwmzyJFNM7JURpoaE="; +}: +stdenvNoCC.mkDerivation { + name = "nvf-manual"; + src = builtins.path { + path = lib.sourceFilesBySuffices ./manual [".md"]; + name = "nvf-manual"; }; - compileStylesheet = runCommandLocal "compile-nvf-stylesheet" {} '' - mkdir -p $out + nativeBuildInputs = [nixos-render-docs]; - tmpfile=$(mktemp -d) - trap "rm -r $tmpfile" EXIT + buildPhase = '' + dest="$out/share/doc/nvf" + mkdir -p "$(dirname "$dest")" + mkdir -p $dest/{highlightjs,media} - ln -s "${scss-reset}/build" "$tmpfile/scss-reset" + cp -vt $dest/highlightjs \ + ${documentation-highlighter}/highlight.pack.js \ + ${documentation-highlighter}/LICENSE \ + ${documentation-highlighter}/mono-blue.css \ + ${documentation-highlighter}/loader.js - ${dart-sass}/bin/sass --load-path "$tmpfile" \ - ${./static/style.scss} "$out/style.css" + substituteInPlace ./options.md \ + --subst-var-by \ + OPTIONS_JSON \ + ${optionsJSON}/share/doc/nixos/options.json - echo "Generated styles" + substituteInPlace ./manual.md \ + --subst-var-by \ + NVF_VERSION \ + ${release} + + # copy stylesheet + cp ${./static/style.css} "$dest/style.css" + + # copy release notes + cp -vr ${./release-notes} release-notes + + # generate manual from + nixos-render-docs manual html \ + --manpage-urls ${path + "/doc/manpage-urls.json"} \ + --revision ${lib.trivial.revisionWithDefault release} \ + --stylesheet style.css \ + --script highlightjs/highlight.pack.js \ + --script highlightjs/loader.js \ + --toc-depth 2 \ + --section-toc-depth 1 \ + manual.md \ + "$dest/index.xhtml" + + mkdir -p $out/nix-support/ + echo "doc manual $dest index.html" >> $out/nix-support/hydra-build-products ''; -in - stdenvNoCC.mkDerivation { - name = "nvf-manual"; - src = builtins.path { - name = "nvf-manual-${manual-release}"; - path = lib.sourceFilesBySuffices ./manual [".md" ".md.in"]; - }; - - strictDependencies = true; - nativeBuildInputs = [nixos-render-docs]; - - postPatch = '' - ln -s ${optionsJSON}/share/doc/nixos/options.json ./config-options.json - ''; - - buildPhase = '' - dest="$out/share/doc/nvf" - mkdir -p "$(dirname "$dest")" - mkdir -p $dest/{highlightjs,script} - - # Copy highlight scripts to /highlights in document root. - cp -vt $dest/highlightjs \ - ${documentation-highlighter}/highlight.pack.js \ - ${documentation-highlighter}/LICENSE \ - ${documentation-highlighter}/mono-blue.css \ - ${documentation-highlighter}/loader.js - - # Copy anchor scripts to the script directory in document root. - cp -vt "$dest"/script \ - ${./static/script}/anchor-min.js \ - ${./static/script}/anchor-use.js - - substituteInPlace ./options.md \ - --subst-var-by OPTIONS_JSON ./config-options.json - - substituteInPlace ./manual.md \ - --subst-var-by NVF_VERSION ${manual-release} - - substituteInPlace ./hacking/additional-plugins.md \ - --subst-var-by NVF_REPO "https://github.com/notashelf/nvf/blob/${manual-release}" - - # Move compiled stylesheet - cp -vt $dest \ - ${compileStylesheet}/style.css - - # Move release notes - cp -vr ${./release-notes} release-notes - - # Generate final manual from a set of parameters. Explanation of the CLI flags are - # as follows: - # - # 1. --manpage-urls will allow you to use manual pages as they are defined in - # the nixpkgs documentation. - # 2. --revision is the project revision as it is defined in 'release.json' in the - # repository root - # 3. --script will inject a given Javascript file into the resulting pages inside - # the