From 951f4678180df1028ae980ea04c15fc176882949 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Fri, 28 Feb 2014 19:42:11 -0800 Subject: [PATCH] add txexpr->html --- main.rkt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/main.rkt b/main.rkt index 04347bf..acddbbe 100644 --- a/main.rkt +++ b/main.rkt @@ -222,3 +222,16 @@ (define tx-extracted (do-extraction tx)) ;; do this first to fill matches (values tx-extracted (reverse matches))) + +(define+provide+safe (txexpr->html x) + (txexpr? . -> . string?) + (define (->cdata x) + (if (cdata? x) x (cdata #f #f x))) + + (xexpr->string (let loop ([x x]) + (cond + [(txexpr? x) (if (member (get-tag x) '(script style)) + (make-txexpr (get-tag x) (get-attrs x) (map ->cdata (get-elements x))) + (make-txexpr (get-tag x) (get-attrs x) (map loop (get-elements x))))] + [else x])))) +