Boost logo

Boost :

From: Mohammad Nejati [ashtum] (ashtumashtum_at_[hidden])
Date: 2023-06-22 18:29:45


Hey everyone,

One of the issues with the current Boost website is the absence of
search functionality. This forces users to rely on search engines and
use queries like `site:boost.org asio cancellation_slot` However, this
approach has several problems. Firstly, it often displays outdated
versions in the search results. Secondly, it lacks a proper
hierarchical presentation to effectively guide users. Moreover, there
is no way to filter the results for a specific library.

To address this problem quickly, we have decided to create a search
index for the existing HTML documents on the Boost website. However,
we encountered a primary challenge during this process. We needed to
extract contents with the correct hierarchy for each library to ensure
that the search results were displayed in a hierarchical manner. For
instance, the results will be shown as `Asio › Reference ›
Deferred_values › Requirements` This hierarchical presentation can
significantly enhance the user experience.

The Boost libraries utilize various documentation formats such as
QuickBook, AsciiDoc, Doxygen, and even multiple handwritten formats.
This diversity posed a challenge in creating a generic crawler script.
To overcome this obstacle, we initiated the Boost.Gecko project. This
project involved the development of 16 custom crawlers, tailored to
extract search records from the 151 Boost libraries.

We are currently utilizing the Algolia search platform to index search
records, which offers a free plan for open-source projects. Algolia
also provides a rich JavaScript library for building a search
interface on the frontend. We have leveraged this library to design a
customized user interface for the search box, enhancing the navigation
of search results.

I kindly request you try out the new search functionality by visiting
the demo page at: https://cppalliance.org/boost-gecko/ and share your
thoughts, suggestions, or any issues you may encounter. Your input
will greatly assist us in refining the search feature and ensuring it
meets the needs of our users. Please note that the drop-down for
selecting a library is included to simulate the experience of being on
a specific library page. Our plan is to incorporate a search button
into the header of every library page, defaulted to search within that
specific library.

Demo page: https://cppalliance.org/boost-gecko/
Repository: https://github.com/cppalliance/boost-gecko/

Respectfully Yours,
Mohammad Nejati

----
C++ Alliance Staff Engineer

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk