Labels and content-map

Subject: Labels and content-map
From: Paul Prescod <papresco@xxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 22 May 1997 15:18:07 -0400
I want to move some labeled flow objects before unlabeled ones in the
output of a document. The only way I could figure out how to do that is
to make two copies of the flow object tree, add labels to the elements
without, and then discard them based on their labels. There may be a
more elegant way, and I would like to know it, if there is, but I would
also like to know why this way doesn't work. In the example below I will
try to attack half of the problem, outputting only the flow objects
labeled 'a . But Jade doesn't output them.

<!DOCTYPE FOO [
	<!ELEMENT FOO O O (A,B,C)>
	<!ELEMENT A - O EMPTY>
	<!ELEMENT B - O EMPTY>
	<!ELEMENT C - O EMPTY>
]>
<A>
<B>
<C>

---
<!doctype style-sheet PUBLIC "-//James Clark//DTD DSSSL Style
Sheet//EN">
<!-- test.dsl -->

(element a (make sequence label: 'a (literal "This is an A")))

(element b (literal "This is a B")) ;; no label 

(element c (literal "This is a C")) ;; no label

(element foo
	(let* ((flow-children (process-children))
		(a-and-non-a-labels (sosofo-label flow-children 'non-a))
		(only-a-elements (sosofo-discard-labeled 
			a-and-non-a-labels 'non-a)))

		(make simple-page-sequence
			(make paragraph content-map: '((a #f)) 
				only-a-elements))))

I thought that that code would add the label 'non-a to all flow objects
*except* the one already labelled 'a and would then discard the non-a
flow objects. Instead I get an empty document. Am I doing something
wrong or is this a Jade bug?

 Paul Prescod


 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread