The other day I was searching for Vim editor cheatsheets on the web. A quick google search brought me so many links to download the cheatsheets. While going through the links one by one, a particular URL caught my attention. I Followed the link to find out what it is. Oh dear! It was a quite good tool. Say hello to Zeal, an offline documentation browser for software developers.

Zeal is inspired by Dash, a commercial application developed specially for Mac OS. Zeal provides documentation sets (shortly docsets) for the plenty of different programming languages and software. You can read them all in offline. Yes, you read that right! You don't need to google or refer the official documentation page. Just download the documentation set of your desired software, and start reading it without Internet connection.

As of writing this guide, there are 192 useful docsets as given below.

ActionScript

Akka

Android

Angular, AngularJS

Ansible

Apache HTTP Server

Appcelerator Titanium

AppleScript

Arduino

AWS JavaScript

BackboneJS

Bash

Boost

Bootstrap 2, 3, 4

Bourbon

C / C++

CakePHP

Cappuccino

Chai

Chef

Clojure

CMake

Cocos2D

Cocos2D-X

Cocos3D

CodeIgniter

CoffeeScript

ColdFusion

Common Lisp

Compass

Cordova

Corona

CouchDB

Craft

CSS

D3JS

Dart

Django

Docker

Doctrine

Dojo

Drupal 7, 8

ElasticSearch

Elixir

Emacs Lisp

EmberJS

Emmet

Erlang

Express

ExpressionEngine

ExtJS

Flask

Font Awesome

Foundation

GLib

Go

Gradle DSL

Gradle Java API

Gradle User Guide

Grails

Groovy, Groovy JDK

Grunt

Gulp

Haml

Handlebars

Haskell

HTML

Ionic

Jasmine

Java EE6, EE7, EE8

Java SE6, SE7, SE8, SE9

JavaFX

JavaScript

Jekyll

Jinja

Joomla

jQuery / jQuery Mobile / jQuery UI

Julia

KnockoutJS

Kobold2D

Laravel

LaTeX

Less

Lo-Dash

Lua 5.1, 5.2, 5.3

MarionetteJS

Markdown

MatPlotLib

Meteor

Mocha

MomentJS

MongoDB

Mongoose

Mono

MooTools

MySQL

Neat

NET Framework

Nginx

NodeJS

NumPy

OCaml

OpenCV

OpenGL 2, 3, 4

Pandas

Perl

Phalcon

PhoneGap

PHP

PHPUnit

Play Java

Play Scala

Polymer.dart

PostgreSQL

Processing

PrototypeJS

Pug

Puppet

Python 2, 3

Qt 4, 5

R

Racket

React

Redis

RequireJS

Ruby 2, 3, 4, 5

RubyMotion

Rust

SailsJS

SaltStack

Sass

Scala

SciPy

Semantic UI

Sencha Touch

Sinon

Smarty

Sparrow

Spring Framework

SQLAlchemy

SQLite

Statamic

Stylus

Susy

SVG

Swift

Symfony

Tcl

Tornado

Twig

Twisted

TypeScript

TYPO3

UnderscoreJS

Unity 3D

Vagrant

Vim

VMware vSphere

VueJS

WordPress

Xamarin

Xojo

XSLT

Yii

YUI

Zend Framework 1, 2,3

ZeptoJS

All of those docsets are generously provided by Dash. All docsets are up-to-date and maintained with utmost care. You can also create your own!

Installing Zeal on Linux

Zeal is available in the default repositories of many Linux distributions. So, we can install it using the default package managers.

On Arch Linux and its derivatives like Antergos, Manjaro Linux, Zeal is available in Community repository. So make sure it is enabled first and the install Zeal as shown below:

$ sudo pacman -S zeal

On Debian, Ubuntu, Linux Mint:

$ sudo apt-get install zeal

Zeal in the Ubuntu repositories might bit outdated. If you wanted to use most recent version, you can install it from the official PPA.

$ sudo add-apt-repository ppa:zeal-developers/ppa $ sudo apt-get update $ sudo apt-get install zeal

On Fedora:

$ sudo dnf install zeal

On Gentoo:

# emerge app-doc/zeal

On openSUSE, you can install it as shown below depending upon the version you use.

For openSUSE Tumbleweed run the following as root:

# zypper addrepo https://download.opensuse.org/repositories/devel:tools/openSUSE_Tumbleweed/devel:tools.repo # zypper refresh # zypper install zeal

For openSUSE Leap 42.3 run the following as root:

# zypper addrepo https://download.opensuse.org/repositories/devel:tools/openSUSE_Leap_42.3/devel:tools.repo # zypper refresh # zypper install zeal

On FreeBSD, install Zeal from ports:

# cd /usr/ports/devel/zeal/ && make install clean

Or install Zeal binary package:

# pkg install zeal

Related read:

Usage

Launch Zeal from the Menu or application launcher. The default interface of Zeal may look like below.

As you can see, the interface is very simply. By default, Zeal doesn't come with any docsets. You need to download them.

To do so, click on the Docsets tab on the right side in the home screen or go to Tools -> Docsets to browse and download docsets. Click on the "Available" tab and choose the applications of your choice to download their docsets and click Download button.

Once docsets downloaded, they will appear on the left pane in the home screen. You can now browse through documentation sets.

You can also search for a specific string from a particular docset or from all docsets. Just enter your search terms in the search on the top left corner to begin the search.

For example, when you enter the string "class" in the search box, Zeal will provide the results from all docsets. Also, you can limit the search within a specific docset. For example, python:class will search only docsets related to Python for class.

Not just from the graphical interface, you can begin the search from the command line too. For example, run the following command from the terminal to search for string "class" in Python docset.

$ zeal python:class

It will automatically open respective search string in the GUI application.

If the docset for a specific application is not available, you can either create it as described in this link or request one from the community.

Another notable of Zeal is great integration with popular apps, such as Atom, Emacs, Sunblime text, Vim, using plugins. For example, to integrate Vim, install Zeal for Vim plugin. You can get all plugins from the Zeal usage page.

Zeal can be helpful when you don't have Internet access. Download all datasets of your choice and learn the programming languages of your choice. Give it a try, you won't be disappointed!

More good stuffs to come. Stay tuned!

Cheers!

Resource: