Instant offline access to 130+ API documentation sets.

get it
#2 Product of the DayFebruary 10, 2014
There are no images or videos added to the gallery.
Add to gallery




MakersThere are no makers yet
You need to become a Contributor to join the discussion - Find out how.
Kapeli@kapeli · Kapeli
@staringispolite - Versions support is something I've always wanted to add, but couldn't find a way to handle it properly. For example, there's no way to provide docs for older versions of jQuery since as far as I know the jQuery docs are only available at http://api.jquery.com/, which is always for the latest version. Drupal is the same as jQuery, only the latest for major versions are supported at https://api.drupal.org/api/drupal. No one requested a Drupal 6 docset, so I thought there's no need for one. If you require a Drupal 6 docset, please let me know, as I can definitely add that. Python docsets for older versions are possible. However, I can't really set up an interface which allows installs of older versions only for some docsets and not for others, as users would complain why older versions aren't available for the APIs they want (e.g. for jQuery or Drupal). Managing the older versions of docsets would be a bit of a nightmare as well, in terms of generation and storage. TL;DR: Versions support is something I really want, but haven't figured out yet.
Kapeli@kapeli · Kapeli
@staringispolite - Implementation: I currently provide docsets for major latest versions. The actual interface is not a problem, as I pretty much have it done (see http://cl.ly/image/1l0L2v102G1V/o which is what's coming in the next update of Dash). The main problem with implementation is explaining to users that older versions for some APIs are not possible to generate. It's sad, but in my experience it's better to not add a feature at all than to add a half-baked feature which only works in some cases. Sourcing: Not necessarily, for example if I'd figure out there's something wrong with a generation script, I'd need to regenerate docsets for all the old versions as well. The main problem with sourcing is that I currently maintain around 130 docsets, if I'd add versioning the number of docsets I'd have to maintain might get a lot larger. I don't think using the web archive is a good idea, as some APIs might have a good reason not to provide docs except for the latest version. Scraping the web archive might be challenging as well.
Kapeli@kapeli · Kapeli
@staringispolite - The current versioning for Drupal, Zend, Python and so on is a hack. It's only for major versions. In a nutshell, I maintain a separate docset and docset feed for each major version of a popular API. This is something I can easily handle/maintain. The process looks like this: 1. Grab the docs for offline use in HTML format somehow (this can be httrack, direct download for APIs that provide their docs for download or direct generation from source using Doxygen or Sphinx or whatever). This is the hardest/most time consuming part as the docs need to be optimised for offline use, which some docs really don't like (AngularJS!). 2. Generate/scrape the docset. This is described at http://kapeli.com/docsets in more detail. 3. CDN
Ryan HooverPro@rrhoover · Founder, Product Hunt
Super useful. I believe @alexbaldwin mentioned he uses this when coding offline to avoid distractions.
Jonathan Howard@staringispolite · Growth engineer & founder
Yep, I heard about this from Alex at a HackDesign feedbackathon. This is a great reminder to finally check it out. I do wish it were clearer whether they had versions built in. There's nothing worse than wrestling with a bug for an hour then realizing it's because of a difference between versions. Downloaded it to investigate: There are versions for major libraries only (iOS, Mac OS X, Rails, OpenGL... but even jQuery only has the latest). Perhaps a nice feature to grow into would be selecting which version your stack runs. In a production environment, it's not always practical to stay on the most up-to-date version.