Documentation
Code Reference
Installation & Updates
API Reference
Configuration
Documentation & Help Version 5.0
YAML is a CSS framework developped by Dirk Jesse, for modern, flexible, browser-tolerant and accessible multi-column layouts (see www.yaml.de/en/). conceptcms support for YAML basically consists in:
Download the version you need under www.conceptcms.com. We offer "YAML Only" (only CSS files) or "YAML with Examples" (CSS and some example templates already working in conceptcms).
Installation in conceptcms is done via the Website/Customer-Import (see Website-Import). In fact our YAML version consists of an empty Website, just with CSS (and examples, if applicable).
Installation into an existing customer is possible without problems. Existing CSS or templates are not touched during the import, alle YAML files are just added.
After successfull import, in your stylesheet list (see Manage CSS / Stylesheet List), the groups "YAML" and "MyYaml" as well as the both CSS "master.css" and "master_ie_patches.css" will appear. If you already had these master CSS, they will be now doubledn and you should revise and "consolidate" them.
Basically, you can use YAML according to your personal preferences. From conceptcms point of view, the following procedures are relevant if you want to fully benefit from YAML within conceptcms.
conceptcms requires a so-called Master-CSS (master.css) for different reasons (see Master Stylesheet / Default Stylesheet / IE Hacks). In addition, there should be a separate Master-CSS for browser patches (master_ie_patches.css). These two CSS are no YAML-CSS, but they are essential for conceptcms and are used to import the respective YAML "Entry"-CSS. Usually, we are talking about:
Import has to take place with the real file name in conceptcms (in this case, it is not possible to automatically re-write the name/path):
If you use YAML outside of conceptcms, you probably would write all individual changes and enhancements into the respective CSS files provided for this purpose by YAML (e.g.. into basemod.css and content.css) - as long as you do not touch the core, this is perfect. You can proceed this way within conceptcms, too - especially if your Website is not very complex and everything is based on YAML.
However, sometimes it might make sense not to touch the YAML CSS at all, but to write your modifications and enhancements in separate CSS. This would create another level of the cascade, and would grant you the option to flexibly handle situations where for example a YAML-based class needs to have different values at different places in the same Website.
A typical case is working with imported Template Sets; this can best be explained with an example:
We provide - usually always YAML-based - Template Sets (see Website Export (version 5.1 and higher)). They consist of structural and HTML template/s, and bring their own styles, too, as we use styles to format everything. So we also provide a separate CSS file which then could be modified by you according to your colour schemes, measures etc. However, we have to solve two problems now:
We solve these problems by delivering a separate CSS file for each Template Set (e.g. news_tpl_01.css). This CSS might/will contain definitions that refer to YAML classes (applying the cascade).
You could now do the following:
In this case (case 1), the my_layout.css importing section could look like:
On the one hand, we benefit from the cascade (we did not modify any YAML CSS, but can refer to all YAML CSS), on the other hand, all our individual definitions and modifications of classes from YAML CSS are defined separately and can easily be controlled via CSS exceptions on the level of menu items (see Manually Modified Stylesheet Handling).
If we had provided our classes and modifications directly in a YAML CSS, there would be no way to include/not include them in a controlled way without affecting the rest of the Website, and in addition users would need to write "our" modifications into "their" CSS, this way mixing up things.
conceptcms re-writes all original paths and names contained in original YAML CSS files (import of CSS, path to JavaScript, path to images) on saving into paths/names that fit the logic of conceptcms. This works alway, whenever a YAML path/name appears, it will be converted again.
Something like
@import url(../yaml/navigation/nav_shinybuttons.css);
would be converted to e.g.
@import url(./ID_usr_style.css);
(where the ID is specific for the installtion/customer).
Or
url("images/shiny_buttons/background.png")
is converted into
url(../../external/yaml/v_3.1/yaml/navigation/images/shiny_buttons/background.png)
In CSS files you have once saved, you will never see YAML paths or names, but paths and names compatible with conceptcms.
Due to our re-writing mechanism (see above), you can use the YAML-Builder (see builder.yaml.de) to create CSS code for the following YAML-CSS:
You can just copy this code form YAML-Builder and insert it into the respective CSS. All paths will automatically be converted on saving into conceptcms-compatible formats. You might also use the HTML code offered by the YAML builder as base for your menu item and document templates.
There is no automated update mechanism for YAML within conceptcms, as we can never know if an update is compatible with your website implementation. However, you can make the changes for a new version manually in the code of the existing files. This is the only case where modifying the core is okay.
We usually try to make the newest YAML version available for conceptcms as soon as possible. This version is then offered under www.conceptcms.com for download. However, there are a few things inside of conceptcms that need to be modified, too: We need to create a new sub-directory for the respective YAML version and might to add images and scripts (these components might not be delivered with the download, but are part of conceptcms); in addition we might need to adapt the re-writning mechanism to the new version (names and paths might change or paths are added). In the meantime, you might already be able to use the newest YAML version, but maybe minor things don't work until we provide the update for conceptcms, too. This happens usually with the next upcoming conceptcms release after we have released the YAML download.
If you want to be sure on the version currently fully supported, you might look for the directory
../../external/yaml/
in your installation. The following subdirectory is the version (scheme /v_3.1/). If you feel comfortable with this, of course you could at least add the new structure on your own, just following the logic you see for the existing one/s. However, this would maybe not help you with automatic re-writing, but you could do this manually, too.