► |  | Pollen: the book is a program

1 | Installation
2 | Quick tour
3 | Backstory
4 | The big picture
5 | First tutorial
6 | Using raco pollen
7 | File formats
8 | ◊ command overview
9 | Module reference
10 | Acknowledgments
11 | License & source code
| Index

▼ | 9 | Module reference

9.1 | Cache
9.2 | Decode
9.3 | File
9.4 | Pagetree
9.5 | Render
9.6 | Template
9.7 | Tag
9.8 | Top
9.9 | World

On this page:

make-tag-function

6.0.1
top ← prev up next →

#### 9.7`` Tag

(require pollen/tag) | package: pollen

Convenience functions for working with tags.

> procedure (make-tag-function id) → (-> txexpr?)
> id : txexpr-tag?

Make a tag function for id. As arguments, a tag function takes an optional set of X-expression attributes (txexpr-attrs?) followed by X-expression elements (txexpr-elements?). From these, the tag function creates a tagged X-expression using id as the tag.

Examples:
> > (require pollen/tag)
> > (define beaucoup (make-tag-function 'em))
> > (beaucoup "Bonjour")
> '(em "Bonjour")
> > (beaucoup '((id "greeting")) "Bonjour")
> '(em ((id "greeting")) "Bonjour")

Entering attributes this way can be cumbersome. So for convenience, a tag function provides an alternative: any symbol + string pairs at the front of your expression will be interpreted as attributes, if the symbols are followed by a colon. If you leave out the colon, the symbols will be interpreted as part of the content of the tag.

Examples:
> > (require pollen/tag)
> > (define beaucoup (make-tag-function 'em))
> > (beaucoup 'id: "greeting" 'class: "large" "Bonjour")
> '(em ((id "greeting") (class "large")) "Bonjour")
> ; Don't forget the colons
> > (beaucoup 'id "greeting" 'class "large" "Bonjour")
> '(em id "greeting" class "large" "Bonjour")
> ; Don't forget to provide a value for each attribute
> > (beaucoup 'id: 'class: "large" "Bonjour")
> '(em id: class: "large" "Bonjour")

Pollen also uses this function to provide the default behavior for undefined tags. See #%top.

top ← prev up next →