I am excited to announce the release of a new version of Noogle.
noogle.dev
Noogle release 2024-1
Noogle has evolved into a versatile toolset, empowering both new and experienced users.
Its underlying toolset can render doc-comments (see rfc145) seamlessly into markdown, HTML, or JSON formats.
We can now easily discover almost all kinds of functions in nixpkgs (even those that are deeply nested or sprinkled in different files in nixpkgs)
In the future noogle may provide its underlying tools to generate nix documentation from any github (nix) repository.
Key Features and Enhancements
Integration with RFC145
Our primary focus has been on seamlessly integrating Noogle with RFC145, enhancing the overall functionality and utility.
SEO Optimization
Noogle now boasts enhanced SEO optimization, ensuring that every documentation page is static HTML and easily discoverable on popular search engines like Google and Bing.
Function Alias Detection
Noogle now incorporates advanced function alias detection, making your searches even more intuitive and efficient.
Performance, Readability & Usability
We’ve invested in optimizing performance, enhancing readability, and improving overall usability to make your Noogle experience smoother and more enjoyable.
Blazingly Fast WASM-Based Search
Thanks to the integration of pagefind, Noogle now offers a lightning-fast search experience through WebAssembly, setting new standards for speed and efficiency.
Configuration-Based Extendability
Users can now extend Noogle’s capabilities through a configuration-based approach, customizing the toolset to suit more needs.
Improved Type Detection
We’ve enhanced type detection capabilities, providing more accurate and detailed information in your search results.
Redesigned Search Website
The search website has undergone a significant overhaul to highlight the important changes in the underlying toolset.
Limitation
Some setup Configuration will always be needed
We must configure the places that need to be indexed. For doing so there are two kinds of indexing methods:
- recursively
- non-recursively
A simple configuration could then look like:
{
"recursive": {
"lib": {
"path": ["lib"]
}
},
"flat": {
"pkgs": {
"path": ["pkgs"]
},
"stdenv": {
"path": ["pkgs", "stdenv"]
}
}
}
Source links point to my autogenerated fork of nixpkgs.
This will be solved within the next weeks.
currently nixpkgs doesnt fully support markdown in doc-comments yet. Although the RFC145 is accepted things need to be done.
Please feel free to contribute there.
Bugs
If you find any bugs or misleading information please create an issue in the noogle github repository.
I am very thankful for any help.