[RFC] Image filename conventions

Tommy Reynolds Tommy.Reynolds at MegaCoder.com
Mon Dec 12 16:40:52 UTC 2005


Uttered James Laska <jlaska at redhat.com>, spake thus:

> What is the benefit of enforcing image filename conventions?  We label
> our images many times by where they exist in the document
> (figs/ch/section-name.<ext>).  I could even see a format such as
> "figs/<lang>/<some-dir-hierarchy>.<ext>".  Is the main goal to simplify
> the spec file %files?

AFAICT, there are two classes of figures: language-specific and
language-neutral.  All neutral files should always be copied into the
HTML chunk tree, or placed into the RPM.  Only the matching
language-specific files should be copied to the HTML chunk tree or to
the RPM, because image files can get disproportionately large.

When copying the "figs/" hierarchy, we need a batch method to
determine the appropriateness of each file.  My proposed grammar of:

<anthing_but_dashes>-<lang>.<ext> is considered language-specific

<anything_but_dashes>.<ext> is considered language-neutral

is unambiguous, so a batch method can easily select the proper files.
Selection is simple to understand.

I considered relaxing the <anything_but_dashes> part to be
<anything>, but that requires heuristics to guess about the content.
The "Makefile" knows the allowed set of ${LANGUAGES}, so the batch
copy process could compare the final after-the-dash component against
that list: language matches get copied, rejects don't.  What about
the file name "i-am-a-file.jpg"?  It doesn't match any known
language, so we could assume it is language-neutral and copy it, but
then we have to deal with a filename such as "eng-to-ru.png", where
no component has anything to do with the language context.

This gets very complicated really fast.  I hate complicated:

	Beauty is Elegance,
	Elegance is Simplicity,
	Simplicity is Not-Much-To-Remember,
	Not-Much-To-Remember is Perfection,
	Perfection is Beauty.

Sorry, I couldn't help it ;-)

Anyway, the suggested naming convention applies only to image files.

If the convention causes an unreasonable burden, you can use the
"Manifest-${LANG}" feature I just added.  Create the file
"figs/Manifest-${LANG}" whose content is the pathname, relative to
"figs/" of *every* file to be copied.  No filtering is done against
the names read from "figs/Manifest-${LANG}", although CVS files are
still ignored.

Create the "figs/Manifest-${LANG}" file like this:

	$ cd figs
	$ rm -f Manifest-${LANG}
	$ find * -print >/tmp/Manifest-${LANG}
	$ mv /tmp/Manifest-${LANG} Manifest-${LANG}

or any comparable way that puts relative pathnames into the file.
You want:

	foo.png

and not:

	figs/foo.png
	-or-
	/path/to/doc/figs/foo.png

Hope this helps.

Cheers
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/fedora-docs-list/attachments/20051212/085589e8/attachment.sig>


More information about the fedora-docs-list mailing list