Version 1 (modified by akempgen, 14 years ago) (diff)


TracNav(Development)? This is part of the Development Documentation Project, please help document Colloquy if you know anything that would be relevant here for other users to know about.

Creating Colloquy Styles

A new major feature of Colloquy 2 are the extensible conversation styles. Styles are simple OS X bundles wraped around a CSS file file (at minimum) or a CSS file and a XSL file. Knowing this, the fact that Colloquy uses XML to store chat messages that come in over the network is no surprise to some. Pairing these three technologies gives us great flexibility when processing and displaying a message on screen.

The process of formatting a message follows these steps, start to finish. Frist, wrap the message in a simple XML envelope, encoding any special characters and representing IRC styling as XHTML. This XML envelope gets transformed with the curent style's XSL file (or a built-in default XSL file). The resulting transformation from the XSL on the XML should be XHTML that can then be rendered with help from the style's CSS file. Rendering is done via Apple's Safari (WebKit) engine—so the possibilities are endless (evidenced by the built-in iChat like Bubbles style).

The anatomy of a complex style is as follows, with optional elements italicized.

  • Sample.colloquyStyle
    • Contents
      • Info.plist
      • Resources
        • main.css
        • main.xsl
        • parameters.plist
        • supplement.html
        • preview.colloquyTranscript
        • background.png
        • swosh.png
        • Variants
          • Inverted.css
          • Orange Background.css
        • English.lproj
          • InfoPlist.strings
          • Variants.strings
        • French.lproj
          • InfoPlist.strings
          • Variants.strings

The Variants folder inside the Resources is a great way to provide subtile variations upon the main CSS that gives the end user more choice. These variants show up as a sub-menu of the style, named exactly as they are in the variants folder (or keyed upon that name to a translation in the users localization Variants.strings). Any images you wish to use should also be bundles in the Resources folder and referenced relatively through the HTML or CSS.

For examples of various styles, look inside Colloquy's application bundle in the "Contents/Resources/Styles?" folder. You will find the Standard and Bland styles use the built-in "default.xsl" file, while the Bubbles and Novel style use custom XSL files. Colloquy also uses the standard Info.plist keys defined by Apple, namely CFBundleName and CFBundleIdentifier.