Stacks, Themes and Layouts all with one tool
pList Editor not only supports the development of classic stacks, but new themes and layouts as well, which are part of the upcoming new standalone Stacks 6 App.
Build stacks without touching XML
While being a standard XML structure, .plist files are difficult to create, read and maintain, given the strict rules they need to follow and their verbosity. This becomes even more difficult as Stacks doesn't give you any of clue of what went wrong given a not working Info.plist.
Add custom controls to your stacks with a few click
.pLists are not just providing the general stack configuration, they also contain the definitions for all custom controls of a stack, which are used to to set the various stack options and parameters. With pList Editor you simply configure those controls and they just work.
A stacks update has never been easier
After creating a fully fledged stack configuration and UI definition within Stacks edit mode, just hit the preview button, copy and paste the XML structure into the stack Info.plist file, which is part of the stack bundle.
No strings attached
The pList Editor stack is total free to download and use. Why? Well, we all want more and better stacks becoming available and pList Editor helps to create those. It's beneficial to the whole Stacks community.
It’s a stack that enables stack developers to create fully-fledged Info.plist files right within Stacks. The Info.plist stores the core configuration required to run stacks within the Stacks plugin or the standalone Stacks app. It includes details like the stack name, version, icon, and more. In addition, it defines all the necessary custom controls within the Stacks HUD, allowing users to modify stack properties and settings.
What makes pList Editor particularly useful is its ability to automatically generate all the required XML to ensure a correct and sound Info.plist. The Info.plist file is part of the Stacks bundle structure that is essential for packaging all the assets needed for a stack to function within the Stacks library.
If you create your own websites using Stacks, pList Editor is not adding any value as it is only required when building your own stacks. But hey, have you ever thought about creating your own stack to reuse a piece of custom HTML or JS you found somewhere on the internet? If you want to easily reuse that code in your websites in the future, why not packaging the code into a custom stack to make it easier to reuse in the future?
You obviously need the Stacks plugin for Rapidweaver or the new upcoming standalone Stacks 6 App (in Beta) to use the pList Editor. Other than that you just need a text editor to copy and paste the the content into the Info.plist within your stacks bundle.
Not at this point and to be honest, it is rather self-explanatory stack as long as you know what a Info.plist is all about. Other than that, there are just a few things to get started:
Char | Escaped | Meaning |
---|---|---|
& |
& |
Ampersand (used to start an entity) |
< |
< |
Less-than (used to start a tag) |
> |
> |
Greater-than (used to end a tag) |
" |
" |
Double quote (used in attributes) |
' |
' |
Apostrophe (used in attributes) |
If you want to create your own stacks today, the goto location for more details is the Stacks API documentation provided by YourHead Software. As the new Stacks 6 App is on the horizon, there are going to be some major enhancements to the Stacks API which are not yet reflected in the current documentation. Stacks 5.1 for Rapidweaver supports API version 13, wheras the Stacks 6 App will support API version 15 and higher.
General
Templates
%[endif]%
tags for an opening %[if]%
tag. if not, you will find those tags showing up in your final code.%()%
around them. This could become very complex in case you have multiple conditions per if-endif statement.%id=a-new-property%
. Even though this would work in Stacks 5.1 today, Stacks 6 is around the corner supporting a new template language which will not support this naming scheme, which makes migrating such property names difficult. Use underscores instead of dashes or camel-case, i.e. %id=a_new_property%
or %id=aNewProperty%
.Properties
%[if]% %[else]% %[endif]%
sectionstrueValue
and falseValue
capability to redefine the standard value other than True
or False
e.g. a CSS utility class bg-primary
Compatibility
%slice%, %html%
or %text%
at a later point to an already existing template is no proplem as long as you add it to the end. If introduced before an existing %slice%, %html% or %text%
, all already used stacks are impacted as the content of previous %slice%, %html% or %text%
are now mixed up showing up in the wrong element.deprecated
in the Info.plist and create a new version with a different gundle identifier. Just changing the version number doesn't help here. Deprecated leaves the stack available for existing projects, but hides the stack in the library.Let's imagine you have a project with a couple of custom stacks. The best way to organize around your various Info.plist files required for those stacks is setting up a normal stacks project and put a pList Editor stack on each individual page representing a single Info.plist for each of your stacks.
Just name the page after the respective stack the Info.plist belongs to and even move pages under other pages to visually represent child stacks. Organizing things along those concepts, all of you Info.plist are in one place and easily accessible.
Unfortunately Stacks itself doesn't provide you any debug tools to check an invalid Info.plist. If something is wrong with your custom stack or its Info.plist, it is either not shown in stacks library or Stacks tells you that your stack is no longer available and can not be rendered.
When it comes to the Info.plist you can use Apples plutil
terminal command, which is standard on every modern Mac. In your terminal just enter the following commands in your stacks bundle
% cd Contents
% plutil Info.plist
which first enters the Contents directory, then checks the contained Info.plist file and returns OK or in case of an error you get a detailed error message with the respective line number. Syntax errors should not be an issue when using pList Editor, but not correctly encoded characters could invalidate the XML as well. To encode special characters correctly, just use the following replacements
Char | Escaped | Meaning |
---|---|---|
& |
& |
Ampersand (used to start an entity) |
< |
< |
Less-than (used to start a tag) |
> |
> |
Greater-than (used to end a tag) |
" |
" |
Double quote (used in attributes) |
' |
' |
Apostrophe (used in attributes) |
Absolutely yes. As more details become available about the new Themes and Layout API, pList Editor is going to support those .plist features as well. Themes and layouts use the same basic concepts as normal stacks. At this point pList Editor already supports the known features of the currently available Stacks 6 beta.
Even though pList Editor is free, it is not open source at this point. This might change in the future. If you have some ideas or improvents you wanna see within pList Editor, feel free to contact me.