Goals
-----

The trunk/Identity directory exists to organize CentOS corporate identity artworks.

Description
-----------

The CentOS Project corporate identity is the ``persona'' of the organization known as The CentOS Project.  The CentOS Project corporate identity plays a significant role in the way the CentOS Project, as organization, presents itself to both internal and external stakeholders. In general terms, the CentOS Project corporate visual identity expresses the values and ambitions of the CentOS Project organization, its business, and its characteristics.

The CentOS Project corporate identity provides visibility, recognizability, reputation, structure and identification to the CentOS Project organization by means of corporate design, corporate communication, and corporate behaviour.

The CentOS Project settles down its corporate visual identity on a ``monolithic corporate visual identity structure''. In this structure The CentOS Project uses one unique name (The CentOS Brand) and one unique visual style (The CentOS Default Theme) in all its manifestations.

The CentOS Brands
     The CentOS brand is the name or trademark that conncects the producer with their products. In this case, the producer is The CentOS Project and the products are the CentOS distributions, the CentOS web sites, the CentOS promotion stuff, etc.

     See trunk Identity Brands, for more information.

The CentOS Themes
     The CentOS themes are a set of image files connected by one unique visual style. The CentOS themes implements CentOS project corporate visual identity in each visual manifestation of CentOS project (e.g., distributions, websites, promotion stuff, etc.).

     See trunk Identity Themes, for more information.

Inside a monolithic corporate visual identity structure, internal and external stakeholders use to feel a strong sensation of uniformity, orientation, and identification with the organization. No matter if you are visiting websites, using the distribution, or acting on social events, the one unique name and one unique visual style conect them all to say: Hey! we are all parts of the CentOS project.  And, probably, some vister will say: Can I join the party?  Yes you can, it is free. :)

Usage
-----

To produce identity artworks, use the following commands:

centos-art render 'path/to/dir'

     When path/to/dir refers to one renderable directory under trunk/Identity, this command renders identity artworks using both related design models and related translation files.

centos-art render 'path/to/dir' --filter='pattern'

     When path/to/dir refers to one renderable directory under trunk/Identity, this command renders identity artworks using both related design models and related translation files that match the regular expression passed in --filter='pattern' argument.

     To control the number of files produced by centos-art command, you need to look into the translation path and provide a regular expression pattern that matches the translation path, or paths, related to the file, or files, you want to produce.

     The regular expression pattern you provide to centos-art command is applied to the translation path from its very beginning. It is not the same to say 5/en/01-welcome that 01-welcome, the frist expression matches but the last one does not.

     When using --filter='pattern' you don't need to specify the file extension. It is removed from translation path before applying the pattern, so it doesn't count here.

Renderable directories
----------------------

Inside trunk/Identity, renderable directories should have one of the following directory layouts:

Layout 1: Simple image rendering
................................

This directory layout contains one Img/ directory (to store final images), one Tpl/ directory to store design templates, and the translation entry is empty (there isn't translation files in this configuration).  In this configuration, one design template produces one untranslated PNG image, just as it is in the template.

trunk/Identity/path/to/dir
|-- Img
|   |-- anaconda_header_fig1.png
|   |-- anaconda_header_fig2.png
|   `-- anaconda_header_summary.png
`-- Tpl
    |-- anaconda_header_fig1.svg
    |-- anaconda_header_fig2.svg
    `-- anaconda_header_summary.svg

Layout 2: Simple image rendering (extended)
...........................................

This directory layout contains one Img/ directory (to store final images), one Tpl/ directory to store design templates, and the translation entry is empty (there isn't translation files in this configuration).  When images are rendered, the Img/ directory structure is created automatically using the Tpl/ directory structure as reference.  In this configuration, one design template produces one untranslated PNG image, just as it is in the template.

trunk/Identity/path/to/dir
|-- Img
|   |-- Corporate
|   |   `-- monolithic.png
|   `-- Distro
|       `-- Anaconda
|           `-- Header
|               |-- fig1.png
|               |-- fig2.png
|               `-- summary.png
`-- Tpl
    |-- Corporate
    |   `-- monolithic.svg
    `-- Distro
        `-- Anaconda
            `-- Header
                |-- fig1.svg
                |-- fig2.svg
                `-- summary.svg

Layout 3: Language specific image rendering
...........................................

This directory layout extends previous one in order to produce language-specific images.  This directory layout contains one Img/ directory (to store final images), one Tpl/ directory to store design templates, and the translation entry contains translation files inside (organized by language codes).

trunk/Translations/Identity/path/to/dir
|-- en
|   |-- Corporate
|   |   `-- monolithic.sed
|   `-- Distro
|       `-- Anaconda
|           `-- Header
|               |-- fig1.sed
|               |-- fig2.sed
|               `-- summary.sed
`-- es
    |-- Corporate
    |   `-- monolithic.sed
    `-- Distro
        `-- Anaconda
            `-- Header
                |-- fig1.sed
                |-- fig2.sed
                `-- summary.sed

When images are rendered, the Img/ directory structure is created automatically using the translation entry structure as reference (see above).

trunk/Identity/path/to/dir
|-- Img
|   |-- en
|   |   |-- Corporate
|   |   |   `-- monolithic.png
|   |   `-- Distro
|   |       `-- Anaconda
|   |           `-- Header
|   |               |-- fig1.png
|   |               |-- fig2.png
|   |               `-- summary.png
|   `-- es
|       |-- Corporate
|       |   `-- monolithic.png
|       `-- Distro
|           `-- Anaconda
|               `-- Header
|                   |-- fig1.png
|                   |-- fig2.png
|                   `-- summary.png
`-- Tpl
    |-- Corporate
    |   `-- monolithic.svg
    `-- Distro
        `-- Anaconda
            `-- Header
                |-- fig1.svg
                |-- fig2.svg
                `-- summary.svg

In this configuration, one language-specific file is applied to one design tempalate to produce one translated PNG image. The relation between language-specific translation file and design template is done removing the language-specific directory from translation path, and the one design template path that matches it is used.

If no design template is found for one translation file, the final PNG image for that translation file is not produced and the next translation file in the list is evaluated.

For example, in this configuration the following translation files:

trunk/Translations/Identity/path/to/dir/en/Corporate/monolithic.sed
trunk/Translations/Identity/path/to/dir/es/Corporate/monolithic.sed

match the same design template file:

trunk/Identity/path/to/dir/Tpl/Corporate/monolithic.svg

in order to produce the following PNG image files:

trunk/Identity/path/to/dir/Img/en/Corporate/monolithic.png
trunk/Identity/path/to/dir/Img/es/Corporate/monolithic.png

Layout 4: Release and language specific image rendering
.......................................................

This directory layout extends previous one in order to produce language-specific images for different major releases of CentOS distribution (as CentOS release schema describes).

This directory layout contains one Img/ directory (to store final images), one Tpl/ directory to store design templates, and the translation entry contains translation files inside (organized by language codes and major release numbers).

trunk/Translations/Identity/path/to/dir
|-- 5
|   |-- en
|   |   |-- Corporate
|   |   |   `-- monolithic.sed
|   |   `-- Distro
|   |       `-- Anaconda
|   |           `-- Header
|   |               |-- fig1.sed
|   |               |-- fig2.sed
|   |               `-- summary.sed
|   `-- es
|       |-- Corporate
|       |   `-- monolithic.sed
|       `-- Distro
|           `-- Anaconda
|               `-- Header
|                   |-- fig1.sed
|                   |-- fig2.sed
|                   `-- summary.sed
`-- 6
    |-- en
    |   |-- Corporate
    |   |   `-- monolithic.sed
    |   `-- Distro
    |       `-- Anaconda
    |           `-- Header
    |               |-- fig1.sed
    |               |-- fig2.sed
    |               `-- summary.sed
    `-- es
        |-- Corporate
        |   `-- monolithic.sed
        `-- Distro
            `-- Anaconda
                `-- Header
                    |-- fig1.sed
                    |-- fig2.sed
                    `-- summary.sed

When images are rendered, the Img/ directory structure is created automatically using the translation entry structure as reference (see above).

trunk/Identity/path/to/dir
|-- Img
|   |-- 5
|   |   |-- en
|   |   |   |-- Corporate
|   |   |   |   `-- monolithic.png
|   |   |   `-- Distro
|   |   |       `-- Anaconda
|   |   |           `-- Header
|   |   |               |-- fig1.png
|   |   |               |-- fig2.png
|   |   |               `-- summary.png
|   |   `-- es
|   |       |-- Corporate
|   |       |   `-- monolithic.png
|   |       `-- Distro
|   |           `-- Anaconda
|   |               `-- Header
|   |                   |-- fig1.png
|   |                   |-- fig2.png
|   |                   `-- summary.png
|   `-- 6
|       |-- en
|       |   |-- Corporate
|       |   |   `-- monolithic.png
|       |   `-- Distro
|       |       `-- Anaconda
|       |           `-- Header
|       |               |-- fig1.png
|       |               |-- fig2.png
|       |               `-- summary.png
|       `-- es
|           |-- Corporate
|           |   `-- monolithic.png
|           `-- Distro
|               `-- Anaconda
|                   `-- Header
|                           |-- fig1.png
|                           |-- fig2.png
|                           `-- summary.png
`-- Tpl
    |-- Corporate
    |   `-- monolithic.svg
    `-- Distro
        `-- Anaconda
            `-- Header
                |-- fig1.svg
                |-- fig2.svg
                `-- summary.svg

In this configuration, one language-specific file,  is applied to one design tempalate to produce one translated PNG image for each major release specified in the translation entry.  The relation among release-specific and language-specific translation files, and design template is done removing the release-specific and language-specific directories from translation path, and looking for the one design template path that matches.

If no design template matches the translation file, the final PNG image for that translation file is not produced and the next translation file in the list is evaluated.

For example, in this configuration, the following translation files:

trunk/Translations/Identity/path/to/dir/5/en/Corporate/monolithic.sed
trunk/Translations/Identity/path/to/dir/5/es/Corporate/monolithic.sed
trunk/Translations/Identity/path/to/dir/6/en/Corporate/monolithic.sed
trunk/Translations/Identity/path/to/dir/6/es/Corporate/monolithic.sed

match the same design template file:

trunk/Identity/path/to/dir/Tpl/Corporate/monolithic.svg

in order to produce the following PNG image files:

trunk/Identity/path/to/dir/Img/5/en/Corporate/monolithic.png
trunk/Identity/path/to/dir/Img/5/es/Corporate/monolithic.png
trunk/Identity/path/to/dir/Img/6/en/Corporate/monolithic.png
trunk/Identity/path/to/dir/Img/6/es/Corporate/monolithic.png

Layout 5: Brands specific image rendering
.........................................

See trunk Identity Brands, for more information about themes specific image rendering and directory layout.

Layout 6: Themes specific image rendering
.........................................

See trunk Identity Themes, for more information about themes specific image rendering and directory layout.

File name convenctions
----------------------

As file name convenction, inside CentOS Artwork Repository, both text-based and image-based file name produced by centos-art.sh script has the same name of their translation files without the .sed extension. The file extension is set as follow:

When text-based files are rendered
..................................

Text-based files end up having the same extension of their design template file.

When image-based files are rendered
...................................

Image-based files always end up having the .png extension.

     Tip Once .png images are created, other image formats may be created using the renderFormats post-rendering action, inside the image-based related pre-rendering configuration script.

     See trunk Scripts Bash, for more information.

See also
--------

References
----------

  * http://en.wikipedia.org/Corporate_identity (and related links).