add documentation for `pollen/unstable/convert`
parent
792f1438e4
commit
45300dbef6
@ -1 +1 @@
|
||||
1474935027
|
||||
1475977524
|
||||
|
@ -0,0 +1,68 @@
|
||||
#lang scribble/manual
|
||||
|
||||
@(require scribble/eval pollen/decode pollen/setup txexpr (for-label pollen/unstable/convert pollen/setup txexpr racket (except-in pollen #%module-begin)))
|
||||
|
||||
@(define my-eval (make-base-eval))
|
||||
@(my-eval `(require pollen pollen/unstable/convert))
|
||||
@(require "mb-tools.rkt")
|
||||
|
||||
|
||||
@title{Convert}
|
||||
|
||||
@defmodule[pollen/unstable/convert]
|
||||
|
||||
Helper functions for converting well-made X-expressions or HTML into Pollen markup.
|
||||
|
||||
@defproc[
|
||||
(xexpr->pollen
|
||||
[x xexpr?]
|
||||
[#:white-p? white-p? boolean? #f]
|
||||
)
|
||||
string?]
|
||||
Convert @racket[_x] to Pollen markup, using @racket[setup:command-char] as the leading character. If @racket[_white-p?] is @racket[#t], convert @racket[p] tags by taking the content out of the tag, and inserting @racket[setup:paragraph-separator] in front.
|
||||
|
||||
@examples[#:eval my-eval
|
||||
(xexpr->pollen '(div))
|
||||
(xexpr->pollen '(div ((class "pups"))))
|
||||
(xexpr->pollen '(div ((class "pups")) "Lex"))
|
||||
(xexpr->pollen '(div ((class "pups")) (p "Roxy") (p "Sidney")))
|
||||
(xexpr->pollen #:white-p? #t '(div ((class "pups")) (p "Roxy") (p "Sidney")))
|
||||
]
|
||||
|
||||
@defproc[
|
||||
(html->pollen
|
||||
[html string?]
|
||||
[#:white-p? white-p? boolean? #f]
|
||||
)
|
||||
string?]
|
||||
Convert @racket[_html] to Pollen markup, using @racket[setup:command-char] as the leading character. If @racket[_white-p?] is @racket[#t], convert @racket[p] tags by taking the content out of the tag, and inserting @racket[setup:paragraph-separator] in front.
|
||||
|
||||
@examples[#:eval my-eval
|
||||
(html->pollen "<hr />")
|
||||
(html->pollen "<div class=\"pups\" />")
|
||||
(html->pollen "<div class=\"pups\">Lex</div>")
|
||||
(html->pollen "<div class=\"pups\"><p>Roxy</p><p>Sidney</p></div>")
|
||||
(html->pollen #:white-p? #t "<div class=\"pups\"><p>Roxy</p><p>Sidney</p></div>")
|
||||
]
|
||||
|
||||
This function treats @racket[_html] as an XML-ish data structure. Meaning, @racket[_html] is expected to be syntactically well-formed (in terms of attributes and tags). But it doesn't need to comply with a certain HTML specification. This casual approach suffices in most cases. Be aware, however, that this function won't handle HTML @racket[style] or @racket[script] blocks correctly, if they contain reserved XML characters.
|
||||
|
||||
@examples[#:eval my-eval
|
||||
(html->pollen "<script type=\"javascript\">x < 3</script>")
|
||||
(html->pollen "<style type=\"css\">div{content: \"<&>\";}</style>")
|
||||
]
|
||||
|
||||
But if the interiors of the @racket[style] or @racket[script] blocks are wrapped with @racket[CDATA] designations, they will convert correctly:
|
||||
|
||||
@examples[#:eval my-eval
|
||||
(html->pollen "<script type=\"javascript\"><![CDATA[x < 3]]></script>")
|
||||
(html->pollen "<style type=\"css\"><![CDATA[div{content: \"<&>\";}]]></style>")
|
||||
]
|
||||
|
||||
@defproc[
|
||||
(url->pollen
|
||||
[url (or/c string? url?)]
|
||||
[#:white-p? white-p? boolean? #f]
|
||||
)
|
||||
string?]
|
||||
Like @racket[html->pollen], but takes a @racket[_url] as input and fetches its HTML.
|
Loading…
Reference in New Issue