|
|
051477 |
The CentOS Artwork Repository started during a discussion about how to
|
|
|
051477 |
automate the slide images of Anaconda, at CentOS Developers mailing
|
|
|
051477 |
list (@email{centos-devel@@centos.org}) around 2008. In such
|
|
|
051477 |
discussion, Ralph Angenendt rose up his hand to ask ---Do you have
|
|
|
051477 |
something to show?---.
|
|
|
051477 |
|
|
|
051477 |
To answer the question, I suggested a bash script which combined SVG
|
|
|
051477 |
and SED files in order to produce PNG images in different languages
|
|
|
051477 |
---in conjunction with the proposition of creating a Subversion
|
|
|
051477 |
repository where translations and image production could be
|
|
|
b32b45 |
distributed inside The CentOS Community---.
|
|
|
051477 |
|
|
|
b32b45 |
Karanbirn Sighn considered the idea intresting and provided the
|
|
|
051477 |
infrastructure necessary to support the effort. This way the CentOS
|
|
|
b32b45 |
Artwork SIG (@url{https://projects.centos.org/trac/artwork/}) and the
|
|
|
b32b45 |
CentOS Artwork Repository
|
|
|
b32b45 |
(@url{https://projects.centos.org/svn/artwork/}) were officially
|
|
|
b32b45 |
created.
|
|
|
051477 |
|
|
|
051477 |
Once the CentOS Artwork Repository was available, I uploaded the bash
|
|
|
051477 |
script for rendering Anaconda slides; Ralph Angenendt documented it
|
|
|
051477 |
very well; and people started to download working copies of CentOS
|
|
|
051477 |
Artwork Repository to produce slide images in their own languages.
|
|
|
051477 |
|
|
|
051477 |
Around 2009, the rendition script was at a very rustic state where
|
|
|
051477 |
only slide images could be produced, so it was redesigned to extend
|
|
|
051477 |
the image production to other areas, different from slide images. In
|
|
|
051477 |
this configuration, one SVG file was used as input to produce a
|
|
|
051477 |
translated instance of it which, in turn, was used to produce one
|
|
|
051477 |
translated PNG image as output. The SVG translated instance was
|
|
|
051477 |
created through SED replacement commands. The translated PNG image was
|
|
|
051477 |
created from the SVG translated instance using Inkscape command-line
|
|
|
051477 |
interface.
|
|
|
051477 |
|
|
|
b32b45 |
The repository directory structure was prepared to receive the
|
|
|
b32b45 |
rendition script using design templates and translation files in the
|
|
|
051477 |
same location. There was one directory structure for each artwork that
|
|
|
051477 |
needed to be produced. In this configuration, if you would want to
|
|
|
051477 |
produce the same artwork with a different visual style or structure,
|
|
|
051477 |
it was needed to create a new directory structure for it because both
|
|
|
051477 |
the image structure and the image visual style were together in the
|
|
|
051477 |
design template.
|
|
|
051477 |
|
|
|
b32b45 |
The rendition script was moved to a common place and linked from
|
|
|
b32b45 |
different directory structures. There was no need to have the same
|
|
|
b32b45 |
code in different directory structures if it could be in just one
|
|
|
b32b45 |
place and then be linked from different locations.
|
|
|
051477 |
|
|
|
051477 |
Corporate identity concepts began to be considered. As referece, it
|
|
|
051477 |
was used the book ``Corporate Identity'' by Wally Olins (1989) and
|
|
|
051477 |
Wikipedia related links (e.g.,
|
|
|
051477 |
@url{http://en.wikipedia.org/Corporate_identity}). This way, the
|
|
|
051477 |
rendition script main's goal becomes into: automate production of a
|
|
|
b32b45 |
monolithic corporate visual identity structure, based on the mission
|
|
|
b32b45 |
and the release schema of The CentOS Project.
|
|
|
051477 |
|
|
|
051477 |
The repository directory structures began to be documented by mean of
|
|
|
051477 |
flat text files. Later, documentation in flat text files was moved
|
|
|
051477 |
onto LaTeX format and this way the ``The CentOS Artwork Repository''
|
|
|
051477 |
documentation manual is initiated.
|
|
|
051477 |
|
|
|
051477 |
Around 2010, the rendition script changed its name from
|
|
|
051477 |
@command{render.sh} to @command{centos-art.sh} and became a collection
|
|
|
051477 |
of functionalities where rendition was just one among others (e.g.,
|
|
|
051477 |
documenting and localizing).
|
|
|
051477 |
|
|
|
051477 |
The @command{centos-art.sh} was initialy conceived to organize
|
|
|
051477 |
automation of most frequent tasks inside the repository based in the
|
|
|
051477 |
conceptual idea of Unix toolbox: @emph{to create small and specialized
|
|
|
051477 |
tools that do one thing well}. This way, functionalities inside
|
|
|
051477 |
@command{centos-art.sh} began to be identified and separated one
|
|
|
051477 |
another. For example, when images were rendered, there was no need to
|
|
|
051477 |
load functionalities related to documentation manual. This layout
|
|
|
051477 |
moved us onto ``common functionalities'' and ``specific
|
|
|
051477 |
functionalities'' inside @command{centos-art.sh} script. Common
|
|
|
051477 |
functionalities are loaded when @command{centos-art.sh} script is
|
|
|
051477 |
initiated and are available to specific functionalities.
|
|
|
051477 |
|
|
|
051477 |
Suddenly, no need was found to keep links from all around the
|
|
|
051477 |
repository to @command{centos-art.sh} script. Instead the
|
|
|
051477 |
@command{centos-art} command-line was created. This is, a symbolic
|
|
|
051477 |
links in the @file{~/bin} directory which can be called from anywhere
|
|
|
051477 |
inside the repository, just as it would be a regular command. The
|
|
|
051477 |
symbolic links inside the repository were removed and the
|
|
|
051477 |
@command{centos-art} command-line interface was used instead.
|
|
|
051477 |
|
|
|
051477 |
Option parsing became too complicated for the current implemented way
|
|
|
051477 |
of parsing positional parameters passed to @command{centos-art.sh}
|
|
|
051477 |
script from the command-line. The GNU @command{getopt} option parser
|
|
|
051477 |
was considered, studied, and implemented in @command{centos-art.sh}
|
|
|
051477 |
script as default option parser.
|
|
|
b32b45 |
|
|
|
b32b45 |
The repository directory structure was updated to improve the
|
|
|
051477 |
implementation of corporate visual identity concepts. Specially in
|
|
|
051477 |
the area related to themes. Having both structure and style in the
|
|
|
051477 |
same file introduced content duplication when producing art works.
|
|
|
051477 |
Because of this reason, they were divided out to separate directory
|
|
|
051477 |
structures: the design models and artistic motifs directory
|
|
|
051477 |
structures. From this point on, the @command{centos-art.sh} is able
|
|
|
051477 |
to produce themes as result of arbitrary combinations between design
|
|
|
051477 |
models (structures) and artistic motifs (visual styles).
|
|
|
051477 |
|
|
|
051477 |
In the documentation area, the documents in LaTeX format were migrated
|
|
|
051477 |
to Texinfo format. In this configuration, each directory structure in
|
|
|
051477 |
the repository has a documentation entry associated in a Texinfo
|
|
|
051477 |
structure which can be read, edited and administered (e.g., renamed,
|
|
|
051477 |
deleted and copied) interactively through @command{centos-art.sh}
|
|
|
051477 |
script. Additionally, the @command{texi2html} program was used to
|
|
|
051477 |
produced customized XHTML output in conjunction with CSS from The
|
|
|
051477 |
CentOS Webenv.
|
|
|
051477 |
|
|
|
051477 |
Around 2011, the @command{centos-art.sh} script was redesigned to
|
|
|
051477 |
start translating XML-based files (e.g., SVG and Docbook files)
|
|
|
051477 |
through @command{xml2po} program and shell scripts (e.g., Bash
|
|
|
051477 |
scripts) through GNU @command{gettext} tools. This configuration
|
|
|
051477 |
provided a stronger localization interface for graphic designers,
|
|
|
051477 |
translators and programmers. The SED replacement files are no longer
|
|
|
051477 |
used to handle localization.
|
|
|
051477 |
|
|
|
051477 |
The @code{render}, @code{help} and @code{locale} functionalities were
|
|
|
051477 |
consolidated as the most frequent tasks performed inside the
|
|
|
b32b45 |
repository. Additionally, the @code{prepare} and @code{tuneup}
|
|
|
051477 |
functionalities are also maintained as useful tasks.
|
|
|
051477 |
|
|
|
051477 |
In the documentation area, support for producing localized
|
|
|
11ac36 |
transformations of DocBook XML DTD instances was added through the
|
|
|
11ac36 |
@code{render} and @code{locale} functionalities. The @code{render}
|
|
|
11ac36 |
functionality uses the @command{xsltproc} command-line XSLT parser in
|
|
|
11ac36 |
conjunction with the styles provided by the @file{docbook-style-xsl}
|
|
|
11ac36 |
package, both of them included inside The CentOS Distribution. The
|
|
|
11ac36 |
@code{locale} functionality creates the localized @acronym{PO,Portable
|
|
|
11ac36 |
Objects} the @code{render} functionality needs to produce localized
|
|
|
11ac36 |
transformations of DocBook XML DTD instances. When no localized PO
|
|
|
11ac36 |
exists for a DocBook XML DTD instance, it is produced in English
|
|
|
11ac36 |
language.
|