Blame Manual/repository-html/repository_60.html

ee1f37
ee1f37
<html>
ee1f37
ee1f37
ee1f37
Permission is granted to copy, distribute and/or modify this document
ee1f37
under the terms of the GNU Free Documentation License, Version 1.2 or
ee1f37
any later version published by the Free Software Foundation; with no
ee1f37
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
ee1f37
copy of the license is included in the section entitled GNU Free
ee1f37
Documentation License.  
ee1f37
-->
406f69
ee1f37
ee1f37
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
ee1f37
            Karl Berry  <karl@freefriends.org>
ee1f37
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
ee1f37
            and many others.
ee1f37
Maintained by: Many creative people <dev@texi2html.cvshome.org>
ee1f37
Send bugs and suggestions to <users@texi2html.cvshome.org>
ee1f37
ee1f37
-->
ee1f37
<head>
b9dbd3
<title>CentOS Artwork Repository: 2.58 The trunk/Scripts/Bash/Cli/Functions/Render Directory</title>
ee1f37
b9dbd3
<meta name="description" content="CentOS Artwork Repository: 2.58 The trunk/Scripts/Bash/Cli/Functions/Render Directory">
b9dbd3
<meta name="keywords" content="CentOS Artwork Repository: 2.58 The trunk/Scripts/Bash/Cli/Functions/Render Directory">
ee1f37
<meta name="resource-type" content="document">
ee1f37
<meta name="distribution" content="global">
ee1f37
<meta name="Generator" content="texi2html 1.76">
ee1f37
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
ee1f37
<style type="text/css">
ee1f37
ee1f37
@import "/home/centos/artwork/trunk/Identity/Models/Css/Texi2html/common.css";
ee1f37
ee1f37
a.summary-letter {text-decoration: none}
ee1f37
pre.display {font-family: serif}
ee1f37
pre.format {font-family: serif}
ee1f37
pre.menu-comment {font-family: serif}
ee1f37
pre.menu-preformatted {font-family: serif}
ee1f37
pre.smalldisplay {font-family: serif; font-size: smaller}
ee1f37
pre.smallexample {font-size: smaller}
ee1f37
pre.smallformat {font-family: serif; font-size: smaller}
ee1f37
pre.smalllisp {font-size: smaller}
ee1f37
span.sansserif {font-family:sans-serif; font-weight:normal;}
ee1f37
ul.toc {list-style: none}
ee1f37
-->
ee1f37
</style>
ee1f37
ee1f37
ee1f37
</head>
ee1f37
ee1f37
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
ee1f37
ee1f37
b9dbd3
[ < ]
b9dbd3
[ > ]
ee1f37
   
b9dbd3
[ << ]
b9dbd3
[ Up ]
b9dbd3
[ >> ]
ee1f37
   
ee1f37
   
ee1f37
   
ee1f37
   
56a476
[Top]
56a476
[Contents]
b130a0
[Index]
56a476
[ ? ]
ee1f37
b9dbd3
b9dbd3
b9dbd3

2.58 The <tt>`trunk/Scripts/Bash/Cli/Functions/Render'</tt> Directory

ee1f37
b9dbd3

The render functionality exists to produce both identity and

b9dbd3
translation files on different levels of information (i.e., different
b9dbd3
languages, release numbers, architectures, etc.).
b9dbd3

b9dbd3

The render functionality relies on "renderable directory

b9dbd3
structures" to produce files. Renderable directory structures can be
b9dbd3
either "identity directory structures" or "translation directory
b9dbd3
structures" with special directories inside.
ee1f37

ee1f37
b9dbd3
b9dbd3

2.58.1 Renderable identity directory structures

aaf678
b9dbd3

Renderable identity directory structures are the starting point of

b9dbd3
identity rendition. Whenever we want to render a component of CentOS
b9dbd3
corporate visual identity, we need to point <tt>`centos-art.sh'</tt> to a
b9dbd3
renderable identity directory structure. If such renderable identity
b9dbd3
directory structure doesn't exist, then it is good time to create it. 
010b2d

b9dbd3

Inside the working copy, one renderable identity directory structures

b9dbd3
represents one visual manifestation of CentOS corporate visual
b9dbd3
identity, or said differently, each visual manifestation of CentOS
b9dbd3
corporate visual identity should have one renderable identity
b9dbd3
directory structure.
b9dbd3

b9dbd3

Inside renderable identity directory structures, <tt>`centos-art.sh'</tt>

b9dbd3
can render both image-based and text-based files. Specification of
b9dbd3
whether a renderable identity directory structure produces image-based
b9dbd3
or text-based content is a configuration action that takes place in
b9dbd3
the pre-rendition configuration script of that renderable identity
b9dbd3
directory structure.
b9dbd3

b9dbd3

Inside renderable identity directory structures, content production is

b9dbd3
organized in different configurations. A content production
b9dbd3
configuration is a unique combination of the components that make an
b9dbd3
identity directory structure renderable. One content production
b9dbd3
configuration does one thing only (e.g., to produce untranslated
b9dbd3
images), but it can be extended (e.g., adding translation files) to
b9dbd3
achieve different needs (e.g., to produce translated images).
010b2d

b130a0
b9dbd3
b9dbd3

2.58.1.1 Design template without translation

b130a0
b9dbd3

The design template without translation configuration is based on a

b9dbd3
renderable identity directory structure with an empty translation
b9dbd3
directory structure. In this configuration, one design template
b9dbd3
produces one untranslated file. Both design templates and final
b9dbd3
untranslated files share the same file name, but they differ one
b9dbd3
another in file-type and file-extension.
b130a0

b9dbd3

For example, to produce images without translations (there is no much

b9dbd3
use in producing text-based files without translations), consider the
b9dbd3
following configuration:
b130a0

b9dbd3
b9dbd3
One renderable identity directory structure:
b9dbd3
b9dbd3

In this example we used <tt>`Identity/Path/To/Dir'</tt> as the identity

b9dbd3
component we want to produce untranslated images for.  Identity
b9dbd3
components can be either under <tt>`trunk/'</tt> or <tt>`branches/'</tt>
b9dbd3
directory structure.
b9dbd3

b9dbd3

The identity component (i.e., <tt>`Identity/Path/To/Dir'</tt>, in this

b9dbd3
case) is also the bond component we use to connect the identity
b9dbd3
directory structures with their respective auxiliar directories (i.e.,
b9dbd3
translation directory structres and pre-rendition configuration
b9dbd3
structures).  The bond component is the path convenction that
b9dbd3
<tt>`centos-art.sh'</tt> uses to know where to look for related
b9dbd3
translations, configuration scripts and whatever auxiliar thing a
b9dbd3
renderable directory structure may need to have.
b9dbd3

b9dbd3
      | The bond component
b9dbd3
      |----------------->|
b9dbd3
trunk/Identity/Path/To/Dir  <-- Renderable identity directory structure.
b9dbd3
|-- Tpl                     <-- Design template directory.
b9dbd3
|   `-- file.svg            <-- Design template file.
b9dbd3
`-- Img                     <-- Directory used to store final files.
b9dbd3
    `-- file.png            <-- Final image-based file produced from
b9dbd3
                                design template file.
b9dbd3
b9dbd3

Inside design template directory, design template files are based on

b9dbd3
SVG (Scalable Vector Graphics) and use the extension
b9dbd3
.svg.  Design template files can be organized using several
b9dbd3
directory levels to create a simple but extensible configuration,
b9dbd3
specially if translated images are not required.
b9dbd3

b9dbd3

In order for SVG (Scalable Vector Graphics) files to be

b9dbd3
considered "design template" files, they should be placed under the
b9dbd3
design template directory and to have set a CENTOSARTWORK
b9dbd3
object id inside.
b9dbd3

b9dbd3

The CENTOSARTWORK word itself is a convenction name we use to

b9dbd3
define which object/design area, inside a design template, the
b9dbd3
<tt>`centos-art.sh'</tt> script will use to export as
b9dbd3
PNG (Portable Network Graphic) image at rendition time.
b9dbd3
Whithout such object id specification, the <tt>`centos-art.sh'</tt> script
b9dbd3
cannot know what object/design area you (as designer) want to export
b9dbd3
as PNG (Portable Network Graphic) image file.
b9dbd3

b9dbd3
info

Note

At rendition time, the content of <tt>`Img/'</tt> directory

b9dbd3
structure is produced by <tt>`centos-art.sh'</tt> automatically.
b9dbd3

b130a0
b9dbd3

When a renderable identity directory structure is configured to

b9dbd3
produce image-based content, <tt>`centos-art.sh'</tt> produces
b9dbd3
PNG (Portable Network Graphics) files with the .png
b9dbd3
extension. Once the base image format has been produced, it is
b9dbd3
possible for <tt>`centos-art.sh'</tt> to use it in order to automatically
b9dbd3
create other image formats that may be needed (-- Removed(pxref:trunk Scripts
b9dbd3
Bash Functions Render Config) --).
b9dbd3

b9dbd3

Inside the working copy, you can find an example of "design template

b9dbd3
without translation" configuration at <tt>`trunk/Identity/Models/'</tt>.
b9dbd3

b9dbd3

See section The <tt>`trunk/Identity'</tt> Directory, for more information.

b9dbd3

b9dbd3
b9dbd3
One translation directory structure:
b9dbd3
b9dbd3

In order for an identity entry to be considered an identity renderable

b9dbd3
directory structure, it should have a translation entry. The content
b9dbd3
of the translation entry is relevant to determine how to process the
b9dbd3
identity renderable directory entry.
b9dbd3

b9dbd3

If the translation entry is empty (i.e., there is no file inside it),

b9dbd3
<tt>`centos-art.sh'</tt> interprets the identity renderable directory
b9dbd3
structure as a "design templates without translation" configuration.
b9dbd3

b9dbd3
                   | The bond component
b9dbd3
                   |----------------->|
b9dbd3
trunk/Translations/Identity/Path/To/Dir
b9dbd3
`-- (empty)
b9dbd3
b9dbd3

If the translation entry is not empty, <tt>`centos-art.sh'</tt> can

b9dbd3
interpret the identity renderable directory structure as one of the
b9dbd3
following configurations: "design template with translation
b9dbd3
(one-to-one)" or "design template with translation (optimized)".
b9dbd3
Which one of these configurations is used depends on the value
b9dbd3
assigned to the matching list (MATCHINGLIST) variable in the
b9dbd3
pre-rendition configuration script of the renderable identity
b9dbd3
directory structure we are producing images for.
b9dbd3

b9dbd3

If the matching list variable is empty (as it is by default), then

b9dbd3
"design template with translation (one-to-one)" configuration is
b9dbd3
used. In this configuration it is required that both design templates
b9dbd3
and translation files have the same file names. This way, one
b9dbd3
translation files is applied to one design template, to produce
b9dbd3
one translated image.
b9dbd3

b9dbd3

If the matching list variable is not empty (because you redefine it in

b9dbd3
the pre-rendition configuration script), then "design template with
b9dbd3
translation (optimized)" configuration is used instead. In this
b9dbd3
configuration, design templates and translation files don't need to
b9dbd3
have the same names since such name relationship between them is
b9dbd3
specified in the matching list properly.
b9dbd3

b9dbd3

-- Removed(xref:trunk Translations) --, for more information.

b9dbd3

b9dbd3
b9dbd3
One pre-rendition configuration script:
b9dbd3
b9dbd3

In order to make an identity directory structure renderable, a

b9dbd3
pre-rendition configuration script should exist for it.  The
b9dbd3
pre-rendition configuration script specifies what type of rendition
b9dbd3
does <tt>`centos-art.sh'</tt> will perform over the identity directory
b9dbd3
structure and how does it do that.
b9dbd3

b9dbd3
                                           | The bond component
b9dbd3
                                           |----------------->|
b9dbd3
trunk/Scripts/Bash/Functions/Render/Config/Identity/Path/To/Dir
b9dbd3
`-- render.conf.sh
b9dbd3
b9dbd3

In this configuration the pre-rendition configuration script

b9dbd3
(<tt>`render.conf.sh'</tt>) would look like the following:
b9dbd3

b9dbd3
function render_loadConfig {
b130a0
b9dbd3
    # Define rendition actions.
b130a0
    ACTIONS[0]='BASE:renderImage'
b130a0
b130a0
}
010b2d
b9dbd3

Since translation directory structure is empty, <tt>`centos-art.sh'</tt>

b9dbd3
assumes a "design template without translation" configuration to
b9dbd3
produce untranslated images.
010b2d

b9dbd3

To produce untranslated images, <tt>`centos-art.sh'</tt> takes one design

b9dbd3
template and creates one temporal instance from it.  Later,
b9dbd3
<tt>`centos-art.sh'</tt> uses the temporal design template instance as
b9dbd3
source file to export the final untranslated image. The action of
b9dbd3
exporting images from SVG (Scalable Vector Graphics) to
b9dbd3
PNG (Portable Network Graphics) is possible thanks to
b9dbd3
Inkscape's command-line interface and the CENTOSARTWORK object
b9dbd3
id we previously set inside design templates.
b9dbd3

b9dbd3
centos-art.sh render --identity=trunk/Identity/Path/To/Dir
b9dbd3
-------------------------------------------------
b9dbd3
0 | Execute centos-art.sh on renderable identity directory structure.
b9dbd3
--v----------------------------------------------
b9dbd3
trunk/Identity/Path/To/Dir/Tpl/file.svg
b9dbd3
-------------------------------------------------
b9dbd3
1 | Create instance from design template.
b9dbd3
--v----------------------------------------------
b9dbd3
/tmp/centos-art.sh-a07e824a-5953-4c21-90ae-f5e8e9781f5f-file.svg
b9dbd3
-------------------------------------------------
b9dbd3
2 | Render untranslated image from design template instance.
b9dbd3
--v----------------------------------------------
b9dbd3
trunk/Identity/NewDir/Img/file.png
b9dbd3
-------------------------------------------------
b9dbd3
3 | Remove design template instance.
b130a0
b9dbd3

Finally, when the untranslated image has been created, the temporal

b9dbd3
design template instance is removed. At this point,
b9dbd3
<tt>`centos-art.sh'</tt> takes the next design template and repeats the
b9dbd3
whole production flow once again (design template by design template),
b9dbd3
until all design templates be processed.
010b2d

b9dbd3

-- Removed(xref:trunk Scripts Bash Functions Render Config) --, for more

b9dbd3
information.
b9dbd3

b9dbd3
b130a0
b130a0
b9dbd3
b9dbd3

2.58.1.2 Design template with translation (one-to-one)

b9dbd3
b9dbd3

Producing untranslated images is fine in many cases, but not always.

b9dbd3
Sometimes it is required to produce images in different languages and
b9dbd3
that is something that untrasnlated image production cannot achieve.
b9dbd3
However, if we fill its empty translation entry with translation files
b9dbd3
(one for each design template) we extend the production flow from
b9dbd3
untranslated image production to translated image production.
b9dbd3

b9dbd3

In order for <tt>`centos-art.sh'</tt> to produce images correctly, each

b9dbd3
design template should have one translation file and each translation
b9dbd3
file should have one design template.  Otherwise, if there is a
b9dbd3
missing design template or a missing translation file,
b9dbd3
<tt>`centos-art.sh'</tt> will not produce the final image related to the
b9dbd3
missing component.
b9dbd3

b9dbd3

In order for <tt>`centos-art.sh'</tt> to know which is the relation

b9dbd3
between translation files and design templates the translation
b9dbd3
directory structure is taken as reference.  For example, the
b9dbd3
<tt>`trunk/Translations/Identity/Path/To/Dir/file.sed'</tt> translation
b9dbd3
file does match <tt>`trunk/Identity/Path/To/Dir/Tpl/file.svg'</tt> design
b9dbd3
template, but it doesn't match
b9dbd3
<tt>`trunk/Identity/Path/To/Dir/File.svg'</tt> or
b9dbd3
<tt>`trunk/Identity/Path/To/Dir/Tpl/File.svg'</tt> or
b9dbd3
<tt>`trunk/Identity/Path/To/Dir/Tpl/SubDir/file.svg'</tt> design
b9dbd3
templates.
b9dbd3

b9dbd3

The pre-rendition configuration script used to produce untranslated

b9dbd3
images is the same we use to produce translated images. There is no
b9dbd3
need to modify it. So, as we are using the same pre-rendition
b9dbd3
configuration script, we can say that translated image production is
b9dbd3
somehow an extended/improved version of untranslated image production.
010b2d

b9dbd3
info

Note

If we use no translation file in the translation entry

b9dbd3
(i.e., an empty directory), <tt>`centos-art.sh'</tt> assumes the
b9dbd3
untranslated image production. If we fill the translation entry with
b9dbd3
translation files, <tt>`centos-art.sh'</tt> assumes the translated image
b9dbd3
production.  
b9dbd3

ee1f37
b9dbd3

To produce final images, <tt>`centos-art.sh'</tt> applies one translation

b9dbd3
file to one design template and produce a translated design template
b9dbd3
instance. Later, <tt>`centos-art.sh'</tt> uses the translated template
b9dbd3
instance to produce the translated image. Finally, when the translated
b9dbd3
image has been produced, <tt>`centos-art.sh'</tt> removes the translated
b9dbd3
design template instance. This production flow is repeated for each
b9dbd3
translation file available in the translatio entry. 
b9dbd3

b9dbd3
centos-art.sh render --identity=trunk/Identity/Path/To/Dir
b9dbd3
-------------------------------------------------
b9dbd3
0 | Execute centos-art.sh on directory structure.
b9dbd3
--v----------------------------------------------
b9dbd3
trunk/Translations/Identity/Path/To/Dir/file.sed
b9dbd3
-------------------------------------------------
b9dbd3
1 | Apply translation to design template.
b9dbd3
--v----------------------------------------------
b9dbd3
trunk/Identity/Path/To/Dir/Tpl/file.svg
b9dbd3
-------------------------------------------------
b9dbd3
2 | Create design template instance.
b9dbd3
--v----------------------------------------------
b9dbd3
/tmp/centos-art.sh-a07e824a-5953-4c21-90ae-f5e8e9781f5f-file.svg
b9dbd3
-------------------------------------------------
b9dbd3
3 | Render PNG image from template instance.
b9dbd3
--v----------------------------------------------
b9dbd3
trunk/Identity/NewDir/Img/file.png
b9dbd3
-------------------------------------------------
b9dbd3
4 | Remove design template instance.
b9dbd3
b130a0
b9dbd3
b9dbd3

2.58.1.3 Design template with translation (optimized)

b9dbd3
b9dbd3

Producing translated images satisfies almost all our production images

b9dbd3
needs, but there is still a pitfall in them. In order to produce
b9dbd3
translated images as in the "one-to-one" configuration describes
b9dbd3
previously, it is required that one translation file has one design
b9dbd3
template. That's useful in many cases, but what would happen if we
b9dbd3
need to apply many different translation files to the same design
b9dbd3
template?  Should we have to duplicate the same design template file
b9dbd3
for each translation file, in order to satisfy the "one-to-one"
b9dbd3
relation? What if we need to assign translation files to design
b9dbd3
templates arbitrarily?
010b2d

b9dbd3

Certenly, that's something the "one-to-one" configuration cannot

b9dbd3
handle.  So, that's why we had to "optimize" it. The optimized
b9dbd3
configuration consists on using a matching list (MATCHINGLIST)
b9dbd3
variable that specifies the relationship between translation files and
b9dbd3
design templates in an arbitrary way. Using such matching list between
b9dbd3
translation files and design templates let us use as many assignment
b9dbd3
combinations as translation files and design templates we are working
b9dbd3
with.
010b2d

b9dbd3

The MATCHINGLIST variable is set in the pre-rendition

b9dbd3
configuration script of the component we want to produce images for.
b9dbd3
By default, the MATCHINGLIST variable is empty which means no
b9dbd3
matching list is used. Otherwise, if MATCHINGLIST variable has a
b9dbd3
value different to empty value then, <tt>`centos-art.sh'</tt> interprets
b9dbd3
the matching list in order to know how translation files are applied
b9dbd3
to design templates.
010b2d

b9dbd3

For example, consider the following configuration:

b9dbd3

b9dbd3
b9dbd3
One entry under <tt>`trunk/Identity/'</tt>:
b9dbd3
b9dbd3

In this configuration we want to produce three images using a

b9dbd3
paragraph-based style, controlled by <tt>`paragraph.svg'</tt> design
b9dbd3
template; and one image using a list-based style, controlled by
b9dbd3
<tt>`list.svg'</tt> design template.
b9dbd3

b9dbd3
trunk/Identity/Path/To/Dir
b9dbd3
|-- Tpl
b9dbd3
|   |-- paragraph.svg
b9dbd3
|   `-- list.svg
b9dbd3
`-- Img
b9dbd3
    |-- 01-welcome.png
b9dbd3
    |-- 02-donate.png
b9dbd3
    |-- 03-docs.png
b9dbd3
    `-- 04-support.png
010b2d
b9dbd3
b9dbd3
One entry under <tt>`trunk/Translations/'</tt>:
b9dbd3
b9dbd3

In order to produce translated images we need to have one translation

b9dbd3
file for each translated image we want to produce. Notice how
b9dbd3
translation names do match final image file names, but how translation
b9dbd3
names do not match design template names. When we use matching list
b9dbd3
there is no need for translation files to match the names of design
b9dbd3
templates, such name relation is set inside the matching list itself.
b9dbd3

b9dbd3
trunk/Translations/Identity/Path/To/Dir
b9dbd3
|-- 01-welcome.sed
b9dbd3
|-- 02-donate.sed
b9dbd3
|-- 03-docs.sed
b9dbd3
`-- 04-support.sed
b130a0
b9dbd3
b9dbd3
One entry under <tt>`trunk/trunk/Scripts/Bash/Functions/Render/Config/'</tt>:
b9dbd3
b9dbd3

In order to produce different translated images using specific design

b9dbd3
templates, we need to specify the relation between translation files
b9dbd3
and design templates in a way that <tt>`centos-art.sh'</tt> could know
b9dbd3
exactly what translation file to apply to what design template. This
b9dbd3
relation between translation files and design templates is set using
b9dbd3
the matching list MATCHINGLIST variable inside the pre-rendition
b9dbd3
configuration script of the component we want to produce images for.  
b9dbd3

b9dbd3
trunk/Scripts/Bash/Functions/Render/Config/Identity/Path/To/Dir
b9dbd3
`-- render.conf.sh
982d5c
b9dbd3

In this configuration the pre-rendition configuration script

b9dbd3
(<tt>`render.conf.sh'</tt>) would look like the following:
b130a0

b9dbd3
function render_loadConfig {
b9dbd3
b9dbd3
    # Define rendition actions.
b9dbd3
    ACTIONS[0]='BASE:renderImage'
b9dbd3
b9dbd3
    # Define matching list.
b9dbd3
    MATCHINGLIST="\
b9dbd3
    paragraph.svg:\
b9dbd3
        01-welcome.sed\
b9dbd3
        02-donate.sed\
b9dbd3
        04-support.sed
b9dbd3
    list.svg:\
b9dbd3
        03-docs.sed
b9dbd3
    "
b9dbd3
b9dbd3
}
b130a0
b9dbd3

As result, <tt>`centos-art.sh'</tt> will produce <tt>`01-welcome.png'</tt>,

b9dbd3
<tt>`02-donate.png'</tt> and <tt>`04-support.png'</tt> using the
b9dbd3
paragraph-based design template, but <tt>`03-docs.png'</tt> using the
b9dbd3
list-based design template.
b9dbd3

b9dbd3
b9dbd3
ee1f37
b9dbd3
b9dbd3

2.58.1.4 Design template with translation (optimized+flexibility)

aaf678
b9dbd3

In the production models we've seen so far, there are design templates

b9dbd3
to produce untranslated images and translation files which combiend
b9dbd3
with design templates produce translated images. That may seems like
b9dbd3
all our needs are covered, doesn't it? Well, it almost does.
b9dbd3

b9dbd3

Generally, we use design templates to define how final images will

b9dbd3
look like. Generally, each renderable directory structure has one
b9dbd3
<tt>`Tpl/'</tt> directory where we organize design templates for that
b9dbd3
identity component. So, we can say that there is only one unique
b9dbd3
design template definition for each identity component; or what is the
b9dbd3
same, said differently, identity components can be produced in one way
b9dbd3
only, the way its own design template directory specifies.  This is
b9dbd3
not enough for theme production. It is a limitation, indeed.
b9dbd3

b9dbd3

Initially, to create one theme, we created one renderable directory

b9dbd3
structure for each theme component. When we found ourselves with many
b9dbd3
themes, and components inside them, it was obvious that the same
b9dbd3
design model was duplicated inside each theme. As design models were
b9dbd3
independently one another, if we changed one theme's design model,
b9dbd3
that change was useless to other themes. So, in order to reuse design
b9dbd3
model changes, we unified design models into one common directory
b9dbd3
structure.
b9dbd3

b9dbd3

With design models unified in a common structure, another problem rose

b9dbd3
up. As design models also had the visual style of theme components,
b9dbd3
there was no difference between themes, so there was no apparent need
b9dbd3
to have an independent theme directory structure for each different
b9dbd3
theme.  So, it was also needed to separate visual styles from design
b9dbd3
models.
b9dbd3

b9dbd3

At this point there are two independent worklines: one directory

b9dbd3
structure to store design models (the final image characteristics
b9dbd3
[i.e., dimensions, translation markers, etc.]) and one directory
b9dbd3
structure to store visual styles (the final image visual style [i.e.,
b9dbd3
the image look and feel]).  So, it is possible to handle both
b9dbd3
different design models and different visual styles independtly one
b9dbd3
another and later create combinations among them using
b9dbd3
<tt>`centos-art.sh'</tt>. 
b9dbd3

b9dbd3

For example, consider the following configuration:

b130a0

ee1f37
b9dbd3
One entry under <tt>`trunk/Identity/Themes/Models/'</tt>:
b130a0
b9dbd3

The design model entry exists to organize design model files (similar

b9dbd3
to design templates). Both design models and design templates are very
b9dbd3
similar; they both should have the CENTOSARTWORK export id
b9dbd3
present to identify the exportation area, translation marks, etc.
b9dbd3
However, design models do use dynamic backgrounds inclusion while
b9dbd3
design templates don't.
b9dbd3

b9dbd3
                        THEMEMODEL | | The bond component
b9dbd3
                             |<----| |--------------------->|
b9dbd3
trunk/Identity/Themes/Models/Default/Distro/Anaconda/Progress/
b9dbd3
|-- paragraph.svg
b9dbd3
`-- list.svg
b9dbd3
b9dbd3

Inisde design models, dynamic backgrounds are required in order for

b9dbd3
different artistic motifs to reuse common design models. Firstly, in
b9dbd3
order to create dynamic backgrounds inside design models, we import a
b9dbd3
bitmap to cover design model's background and later, update design
b9dbd3
model's path information to replace fixed values to dynamic values.
aaf678

b130a0
b9dbd3
One entry under <tt>`trunk/Identity/Themes/Motifs/'</tt>:
b130a0
b9dbd3

The artistic motif entry defines the visual style we want to produce

b9dbd3
images for, only. Final images (i.e., those built from combining both
b9dbd3
design models and artistic motif backrounds) are not stored here, but
b9dbd3
under branches directory structure. In the artistic motif entry, we
b9dbd3
only define those images that cannot be produced automatically by
b9dbd3
<tt>`centos-art.sh'</tt> (e.g., Backgrounds, Color information,
b9dbd3
Screenshots, etc.).
aaf678

b9dbd3
                  Artistic motif name | | Artistic motif backgrounds
b9dbd3
                             |<-------| |-------->|
b9dbd3
trunk/Identity/Themes/Motifs/TreeFlower/Backgrounds/
b9dbd3
|-- Img
b9dbd3
|   |-- Png
b9dbd3
|   |   |-- 510x300.png
b9dbd3
|   |   `-- 510x300-final.png
b9dbd3
|   `-- Jpg
b9dbd3
|       |-- 510x300.jpg
b9dbd3
|       `-- 510x300-final.jpg
b9dbd3
|-- Tpl
b9dbd3
|   `-- 510x300.svg
b9dbd3
`-- Xcf
b9dbd3
    `-- 510x300.xcf
b9dbd3
b130a0
b9dbd3
One entry under <tt>`trunk/Translations/'</tt>:
b130a0
b9dbd3

The translation entry specifies, by means of translation files, the

b9dbd3
language-specific information we want to produce image for. When we
b9dbd3
create the translation entry we don't use the name of neither design
b9dbd3
model nor artistic motif, just the design model component we want to
b9dbd3
produce images for.
b130a0

b9dbd3
                                   | The bond component
b9dbd3
                                   |--------------------->|
b9dbd3
trunk/Translations/Identity/Themes/Distro/Anaconda/Progress/
b9dbd3
`-- 5
b9dbd3
    |-- en
b9dbd3
    |   |-- 01-welcome.sed
b9dbd3
    |   |-- 02-donate.sed
b9dbd3
    |   `-- 03-docs.sed
b9dbd3
    `-- es
b9dbd3
        |-- 01-welcome.sed
b9dbd3
        |-- 02-donate.sed
b9dbd3
        `-- 03-docs.sed
b9dbd3
b130a0
b9dbd3
One entry under <tt>`trunk/Scripts/Bash/Functions/Render/Config/'</tt>:
b130a0
b9dbd3

There is one pre-rendition configuration script for each theme

b9dbd3
component. So, each time a theme component is rendered, its
b9dbd3
pre-rendition configuration script is evaluated to teach
b9dbd3
<tt>`centos-art.sh'</tt> how to render the component.
b130a0

b9dbd3
trunk/Scripts/Bash/Functions/Render/Config/Identity/Themes/Distro/Anaconda/Progress/
b9dbd3
`-- render.conf.sh
b9dbd3
b9dbd3

In this configuration the pre-rendition configuration script

b9dbd3
(<tt>`render.conf.sh'</tt>) would look like the following:
b9dbd3

b9dbd3
function render_loadConfig {
b9dbd3
b9dbd3
    # Define rendition actions.
b9dbd3
    ACTIONS[0]='BASE:renderImage'
b9dbd3
b9dbd3
    # Define matching list.
b9dbd3
    MATCHINGLIST="\
b9dbd3
    paragraph.svg:\
b9dbd3
        01-welcome.sed\
b9dbd3
        02-donate.sed
b9dbd3
    list.svg:\
b9dbd3
        03-docs.sed
b9dbd3
        "
b9dbd3
b9dbd3
    # Deifne theme model.
b9dbd3
    THEMEMODEL='Default'
b9dbd3
b9dbd3
}
b9dbd3
b130a0
b130a0
b9dbd3

The production flow of "optimize+flexibility" configuration…

b9dbd3

b9dbd3
b9dbd3

2.58.2 Renderable translation directory structures

b9dbd3
b9dbd3

Translation directory structures are auxiliar structures of renderable

b9dbd3
identity directory structures. There is one translation directory
b9dbd3
structure for each renderable identity directory structure.  Inside
b9dbd3
translation directory structures we organize translation files used by
b9dbd3
renderable identity directory structures that produce translated
b9dbd3
images. Renderable identity directory structures that produce
b9dbd3
untranslated images don't use translation files, but they do use a
b9dbd3
translation directory structure, an empty translation directory
b9dbd3
structure, to be precise.
b9dbd3

b9dbd3

In order to aliviate production of translation file, we made

b9dbd3
translation directory structures renderable adding a template
b9dbd3
(<tt>`Tpl/'</tt>) directory structure to handle common content inside
b9dbd3
translation files.  This way, we work on translation templates and
b9dbd3
later use <tt>`centos-art.sh'</tt> to produce specific translation files
b9dbd3
(based on translation templates) for different information (e.g.,
b9dbd3
languages, release numbers, architectures, etc.).  
b9dbd3

b9dbd3

If for some reason, translation files get far from translation

b9dbd3
templates and translation templates become incovenient to produce such
b9dbd3
translation files then, care should be taken to avoid replacing the
b9dbd3
content of translation files with the content of translation templates
b9dbd3
when <tt>`centos-art.sh'</tt> is executed to produce translation files
b9dbd3
from translation templates.
b9dbd3

b9dbd3

Inside renderable translation directory structures,

b9dbd3
<tt>`centos-art.sh'</tt> can produce text-based files only.
b9dbd3

b9dbd3
b9dbd3
b9dbd3

2.58.3 Copying renderable directory structures

b9dbd3
b9dbd3

A renderable layout is formed by design models, design images,

b9dbd3
pre-rendition configuration scripts and translations files. This way,
b9dbd3
when we say to duplicate rendition stuff we are saying to duplicate
b9dbd3
these four directory structures (i.e., design models, design images,
b9dbd3
pre-rendition configuration scripts, and related translations files).
b9dbd3

b9dbd3

When we duplicate directories, inside `trunk/Identity' directory

b9dbd3
structure, we need to be aware of renderable layout described above
b9dbd3
and the source location used to perform the duplication action.  The
b9dbd3
source location is relevant to centos-art.sh script in order to
b9dbd3
determine the required auxiliar information inside directory
b9dbd3
structures that need to be copied too (otherwise we may end up with
b9dbd3
orphan directory structures unable to be rendered, due the absence of
b9dbd3
required information).
b9dbd3

b9dbd3

In order for a renderable directory structure to be valid, the new

b9dbd3
directory structure copied should match the following conditions:
b9dbd3

b9dbd3
    b9dbd3
  1. To have a unique directory structure under
  2. b9dbd3
    <tt>`trunk/Identity'</tt>, organized by any one of the above
    b9dbd3
    organizational designs above.
    b9dbd3
    b9dbd3
  3. To have a unique directory structure under
  4. b9dbd3
    <tt>`trunk/Translations'</tt> to store translation files.
    b9dbd3
    b9dbd3
  5. To have a unique directory structure under
  6. b9dbd3
    <tt>`trunk/Scripts/Bash/Functions/Render/Config'</tt> to set pre-rendition
    b9dbd3
    configuration script.
    b9dbd3
    b9dbd3
    b9dbd3

    As convenction, the render_doCopy function uses

    b9dbd3
    <tt>`trunk/Identity'</tt> directory structure as source location.  Once
    b9dbd3
    the <tt>`trunk/Identity'</tt> directory structure has been specified and
    b9dbd3
    verified, the related path information is built from it and copied
    b9dbd3
    automatically to the new location specified by FLAG_TO variable.
    b9dbd3

    b9dbd3

    Design templates + No translation:

    b9dbd3

    b9dbd3

    Command:

    b9dbd3
    - centos-art render -copy=trunk/Identity/Path/To/Dir -to=trunk/Identity/NewPath/To/Dir
    b9dbd3

    b9dbd3

    Sources:

    b9dbd3
    - trunk/Identity/Path/To/Dir
    b9dbd3
    - trunk/Translations/Identity/Path/To/Dir
    b9dbd3
    - trunk/Scripts/Bash/Functions/Render/Config/Identity/Path/To/Dir
    b9dbd3

    b9dbd3

    Targets:

    b9dbd3
    - trunk/Identity/NewPath/To/Dir
    b9dbd3
    - trunk/Translations/Identity/NewPath/To/Dir
    b9dbd3
    - trunk/Scripts/Bash/Functions/Render/Config/Identity/NewPath/To/Dir
    b9dbd3

    b9dbd3

    Renderable layout 2:

    b9dbd3

    b9dbd3

    Command:

    b9dbd3
    - centos-art render -copy=trunk/Identity/Themes/Motifs/TreeFlower \
    b9dbd3
                        -to=trunk/Identity/Themes/Motifs/NewPath/To/Dir
    b9dbd3

    b9dbd3

    Sources:

    b9dbd3
    - trunk/Identity/Themes/Motifs/TreeFlower
    b9dbd3
    - trunk/Translations/Identity/Themes
    b9dbd3
    - trunk/Translations/Identity/Themes/Motifs/TreeFlower
    b9dbd3
    - trunk/Scripts/Bash/Functions/Render/Config/Identity/Themes
    b9dbd3
    - trunk/Scripts/Bash/Functions/Render/Config/Identity/Themes/Motifs/TreeFlower
    010b2d

    b9dbd3

    Targets:

    b9dbd3
    - trunk/Identity/Themes/Motifs/NewPath/To/Dir
    b9dbd3
    - trunk/Translations/Identity/Themes
    b9dbd3
    - trunk/Translations/Identity/Themes/Motifs/NewPath/To/Dir
    b9dbd3
    - trunk/Scripts/Bash/Functions/Render/Config/Identity/Themes
    b9dbd3
    - trunk/Scripts/Bash/Functions/Render/Config/Identity/Themes/Motifs/NewPath/To/Dir
    b9dbd3

    b9dbd3

    Notice that design models are not included in source or target

    b9dbd3
    locations. This is intentional. In "Renderable layout 2", design
    b9dbd3
    models live by their own, they just exist, they are there, available
    b9dbd3
    for any artistic motif to use. By default `Themes/Models/Default'
    b9dbd3
    design model directory structure is used, but other design models
    b9dbd3
    directory structures (under Themes/Models/) can be created and used
    b9dbd3
    changing the value of THEMEMODEL variable inside the pre-rendition
    b9dbd3
    configuration script of the artistic motif source location you want to
    b9dbd3
    produce.
    b9dbd3

    b9dbd3

    Notice how translations and pre-rendition configuration scripts may

    b9dbd3
    both be equal in source and target. This is because such structures
    b9dbd3
    are common to all artistic motifs (the default values to use when no
    b9dbd3
    specific values are provided).
    b9dbd3

    b9dbd3

    - The common directory structures are not copied or deleted. We cannot

    b9dbd3
      copy a directory structure to itself.
    b9dbd3

    b9dbd3

    - The common directory structures represent the default value to use

    b9dbd3
      when no specific translations and/or pre-rendition configuration
    b9dbd3
      script are provided inside source location.
    b9dbd3

    b9dbd3

    - The specific directory structures, if present, are both copiable and

    b9dbd3
      removable. This is, when you perform a copy or delete action from
    b9dbd3
      source, that source specific auxiliar directories are transfered in
    b9dbd3
      the copy action to a new location (that specified by FLAG_TO
    b9dbd3
      variable).
    b9dbd3

    b9dbd3

    - When translations and/or pre-rendition configuration scripts are

    b9dbd3
      found inside the source directory structure, the centos-art.sh
    b9dbd3
      script loads common auxiliar directories first and later specific
    b9dbd3
      auxiliar directories.  This way, identity rendition of source
    b9dbd3
      locations can be customized idividually over the base of common
    b9dbd3
      default values.
    b9dbd3

    b9dbd3

    - The specific auxiliar directories are optional.

    b9dbd3

    b9dbd3

    - The common auxiliar directories should be present always. This is,

    b9dbd3
      in order to provide the information required by render functionality
    b9dbd3
      (i.e., to make it functional in the more basic level of its
    b9dbd3
      existence).
    b9dbd3

    b9dbd3

    Notice how the duplication process is done from `trunk/Identity' on,

    b9dbd3
    not the oposite. If you try to duplicate a translation structure (or
    b9dbd3
    similar auxiliar directory structures like pre-rendition configuration
    b9dbd3
    scripts), the `trunk/Identity' for that translation is not created.
    b9dbd3
    This limitation is impossed by the fact that many `trunk/Identity'
    b9dbd3
    directory structures may reuse/share the same translation directory
    b9dbd3
    structure. We cannot delete one translation (or similar) directory
    b9dbd3
    structures while a related `trunk/Identity/' directory structure is
    b9dbd3
    still in need of it.
    b9dbd3

    b9dbd3

    The `render_doCopy' functionality does duplicate directory structures

    b9dbd3
    directly involved in rendition process only. Once such directories
    b9dbd3
    have been duplicated, the functionality stops thereat. 
    b9dbd3

    b9dbd3
    b9dbd3
    b9dbd3

    2.58.4 Usage

    ee1f37
    b9dbd3
      b9dbd3
    • ...
    • b9dbd3
      b9dbd3
      b9dbd3
      b9dbd3
      b9dbd3

      2.58.5 See also

      ee1f37
      ee1f37
      ee1f37
      ee1f37
      b9dbd3
      [ < ]
      b9dbd3
      [ > ]
      ee1f37
         
      b9dbd3
      [ << ]
      b9dbd3
      [ Up ]
      b9dbd3
      [ >> ]
      ee1f37
      ee1f37

      ee1f37
       <font size="-1">
      406f69
        This document was generated on March, 1 2011 using texi2html 1.76.
      ee1f37
       </font>
      ee1f37
       
      ee1f37
      ee1f37

      ee1f37
      </body>
      ee1f37
      </html>