Theme.plist Syntax
RapidWeaver uses the theme.plist file to gather all the information it needs about the theme. The Theme.plist file is a standard xml file, meaning, if you have the developer tools installed, you can use Apple’s Property List Editor to create and edit your themes plist. You can also use a text editor such as TextWrangler or TextEdit that comes free with macOS. These tags are displayed in alpabetical order. Large dictionarys such as RWStyleVariations and RWTextTool- Bar can be found in thier own categories.

Top Level Keys

Support URL
RapidWeaver 6 added a new RWAddonSupportURL key in the theme PLIST. This key is required for all themes and should be a website address that customers can visit for support with the theme.

ColourTagCSSFiles

If colour style groups are added RapidWeaver needs to know which file(s) are to be processed for colour tag conversion. Add the following array to the root dictionary.
<key>RWColourTagCSSFiles</key>
<array>
<string>colourtag.css</string>
</array>

RWCopyFiles

The RWCopyFiles array is a list of files and folders that are to be copied when the website is published. It should be placed in the root directory.
<key>RWCopyFiles</key>
<array>
<string>styles.css</string>
<string>images</string>
</array>

RWExportFiles

The RWExportFiles array is a list of items to copy over and process when the site is built. These files can contain any of the theme syntax tags, which will be replaced with the site values on export. It should be placed in the root directory.
<key>RWExportFiles</key>
<array>
<string>text.txt</string>
</array>

RWStyleVariations

This dictionary contains all the style variations to eb included with the theme. For more info see the chapter RWStyleVariations on page 96.
<key>RWStyleVariations</key>
<dict>
</dict>

RWTemplateHTML

The RWTemplateHTML key sets the file to use as a template. This is the file that RapidWeaver will use a base for all pages in the site. It should be placed in the root directory.
<key>RWTemplateHTML</key>
<string>index.html</string>

RWTextToolbar

The RWTextToolbar dictionary contains all the relevant keys to build a toolbar. It should be placed in the root directory.
<key>RWTextToolbar</key>
<dict>
</dict>

RWThemeAuthor

The RWThemeAuthor key sets an author name for the theme. It should be placed in the root directory.
<key>RWThemeAuthor</key>
<string>Realmac Software</string>

RWThemeCapabilities

The RWThemeCapabilities key sets which new features are supported by your theme. It is a dictionary that is placed in the root directory.
<key>RWThemeCapabilities</key>
<dict></dict>

RWThemeDisplayName

Th RWThemeDisplayName should be placed in the root directory and localized for each language you want to support.
<key>RWThemeDisplayName</key>
<dict>
<key>en</key>
<string>English Theme Name</string>
</dict>

RWThemeImage

The RWThemeImage key sets the file to use for the preview in theme drawer. This file should be 115 pixels wide and 125 pixels high. The key should be placed in the root directory.
<key>RWThemeImage</key>
<string>preview.png</string>

RWThemeImageLarge

The RWThemeImage key sets the file to use for the preview in theme drawer. This file should be 800 pixels wide and 950 pixels high. The key should be placed in the root directory.
<key>RWThemeImageLarge</key>
<string>preview_large.jpg</string>

RWThemeKeyWords

The RWThemeKeywords adds keywords specific to your theme. It should be added to the root directory. Authors can add as many keywords as they wish, however they should be kept relevant to the theme. Note: It is not necessary to add the author name, theme name, theme display name or theme short name as these are searched for automatically from the existing keys in the theme.plist. Adding such keywords will devalue the theme search feature.
<key>RWThemeKeyWords</key>
<array>
<string>clean</string>
<string>white</string>
</array>

RWThemeName

The RWThemeName key names your theme. Make sure the name doesn’t clash with any other theme names. It should be placed in the root directory.
<key>RWThemeName</key>
<string>Theme Name</string>

RWThemeShippedInVersion (PRIVATE)

The RWThemeShippedInVersion key specifies which version of the RapidWeaver the theme was originally shipped with. This key is private and only used for official RapidWeaver themes.
<key>RWThemeShippedInVersion</key>
<string>8.0</string>

RWThemeShortName

The RWThemeShortName sets a name used when publishing a site. It should not contain any special charac- ters of spaces. It should be placed in the root directory.
<key>RWThemeShortName</key>
<string>supporttheme</string>

RWVersion

The RWVersion keys sets a version number for your theme. If two or more themes named the same are in- stalled RapidWeaver will use the most up-to-date version. It should be placed in the root directory.
<key>RWVersion</key>
<number>1</number>


RWStyleVariations

RWStyleGroups

The RWStyleGroups holds an array of all the style groups associated with the theme. It should be placed inside the RWThemeVariations dictionary.
<key>RWStyleGroups</key>
<array>
<dict>
</dict>
</array>

GroupDisplayName

The GroupDisplayName dictionary is located in the RWStyleGroups array and localizes the variation group display names in to each language. A key should be created for each language you wish to support.
<key>GroupDisplayName</key>
<dict>
<key>en</key>
<string>English group name</string>
</dict>

GroupMembers

The GroupMembers key holds all the members of each style variation group. It is a key value for each item in the RWStyleGroups array.
<key>GroupMembers</key>
<array>
<dict>
</dict>
</array>

GroupName

The GroupName sets a group display name. It is a key value for each item in the RWStyleGroups array.
<key>GroupName</key>
<string>Styles</string>

GroupSelectionLimit

The GroupSelectionLimit key sets a selection limit for each variation group. It is a key value for each item in the RWStyleGroups array.
<key>GroupSelectionLimit</key>
<integer>1</integer>

DisplayName

The DisplayName key is located in each item of the GroupMembers array and localizes the display name for each variation option. Again, a key should be created for each language you wish to support.
<key>DisplayName</key>
<dict>
<key>en</key>
<string>English variation name</string>
</dict>

Enabled

The Enabled key sets whether or not the variation should be selected by default. It is a key value for each member of a style variation group.
<key>Enabled</key>
<true/>

Files

The Files array gives a list of files to be added when the variation is selected. It is a key value for each member of a style variation group.
<key>Files</key>
<array>
<string>css/styles/blue.css</string>
</array>

Name

The Name key sets a name for the variation. It is a key value for each member of a style variation group.
<key>Name</key>
<string>Support Theme</string>

Type

The Type key sets the type of variation. It is a key value for each member of a style variation group. RapidWeaver 3.6 introduced a color type, previously Stylesheet was the only type of variation available.
<key>Type</key>
<string>Stylesheet</string>

DefaultColour

This is the default colour to be applied to the specified tag.
<key>DefaultColour</key>
<string>#ffffff</string>

DisplayName

The DisplayName key is located in each item of the GroupMembers array and localizes the display name for each variation option. Again, a key should be created for each language you wish to support.
<key>DisplayName</key>
<dict>
<key>en</key>
<string>Content Background</string>
</dict>

Name

The Name key sets a name for the variation. It is a key value for each member of a style variation group.
<key>Name</key>
<string>Support Theme</string>

Tag

This is the tag to be used in the colourtag.css file to link the colour picker in RapidWeaver to the stylesheet.
<key>Tag</key>
<string>%colour_content_background%</string>

Type

The Type key sets the type of variation. In this case Colour defines the variation.
<key>Type</key>
<string>Colour</string>

Example Colour Style Group

To add colour styles to your theme it needs to be added to the RWStyleGroups array in the same way as an original variation group with the exception that GroupSelectionLimit is not required.
<dict>
<key>GroupDisplayName</key>
<dict>
<key>en</key>
<string>Colours</string>
</dict>
<key>GroupMembers</key>
<array></array>
<key>GroupName</key>
<string>Colours</string>
</dict>

Example Colour Style

To add a colour style you should add the following to the GroupMembers array of the colour style group dictionary. Adding support for localisation is an (recommended) option, more information is available under the 3.5 & above keys section of this document.
<key>DefaultColour</key>
<string>#ffffff</string>
<key>DisplayName</key>
<dict>
<key>en</key><string>Content Background</string>
</dict>
<key>Name</key>
<string>Content Background</string>
<key>Tag</key>
<string>%colour_content_background%</string>
<key>Type</key>
<string>Colour</string>


RWTextToolBar

RWAlwaysDisplayFullNavigation

The RWAlwaysDisplayFullNavigation key set whether the entire menu should be output on every page or if only the current page’s child items should be displayed. It is a key value of the RWTextToolbar dictionary.
<key>RWAlwaysDisplayFullNavigation</key>
<false> or <true>

RWBreadCrumb

The RWBreadCrumb key sets the output for the opening and closing tags of an unordered list for bread-crumb navigation. It is a key value of the RWTextToolbar dictionary.
<key>RWBreadCrumb</key>
<string><ul>%items%<ul></string>

RWBreadCrumbItem

The RWBreadCrumbItem key sets the output for each item in the unordered list for bread-crumb navigation. It is a key value of the RWTextToolbar dictionary.
<key>RWBreadCrumbItem</key>
<string><li><a href=”%url%”>%title%</a>%separator%</li></string>

RWBreadCrumbItemSeparator

The RWBreadCrumbItemSeparator key defines the characters used to seperate the list of breadcrumb items. If you are using special characters here it is best to escape them to XHTML entities.
<key>RWBreadCrumbItemSeparator</key>
<string>&nbsp;>&nbsp;</string>

RWSupportedLevels

The RWSupportedLevels key sets how many levels of navigation the theme officially supports. It is a key value of the RWTextToolbar dictionary.
<key>RWSupportedLevels</key>
<integer> 5 </integer>

RWToolbarItemCurrent

The RWToolbarItemCurrent sets the output for the current page in the unordered list for main navigation. It is a key value of the RWTextToolbar dictionary.
<key>RWToolbarItemCurrent</key>
<string> <li><a href=”%url%” id=”current”>%title%</a></li> </string>

RWToolbarItemCurrentAncestor

The RWToolbarItemCurrentAncestor key styles each parent level of the menu with a currentAncestor CSS class tag. It is a key value of RWTextToolbar.
<key>RWToolbarItemCurrentAncestor</key>
<string>
<li><a href=”%url%” rel=”%rel%” class=”currentAncestor”>%title
%</a>%subitems%</li>
</string>

RWToolbarList

The RWToolbarList key sets the opening and closing tags of an unordered list for main navigation. It is a key value of the RWTextToolbar dictionary.
<key>RWToolbarList</key>
<string><ul>%items%<ul></string>

RWToolbarItemNormal

The RWToolbarItemNormal sets the output for out each item in the unordered list for main navigation. It is a key value of the RWTextToolbar dictionary.
<key>RWToolbarItemNormal</key>
<string> <li><a href=”%url%”>%title%</a></li> </string>

RWThemeCapabilities

RWSupportsContentOnlySubPagesThe RWSupportsContentOnlySubPages key is located in the RWThemeCapabilities dictionary and allows RapidWeaver to create content only sub pages. Used for coherent site design. It is part of the RWThemeCapa- bilities dictionary.
<key>RWSupportsContentOnlySubPages</key>
<true/>
Theme variations was a major feature added to RapidWeaver 3.2. It allows the users to mix and match pre-set variations in your theme. RWSupportsDisplayNameThe RWSupportsDisplayName key is located in the RWThemeCapabilities dictionary and tells RapidWeaver that the theme supports localized display names. It is part of the RWThemeCapabilities dictionary.
<key>RWSupportsDisplayNames</key>
<true/>
RWSupportsPathToThe RWSupportsPathTo key adds support for site consolidation. It is part of the RWThemeCapabilities diction- ary.
<key>RWSupportsPathTo</key>
<true>

RWSupportsToolbarRelTag

The RWSupportsToolbarRelTag key adds support for the “rel” tag being added to toolbar link items. It is part of the RWThemeCapabilities dictionary.
<key>RWSupportsToolbarRelTag</key>
<true>
Copy link
On this page
Top Level Keys
RWStyleVariations
RWTextToolBar
RWThemeCapabilities