Ferdinand Soethe wrote:
Looking at 0.7 resources.xmap I'm trying to understand the cascade:

            <map:match pattern="images/**.*">
            <map:select type="exists">
               <map:when test="{project:content.xdocs}/images/{1}.{2}">
                  <map:read src="{project:content.xdocs}/images/{1}.{2}" 
mime-type="image/{2}" />
               </map:when>
               <map:when test="resources/images/{1}.{2}">
                  <map:read src="resources/images/{1}.{2}" mime-type="image/{2}" 
/>
               </map:when>
               <map:when test="{project:resources.images}/{1}.{2}">
                  <map:read src="{project:resources.images}/{1}.{2}" 
mime-type="image/{2}" />
               </map:when>

1 and 3 are clear. Check for image file in images subdir of xdocs and
the designated project:resources.images directory.

But what is <map:when test="resources/images/{1}.{2}"> trying to
accomplish? The way I read it it would look for the file in the
resources/images subdir of the directory of the referring file?

What is the purpose of this?

If I remember correctly it is there for legacy reasons. Images used to be in there rather than in the xdocs directory.

Trying to understand the next one:

        <map:match pattern="**/images/**.*">
            matching any  reference that has images in its path, no
            such as
                bla/blo/images/bli/file.jpg
                bla/blo/images/file.jpg
<map:select type="exists">
               <map:when test="{project:content.xdocs}/{1}/images/{2}.{3}">

                  looking for
                        xdocs/bla/blo/images/bli/file.jpg
                        xdocs/bla/blo/images/file.jpg

                  What is this needed for?
                  Seems to contradict our standard way of storing all
                  images below a directory calles images.

I'm not sure which is the "official" standard, would need to check the docs. Some people like to store images alongside the docs/lists, I prefer to store them in a images directory so they can easily be reused. I guess this is here to accomodate both usage patterns.

                  <map:read src="resources/images/{2}.{3}" mime-type="image/{3}" 
/>

                  Looking for

                        resources/images/bli/file.jpg
                        resources/images/file.jpg
Same here. Cutting out the path before 'images' (if
                  I understand that correctly) Forrest would seem to
                  behave highly unpredictable to the user. What for.

Again, I guess it is legacy.

                  Am I correct to assume that this would be the
                  pattern to match ..-references?

Depends on what the "../.." resolves as. If you end up with "foo/images" then yes, if you end up with "/images" then no, it would be the first.

                  But if so, why does the file end up in the wrong
                  directory? Does the original reference determine the
                  final location of the file in site? And if so, where
                  does that happen?

Yes, the original reference determines the files final location. The sitemap defines a mapping from the user centric URL to the developer centric location. There need be no corolation between the two. What you get out from "forrest site" is the user centric URL space for us in client browsers. If you use "forrest run" this version of the URLspace is never written to disk, it is created dynamically as required (in the cache).

Where does this happen? In the Cocoon CLI.

Thanks for any help in understanding this.

Am I helping or confusing?

Ross