Blame Manuals/Repository/repository-html/repository_57.html

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

3.54 trunk/Scripts/Bash/Functions/Render

b0644c
2b5e61

The render functionality exists to produce both identity and

2b5e61
translation files on different levels of information (i.e., different
2b5e61
languages, release numbers, architectures, etc.).
4a9d2a

2b5e61

The render functionality relies on "renderable directory

2b5e61
structures" to produce files. Renderable directory structures can be
2b5e61
either "identity directory structures" or "translation directory
2b5e61
structures" with special directories inside.
166893

166893
7bbd70
2b5e61

3.54.1 Renderable identity directory structures

2b5e61
2b5e61

Renderable identity directory structures are the starting point of

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

2b5e61

Inside the working copy, one renderable identity directory structures

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

2b5e61

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

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

2b5e61

Inside renderable identity directory structures, content production is

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

2b5e61
2b5e61
2b5e61

3.54.1.1 Design template without translation

4a9d2a
2b5e61

The design template without translation configuration is based on a

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

2b5e61

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

2b5e61
use in producing text-based files without translations), consider the
2b5e61
following configuration:
4a9d2a

2b5e61
2b5e61
One renderable identity directory structure:
2b5e61
2b5e61

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

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

2b5e61

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

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

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

Inside design template directory, design template files are based on

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

2b5e61

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

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

2b5e61

The CENTOSARTWORK word itself is a convenction name we use to

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

2b5e61
info

Note

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

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

166893
2b5e61

When a renderable identity directory structure is configured to

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

2b5e61

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

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

2b5e61

See section trunk/Identity, for more information.

2b5e61

2b5e61
2b5e61
One translation directory structure:
2b5e61
2b5e61

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

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

2b5e61

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

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

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

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

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

2b5e61

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

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

2b5e61

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

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

2b5e61

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

2b5e61

2b5e61
2b5e61
One pre-rendition configuration script:
2b5e61
2b5e61

In order to make an identity directory structure renderable, a

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

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

In this configuration the pre-rendition configuration script

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

2b5e61
function render_loadConfig {
2b5e61
2b5e61
    # Define rendition actions.
2b5e61
    ACTIONS[0]='BASE:renderImage'
2b5e61
2b5e61
}
2b5e61
2b5e61

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

2b5e61
assumes a "design template without translation" configuration to
2b5e61
produce untranslated images.
2b5e61

2b5e61

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

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

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

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

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

2b5e61

See section trunk/Scripts/Bash/Functions/Render/Config, for more

2b5e61
information.
2b5e61

2b5e61
2b5e61
4a9d2a
7bbd70
2b5e61

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

2b5e61
2b5e61

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

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

2b5e61

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

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

2b5e61

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

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

2b5e61

The pre-rendition configuration script used to produce untranslated

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

2b5e61
info

Note

If we use no translation file in the translation entry

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

2b5e61
2b5e61

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

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

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

3.54.1.3 Design template with translation (optimized)

2b5e61
2b5e61

Producing translated images satisfies almost all our production images

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

2b5e61

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

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

2b5e61

The MATCHINGLIST variable is set in the pre-rendition

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

2b5e61

For example, consider the following configuration:

2b5e61

166893
2b5e61
One entry under <tt>`trunk/Identity/'</tt>:
166893
2b5e61

In this configuration we want to produce three images using a

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

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

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

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

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

In order to produce different translated images using specific design

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

2b5e61
trunk/Scripts/Bash/Functions/Render/Config/Identity/Path/To/Dir
2b5e61
`-- render.conf.sh
2b5e61
2b5e61

In this configuration the pre-rendition configuration script

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

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

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

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

166893
166893
7bbd70
2b5e61
2b5e61

3.54.1.4 Design template with translation (optimized+flexibility)

2b5e61
2b5e61

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

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

2b5e61

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

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

2b5e61

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

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

2b5e61

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

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

2b5e61

At this point there are two independent worklines: one directory

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

2b5e61

For example, consider the following configuration:

2b5e61

2b5e61
2b5e61
One entry under <tt>`trunk/Identity/Themes/Models/'</tt>:
2b5e61
2b5e61

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

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

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

Inisde design models, dynamic backgrounds are required in order for

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

2b5e61
2b5e61
One entry under <tt>`trunk/Identity/Themes/Motifs/'</tt>:
2b5e61
2b5e61

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

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

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

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

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

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

There is one pre-rendition configuration script for each theme

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

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

In this configuration the pre-rendition configuration script

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

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

The production flow of "optimize+flexibility" configuration…

2b5e61

2b5e61
2b5e61

3.54.2 Renderable translation directory structures

2b5e61
2b5e61

Translation directory structures are auxiliar structures of renderable

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

2b5e61

In order to aliviate production of translation file, we made

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

2b5e61

If for some reason, translation files get far from translation

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

2b5e61

Inside renderable translation directory structures,

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

2b5e61
2b5e61
2b5e61

3.54.3 Copying renderable directory structures

2b5e61
2b5e61

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

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

2b5e61

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

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

2b5e61

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

2b5e61
directory structure copied should match the following conditions:
2b5e61

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

    As convenction, the render_doCopy function uses

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

    2b5e61

    Design templates + No translation:

    2b5e61

    2b5e61

    Command:

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

    2b5e61

    Sources:

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

    2b5e61

    Targets:

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

    2b5e61

    Renderable layout 2:

    2b5e61

    2b5e61

    Command:

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

    2b5e61

    Sources:

    2b5e61
    - trunk/Identity/Themes/Motifs/TreeFlower
    2b5e61
    - trunk/Translations/Identity/Themes
    2b5e61
    - trunk/Translations/Identity/Themes/Motifs/TreeFlower
    2b5e61
    - trunk/Scripts/Bash/Functions/Render/Config/Identity/Themes
    2b5e61
    - trunk/Scripts/Bash/Functions/Render/Config/Identity/Themes/Motifs/TreeFlower
    2b5e61

    2b5e61

    Targets:

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

    2b5e61

    Notice that design models are not included in source or target

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

    2b5e61

    Notice how translations and pre-rendition configuration scripts may

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

    2b5e61

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

    2b5e61
      copy a directory structure to itself.
    2b5e61

    2b5e61

    - The common directory structures represent the default value to use

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

    2b5e61

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

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

    2b5e61

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

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

    2b5e61

    - The specific auxiliar directories are optional.

    2b5e61

    2b5e61

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

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

    2b5e61

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

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

    2b5e61

    The `render_doCopy' functionality does duplicate directory structures

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

    2b5e61
    2b5e61
    2b5e61

    3.54.4 Usage

    2b5e61
    2b5e61
      2b5e61
    • ...
    • 2b5e61
      2b5e61
      2b5e61
      2b5e61
      2b5e61

      3.54.5 See also

      300762
      ec5f63
      2b5e61
      3.55 trunk/Scripts/Bash/Functions/Render/Config  
      ec5f63
      ec5f63
      ec5f63
      300762
      300762
      2b5e61
      [ < ]
      2b5e61
      [ > ]
      300762
         
      300762
      [ << ]
      2b5e61
      [ Up ]
      2b5e61
      [ >> ]
      300762
      4c79b5

      4c79b5
       <font size="-1">
      acd47b
        This document was generated on February, 26 2011 using texi2html 1.76.
      4c79b5
       </font>
      4c79b5
       
      4c79b5
      4c79b5

      4c79b5
      </body>
      4c79b5
      </html>