Blame Manual/repository-html/repository_62.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>
063806
<title>CentOS Artwork Repository: 2.58 The trunk/Scripts/Bash/Cli/Functions/Render Directory</title>
ee1f37
063806
<meta name="description" content="CentOS Artwork Repository: 2.58 The trunk/Scripts/Bash/Cli/Functions/Render Directory">
063806
<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
063806
[ < ]
063806
[ > ]
ee1f37
   
063806
[ << ]
063806
[ Up ]
063806
[ >> ]
ee1f37
   
ee1f37
   
ee1f37
   
ee1f37
   
56a476
[Top]
56a476
[Contents]
063806
[Index]
56a476
[ ? ]
ee1f37
063806
063806
063806

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

063806
063806

The render functionality exists to produce both identity and

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

063806

The render functionality relies on "renderable directory

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

063806
063806
063806

2.58.1 Renderable identity directory structures

063806
063806

Renderable identity directory structures are the starting point of

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

063806

Inside the working copy, one renderable identity directory structures

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

063806

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

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

063806

Inside renderable identity directory structures, content production is

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

063806
063806
063806

2.58.1.1 Design template without translation

063806
063806

The design template without translation configuration is based on a

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

063806

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

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

063806
063806
One renderable identity directory structure:
063806
063806

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

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

063806

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

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

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

Inside design template directory, design template files are based on

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

063806

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

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

063806

The CENTOSARTWORK word itself is a convenction name we use to

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

063806
info

Note

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

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

b9dbd3
063806

When a renderable identity directory structure is configured to

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

063806

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

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

063806

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

063806

063806
063806
One translation directory structure:
063806
063806

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

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

063806

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

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

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

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

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

063806

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

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

063806

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

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

063806

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

010b2d

063806
063806
One pre-rendition configuration script:
063806
063806

In order to make an identity directory structure renderable, a

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

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

In this configuration the pre-rendition configuration script

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

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

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

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

063806

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

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

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

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

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

063806

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

063806
information.
063806

063806
063806
063806
063806
063806

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

063806
063806

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

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

063806

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

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

063806

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

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

063806

The pre-rendition configuration script used to produce untranslated

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

063806
info

Note

If we use no translation file in the translation entry

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

b130a0
063806

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

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

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

2.58.1.3 Design template with translation (optimized)

982d5c
063806

Producing translated images satisfies almost all our production images

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

063806

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

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

063806

The MATCHINGLIST variable is set in the pre-rendition

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

063806

For example, consider the following configuration:

063806

982d5c
063806
One entry under <tt>`trunk/Identity/'</tt>:
063806
063806

In this configuration we want to produce three images using a

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

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

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

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

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

In order to produce different translated images using specific design

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

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

In this configuration the pre-rendition configuration script

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

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

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

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

010b2d
010b2d
063806
063806
063806

2.58.1.4 Design template with translation (optimized+flexibility)

063806
063806

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

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

063806

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

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

063806

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

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

063806

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

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

063806

At this point there are two independent worklines: one directory

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

063806

For example, consider the following configuration:

063806

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

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

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

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

Inisde design models, dynamic backgrounds are required in order for

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

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

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

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

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

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

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

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

There is one pre-rendition configuration script for each theme

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

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

In this configuration the pre-rendition configuration script

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

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

The production flow of "optimize+flexibility" configuration…

063806

063806
063806

2.58.2 Renderable translation directory structures

b130a0
063806

Translation directory structures are auxiliar structures of renderable

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

063806

In order to aliviate production of translation file, we made

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

063806

If for some reason, translation files get far from translation

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

063806

Inside renderable translation directory structures,

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

063806
063806
063806

2.58.3 Copying renderable directory structures

063806
063806

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

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

063806

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

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

063806

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

063806
directory structure copied should match the following conditions:
063806

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

    As convenction, the render_doCopy function uses

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

    063806

    Design templates + No translation:

    063806

    063806

    Command:

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

    063806

    Sources:

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

    063806

    Targets:

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

    063806

    Renderable layout 2:

    063806

    063806

    Command:

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

    063806

    Sources:

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

    063806

    Targets:

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

    063806

    Notice that design models are not included in source or target

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

    063806

    Notice how translations and pre-rendition configuration scripts may

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

    063806

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

    063806
      copy a directory structure to itself.
    063806

    063806

    - The common directory structures represent the default value to use

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

    063806

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

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

    063806

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

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

    063806

    - The specific auxiliar directories are optional.

    063806

    063806

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

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

    063806

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

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

    063806

    The `render_doCopy' functionality does duplicate directory structures

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

    063806
    063806
    063806

    2.58.4 Usage

    063806
    063806
      063806
    • ...
    • 063806
      063806
      982d5c
      063806
      063806

      2.58.5 See also

      ee1f37
      ee1f37
      ee1f37
      ee1f37
      063806
      [ < ]
      063806
      [ > ]
      ee1f37
         
      063806
      [ << ]
      063806
      [ Up ]
      063806
      [ >> ]
      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>