You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.6 KiB
Racket
41 lines
1.6 KiB
Racket
#lang scribble/manual
|
|
|
|
@(require scribble/eval pollen/cache pollen/world (for-label racket (except-in pollen #%module-begin) txexpr pollen/tag pollen/render xml pollen/pagetree))
|
|
|
|
@(define my-eval (make-base-eval))
|
|
@(my-eval `(require pollen pollen/template xml))
|
|
|
|
@title{Tag}
|
|
|
|
@defmodule[pollen/tag]
|
|
|
|
Convenience functions for working with tags.
|
|
|
|
|
|
@defproc[
|
|
(make-tag-function
|
|
[id txexpr-tag?])
|
|
(-> txexpr?)]
|
|
Make a tag function for @racket[_id]. As arguments, a tag function takes an optional set of X-expression attributes (@racket[txexpr-attrs?]) followed by X-expression elements (@racket[txexpr-elements?]). From these, the tag function creates a tagged X-expression using @racket[_id] as the tag.
|
|
|
|
@examples[
|
|
(require pollen/tag)
|
|
(define beaucoup (make-tag-function 'em))
|
|
(beaucoup "Bonjour")
|
|
(beaucoup '((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")
|
|
(code:comment @#,t{Don't forget the colons})
|
|
(beaucoup 'id "greeting" 'class "large" "Bonjour")
|
|
(code:comment @#,t{Don't forget to provide a value for each attribute})
|
|
(beaucoup 'id: 'class: "large" "Bonjour")
|
|
]
|
|
|
|
Pollen also uses this function to provide the default behavior for undefined tags. See @racket[#%top].
|