[FM] ** Principle ** Never thought about that fact ? Nested Tcl scripts look like markup documents. Let's compare : ====== html file :

Nested Tcl script : html --\ [head --]\ [body -- [div -- [attributes id 1]\ [p --]\ ]\ [div -- [attributes id 2]\ [ul --\ [li --]\ [li --]\ ]\ ]\ ] ====== ''[NEM] And they both look like [SEXP]s...'' ''[Lars H], 2010-02-03: And for a more Tcl-native counterpart, there is [data is code], which differs from your example mostly in using {…} where you have [[…]]. This has the advantage of leveraging the power of [list] and friends for building these structures, making serialisation trivial. ([FM] reports below that he hasn't yet gotten serialisation into [[…]] syntax to work correctly.) [TDL] might also be relevant.'' Here's an attempt to deal with this fact using [typedlist]. Only p, h*, b, i, img, s, body markup done in this example. ** implementation ** ====== package require img::jpeg package require base64 namespace eval htnstw {} namespace eval htnstw::tag { # basic configuration foreach tl [set tags [list body h1 h2 h3 h4 h5 h6 h7 p img a b i u s ul li ol span &]] { typedlist create $tl } variable Init [dict create \ body [body -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 10 \ -lmargin2 10 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 10 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ h1 [h1 -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ h2 [h2 -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ h3 [h3 -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ h4 [h4 -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ h5 [h5 -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ h6 [h6 -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ h7 [h7 -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ p [p -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 30 \ -lmargin2 0 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 0 \ -spacing2 0 \ -spacing3 0 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ img [img -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 0 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 20 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ a [a -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground blue \ -justify left \ -lmargin1 0 \ -lmargin2 0 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 0 \ -spacing2 0 \ -spacing3 0 \ -tabs [] \ -tabstyle [] \ -underline 1 \ -wrap word]\ b [b -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 0 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 0 \ -spacing2 0 \ -spacing3 0 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ i [i -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 0 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 0 \ -spacing2 0 \ -spacing3 0 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ u [u -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 0 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 0 \ -spacing2 0 \ -spacing3 0 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ s [s -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 0 \ -offset 0 \ -overstrike 1 \ -relief flat \ -rmargin 0 \ -spacing1 0 \ -spacing2 0 \ -spacing3 0 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ ul [ul -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ li [li -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ ol [ol -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]\ span [span -background white \ -bgstipple {} \ -borderwidth 0 \ -elide 0 \ -fgstipple {} \ -font fontName \ -foreground black \ -justify left \ -lmargin1 0 \ -lmargin2 50 \ -offset 0 \ -overstrike 0 \ -relief flat \ -rmargin 0 \ -spacing1 20 \ -spacing2 0 \ -spacing3 30 \ -tabs [] \ -tabstyle [] \ -underline 0 \ -wrap word]] variable Font [dict create \ body [font create body -family Arial -size 12 -weight normal -slant roman -underline 0 -overstrike 0]\ h1 [font create h1 -family Arial -size 28 -weight bold -slant roman -underline 0 -overstrike 0]\ h2 [font create h2 -family Arial -size 25 -weight bold -slant roman -underline 0 -overstrike 0]\ h3 [font create h3 -family Arial -size 22 -weight bold -slant roman -underline 0 -overstrike 0]\ h4 [font create h4 -family Arial -size 19 -weight bold -slant roman -underline 0 -overstrike 0]\ h5 [font create h5 -family Arial -size 17 -weight bold -slant roman -underline 0 -overstrike 0]\ h6 [font create h6 -family Arial -size 15 -weight bold -slant roman -underline 0 -overstrike 0]\ h7 [font create h7 -family Arial -size 13 -weight bold -slant roman -underline 0 -overstrike 0]\ p [font create p -family Arial -size 12 -weight normal -slant roman -underline 0 -overstrike 0]\ img [font create img]\ a [font create a -family Helvetica -size 12 -weight bold -slant roman -underline 1 -overstrike 0]\ b [font create b -weight bold]\ i [font create i -slant italic]\ u [font create u -underline 1]\ s [font create s -overstrike 1]\ ul [font create ul -family Arial -size 12 -weight normal -slant roman -underline 0 -overstrike 0]\ li [font create li -family Arial -size 12 -weight normal -slant roman -underline 0 -overstrike 0]\ ol [font create ol -family Arial -size 12 -weight normal -slant roman -underline 0 -overstrike 0]] variable knownFont [list] proc merge {w args} { variable Init variable Font variable knownFont set args [split $args ", "] set D [dict create] set F [dict create] lassign {0 0 0 0 0 0} lmargin1 lmargin2 rmargin spacing1 spacing2 spacing3 foreach tag $args { # 1. mélanger les configurations des tags # Autre possibilité : cumuler certaines valeurs (i.e valeur relative) # ex: -lmargin1(body) 10, -lmargin1(p) 20 => -lmargin1(body p) 10+20=30 if {$D ne ""} { set lmargin1 [dict get $D -lmargin1] set lmargin2 [dict get $D -lmargin2] set rmargin [dict get $D -rmargin] set spacing1 [dict get $D -spacing1] set spacing2 [dict get $D -spacing2] set spacing3 [dict get $D -spacing3] } set D [dict merge $D [[dict get $Init [$tag type]] get]] # cumul des marges gauches et droite dict set D -lmargin1 [expr {[dict get $D -lmargin1]+$lmargin1}] dict set D -lmargin2 [expr {[dict get $D -lmargin2]+$lmargin2}] dict set D -rmargin [expr {[dict get $D -rmargin]+$rmargin}] expr {[dict get $D -spacing1] eq 0 ? [dict set D -spacing1 $spacing1] : ""} expr {[dict get $D -spacing2] eq 0 ? [dict set D -spacing2 $spacing2] : ""} expr {[dict get $D -spacing3] eq 0 ? [dict set D -spacing3 $spacing3] : ""} # 2. mélanger les polices if {$F ne ""} { # sauvegarde de l'état précédent set family [dict get $F -family] set size [dict get $F -size] set weight [dict get $F -weight] set slant [dict get $F -slant] set underline [dict get $F -underline] set overstrike [dict get $F -overstrike] set F [dict merge $F [font conf [dict get $Font [$tag type]]]] expr {$weight eq "bold" ? [ dict set F -weight bold]: ""} expr {$slant eq "italic" ? [ dict set F -slant italic] : ""} expr {$underline eq "1" ? [ dict set F -underline 1] : ""} expr {$overstrike eq "1" ? [ dict set F -overstrike 1] : ""} expr {[dict get $F -family] eq "" ? [ dict set F -family $family]: ""} expr {[dict get $F -size] eq 0 ? [ dict set F -size $size]: ""} } else { if {[$tag type] ne "img"} { set F [font conf [dict get $Font [$tag type]]] } } lappend TAGS $tag } if {[join $TAGS ,] ni $knownFont} { # Crée une police à chaque fois, créer un dictionnaire. font create [join $TAGS ,] {*}$F lappend knownFont [join $TAGS ,] } dict set D -font [join $TAGS ,] $w tag conf [join $TAGS ,] {*}$D return [join $TAGS ,] } } namespace eval htnstw { # parser foreach tl [set tags [list a b i tag u img p body h1 h2 h3 h4 h5 h6 h7 ul li ol]] { typedlist create ::htnstw::$tl } # Attributs de balise typedlist create ::htnstw::& array set IMAGES {} namespace export * namespace ensemble create array set Tags {} } proc ::htnstw::isHtnstwTag {e} { if {(![catch {info object class $e}]) \ && ([info object class $e] eq "::typedlist") \ && ([set Type [$e type]] in $::htnstw::tags)} { return $Type } else { return "0" } } proc ::htnstw::isHtnstwAttributes {e} { if {(![catch {info object class $e}]) \ && ([info object class $e] eq "::typedlist") \ && ([set Type [$e type]] eq "&")} { return 1 } else { return 0 } } proc ::htnstw::insert {w index ns} { variable if {!([winfo class $w] eq "Text" || [winfo class $w] eq "SText") } { puts stderr "bad widget type [winfo class $w] for $w" return } if {[::htnstw::isHtnstwTag [set Body [eval $ns]]] eq "body"} { set ::htnstw::Tag($w) $Body parse $w $index [$Body get] {} $Body } } proc ::htnstw::parse {w index L {lastChar { }} {upTag {}}} { # update foreach e $L { if {[::htnstw::isHtnstwTag $e] ne "0" || [::htnstw::isHtnstwAttributes $e] ne "0"} { lappend ::htnstw::Tag($w) $e } if {[::htnstw::isHtnstwTag $e] eq "h1"} { set index [parse $w $index [$e get] \n [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "h2"} { set index [parse $w $index [$e get] \n [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "h3"} { set index [parse $w $index [$e get] \n [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "h4"} { set index [parse $w $index [$e get] \n [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "h5"} { set index [parse $w $index [$e get] \n [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "h6"} { set index [parse $w $index [$e get] \n [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "h7"} { set index [parse $w $index [$e get] \n [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "p"} { set index0 $index set index [parse $w $index [$e get] \n [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "b"} { set index [parse $w $index [$e get] { } [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "i"} { set index [parse $w $index [$e get] { } [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "u"} { set index [parse $w $index [$e get] { } [tag::merge $w {*}$upTag $e]] } elseif {[::htnstw::isHtnstwTag $e] eq "img"} { set src "" foreach img [$e get] { if {[::htnstw::isHtnstwAttributes $img]} { lappend ::htnstw::Tag($w) $img set D [$img get] dict with D {} if {$src ne ""} { $w insert $index \n $w image create $index+1c -image [set image [image create photo -file $src]] -align center $w insert $index+2c \n set index [$w index "$index + 2l"] set ::htnstw::IMAGES($image) $src } elseif {$data ne ""} { $w insert $index \n $w image create $index+1c -image [set image [image create photo -data $data]] -align center $w insert $index+2c \n set index [$w index "$index + 2l"] set ::htnstw::IMAGES(data,$image) $data set ::htnstw::IMAGES(file,$image) {} } } } } elseif {[::htnstw::isHtnstwAttributes $e]} { if {[[lindex [split $upTag ,] end] type] eq "htnstw::tag::body"} { $w conf {*}[$e get] } elseif {[[lindex [split $upTag ,] end] type] eq "htnstw::tag::a"} { set href [dict get [$e get] href] # mettre en place des tags individualisés, héritant de certaines caractéristiques, mais en modifiant d'autres. } else { $w tag conf $upTag {*}[$e get] } } elseif {[::htnstw::isHtnstwTag $e] eq "a"} { # ceux-là ne désirent pas le mal, qui ne le connaissent pas comme mal } else { if {$e eq "\\"} { # il faudrait connaître le nombre de tag $w delete $index set index [$w index [list $index - 1 char]] } else { $w insert [$w index $index+1c] $e\ $upTag set index [$w index [list $index + [expr {[string length $e]+1}] chars]] } } } $w insert [$w index $index+1c] $lastChar $upTag set index [$w index $index+1c] return $index } proc ::htnstw::dump {w} { set ns {body -- } # Supprimer toute sélection au préalable $w tag remove sel 0.0 end # This RE is just a character class for everything "bad" set RE {[][{};#\\\$\n\r\u0080-\uffff]} # We will substitute with a fragment of Tcl script in brackets set substitution {[format \\\\u%04x [scan "\\&" %c]]} # Logiquement chaque caractère est taggé une fois foreach {key value index} [$w dump 1.0 end] { if {$key eq "text"} { # Now we apply the substitution to get a subst-string that # will perform the computational parts of the conversion. set text [subst [regsub -all $RE [string trim $value] $substitution]] append ns $text\ } elseif {$key eq "tagon"} { set li [lindex [split $value ,] end] if {[set Type [isHtnstwTag $li]] ne ""} { append ns \[[namespace tail $Type]\ --\ if {[isHtnstwAttributes [set e [lindex [$li get] 0]]]} { append ns \[&\ --\ [set conf [$e get]]\]\ } } } elseif {$key eq "tagoff"} { set li [lindex [split $value ,] end] if {[set Type [isHtnstwTag $li]] ne ""} { append ns \]\ } } elseif {$key eq "image"} { set src $::htnstw::IMAGES(file,$value) set data $::htnstw::IMAGES(data,$value) if {$src ne {}} { set fileID [open $src RDONLY] fconfigure $fileID -translation binary set rawData [read $fileID] close $fileID if {$rawData ne {}} { set Data [base64::encode $rawData] append ns \[img\ --\ \[&\ --\ src\ \"$src\"\ data\ \{\n[string trim $Data]\n\}\]\]\ } } elseif {$data ne {}} { append ns \[img\ --\ \[&\ --\ src\ \"$src\"\ data\ \{\n[string trim $data]\n\}\]\]\ } } elseif {$key eq "mark"} { } elseif {$key eq "window"} { } } return $ns } proc ::htnstw::save {w file} { set fid [open $file "w"] fconfigure $fid -encoding binary puts $fid [htnstw::dump $w] close $fid } ====== *** Test *** # Let's try it with this file (call it for instance sncf.htnstw) ====== body -- \ [h1 [& -background AntiqueWhite4 -foreground orange] \ La SNCF tire le signal d'alarme sur la viabilité financière des TGV.]\ [p -- [& -background \#eeeecc] \ [i -- [& -background \#eeeecc -justify right] 18/01/2010 17:53]]\ [p -- [set Pconf [& -background AntiqueWhite -foreground \#550000]]\ L'existence d'un plan de suppressions de dessertes TGV a été démentie mais l'activité grande vitesse souffre d'une baisse de rentabilité]\ [p -- $Pconf\ [img [& -- data { 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}]]]\ [p -- $Pconf À l'automne 2009, le directeur « stratégie et finances » de la [set SNCF [b -- [& -background AntiqueWhite] [i -- [& -background AntiqueWhite] SNCF]]] \\ , David Azéma, avait alerté sur les difficultés économiques de la grande vitesse : « Sur la base des tarifs 2009, 20 % des TGV dégagent déjà des pertes . Sur la base des tarifs 2011, 30 % de nos TGV afficheront des résultats négatifs dans deux ans. » Le message de la $SNCF est clair. Si la grande vitesse est toujours l'activité « vache à lait » de l'opérateur ferroviaire, la bête souffre de plus en plus !]\ [h2 [& -background AntiqueWhite2] La SNCF incrimine Réseau ferré de France]\ [p $Pconf Un responsable de la SNCF indique que de tels ajustements se produisent chaque année. « C'est le rôle des analystes de procéder à ces modifications régulières, dit-il. Ils regardent ainsi quelles sont les lignes et les horaires les plus et les moins fréquentées, quelles sont les plus et les moins rentables »] ====== *** screenshot *** Open this .htnstw file with the editor found at [megawidget framework with tclOO (1)], I get [http://img62.imageshack.us/img62/5752/sncf.png] But, there is a problem when the file is saved. It get corrupted. Not much, but too much. There is a problem in the dump routine when dealing with markups. [PYK] 2014-11-06: I made a small change above to eliminate what looked like extra newlines being created in the output. That change, along with the changes I just made to [megawidget framework with tclOO (1)], remedy the corruption that I observed. [FM], do you have any additional examples that illustrate other data corruption that may be happening? <> Category Data Serialization Format | Category Object Orientation | Category HTML