cheatset

Gem Version

Generate your own cheat sheets as docsets for Dash! Use this simple command line tool and write your cheat sheets in an easy language (Ruby DSL).

Installation

$ sudo gem install cheatset

Note: this requires the Xcode Command Line Tools to be installed. Install them using this:

$ xcode-select --install

Contributions

If you make a useful cheat sheet, please contribute it to Dash.

Usage

Write a file (here sample.rb) containing your cheat sheet data, e.g.:

cheatsheet do
  title 'Sample'               # Will be displayed by Dash in the docset list
  docset_file_name 'Sample'    # Used for the filename of the docset
  keyword 'sample'             # Used as the initial search keyword (listed in Preferences > Docsets)
  # resources 'resources_dir'  # An optional resources folder which can contain images or anything else

  introduction 'My *awesome* cheat sheet'  # Optional, can contain Markdown or HTML

  # A cheat sheet must consist of categories
  category do
    id 'Windows'  # Must be unique and is used as title of the category

    entry do
      command 'CMD+N'         # Optional
      command 'CMD+SHIFT+N'   # Multiple commands are supported
      name 'Create window'    # A short name, can contain Markdown or HTML
      notes 'Some notes'      # Optional longer explanation, can contain Markdown or HTML
    end
    entry do
      command 'CMD+W'
      name 'Close window'
    end
  end

  category do
    id 'Code'
    entry do
      name 'Code sample'
      notes <<-'END'
        ```ruby
        sample = "You can include code snippets as well"
        ```
        Or anything else **Markdown** or HTML.
      END
    end
  end

  notes 'Some notes at the end of the cheat sheet'
end

To convert this file to a docset, call

$ cheatset generate sample.rb

The following values may contain Markdown or HTML:

  • The introduction and the notes of the cheat sheet
  • The name and the notes of the entries

Syntax highlighting is supported (see Ruby code in the sample). For a list of supported languages, see the rouge lexer repository

For more complete examples look at some of the actual cheat sheets.

If you do not use Ruby or lack a working Ruby toolchain and still want to generate cheatsheets.

You can use the cheatset Docker image.

$ docker pull jonasbn/cheatset:lastest
$ docker run --rm  -it --volume $PWD:/tmp --name cheatset jonasbn/cheatset:latest generate samble.rb

For more details on the Docker image please visit the repositories on DockerHub or GitHub

Advanced Usage

Apart from the attributes listed in the sample cheat sheet above, you can also use these:

  • style (under cheatsheet) - define any CSS style you want. See example here
  • html_class (under category) - define a HTML class to be added to a category. This can be used to define custom styling for each category
  • td_command (under entry) - just like command, but multiple ones are added in a separate column (as opposed to a separate row)
  • td_notes (under entry) - just like notes but can be repeated multiple times, each becoming a separate column
  • html_notes (under entry) - just like notes, but doesn't support Markdown
  • index_name (under entry) - this is not displayed in the cheat sheet at all. You can use it to define a separate index name (i.e what gets added to Dash's search index and is searchable in Dash). In other words, if this entry is not present, the value in name is used.

Thanks

Nix-wie-weg for the initial code.