Noogle release: 2024. A groundbreaking refactoring

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.

Happy searching!

@hsjobeki

46 Likes