package html
import (
"strings"
)
func adjustAttributeNames(aa []Attribute , nameMap map [string ]string ) {
for i := range aa {
if newName , ok := nameMap [aa [i ].Key ]; ok {
aa [i ].Key = newName
}
}
}
func adjustForeignAttributes(aa []Attribute ) {
for i , a := range aa {
if a .Key == "" || a .Key [0 ] != 'x' {
continue
}
switch a .Key {
case "xlink:actuate" , "xlink:arcrole" , "xlink:href" , "xlink:role" , "xlink:show" ,
"xlink:title" , "xlink:type" , "xml:base" , "xml:lang" , "xml:space" , "xmlns:xlink" :
j := strings .Index (a .Key , ":" )
aa [i ].Namespace = a .Key [:j ]
aa [i ].Key = a .Key [j +1 :]
}
}
}
func htmlIntegrationPoint(n *Node ) bool {
if n .Type != ElementNode {
return false
}
switch n .Namespace {
case "math" :
if n .Data == "annotation-xml" {
for _ , a := range n .Attr {
if a .Key == "encoding" {
val := strings .ToLower (a .Val )
if val == "text/html" || val == "application/xhtml+xml" {
return true
}
}
}
}
case "svg" :
switch n .Data {
case "desc" , "foreignObject" , "title" :
return true
}
}
return false
}
func mathMLTextIntegrationPoint(n *Node ) bool {
if n .Namespace != "math" {
return false
}
switch n .Data {
case "mi" , "mo" , "mn" , "ms" , "mtext" :
return true
}
return false
}
var breakout = map [string ]bool {
"b" : true ,
"big" : true ,
"blockquote" : true ,
"body" : true ,
"br" : true ,
"center" : true ,
"code" : true ,
"dd" : true ,
"div" : true ,
"dl" : true ,
"dt" : true ,
"em" : true ,
"embed" : true ,
"h1" : true ,
"h2" : true ,
"h3" : true ,
"h4" : true ,
"h5" : true ,
"h6" : true ,
"head" : true ,
"hr" : true ,
"i" : true ,
"img" : true ,
"li" : true ,
"listing" : true ,
"menu" : true ,
"meta" : true ,
"nobr" : true ,
"ol" : true ,
"p" : true ,
"pre" : true ,
"ruby" : true ,
"s" : true ,
"small" : true ,
"span" : true ,
"strong" : true ,
"strike" : true ,
"sub" : true ,
"sup" : true ,
"table" : true ,
"tt" : true ,
"u" : true ,
"ul" : true ,
"var" : true ,
}
var svgTagNameAdjustments = map [string ]string {
"altglyph" : "altGlyph" ,
"altglyphdef" : "altGlyphDef" ,
"altglyphitem" : "altGlyphItem" ,
"animatecolor" : "animateColor" ,
"animatemotion" : "animateMotion" ,
"animatetransform" : "animateTransform" ,
"clippath" : "clipPath" ,
"feblend" : "feBlend" ,
"fecolormatrix" : "feColorMatrix" ,
"fecomponenttransfer" : "feComponentTransfer" ,
"fecomposite" : "feComposite" ,
"feconvolvematrix" : "feConvolveMatrix" ,
"fediffuselighting" : "feDiffuseLighting" ,
"fedisplacementmap" : "feDisplacementMap" ,
"fedistantlight" : "feDistantLight" ,
"feflood" : "feFlood" ,
"fefunca" : "feFuncA" ,
"fefuncb" : "feFuncB" ,
"fefuncg" : "feFuncG" ,
"fefuncr" : "feFuncR" ,
"fegaussianblur" : "feGaussianBlur" ,
"feimage" : "feImage" ,
"femerge" : "feMerge" ,
"femergenode" : "feMergeNode" ,
"femorphology" : "feMorphology" ,
"feoffset" : "feOffset" ,
"fepointlight" : "fePointLight" ,
"fespecularlighting" : "feSpecularLighting" ,
"fespotlight" : "feSpotLight" ,
"fetile" : "feTile" ,
"feturbulence" : "feTurbulence" ,
"foreignobject" : "foreignObject" ,
"glyphref" : "glyphRef" ,
"lineargradient" : "linearGradient" ,
"radialgradient" : "radialGradient" ,
"textpath" : "textPath" ,
}
var mathMLAttributeAdjustments = map [string ]string {
"definitionurl" : "definitionURL" ,
}
var svgAttributeAdjustments = map [string ]string {
"attributename" : "attributeName" ,
"attributetype" : "attributeType" ,
"basefrequency" : "baseFrequency" ,
"baseprofile" : "baseProfile" ,
"calcmode" : "calcMode" ,
"clippathunits" : "clipPathUnits" ,
"diffuseconstant" : "diffuseConstant" ,
"edgemode" : "edgeMode" ,
"filterunits" : "filterUnits" ,
"glyphref" : "glyphRef" ,
"gradienttransform" : "gradientTransform" ,
"gradientunits" : "gradientUnits" ,
"kernelmatrix" : "kernelMatrix" ,
"kernelunitlength" : "kernelUnitLength" ,
"keypoints" : "keyPoints" ,
"keysplines" : "keySplines" ,
"keytimes" : "keyTimes" ,
"lengthadjust" : "lengthAdjust" ,
"limitingconeangle" : "limitingConeAngle" ,
"markerheight" : "markerHeight" ,
"markerunits" : "markerUnits" ,
"markerwidth" : "markerWidth" ,
"maskcontentunits" : "maskContentUnits" ,
"maskunits" : "maskUnits" ,
"numoctaves" : "numOctaves" ,
"pathlength" : "pathLength" ,
"patterncontentunits" : "patternContentUnits" ,
"patterntransform" : "patternTransform" ,
"patternunits" : "patternUnits" ,
"pointsatx" : "pointsAtX" ,
"pointsaty" : "pointsAtY" ,
"pointsatz" : "pointsAtZ" ,
"preservealpha" : "preserveAlpha" ,
"preserveaspectratio" : "preserveAspectRatio" ,
"primitiveunits" : "primitiveUnits" ,
"refx" : "refX" ,
"refy" : "refY" ,
"repeatcount" : "repeatCount" ,
"repeatdur" : "repeatDur" ,
"requiredextensions" : "requiredExtensions" ,
"requiredfeatures" : "requiredFeatures" ,
"specularconstant" : "specularConstant" ,
"specularexponent" : "specularExponent" ,
"spreadmethod" : "spreadMethod" ,
"startoffset" : "startOffset" ,
"stddeviation" : "stdDeviation" ,
"stitchtiles" : "stitchTiles" ,
"surfacescale" : "surfaceScale" ,
"systemlanguage" : "systemLanguage" ,
"tablevalues" : "tableValues" ,
"targetx" : "targetX" ,
"targety" : "targetY" ,
"textlength" : "textLength" ,
"viewbox" : "viewBox" ,
"viewtarget" : "viewTarget" ,
"xchannelselector" : "xChannelSelector" ,
"ychannelselector" : "yChannelSelector" ,
"zoomandpan" : "zoomAndPan" ,
}
The pages are generated with Golds v0.6.7 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds .