Version 9 (modified by cho45, 9 years ago)



Chemr (is pronounced as きめぇwww) is an application for reading references.


  • Reading CHM (Compiled HTML Help)
  • Reading CHM Bundle (original format)
  • Incremental index search
  • Useful keybinds
  • User StyleSheets?
  • Full-text search capability (currently not multilingual)

Chemr is designed for good indexed CHMs for example reference manuals.


Super Alpha (version 0):

This package includes RubyCocoa? and the others dependencies, so will work as standalone.

Latest announces:


Chemr evaluates ~/.chemr/initrc.rb at launching and ~/.chemr/keybinds.rb at key pressed.

keybinds.rb sample:

keybinds["C-p"] = self.method(:prevCandidate)
keybinds["C-n"] = self.method(:nextCandidate)
keybinds["C-u"] = {|s|
        @search.stringValue = ""

Bundle .chm (Original extension)

Chemr can also read .chm bundle for not compiled but indexed htmls. This format is useful because of not wasting long time for compiling htmls and not requiring Windows.

This has following structure and format:

  • Hoge.chm/
    • Contents/
      • Info.plist (describe below)
      • PkgInfo? (Just "BNDL????" 9bytes)
      • Resources/
        • index.html
        • keyword.yaml
        • toc.yaml
        • ....


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "">
<plist version="1.0">

        <string>Title of chm file</string>

All path (CHMHome, CHMKeyword, CHMTOC) is absolute path from Resource directory.

keyword.yaml and toc.yaml has following structure


  - Brief History
    - brief_history.html
  - Scope
    - 1_scope.html
# ruby code
["keywordname", ["url from Resource dir."]]
["keywordname", ["url from Resource dir."]]


    :local: brief_history.html
    :children: []
    :name: Brief History
    :local: 1_scope.html
    :children: [more childs....]
    :name: Scope


svn co

Also requires chmlib, its ruby binding and latest RubyCocoa?:

My Rakefile uses rubycocoa command which is deep in rubycocoa repository. But only for build, this is not required.


$ rake


$ xcodebuild
$ open build/Release/

If you want only to modify ruby sources. This process is not required. You can edit*.rb directly, because these files are loaded dynamically.

Chemr draws upon

Licensed under GPL. See COPYING.