Hello community, here is the log from the commit of package ghc-tagsoup for openSUSE:Factory checked in at 2016-05-17 17:14:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-tagsoup (Old) and /work/SRC/openSUSE:Factory/.ghc-tagsoup.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-tagsoup" Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-tagsoup/ghc-tagsoup.changes 2016-03-26 15:26:19.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-tagsoup.new/ghc-tagsoup.changes 2016-05-17 17:14:48.000000000 +0200 @@ -1,0 +2,7 @@ +Sat May 7 06:30:29 UTC 2016 - [email protected] + +- update to 0.13.10 +* improve the Haddock documentation +* fix some > 16bit HTML entities + +------------------------------------------------------------------- Old: ---- tagsoup-0.13.9.tar.gz New: ---- tagsoup-0.13.10.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-tagsoup.spec ++++++ --- /var/tmp/diff_new_pack.CC1ka4/_old 2016-05-17 17:14:49.000000000 +0200 +++ /var/tmp/diff_new_pack.CC1ka4/_new 2016-05-17 17:14:49.000000000 +0200 @@ -19,7 +19,7 @@ %global pkg_name tagsoup Name: ghc-tagsoup -Version: 0.13.9 +Version: 0.13.10 Release: 0 Summary: Parsing and extracting information from (possibly malformed) HTML/XML documents License: BSD-3-Clause ++++++ tagsoup-0.13.9.tar.gz -> tagsoup-0.13.10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tagsoup-0.13.9/CHANGES.txt new/tagsoup-0.13.10/CHANGES.txt --- old/tagsoup-0.13.9/CHANGES.txt 2016-03-15 13:07:28.000000000 +0100 +++ new/tagsoup-0.13.10/CHANGES.txt 2016-05-06 16:01:11.000000000 +0200 @@ -1,5 +1,8 @@ Changelog for TagSoup +0.13.10 + #51, improve the Haddock documentation + #52, fix some > 16bit HTML entities 0.13.9 #50, fix a space leak #36, fix the demo examples diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tagsoup-0.13.9/Text/HTML/TagSoup/Entity.hs new/tagsoup-0.13.10/Text/HTML/TagSoup/Entity.hs --- old/tagsoup-0.13.9/Text/HTML/TagSoup/Entity.hs 2016-03-15 13:07:28.000000000 +0100 +++ new/tagsoup-0.13.10/Text/HTML/TagSoup/Entity.hs 2016-05-06 16:01:11.000000000 +0200 @@ -108,8 +108,8 @@ ,"AElig;" * "\x00C6" ,"aelig;" * "\x00E6" ,"af;" * "\x2061" - ,"Afr;" * "\xD835\xDD04" - ,"afr;" * "\xD835\xDD1E" + ,"Afr;" * "\x1D504" + ,"afr;" * "\x1D51E" ,"Agrave" * "\x00C0" ,"agrave" * "\x00E0" ,"Agrave;" * "\x00C0" @@ -151,8 +151,8 @@ ,"angzarr;" * "\x237C" ,"Aogon;" * "\x0104" ,"aogon;" * "\x0105" - ,"Aopf;" * "\xD835\xDD38" - ,"aopf;" * "\xD835\xDD52" + ,"Aopf;" * "\x1D538" + ,"aopf;" * "\x1D552" ,"ap;" * "\x2248" ,"apacir;" * "\x2A6F" ,"ape;" * "\x224A" @@ -166,8 +166,8 @@ ,"aring" * "\x00E5" ,"Aring;" * "\x00C5" ,"aring;" * "\x00E5" - ,"Ascr;" * "\xD835\xDC9C" - ,"ascr;" * "\xD835\xDCB6" + ,"Ascr;" * "\x1D49C" + ,"ascr;" * "\x1D4B6" ,"Assign;" * "\x2254" ,"ast;" * "\x002A" ,"asymp;" * "\x2248" @@ -210,8 +210,8 @@ ,"beta;" * "\x03B2" ,"beth;" * "\x2136" ,"between;" * "\x226C" - ,"Bfr;" * "\xD835\xDD05" - ,"bfr;" * "\xD835\xDD1F" + ,"Bfr;" * "\x1D505" + ,"bfr;" * "\x1D51F" ,"bigcap;" * "\x22C2" ,"bigcirc;" * "\x25EF" ,"bigcup;" * "\x22C3" @@ -241,8 +241,8 @@ ,"bnequiv;" * "\x2261\x20E5" ,"bnot;" * "\x2310" ,"bNot;" * "\x2AED" - ,"Bopf;" * "\xD835\xDD39" - ,"bopf;" * "\xD835\xDD53" + ,"Bopf;" * "\x1D539" + ,"bopf;" * "\x1D553" ,"bot;" * "\x22A5" ,"bottom;" * "\x22A5" ,"bowtie;" * "\x22C8" @@ -296,7 +296,7 @@ ,"brvbar" * "\x00A6" ,"brvbar;" * "\x00A6" ,"Bscr;" * "\x212C" - ,"bscr;" * "\xD835\xDCB7" + ,"bscr;" * "\x1D4B7" ,"bsemi;" * "\x204F" ,"bsim;" * "\x223D" ,"bsime;" * "\x22CD" @@ -347,7 +347,7 @@ ,"CenterDot;" * "\x00B7" ,"centerdot;" * "\x00B7" ,"Cfr;" * "\x212D" - ,"cfr;" * "\xD835\xDD20" + ,"cfr;" * "\x1D520" ,"CHcy;" * "\x0427" ,"chcy;" * "\x0447" ,"check;" * "\x2713" @@ -396,7 +396,7 @@ ,"Conint;" * "\x222F" ,"ContourIntegral;" * "\x222E" ,"Copf;" * "\x2102" - ,"copf;" * "\xD835\xDD54" + ,"copf;" * "\x1D554" ,"coprod;" * "\x2210" ,"Coproduct;" * "\x2210" ,"COPY" * "\x00A9" @@ -408,8 +408,8 @@ ,"crarr;" * "\x21B5" ,"cross;" * "\x2717" ,"Cross;" * "\x2A2F" - ,"Cscr;" * "\xD835\xDC9E" - ,"cscr;" * "\xD835\xDCB8" + ,"Cscr;" * "\x1D49E" + ,"cscr;" * "\x1D4B8" ,"csub;" * "\x2ACF" ,"csube;" * "\x2AD1" ,"csup;" * "\x2AD0" @@ -473,8 +473,8 @@ ,"delta;" * "\x03B4" ,"demptyv;" * "\x29B1" ,"dfisht;" * "\x297F" - ,"Dfr;" * "\xD835\xDD07" - ,"dfr;" * "\xD835\xDD21" + ,"Dfr;" * "\x1D507" + ,"dfr;" * "\x1D521" ,"dHar;" * "\x2965" ,"dharl;" * "\x21C3" ,"dharr;" * "\x21C2" @@ -502,8 +502,8 @@ ,"dlcorn;" * "\x231E" ,"dlcrop;" * "\x230D" ,"dollar;" * "\x0024" - ,"Dopf;" * "\xD835\xDD3B" - ,"dopf;" * "\xD835\xDD55" + ,"Dopf;" * "\x1D53B" + ,"dopf;" * "\x1D555" ,"Dot;" * "\x00A8" ,"dot;" * "\x02D9" ,"DotDot;" * "\x20DC" @@ -549,8 +549,8 @@ ,"drbkarow;" * "\x2910" ,"drcorn;" * "\x231F" ,"drcrop;" * "\x230C" - ,"Dscr;" * "\xD835\xDC9F" - ,"dscr;" * "\xD835\xDCB9" + ,"Dscr;" * "\x1D49F" + ,"dscr;" * "\x1D4B9" ,"DScy;" * "\x0405" ,"dscy;" * "\x0455" ,"dsol;" * "\x29F6" @@ -586,8 +586,8 @@ ,"eDot;" * "\x2251" ,"ee;" * "\x2147" ,"efDot;" * "\x2252" - ,"Efr;" * "\xD835\xDD08" - ,"efr;" * "\xD835\xDD22" + ,"Efr;" * "\x1D508" + ,"efr;" * "\x1D522" ,"eg;" * "\x2A9A" ,"Egrave" * "\x00C8" ,"egrave" * "\x00E8" @@ -616,8 +616,8 @@ ,"ensp;" * "\x2002" ,"Eogon;" * "\x0118" ,"eogon;" * "\x0119" - ,"Eopf;" * "\xD835\xDD3C" - ,"eopf;" * "\xD835\xDD56" + ,"Eopf;" * "\x1D53C" + ,"eopf;" * "\x1D556" ,"epar;" * "\x22D5" ,"eparsl;" * "\x29E3" ,"eplus;" * "\x2A71" @@ -669,8 +669,8 @@ ,"ffilig;" * "\xFB03" ,"fflig;" * "\xFB00" ,"ffllig;" * "\xFB04" - ,"Ffr;" * "\xD835\xDD09" - ,"ffr;" * "\xD835\xDD23" + ,"Ffr;" * "\x1D509" + ,"ffr;" * "\x1D523" ,"filig;" * "\xFB01" ,"FilledSmallSquare;" * "\x25FC" ,"FilledVerySmallSquare;" * "\x25AA" @@ -679,8 +679,8 @@ ,"fllig;" * "\xFB02" ,"fltns;" * "\x25B1" ,"fnof;" * "\x0192" - ,"Fopf;" * "\xD835\xDD3D" - ,"fopf;" * "\xD835\xDD57" + ,"Fopf;" * "\x1D53D" + ,"fopf;" * "\x1D557" ,"ForAll;" * "\x2200" ,"forall;" * "\x2200" ,"fork;" * "\x22D4" @@ -708,7 +708,7 @@ ,"frasl;" * "\x2044" ,"frown;" * "\x2322" ,"Fscr;" * "\x2131" - ,"fscr;" * "\xD835\xDCBB" + ,"fscr;" * "\x1D4BB" ,"gacute;" * "\x01F5" ,"Gamma;" * "\x0393" ,"gamma;" * "\x03B3" @@ -738,8 +738,8 @@ ,"gesdotol;" * "\x2A84" ,"gesl;" * "\x22DB\xFE00" ,"gesles;" * "\x2A94" - ,"Gfr;" * "\xD835\xDD0A" - ,"gfr;" * "\xD835\xDD24" + ,"Gfr;" * "\x1D50A" + ,"gfr;" * "\x1D524" ,"gg;" * "\x226B" ,"Gg;" * "\x22D9" ,"ggg;" * "\x22D9" @@ -757,8 +757,8 @@ ,"gneq;" * "\x2A88" ,"gneqq;" * "\x2269" ,"gnsim;" * "\x22E7" - ,"Gopf;" * "\xD835\xDD3E" - ,"gopf;" * "\xD835\xDD58" + ,"Gopf;" * "\x1D53E" + ,"gopf;" * "\x1D558" ,"grave;" * "\x0060" ,"GreaterEqual;" * "\x2265" ,"GreaterEqualLess;" * "\x22DB" @@ -768,7 +768,7 @@ ,"GreaterSlantEqual;" * "\x2A7E" ,"GreaterTilde;" * "\x2273" ,"gscr;" * "\x210A" - ,"Gscr;" * "\xD835\xDCA2" + ,"Gscr;" * "\x1D4A2" ,"gsim;" * "\x2273" ,"gsime;" * "\x2A8E" ,"gsiml;" * "\x2A90" @@ -810,7 +810,7 @@ ,"hellip;" * "\x2026" ,"hercon;" * "\x22B9" ,"Hfr;" * "\x210C" - ,"hfr;" * "\xD835\xDD25" + ,"hfr;" * "\x1D525" ,"HilbertSpace;" * "\x210B" ,"hksearow;" * "\x2925" ,"hkswarow;" * "\x2926" @@ -819,11 +819,11 @@ ,"hookleftarrow;" * "\x21A9" ,"hookrightarrow;" * "\x21AA" ,"Hopf;" * "\x210D" - ,"hopf;" * "\xD835\xDD59" + ,"hopf;" * "\x1D559" ,"horbar;" * "\x2015" ,"HorizontalLine;" * "\x2500" ,"Hscr;" * "\x210B" - ,"hscr;" * "\xD835\xDCBD" + ,"hscr;" * "\x1D4BD" ,"hslash;" * "\x210F" ,"Hstrok;" * "\x0126" ,"hstrok;" * "\x0127" @@ -849,7 +849,7 @@ ,"iexcl;" * "\x00A1" ,"iff;" * "\x21D4" ,"Ifr;" * "\x2111" - ,"ifr;" * "\xD835\xDD26" + ,"ifr;" * "\x1D526" ,"Igrave" * "\x00CC" ,"igrave" * "\x00EC" ,"Igrave;" * "\x00CC" @@ -892,15 +892,15 @@ ,"iocy;" * "\x0451" ,"Iogon;" * "\x012E" ,"iogon;" * "\x012F" - ,"Iopf;" * "\xD835\xDD40" - ,"iopf;" * "\xD835\xDD5A" + ,"Iopf;" * "\x1D540" + ,"iopf;" * "\x1D55A" ,"Iota;" * "\x0399" ,"iota;" * "\x03B9" ,"iprod;" * "\x2A3C" ,"iquest" * "\x00BF" ,"iquest;" * "\x00BF" ,"Iscr;" * "\x2110" - ,"iscr;" * "\xD835\xDCBE" + ,"iscr;" * "\x1D4BE" ,"isin;" * "\x2208" ,"isindot;" * "\x22F5" ,"isinE;" * "\x22F9" @@ -920,13 +920,13 @@ ,"jcirc;" * "\x0135" ,"Jcy;" * "\x0419" ,"jcy;" * "\x0439" - ,"Jfr;" * "\xD835\xDD0D" - ,"jfr;" * "\xD835\xDD27" + ,"Jfr;" * "\x1D50D" + ,"jfr;" * "\x1D527" ,"jmath;" * "\x0237" - ,"Jopf;" * "\xD835\xDD41" - ,"jopf;" * "\xD835\xDD5B" - ,"Jscr;" * "\xD835\xDCA5" - ,"jscr;" * "\xD835\xDCBF" + ,"Jopf;" * "\x1D541" + ,"jopf;" * "\x1D55B" + ,"Jscr;" * "\x1D4A5" + ,"jscr;" * "\x1D4BF" ,"Jsercy;" * "\x0408" ,"jsercy;" * "\x0458" ,"Jukcy;" * "\x0404" @@ -938,17 +938,17 @@ ,"kcedil;" * "\x0137" ,"Kcy;" * "\x041A" ,"kcy;" * "\x043A" - ,"Kfr;" * "\xD835\xDD0E" - ,"kfr;" * "\xD835\xDD28" + ,"Kfr;" * "\x1D50E" + ,"kfr;" * "\x1D528" ,"kgreen;" * "\x0138" ,"KHcy;" * "\x0425" ,"khcy;" * "\x0445" ,"KJcy;" * "\x040C" ,"kjcy;" * "\x045C" - ,"Kopf;" * "\xD835\xDD42" - ,"kopf;" * "\xD835\xDD5C" - ,"Kscr;" * "\xD835\xDCA6" - ,"kscr;" * "\xD835\xDCC0" + ,"Kopf;" * "\x1D542" + ,"kopf;" * "\x1D55C" + ,"Kscr;" * "\x1D4A6" + ,"kscr;" * "\x1D4C0" ,"lAarr;" * "\x21DA" ,"Lacute;" * "\x0139" ,"lacute;" * "\x013A" @@ -1066,8 +1066,8 @@ ,"LessTilde;" * "\x2272" ,"lfisht;" * "\x297C" ,"lfloor;" * "\x230A" - ,"Lfr;" * "\xD835\xDD0F" - ,"lfr;" * "\xD835\xDD29" + ,"Lfr;" * "\x1D50F" + ,"lfr;" * "\x1D529" ,"lg;" * "\x2276" ,"lgE;" * "\x2A91" ,"lHar;" * "\x2962" @@ -1111,8 +1111,8 @@ ,"looparrowleft;" * "\x21AB" ,"looparrowright;" * "\x21AC" ,"lopar;" * "\x2985" - ,"Lopf;" * "\xD835\xDD43" - ,"lopf;" * "\xD835\xDD5D" + ,"Lopf;" * "\x1D543" + ,"lopf;" * "\x1D55D" ,"loplus;" * "\x2A2D" ,"lotimes;" * "\x2A34" ,"lowast;" * "\x2217" @@ -1132,7 +1132,7 @@ ,"lrtri;" * "\x22BF" ,"lsaquo;" * "\x2039" ,"Lscr;" * "\x2112" - ,"lscr;" * "\xD835\xDCC1" + ,"lscr;" * "\x1D4C1" ,"Lsh;" * "\x21B0" ,"lsh;" * "\x21B0" ,"lsim;" * "\x2272" @@ -1183,8 +1183,8 @@ ,"measuredangle;" * "\x2221" ,"MediumSpace;" * "\x205F" ,"Mellintrf;" * "\x2133" - ,"Mfr;" * "\xD835\xDD10" - ,"mfr;" * "\xD835\xDD2A" + ,"Mfr;" * "\x1D510" + ,"mfr;" * "\x1D52A" ,"mho;" * "\x2127" ,"micro" * "\x00B5" ,"micro;" * "\x00B5" @@ -1202,11 +1202,11 @@ ,"mldr;" * "\x2026" ,"mnplus;" * "\x2213" ,"models;" * "\x22A7" - ,"Mopf;" * "\xD835\xDD44" - ,"mopf;" * "\xD835\xDD5E" + ,"Mopf;" * "\x1D544" + ,"mopf;" * "\x1D55E" ,"mp;" * "\x2213" ,"Mscr;" * "\x2133" - ,"mscr;" * "\xD835\xDCC2" + ,"mscr;" * "\x1D4C2" ,"mstpos;" * "\x223E" ,"Mu;" * "\x039C" ,"mu;" * "\x03BC" @@ -1257,8 +1257,8 @@ ,"NewLine;" * "\x000A" ,"nexist;" * "\x2204" ,"nexists;" * "\x2204" - ,"Nfr;" * "\xD835\xDD11" - ,"nfr;" * "\xD835\xDD2B" + ,"Nfr;" * "\x1D511" + ,"nfr;" * "\x1D52B" ,"ngE;" * "\x2267\x0338" ,"nge;" * "\x2271" ,"ngeq;" * "\x2271" @@ -1305,7 +1305,7 @@ ,"NoBreak;" * "\x2060" ,"NonBreakingSpace;" * "\x00A0" ,"Nopf;" * "\x2115" - ,"nopf;" * "\xD835\xDD5F" + ,"nopf;" * "\x1D55F" ,"not" * "\x00AC" ,"not;" * "\x00AC" ,"Not;" * "\x2AEC" @@ -1391,8 +1391,8 @@ ,"nsc;" * "\x2281" ,"nsccue;" * "\x22E1" ,"nsce;" * "\x2AB0\x0338" - ,"Nscr;" * "\xD835\xDCA9" - ,"nscr;" * "\xD835\xDCC3" + ,"Nscr;" * "\x1D4A9" + ,"nscr;" * "\x1D4C3" ,"nshortmid;" * "\x2224" ,"nshortparallel;" * "\x2226" ,"nsim;" * "\x2241" @@ -1473,8 +1473,8 @@ ,"OElig;" * "\x0152" ,"oelig;" * "\x0153" ,"ofcir;" * "\x29BF" - ,"Ofr;" * "\xD835\xDD12" - ,"ofr;" * "\xD835\xDD2C" + ,"Ofr;" * "\x1D512" + ,"ofr;" * "\x1D52C" ,"ogon;" * "\x02DB" ,"Ograve" * "\x00D2" ,"ograve" * "\x00F2" @@ -1497,8 +1497,8 @@ ,"omicron;" * "\x03BF" ,"omid;" * "\x29B6" ,"ominus;" * "\x2296" - ,"Oopf;" * "\xD835\xDD46" - ,"oopf;" * "\xD835\xDD60" + ,"Oopf;" * "\x1D546" + ,"oopf;" * "\x1D560" ,"opar;" * "\x29B7" ,"OpenCurlyDoubleQuote;" * "\x201C" ,"OpenCurlyQuote;" * "\x2018" @@ -1520,7 +1520,7 @@ ,"orv;" * "\x2A5B" ,"oS;" * "\x24C8" ,"oscr;" * "\x2134" - ,"Oscr;" * "\xD835\xDCAA" + ,"Oscr;" * "\x1D4AA" ,"Oslash" * "\x00D8" ,"oslash" * "\x00F8" ,"Oslash;" * "\x00D8" @@ -1557,8 +1557,8 @@ ,"permil;" * "\x2030" ,"perp;" * "\x22A5" ,"pertenk;" * "\x2031" - ,"Pfr;" * "\xD835\xDD13" - ,"pfr;" * "\xD835\xDD2D" + ,"Pfr;" * "\x1D513" + ,"pfr;" * "\x1D52D" ,"Phi;" * "\x03A6" ,"phi;" * "\x03C6" ,"phiv;" * "\x03D5" @@ -1587,7 +1587,7 @@ ,"Poincareplane;" * "\x210C" ,"pointint;" * "\x2A15" ,"Popf;" * "\x2119" - ,"popf;" * "\xD835\xDD61" + ,"popf;" * "\x1D561" ,"pound" * "\x00A3" ,"pound;" * "\x00A3" ,"pr;" * "\x227A" @@ -1625,19 +1625,19 @@ ,"propto;" * "\x221D" ,"prsim;" * "\x227E" ,"prurel;" * "\x22B0" - ,"Pscr;" * "\xD835\xDCAB" - ,"pscr;" * "\xD835\xDCC5" + ,"Pscr;" * "\x1D4AB" + ,"pscr;" * "\x1D4C5" ,"Psi;" * "\x03A8" ,"psi;" * "\x03C8" ,"puncsp;" * "\x2008" - ,"Qfr;" * "\xD835\xDD14" - ,"qfr;" * "\xD835\xDD2E" + ,"Qfr;" * "\x1D514" + ,"qfr;" * "\x1D52E" ,"qint;" * "\x2A0C" ,"Qopf;" * "\x211A" - ,"qopf;" * "\xD835\xDD62" + ,"qopf;" * "\x1D562" ,"qprime;" * "\x2057" - ,"Qscr;" * "\xD835\xDCAC" - ,"qscr;" * "\xD835\xDCC6" + ,"Qscr;" * "\x1D4AC" + ,"qscr;" * "\x1D4C6" ,"quaternions;" * "\x210D" ,"quatint;" * "\x2A16" ,"quest;" * "\x003F" @@ -1716,7 +1716,7 @@ ,"rfisht;" * "\x297D" ,"rfloor;" * "\x230B" ,"Rfr;" * "\x211C" - ,"rfr;" * "\xD835\xDD2F" + ,"rfr;" * "\x1D52F" ,"rHar;" * "\x2964" ,"rhard;" * "\x21C1" ,"rharu;" * "\x21C0" @@ -1769,7 +1769,7 @@ ,"robrk;" * "\x27E7" ,"ropar;" * "\x2986" ,"Ropf;" * "\x211D" - ,"ropf;" * "\xD835\xDD63" + ,"ropf;" * "\x1D563" ,"roplus;" * "\x2A2E" ,"rotimes;" * "\x2A35" ,"RoundImplies;" * "\x2970" @@ -1780,7 +1780,7 @@ ,"Rrightarrow;" * "\x21DB" ,"rsaquo;" * "\x203A" ,"Rscr;" * "\x211B" - ,"rscr;" * "\xD835\xDCC7" + ,"rscr;" * "\x1D4C7" ,"Rsh;" * "\x21B1" ,"rsh;" * "\x21B1" ,"rsqb;" * "\x005D" @@ -1831,8 +1831,8 @@ ,"setminus;" * "\x2216" ,"setmn;" * "\x2216" ,"sext;" * "\x2736" - ,"Sfr;" * "\xD835\xDD16" - ,"sfr;" * "\xD835\xDD30" + ,"Sfr;" * "\x1D516" + ,"sfr;" * "\x1D530" ,"sfrown;" * "\x2322" ,"sharp;" * "\x266F" ,"SHCHcy;" * "\x0429" @@ -1877,8 +1877,8 @@ ,"sol;" * "\x002F" ,"solb;" * "\x29C4" ,"solbar;" * "\x233F" - ,"Sopf;" * "\xD835\xDD4A" - ,"sopf;" * "\xD835\xDD64" + ,"Sopf;" * "\x1D54A" + ,"sopf;" * "\x1D564" ,"spades;" * "\x2660" ,"spadesuit;" * "\x2660" ,"spar;" * "\x2225" @@ -1907,8 +1907,8 @@ ,"squarf;" * "\x25AA" ,"squf;" * "\x25AA" ,"srarr;" * "\x2192" - ,"Sscr;" * "\xD835\xDCAE" - ,"sscr;" * "\xD835\xDCC8" + ,"Sscr;" * "\x1D4AE" + ,"sscr;" * "\x1D4C8" ,"ssetmn;" * "\x2216" ,"ssmile;" * "\x2323" ,"sstarf;" * "\x22C6" @@ -2006,8 +2006,8 @@ ,"tcy;" * "\x0442" ,"tdot;" * "\x20DB" ,"telrec;" * "\x2315" - ,"Tfr;" * "\xD835\xDD17" - ,"tfr;" * "\xD835\xDD31" + ,"Tfr;" * "\x1D517" + ,"tfr;" * "\x1D531" ,"there4;" * "\x2234" ,"Therefore;" * "\x2234" ,"therefore;" * "\x2234" @@ -2041,8 +2041,8 @@ ,"top;" * "\x22A4" ,"topbot;" * "\x2336" ,"topcir;" * "\x2AF1" - ,"Topf;" * "\xD835\xDD4B" - ,"topf;" * "\xD835\xDD65" + ,"Topf;" * "\x1D54B" + ,"topf;" * "\x1D565" ,"topfork;" * "\x2ADA" ,"tosa;" * "\x2929" ,"tprime;" * "\x2034" @@ -2063,8 +2063,8 @@ ,"trisb;" * "\x29CD" ,"tritime;" * "\x2A3B" ,"trpezium;" * "\x23E2" - ,"Tscr;" * "\xD835\xDCAF" - ,"tscr;" * "\xD835\xDCC9" + ,"Tscr;" * "\x1D4AF" + ,"tscr;" * "\x1D4C9" ,"TScy;" * "\x0426" ,"tscy;" * "\x0446" ,"TSHcy;" * "\x040B" @@ -2097,8 +2097,8 @@ ,"udblac;" * "\x0171" ,"udhar;" * "\x296E" ,"ufisht;" * "\x297E" - ,"Ufr;" * "\xD835\xDD18" - ,"ufr;" * "\xD835\xDD32" + ,"Ufr;" * "\x1D518" + ,"ufr;" * "\x1D532" ,"Ugrave" * "\x00D9" ,"ugrave" * "\x00F9" ,"Ugrave;" * "\x00D9" @@ -2123,8 +2123,8 @@ ,"UnionPlus;" * "\x228E" ,"Uogon;" * "\x0172" ,"uogon;" * "\x0173" - ,"Uopf;" * "\xD835\xDD4C" - ,"uopf;" * "\xD835\xDD66" + ,"Uopf;" * "\x1D54C" + ,"uopf;" * "\x1D566" ,"UpArrow;" * "\x2191" ,"uparrow;" * "\x2191" ,"Uparrow;" * "\x21D1" @@ -2153,8 +2153,8 @@ ,"Uring;" * "\x016E" ,"uring;" * "\x016F" ,"urtri;" * "\x25F9" - ,"Uscr;" * "\xD835\xDCB0" - ,"uscr;" * "\xD835\xDCCA" + ,"Uscr;" * "\x1D4B0" + ,"uscr;" * "\x1D4CA" ,"utdot;" * "\x22F0" ,"Utilde;" * "\x0168" ,"utilde;" * "\x0169" @@ -2208,17 +2208,17 @@ ,"VerticalSeparator;" * "\x2758" ,"VerticalTilde;" * "\x2240" ,"VeryThinSpace;" * "\x200A" - ,"Vfr;" * "\xD835\xDD19" - ,"vfr;" * "\xD835\xDD33" + ,"Vfr;" * "\x1D519" + ,"vfr;" * "\x1D533" ,"vltri;" * "\x22B2" ,"vnsub;" * "\x2282\x20D2" ,"vnsup;" * "\x2283\x20D2" - ,"Vopf;" * "\xD835\xDD4D" - ,"vopf;" * "\xD835\xDD67" + ,"Vopf;" * "\x1D54D" + ,"vopf;" * "\x1D567" ,"vprop;" * "\x221D" ,"vrtri;" * "\x22B3" - ,"Vscr;" * "\xD835\xDCB1" - ,"vscr;" * "\xD835\xDCCB" + ,"Vscr;" * "\x1D4B1" + ,"vscr;" * "\x1D4CB" ,"vsubne;" * "\x228A\xFE00" ,"vsubnE;" * "\x2ACB\xFE00" ,"vsupne;" * "\x228B\xFE00" @@ -2232,21 +2232,21 @@ ,"Wedge;" * "\x22C0" ,"wedgeq;" * "\x2259" ,"weierp;" * "\x2118" - ,"Wfr;" * "\xD835\xDD1A" - ,"wfr;" * "\xD835\xDD34" - ,"Wopf;" * "\xD835\xDD4E" - ,"wopf;" * "\xD835\xDD68" + ,"Wfr;" * "\x1D51A" + ,"wfr;" * "\x1D534" + ,"Wopf;" * "\x1D54E" + ,"wopf;" * "\x1D568" ,"wp;" * "\x2118" ,"wr;" * "\x2240" ,"wreath;" * "\x2240" - ,"Wscr;" * "\xD835\xDCB2" - ,"wscr;" * "\xD835\xDCCC" + ,"Wscr;" * "\x1D4B2" + ,"wscr;" * "\x1D4CC" ,"xcap;" * "\x22C2" ,"xcirc;" * "\x25EF" ,"xcup;" * "\x22C3" ,"xdtri;" * "\x25BD" - ,"Xfr;" * "\xD835\xDD1B" - ,"xfr;" * "\xD835\xDD35" + ,"Xfr;" * "\x1D51B" + ,"xfr;" * "\x1D535" ,"xharr;" * "\x27F7" ,"xhArr;" * "\x27FA" ,"Xi;" * "\x039E" @@ -2256,14 +2256,14 @@ ,"xmap;" * "\x27FC" ,"xnis;" * "\x22FB" ,"xodot;" * "\x2A00" - ,"Xopf;" * "\xD835\xDD4F" - ,"xopf;" * "\xD835\xDD69" + ,"Xopf;" * "\x1D54F" + ,"xopf;" * "\x1D569" ,"xoplus;" * "\x2A01" ,"xotime;" * "\x2A02" ,"xrarr;" * "\x27F6" ,"xrArr;" * "\x27F9" - ,"Xscr;" * "\xD835\xDCB3" - ,"xscr;" * "\xD835\xDCCD" + ,"Xscr;" * "\x1D4B3" + ,"xscr;" * "\x1D4CD" ,"xsqcup;" * "\x2A06" ,"xuplus;" * "\x2A04" ,"xutri;" * "\x25B3" @@ -2281,14 +2281,14 @@ ,"ycy;" * "\x044B" ,"yen" * "\x00A5" ,"yen;" * "\x00A5" - ,"Yfr;" * "\xD835\xDD1C" - ,"yfr;" * "\xD835\xDD36" + ,"Yfr;" * "\x1D51C" + ,"yfr;" * "\x1D536" ,"YIcy;" * "\x0407" ,"yicy;" * "\x0457" - ,"Yopf;" * "\xD835\xDD50" - ,"yopf;" * "\xD835\xDD6A" - ,"Yscr;" * "\xD835\xDCB4" - ,"yscr;" * "\xD835\xDCCE" + ,"Yopf;" * "\x1D550" + ,"yopf;" * "\x1D56A" + ,"Yscr;" * "\x1D4B4" + ,"yscr;" * "\x1D4CE" ,"YUcy;" * "\x042E" ,"yucy;" * "\x044E" ,"yuml" * "\x00FF" @@ -2307,14 +2307,14 @@ ,"Zeta;" * "\x0396" ,"zeta;" * "\x03B6" ,"Zfr;" * "\x2128" - ,"zfr;" * "\xD835\xDD37" + ,"zfr;" * "\x1D537" ,"ZHcy;" * "\x0416" ,"zhcy;" * "\x0436" ,"zigrarr;" * "\x21DD" ,"Zopf;" * "\x2124" - ,"zopf;" * "\xD835\xDD6B" - ,"Zscr;" * "\xD835\xDCB5" - ,"zscr;" * "\xD835\xDCCF" + ,"zopf;" * "\x1D56B" + ,"Zscr;" * "\x1D4B5" + ,"zscr;" * "\x1D4CF" ,"zwj;" * "\x200D" ,"zwnj;" * "\x200C" - ] \ No newline at end of file + ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tagsoup-0.13.9/Text/HTML/TagSoup/Match.hs new/tagsoup-0.13.10/Text/HTML/TagSoup/Match.hs --- old/tagsoup-0.13.9/Text/HTML/TagSoup/Match.hs 2016-03-15 13:07:28.000000000 +0100 +++ new/tagsoup-0.13.10/Text/HTML/TagSoup/Match.hs 2016-05-06 16:01:11.000000000 +0200 @@ -1,42 +1,113 @@ -- | Combinators to match tags. Some people prefer to use @(~==)@ from -- "Text.HTML.TagSoup", others prefer these more structured combinators. -- Which you use is personal preference. - +-- +-- The functions below offer maximum flexibility for matching tags. +-- Using 'tagOpen', for example, you can match all links or buttons that have the "btn" class. +-- +-- For simple uses cases—like matching all comment tags, or matching opening @\<a>@ tags, +-- use the tag identification functions in "Text.HTML.TagSoup#tag-identification". module Text.HTML.TagSoup.Match where import Text.HTML.TagSoup.Type (Tag(..), Attribute) import Data.List (tails) +-- * Matching Tags --- | match an opening tag +-- | Match an opening tag +-- +-- ==== __Examples__ +-- +-- /Matching an opening @\<a>@ tag with a @"btn"@ class:/ +-- +-- >>> let tag = TagOpen "a" [("class", "btn")] +-- >>> tagOpen (== "a") (\attrs -> any (== ("class", "btn")) attrs) tag +-- True tagOpen :: (str -> Bool) -> ([Attribute str] -> Bool) -> Tag str -> Bool tagOpen pName pAttrs (TagOpen name attrs) = pName name && pAttrs attrs tagOpen _ _ _ = False --- | match an closing tag +-- | Match a closing tag +-- +-- ==== __Examples__ +-- +-- /Matching a closing @\<\/a>@ tag:/ +-- +-- >>> tagClose (== "a") (TagClose "a") +-- True +-- +-- >>> tagClose (== "a") (TagOpen "a" []) +-- False tagClose :: (str -> Bool) -> Tag str -> Bool tagClose pName (TagClose name) = pName name tagClose _ _ = False --- | match a text +-- | Match text tags +-- +-- ==== __Examples__ +-- +-- /Match all text tags:/ +-- +-- >>> let tags = parseTags "<p>This is a paragraph</p>" +-- [TagOpen "p" [],TagText "This is a paragraph",TagClose "p"] +-- >>> filter (tagText (const True)) tags +-- [TagText "This is a paragraph"] tagText :: (str -> Bool) -> Tag str -> Bool tagText p (TagText text) = p text tagText _ _ = False +-- | Match comment tags +-- +-- ==== __Examples__ +-- +-- /Matching comment tags that include an exclamation mark:/ +-- +-- >>> let tags = parseTags "<!--This is a comment-->" +-- [TagComment "This is a comment!"] +-- >>> all (tagComment (\s -> '!' `elem` s)) tags +-- True tagComment :: (str -> Bool) -> Tag str -> Bool tagComment p (TagComment text) = p text tagComment _ _ = False --- | match a opening tag's name literally +-- | Match an opening tag's name literally +-- +-- ==== __Examples__ +-- +-- /Matching @\<a>@ tags with the @id@ "foo":/ +-- +-- >>> let tag = TagOpen "a" [("id", "foo")] +-- TagOpen "a" [("id","foo")] +-- >>> tagOpenLit "a" (\attrs -> any (== ("id", "foo")) attrs) tag +-- True +-- tagOpenLit :: Eq str => str -> ([Attribute str] -> Bool) -> Tag str -> Bool tagOpenLit name = tagOpen (name==) --- | match a closing tag's name literally +-- | Match a closing tag's name literally +-- +-- ==== __Examples__ +-- +-- /Match a closing @\<a>@ tag:/ +-- +-- >>> tagCloseLit "a" (TagClose "a") +-- True +-- +-- >>> tagCloseLit "a" (TagClose "em") +-- False tagCloseLit :: Eq str => str -> Tag str -> Bool tagCloseLit name = tagClose (name==) +-- | Match an opening tag's name literally, and at least one of its attributes +-- +-- ==== __Examples__ +-- +-- /Matching a @\<div>@ tag with the @id@ "foo":/ +-- +-- >>> tagOpenAttrLit "div" ("id", "foo") (TagOpen "div" [("id", "foo")]) +-- True tagOpenAttrLit :: Eq str => str -> Attribute str -> Tag str -> Bool tagOpenAttrLit name attr = tagOpenLit name (anyAttrLit attr) @@ -46,6 +117,14 @@ with given name, that satisfies a predicate. If an attribute occurs multiple times, all occurrences are checked. + +==== __Examples__ + +/Matching an @\<a>@ tag with an ID that starts with "comment-":/ + +>>> let commentTag = TagOpen "a" [("id", "comment-45678")] +>>> tagOpenAttrNameLit "a" "id" (\idValue -> "comment-" `Data.List.isPrefixOf` idValue) commentTag +True -} tagOpenAttrNameLit :: Eq str => str -> str -> (str -> Bool) -> Tag str -> Bool tagOpenAttrNameLit tagName attrName pAttrValue = @@ -54,15 +133,35 @@ -- | Check if the 'Tag str' is 'TagOpen' and matches the given name +-- +-- ==== __Examples__ +-- +-- /Matching an @\<a>@ tag:/ +-- +-- >>> tagOpenNameLit "a" (TagOpen "a" []) +-- True +-- +-- >>> tagOpenNameLit "a" (TagOpen "div" []) +-- False tagOpenNameLit :: Eq str => str -> Tag str -> Bool tagOpenNameLit name = tagOpenLit name (const True) -- | Check if the 'Tag str' is 'TagClose' and matches the given name +-- +-- ==== __Examples__ +-- +-- /Matching a closing @\<\/a>@ tag:/ +-- +-- >>> tagCloseNameLit "a" (TagClose "a") +-- True +-- +-- >>> tagCloseNameLit "a" (TagClose "div") +-- False tagCloseNameLit :: Eq str => str -> Tag str -> Bool tagCloseNameLit name = tagCloseLit name - +-- * Matching attributes anyAttr :: ((str,str) -> Bool) -> [Attribute str] -> Bool anyAttr = any diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tagsoup-0.13.9/Text/HTML/TagSoup.hs new/tagsoup-0.13.10/Text/HTML/TagSoup.hs --- old/tagsoup-0.13.9/Text/HTML/TagSoup.hs 2016-03-15 13:07:28.000000000 +0100 +++ new/tagsoup-0.13.10/Text/HTML/TagSoup.hs 2016-05-06 16:01:11.000000000 +0200 @@ -21,7 +21,8 @@ module Text.HTML.TagSoup.Render, canonicalizeTags, - -- * Tag identification + -- Note: the "#tag-identification#" creates an anchor that's linked to from Match.hs + -- * #tag-identification# Tag identification isTagOpen, isTagClose, isTagText, isTagWarning, isTagPosition, isTagOpenName, isTagCloseName, isTagComment, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tagsoup-0.13.9/tagsoup.cabal new/tagsoup-0.13.10/tagsoup.cabal --- old/tagsoup-0.13.9/tagsoup.cabal 2016-03-15 13:07:28.000000000 +0100 +++ new/tagsoup-0.13.10/tagsoup.cabal 2016-05-06 16:01:11.000000000 +0200 @@ -1,6 +1,6 @@ cabal-version: >= 1.6 name: tagsoup -version: 0.13.9 +version: 0.13.10 copyright: Neil Mitchell 2006-2016 author: Neil Mitchell <[email protected]> maintainer: Neil Mitchell <[email protected]>
