Info.plist
This document is a list of all the keys that can be placed in a Sandvox plugin's Info.plist file.
Standard Keys
The following keys should be set for a component.
- CFBundleDevelopmentRegion
- The base language. For English, we use the two-letter code 'en' to match our style.
- CFBundleExecutable
- The name of your executable file, usually the component without indication of its type, e.g. foo. Karelia uses ${EXECUTABLE_NAME}
- CFBundleGetInfoString
- Version/Copyright string. Karelia uses ${SANDVOX_VERSION} (${SVN_VERSION}), (c) 2008 Karelia Software
- CFBundleIdentifier
- Unique identifier in reverse domain name format, e.g. org.johndoe.sandvox.FooPagelet. Karelia uses sandvox.${PROJECT_NAME}
- CFBundleName
- Name of product. Karelia uses ${PRODUCT_NAME}
- CFBundleShortVersionString
- Release version number of your plugin, e.g. 1.0. Karelia uses ${SANDVOX_VERSION}
- CFBundleSignature
- Should be Svox
- CFBundleVersion
- Optional build number of your plugin, e.g. 477. Karelia uses ${SVN_VERSION}
- NSPrincipalClass
- Class name of your Plugin Delegate, e.g. FooDelegate
General Sandvox Plug In Keys
- KTCSSClassName
- When generating your plugin's HTML content, Sandvox will enclose it in a div element. This key specifies the CSS class name for that div so that designs can customize it. Sandvox will automatically append the class name with -page or -pagelet depending on the usage, so do not specify this in the property. e.g. use photo rather than photo-page.
- KSHelpAnchor
- The name of the help page for the pagelet, page or index. Be sure to use underscores and not include any extension. Karelia Only, since it refers to help anchors within Sandvox.
- KTPluginIconName
- Name of resource file for this plugin's 32x32 icon, as it shows up in the popup menus. e.g. foo.png. Can be an image file like png or tiff, or an icns file, which has the advantage of having a 16-pixel version. this can actually be an absolute path to a system file, if you wish to use an image already installed on Tiger/Leopard.
- KTPluginName
- Human-readable, localizable version of this plugin. Avoid suffix like 'Page' and 'Pagelet if possible. e.g. Foo Badge
- KTPluginDescription
- The human-readable, localizable short description of the plugin's function. (Not currently used in the Sandvox UI.)
- KTPluginPriority
- An integer representing where it should go in the popup list. 9 is for advanced "pro" elements only; 5 is the normal value that puts it below the basic items. e.g. <integer>5</integer>
- KTTemplateName
- Optional name of HTML resource file (without .html extension) that is the template file that is processed to build a page's content. If not specified, a file "template.html" will be assumed.
- KTPluginCSSFilesNeeded
-
Array of CSS resource files used by your plugin; the contents are appended to the CSS generated for your site. If you don't know the resources to add until runtime, you can define
- (void)addCSSFilePathToSet:(NSMutableSet *)aSet forPage:(KTPage *)aPage;
- KTPluginResourcesNeeded
- Array of resource files used by your plugin; the contents are appended uploaded to the site if this plugin is used.
- KSMinimumAppVersion
- Minimum application version required for this plugin to function. Specify a value here if your plugin will not function on versions of Sandvox below a particular version.
Element Plug In Keys
- KTPluginUntitledName
- The human-readable, localizable name of an untitled item when it is first created. It can have the name 'Untitled' in it, or it might just indicate its function.
- KTPluginNibFile
- Name of the nib file (minus the .nib extension) that Sandvox will load into the Inspector.
- KTElementAllowsIntroduction
- A boolean specifying if the element should allow the user to enter introductory text before the element's content. Defaults to NO
- KTElementSupportsPageUsage
- A boolean specifying if Sandvox is allowed to create full pages from the element. Defaults to NO
- KTElementSupportsPageletUsage
- A boolean specifying if Sandvox is allowed to create pagelets from the element. Defaults to YES
- KTPageName
- Human-readable, localizable version of this plugin for when the plugin is used specifically as a page.
- KTPageAllowsCallouts
- A boolean specifying if the page supports callouts. Defaults to NO.
- KTPageAllowsNavigation
- When a page is placed in a suitable collection, whether the user should be able to navigate to the next and previous pages. Defaults to YES
- KTPageDisableComments
- For certain specialized page plugins, you may wish to disallow the user from turning on comments. If so, specify YES for this key. Defaults to NO. You can also change this setting at runtime using the KTPage API.
- KTPageNibFile
- Name of the nib file specific to pages (minus the .nib extension).
- KTPageSidebarChangeable
- A boolean specifying if the user can turn the sidebar on and off when the element is displayed as a page. Defaults to YES.
- KTPageSeparateInspectorSegment
- A boolean specifying if the plugin's Inspector should be displayed separately from the Page Inspector. Only affects pages. Please avoid using in third party plugins. Defaults to NO.
- KTPageUntitledName
- Like KTPluginUntitledName but specific to page usage. Falls back to the KTPluginUntitledName value.
- KTPageShowSidebar
- A boolean specifying if newly created pages should have the sidebar visible. For example the Photo plugin has this set to NO. Defaults to YES
- KTPageletCanHaveTitle
- Only affects the plugin when displayed as a pagelet. A boolean specifying if the pagelet is allowed a title. Defaults to YES
- KTPageletName
- Human-readable, localizable version of this plugin for when the plugin is used specifically as a pagelet.
- KTPageletUntitledName
- Like KTPluginUntitledName but specific to pagelet usage. Falls back to the KTPluginUntitledName value.
- KTPluginInitialProperties
- An optional dictionary containing the initial properties of a newly created plugin.
Index Plug In Keys
- KTPresets
- Dictionary of index presets so that one index type can be shared among several different user-visible index types.
- KTPreferredPageBundleIdentifier
- Identifier of which page is created when one creates a collection with the given index.
- KTIndexNavigationArrowsStyle
-
How child pages' navigation arrows should appear. Specify
- 0 - No navigation (default)
- 1 - Graphical arrows
- 2 - Textual navigation
Example/Template
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleGetInfoString</key>
<string>${SANDVOX_VERSION} (${SVN_VERSION}), (c) 2008 Karelia Software</string>
<key>CFBundleIdentifier</key>
<string>sandvox.${PROJECT_NAME}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>${SANDVOX_VERSION}</string>
<key>CFBundleSignature</key>
<string>Svox</string>
<key>CFBundleVersion</key>
<string>${SVN_VERSION}</string>
<key>KTElementSupportsPageletUsage</key>
<true/>
<key>KTElementSupportsPageUsage</key>
<true/>
<key>KSHelpAnchor</key>
<string>Foo</string>
<key>KSMinimumAppVersion</key>
<string>1.5</string>
<key>KTPageletCanHaveTitle</key>
<true/>
<key>KTPluginCSSFilesNeeded</key>
<array/>
<key>KTPluginIconName</key>
<string>Foo</string>
<key>KTPluginInitialProperties</key>
<dict/>
<key>KTPluginName</key>
<string>Google Maps</string>
<key>KTPluginNibFile</key>
<string>Foo</string>
<key>KTPluginPriority</key>
<integer>5</integer>
<key>KTPluginUntitledName</key>
<string>My Google Map</string>
<key>KTTemplateName</key>
<string>FooTemplate</string>
<key>NSPrincipalClass</key>
<string>FooDelegate</string>
</dict>
</plist>
