Rtfm 0.6.0

Hi,

RTFM is a Linux (Gnome) docset reader written in Crystal and GTK4.

I just released a new version with improved fuzzy search, so you can type things like St.dca and it will find all methods that fuzzy matches with dca from all types that fuzzy matches with St.

Docset download is still missing :cry: , maybe Iā€™ll do it next time I touch this project.

5 Likes

For downloading docsets, how beneficial would it be to have them available for download on crystaldoc.info? I could build them as part of the documentation generation and serve them as static files, with maybe an endpoint for searching for them.

This is an awesome ideia, I already have the code to generate the needed SQLite database from the JSON file.

I didnā€™t the UI to download docsets yet because:

  • I donā€™t want to write the network code using glib, so I need to integrate glib main loop with Crystal main loop, @ysbaddaden already show a working demo on how to do it, so itā€™s not blocked anymore.
  • I donā€™t really need this feature for myself despite of it being a blocker for the general public :sweat_smile:
  • I am a dad now, so I donā€™t have much free time for pet projects nowadays.

Once I write the code for docset download I ping you, then do the download from crystaldoc.info will be easy.

Congrats on parenthood!

Itā€™s not a feature I personally need either (I just use crystaldoc.info), but could be useful for others. No rush if you donā€™t get around to it for a while.

The JSON files are currently already served at https://crystaldoc.info/:service/:username/:project/:version/index.json (example: https://crystaldoc.info/github/crystal-lang/crystal/1.14.0/index.json). Setting the version to latest will redirect to the latest index.json as well.

There is also a ā€œsearchā€ endpoint that exists currently, though itā€™s designed for use by the FE.

> curl -X POST "https://crystaldoc.info/search" -d "q=crystal-db"
<ul class="repo-list">
  <li>
    <a href="/github/oprypin/crystal-dbus">oprypin/crystal-dbus</a>
    <div class="pill-box">
      <span class="pill">12 &#x2B50;</span>
      <span class="pill">
        <a href="https://github.com/oprypin/crystal-dbus" aria-label="Link to source code on github">
          <i class="fa fa-github" aria-hidden="true"></i>
        </a>
      </span>
    </div>
  </li>

  <li>
    <a href="/github/Nicolab/crystal-dbx">Nicolab/crystal-dbx</a>
    <div class="pill-box">
      <span class="pill">15 &#x2B50;</span>
      <span class="pill">
        <a href="https://github.com/Nicolab/crystal-dbx" aria-label="Link to source code on github">
          <i class="fa fa-github" aria-hidden="true"></i>
        </a>
      </span>
    </div>
  </li>

  <!-- more -->
</ul>

If you need more than that, shouldnā€™t be too hard to add a JSON endpoint that returns more information about each of the repositories when searching.