Connection between directories
In order to produce content in CentOS Artwork Repository, it
is required that all work lines be connected somehow. This is the
way automation scripts can know where to retrive the information
they need to work with (e.g., design model, translation messages,
output location, etc.). We build this kind of connection using
two path constructions named @emph{master paths} and
@emph{auxiliar paths}.
The master path points only to directories that contain the
source files (e.g., SVG files) required to produce base content
(e.g., PNG files) through automation scripts. Each master path
inside the repository may have several auxiliar paths associated,
but auxiliar paths can only have one master path
associated.
The auxiliar paths can point either to directories or files.
When an auxiliar path points to a directory, that directory
contains information that modifies somehow the content produced
from master paths (e.g., translation messages) or provides the
output information required to know where to store the content
produced from master path. When an auxiliar path points to a
file, that file has no other purpose but to document the master
path it refers to.
The relation between auxiliar paths and master paths is
realized combining two path informations which are: the master
path itself and one second level directory structure from the
repository. Generally, the master path is considered the path
identifier and the second level directory structure taken from the
repository is considered the common part of the path where the
identifier is appended.
-----+---------------+----------------------------+------+-----------
Path | Suffix | Identifier |Prefix| Type
-----+---------------+----------------------------+------+-----------
A | |trunk/Identity/Models/Brands| | Directory
-----+---------------+----------------------------+------+-----------
B | trunk/Manual/|trunk/Identity/Models/Brands|.texi | File
-----+---------------+----------------------------+------+-----------
C | trunk/Locales/|trunk/Identity/Models/Brands| | Directory
-----+---------------+----------------------------+------+-----------
D | |trunk/Identity/Images/Brands| | Directory
-----+---------------+----------------------------+------+-----------
E | trunk/Locales/|trunk/Identity/Images/Brands|.texi | File
-----+---------------+----------------------------+------+-----------
A = Master path.
B = Auxiliar path to documentation entry.
C = Auxiliar path to translation messages.
D = Auxiliar path to final content output.
E = Auxiliar path to documentation entry.
The path information described above (@pxref{Path
construction}) is used by direct rendition and can be taken as
reference to add other components that are equally produced in the
repository. To add new components that make use of direct
rendition inside the repository, change just the component name
used above (e.g., @file{Brands}) to that one you want to add,
without changing the path structure around it.
The file organization used by theme rendition extends direct
rendition by separating design models information from backgrounds
information. To better understand this configuration, you can
consider it as two independent lists, one of design models and one
of artistic motifs, which are arbitrary combined between
themselves in order to render images in specific ways. The
possibilities of this configuration are endless and let us
describe visual manifestations very well. For example, consider
the organization used to produce @file{Anaconda} images; for
CentOS distribution major release 5; using @file{Default} design
models and version @file{3} of @file{Flame} artistic motif:
-----+---------------+------------------------------------------------------+------+-----------
Path | Suffix | Identifier |Prefix| Type
-----+---------------+------------------------------------------------------+------+-----------
A | |trunk/Identity/Models/Themes/Default/Distro/5/Anaconda| | Directory
-----+---------------+------------------------------------------------------+------+-----------
B | trunk/Manual/|trunk/Identity/Models/Themes/Default/Distro/5/Anaconda|.texi | File
-----+---------------+------------------------------------------------------+------+-----------
C | trunk/Locales/|trunk/Identity/Models/Themes/Default/Distro/5/Anaconda| | Directory
-----+---------------+------------------------------------------------------+------+-----------
D | |trunk/Identity/Images/Themes/Flame/3/Distro/5/Anaconda| | Directory
-----+---------------+------------------------------------------------------+------+-----------
E | trunk/Locales/|trunk/Identity/Images/Themes/Flame/3/Distro/5/Anaconda|.texi | File
-----+---------------+------------------------------------------------------+------+-----------
A = Master path.
B = Auxiliar path to documentation entry.
C = Auxiliar path to translation messages.
D = Auxiliar path to final content output.
E = Auxiliar path to documentation entry.
The path information described above (@pxref{Path
construction extended}) is used by theme rendition and can be
taken as reference to add other components that are equally
produced in the repository.
In this configuration we can change both design model name
(e.g., @file{Default}) and artistic motif name (e.g.,
@file{Flame/3}) to something else in order to achieve a different
result. The only limitations impossed are the storage space
provided in the server machine and your own creativeness as
graphic designer.
A theme ready for implementation may consume from 100
MB to 400 MB of storage space. The exact space consumed by a theme
depends on the amount of screen resolutions the theme supports.
The more screen resolutions the theme supports, the more storage
space demanded for it.
In this configuration we saw how to build the path
information for @file{Anaconda} component as part of CentOS
Distribution visual manifestation, but that is not the only
component we have inside CentOS Distribution visual manifestation.
There are other components like Syslinux, Grub, Rhgb, Gdm, Kdm,
Gsplash and Ksplash that share a similar file organization to that
described above for @file{Anaconda} component.