summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndres Rey <[email protected]>2017-11-12 20:00:07 +0000
committerAndres Rey <[email protected]>2017-11-12 20:00:07 +0000
commit13f5628ae15e1fb43e457a8fd5161ad70ac7ffc1 (patch)
treee5b0efbc9edcb1524da65e2edfc4407df3594a84 /test
parent0dac0772bbb1e723557d9eca5c793d502a2b2e6e (diff)
Update test cases for new table properties cleaning
Diffstat (limited to 'test')
-rw-r--r--test/test-pages/blogger/expected.html12
-rw-r--r--test/test-pages/clean-links/expected.html12
-rw-r--r--test/test-pages/gmw/expected.html12
-rw-r--r--test/test-pages/links-in-tables/expected.html4
-rw-r--r--test/test-pages/lwn-1/expected.html356
-rw-r--r--test/test-pages/pixnet/expected.html104
-rw-r--r--test/test-pages/svg-parsing/expected.html2
-rw-r--r--test/test-pages/table-style-attributes/expected.html105
-rw-r--r--test/test-pages/youth/expected.html12
9 files changed, 316 insertions, 303 deletions
diff --git a/test/test-pages/blogger/expected.html b/test/test-pages/blogger/expected.html
index fcd5a2d..e7868b9 100644
--- a/test/test-pages/blogger/expected.html
+++ b/test/test-pages/blogger/expected.html
@@ -1,20 +1,20 @@
<div class="post-body entry-content" id="post-body-932306423056216142" itemprop="description articleBody"><p>
I've written a couple of posts in the past few months but they were all for </p><a href="http://blog.ioactive.com/search/label/Andrew%20Zonenberg">the blog at work</a><p> so I figured I'm long overdue for one on Silicon Exposed.</p><p><h2>
So what's a GreenPak?</h2>
- </p><p> Silego Technology is a fabless semiconductor company located in the SF Bay area, which makes (among other things) a line of programmable logic devices known as GreenPak. Their </p><a href="http://www.silego.com/products/greenpak5.html">5th generation parts</a><p> were just announced, but I started this project before that happened so I'm still targeting the </p><a href="http://www.silego.com/products/greenpak4.html">4th generation</a><p>.</p><p> GreenPak devices are kind of like itty bitty <a href="http://www.cypress.com/products/32-bit-arm-cortex-m-psoc">PSoCs</a> - they have a mixed signal fabric with an ADC, DACs, comparators, voltage references, plus a digital LUT/FF fabric and some typical digital MCU peripherals like counters and oscillators (but no CPU).</p><p> It's actually an interesting architecture - FPGAs (including some devices marketed as CPLDs) are a 2D array of LUTs connected via wires to adjacent cells, and true (product term) CPLDs are a star topology of AND-OR arrays connected by a crossbar. GreenPak, on the other hand, is a star topology of LUTs, flipflops, and analog/digital hard IP connected to a crossbar.</p><p> Without further ado, here's a block diagram showing all the cool stuff you get in the SLG46620V:</p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td>
- <a href="https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s1600/block-diagram.png" imageanchor="1"><img border="0" height="512" src="https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s640/block-diagram.png" width="640"></img></a>
+ </p><p> Silego Technology is a fabless semiconductor company located in the SF Bay area, which makes (among other things) a line of programmable logic devices known as GreenPak. Their </p><a href="http://www.silego.com/products/greenpak5.html">5th generation parts</a><p> were just announced, but I started this project before that happened so I'm still targeting the </p><a href="http://www.silego.com/products/greenpak4.html">4th generation</a><p>.</p><p> GreenPak devices are kind of like itty bitty <a href="http://www.cypress.com/products/32-bit-arm-cortex-m-psoc">PSoCs</a> - they have a mixed signal fabric with an ADC, DACs, comparators, voltage references, plus a digital LUT/FF fabric and some typical digital MCU peripherals like counters and oscillators (but no CPU).</p><p> It's actually an interesting architecture - FPGAs (including some devices marketed as CPLDs) are a 2D array of LUTs connected via wires to adjacent cells, and true (product term) CPLDs are a star topology of AND-OR arrays connected by a crossbar. GreenPak, on the other hand, is a star topology of LUTs, flipflops, and analog/digital hard IP connected to a crossbar.</p><p> Without further ado, here's a block diagram showing all the cool stuff you get in the SLG46620V:</p><p><table class="tr-caption-container"><tbody><tr><td>
+ <a href="https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s1600/block-diagram.png" imageanchor="1"><img height="512" src="https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s640/block-diagram.png" width="640"></img></a>
</td>
</tr><tr><td class="tr-caption">SLG46620V block diagram (from device datasheet)</td>
</tr></tbody></table>
- They're also tiny (the SLG46620V is a 20-pin 0.4mm pitch STQFN measuring 2x3 mm, and the lower gate count SLG46140V is a mere 1.6x2 mm) and probably the cheapest programmable logic device on the market - $0.50 in low volume and less than $0.40 in larger quantities.</p><p> The Vdd range of GreenPak4 is huge, more like what you'd expect from an MCU than an FPGA! It can run on anything from 1.8 to 5V, although performance is only specified at 1.8, 3.3, and 5V nominal voltages. There's also a dual-rail version that trades one of the GPIO pins for a second power supply pin, allowing you to interface to logic at two different voltage levels.</p><p> To support low-cost/space-constrained applications, they even have the configuration memory on die. It's one-time programmable and needs external Vpp to program (presumably Silego didn't want to waste die area on charge pumps that would only be used once) but has a SRAM programming mode for prototyping.</p><p> The best part is that the development software (GreenPak Designer) is free of charge and provided for all major operating systems including Linux! Unfortunately, the only supported design entry method is schematic entry and there's no way to write your design in a HDL.</p><p> While schematics may be fine for quick tinkering on really simple designs, they quickly get unwieldy. The nightmare of a circuit shown below is just a bunch of counters hooked up to LEDs that blink at various rates.</p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td>
- <a href="https://1.bp.blogspot.com/-k3naUT3uXao/Vy7WFac246I/AAAAAAAAAw8/mePy_ostO8QJra5ZJrbP2WGhTlJ0B_r8gCLcB/s1600/schematic-from-hell.png" imageanchor="1"><img border="0" height="334" src="https://1.bp.blogspot.com/-k3naUT3uXao/Vy7WFac246I/AAAAAAAAAw8/mePy_ostO8QJra5ZJrbP2WGhTlJ0B_r8gCLcB/s640/schematic-from-hell.png" width="640"></img></a>
+ They're also tiny (the SLG46620V is a 20-pin 0.4mm pitch STQFN measuring 2x3 mm, and the lower gate count SLG46140V is a mere 1.6x2 mm) and probably the cheapest programmable logic device on the market - $0.50 in low volume and less than $0.40 in larger quantities.</p><p> The Vdd range of GreenPak4 is huge, more like what you'd expect from an MCU than an FPGA! It can run on anything from 1.8 to 5V, although performance is only specified at 1.8, 3.3, and 5V nominal voltages. There's also a dual-rail version that trades one of the GPIO pins for a second power supply pin, allowing you to interface to logic at two different voltage levels.</p><p> To support low-cost/space-constrained applications, they even have the configuration memory on die. It's one-time programmable and needs external Vpp to program (presumably Silego didn't want to waste die area on charge pumps that would only be used once) but has a SRAM programming mode for prototyping.</p><p> The best part is that the development software (GreenPak Designer) is free of charge and provided for all major operating systems including Linux! Unfortunately, the only supported design entry method is schematic entry and there's no way to write your design in a HDL.</p><p> While schematics may be fine for quick tinkering on really simple designs, they quickly get unwieldy. The nightmare of a circuit shown below is just a bunch of counters hooked up to LEDs that blink at various rates.</p><p><table class="tr-caption-container"><tbody><tr><td>
+ <a href="https://1.bp.blogspot.com/-k3naUT3uXao/Vy7WFac246I/AAAAAAAAAw8/mePy_ostO8QJra5ZJrbP2WGhTlJ0B_r8gCLcB/s1600/schematic-from-hell.png" imageanchor="1"><img height="334" src="https://1.bp.blogspot.com/-k3naUT3uXao/Vy7WFac246I/AAAAAAAAAw8/mePy_ostO8QJra5ZJrbP2WGhTlJ0B_r8gCLcB/s640/schematic-from-hell.png" width="640"></img></a>
</td>
</tr><tr><td class="tr-caption">Schematic from hell!</td>
</tr></tbody></table>
As if this wasn't enough of a problem, the largest GreenPak4 device (the SLG46620V) is split into two halves with limited routing between them, and the GUI doesn't help the user manage this complexity at all - you have to draw your schematic in two halves and add "cross connections" between them.</p><p> The icing on the cake is that schematics are a pain to diff and collaborate on. Although GreenPak schematics are XML based, which is a touch better than binary, who wants to read a giant XML diff and try to figure out what's going on in the circuit?</p><p> This isn't going to be a post on the quirks of Silego's software, though - that would be boring. As it turns out, there's one more exciting feature of these chips that I didn't mention earlier: the configuration bitstream is 100% documented in the device datasheet! This is unheard of in the programmable logic world. As Nick of Arachnid Labs <a href="http://www.arachnidlabs.com/blog/2015/03/30/greenpak/">says</a>, the chip is "just dying for someone to write a VHDL or Verilog compiler for it". As you can probably guess by from the title of this post, I've been busy doing exactly that.</p><p><h2>
Great! How does it work?</h2>
- </p><p> Rather than wasting time writing a synthesizer, I decided to write a GreenPak technology library for Clifford Wolf's excellent open source synthesis tool, </p><a href="http://www.clifford.at/yosys/">Yosys</a><p>, and then make a place-and-route tool to turn that into a final netlist. The post-PAR netlist can then be loaded into GreenPak Designer in order to program the device.</p><p> The first step of the process is to run the "synth_greenpak4" Yosys flow on the Verilog source. This runs a generic RTL synthesis pass, then some coarse-grained extraction passes to infer shift register and counter cells from behavioral logic, and finally maps the remaining logic to LUT/FF cells and outputs a JSON-formatted netlist.</p><p> Once the design has been synthesized, my tool (named, surprisingly, gp4par) is then launched on the netlist. It begins by parsing the JSON and constructing a directed graph of cell objects in memory. A second graph, containing all of the primitives in the device and the legal connections between them, is then created based on the device specified on the command line. (As of now only the SLG46620V is supported; the SLG46621V can be added fairly easily but the SLG46140V has a slightly different microarchitecture which will require a bit more work to support.)</p><p> After the graphs are generated, each node in the netlist graph is assigned a numeric label identifying the type of cell and each node in the device graph is assigned a list of legal labels: for example, an I/O buffer site is legal for an input buffer, output buffer, or bidirectional buffer.</p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody><tr><td>
- <a href="https://2.bp.blogspot.com/-kIekczO693g/Vy7dBqYifXI/AAAAAAAAAxc/hMNJBs5bedIQOrBzzkhq4gbmhR-n58EQwCLcB/s1600/graph-labels.png" imageanchor="1"><img border="0" height="141" src="https://2.bp.blogspot.com/-kIekczO693g/Vy7dBqYifXI/AAAAAAAAAxc/hMNJBs5bedIQOrBzzkhq4gbmhR-n58EQwCLcB/s400/graph-labels.png" width="400"></img></a>
+ </p><p> Rather than wasting time writing a synthesizer, I decided to write a GreenPak technology library for Clifford Wolf's excellent open source synthesis tool, </p><a href="http://www.clifford.at/yosys/">Yosys</a><p>, and then make a place-and-route tool to turn that into a final netlist. The post-PAR netlist can then be loaded into GreenPak Designer in order to program the device.</p><p> The first step of the process is to run the "synth_greenpak4" Yosys flow on the Verilog source. This runs a generic RTL synthesis pass, then some coarse-grained extraction passes to infer shift register and counter cells from behavioral logic, and finally maps the remaining logic to LUT/FF cells and outputs a JSON-formatted netlist.</p><p> Once the design has been synthesized, my tool (named, surprisingly, gp4par) is then launched on the netlist. It begins by parsing the JSON and constructing a directed graph of cell objects in memory. A second graph, containing all of the primitives in the device and the legal connections between them, is then created based on the device specified on the command line. (As of now only the SLG46620V is supported; the SLG46621V can be added fairly easily but the SLG46140V has a slightly different microarchitecture which will require a bit more work to support.)</p><p> After the graphs are generated, each node in the netlist graph is assigned a numeric label identifying the type of cell and each node in the device graph is assigned a list of legal labels: for example, an I/O buffer site is legal for an input buffer, output buffer, or bidirectional buffer.</p><p><table class="tr-caption-container"><tbody><tr><td>
+ <a href="https://2.bp.blogspot.com/-kIekczO693g/Vy7dBqYifXI/AAAAAAAAAxc/hMNJBs5bedIQOrBzzkhq4gbmhR-n58EQwCLcB/s1600/graph-labels.png" imageanchor="1"><img height="141" src="https://2.bp.blogspot.com/-kIekczO693g/Vy7dBqYifXI/AAAAAAAAAxc/hMNJBs5bedIQOrBzzkhq4gbmhR-n58EQwCLcB/s400/graph-labels.png" width="400"></img></a>
</td>
</tr><tr><td class="tr-caption">Example labeling for a subset of the netlist and device graphs</td>
</tr></tbody></table>
diff --git a/test/test-pages/clean-links/expected.html b/test/test-pages/clean-links/expected.html
index 305f81e..4153961 100644
--- a/test/test-pages/clean-links/expected.html
+++ b/test/test-pages/clean-links/expected.html
@@ -1,13 +1,13 @@
<div>
- <table border="0 " cellpadding="2 " width="675 "><tbody><tr><td>
- <h3 align="center ">Study Webtext</h3>
- <h2 align="center "><span color="Maroon&#xA; " face="Lucida Handwriting ">"Bartleby the Scrivener: A Story of Wall-Street " </span>(1853) <br></br>
+ <table><tbody><tr><td>
+ <h3>Study Webtext</h3>
+ <h2><span color="Maroon&#xA; " face="Lucida Handwriting ">"Bartleby the Scrivener: A Story of Wall-Street " </span>(1853) <br></br>
Herman Melville</h2>
- <h2 align="center "><a href="http://www.vcu.edu/engweb/webtexts/bartleby.html&#xA; " target="_blank "><img align="absmiddle " alt="To the story text without notes&#xA; " height="38 " src="http://fakehost/test/hmhome.gif " width="38 "></img></a>
+ <h2><a href="http://www.vcu.edu/engweb/webtexts/bartleby.html&#xA; " target="_blank "><img alt="To the story text without notes&#xA; " height="38 " src="http://fakehost/test/hmhome.gif " width="38 "></img></a>
</h2>
- <h3 align="center ">Prepared by <a href="http://www.vcu.edu/engweb ">Ann
+ <h3>Prepared by <a href="http://www.vcu.edu/engweb ">Ann
Woodlief,</a> Virginia Commonwealth University</h3>
- <h5 align="center ">Click on text in red for hypertext notes and questions</h5>
+ <h5>Click on text in red for hypertext notes and questions</h5>
I
am a rather elderly man. The nature of my avocations
for the last thirty years has brought me into more than ordinary contact
diff --git a/test/test-pages/gmw/expected.html b/test/test-pages/gmw/expected.html
index 5bc8121..2db9916 100644
--- a/test/test-pages/gmw/expected.html
+++ b/test/test-pages/gmw/expected.html
@@ -5,8 +5,8 @@
<p>  翱翔于距地球数千公里的太空中,进入广袤漆黑的未知领域,是一项艰苦卓绝的工作。这让人感到巨大压力和极度恐慌。那么,为什么不能让宇航员来一杯“地球末日”鸡尾酒来放松一下?</p>
<p>  不幸的是,对于希望能喝上一杯的太空探险者,那些将他们送上太空的政府机构普遍禁止他们染指包括酒在内的含酒精饮料。</p>
<p>  但是,很快普通人都会有机会向人类“最终的边疆”出发——以平民化旅行的形式,去探索和殖民火星。确实,火星之旅将是一次令人感到痛苦的旅行,可能一去不复返并要几年时间才能完成,但是否应该允许参与者在旅程中痛饮一番?或至少携带能在火星上发酵自制酒精饮料的设备?</p>
- <p align="center"><img alt="(Credit: Nasa)" id="45395168" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e5929.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
- <p align="center">
+ <p><img alt="(Credit: Nasa)" id="45395168" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e5929.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
+ <p>
<span face="楷体">  图注:巴兹?奥尔德林(Buzz Aldrin)可能是第二个在月球上行走的人,但他是第一个在月球上喝酒的人</span>
</p>
<p>  事实是,历史上酒与太空探险有一种复杂的关系。让我们来看看喝了酒的航天员究竟会发生什么—— 如果我们开始给予进入太空的人类更大的自由度,又可能会发生什么。</p>
@@ -20,8 +20,8 @@
<p>  所以,如果酒精对人体的物理效应与海拔高度无关,那么在国际空间站上睡前小饮一杯不应该是一个大问题,对吧?错了。</p>
<p>  美国宇航局约翰逊航天中心发言人丹尼尔·霍特(Daniel Huot)表示:“国际空间站上的宇航员不允许喝酒。在国际空间站上,酒精和其它挥发性化合物的使用受到控制,因为它们的挥发物可能对该站的水回收系统产生影响。”</p>
<p>  为此,国际空间站上的宇航员甚至没有被提供含有酒精的产品,例如漱口水、香水或须后水。如果在国际空间站上饮酒狂欢,溢出的啤酒也可能存在损坏设备的风险。</p>
- <p align="center"><img alt="(Credit: iStock)" id="45395150" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e592a.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
- <p align="center" class="pictext">
+ <p><img alt="(Credit: iStock)" id="45395150" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e592a.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
+ <p class="pictext">
<span face="楷体">  图注:测试表明,有关人在高空中喝酒更容易醉的传言是不正确的</span>
</p>
<p>  然后是责任的问题。我们不允许汽车司机或飞机飞行员喝醉后驾驶,所以并不奇怪同样的规则适用于国际空间站上的宇航员。毕竟国际空间站的造价高达1500亿美元,而且在接近真空的太空中其运行速度达到了每小时27680公里。</p>
@@ -39,8 +39,8 @@
<p>  因此,即使宇航员自己被禁止在地球轨道上饮酒,但他们正在做的工作可以提高在地上消费的酒的质量。</p>
<p>  相比之下,执行登陆火星任务的人将远离家乡几年,而不是几个月,因此可能会有人提出有关禁止饮酒的规定可以放松一些。</p>
<p>  然而,像戴夫?汉森这样的专家认为,继续禁止饮酒并没有什么害处。除了实际的安全问题,饮酒还可能有其它挑战。汉森认为,地球人存在许多社会文化方面的差异,而且人连续几年时间呆在一个狭小的空间里,很容易突然发怒,这些因素都使饮酒问题变得很棘手。</p>
- <p align="center"><img alt="(Credit: David Frohman/Peachstate Historical Consulting Inc)" id="45395153" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e592d.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
- <p align="center" class="pictext">
+ <p><img alt="(Credit: David Frohman/Peachstate Historical Consulting Inc)" id="45395153" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e592d.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
+ <p class="pictext">
<span face="楷体">  图注:奥尔德林的圣餐杯回到了地球上</span>
</p>
<p>  他说:“这是一个政治问题,也是一个文化方面的问题,但不是一个科学上的问题。这将是未来一个可能产生冲突领域,因为人们具有不同的文化背景,他们对饮酒的态度不同。”他进一步指出,如果你与穆斯林、摩门教徒或禁酒主义者分配在同一间宿舍怎么办?面对未来人们可能在一个没有期限的时间内呆在一个有限的空间里,需要“尽早解决”如何协调不同文化观点的问题。</p>
diff --git a/test/test-pages/links-in-tables/expected.html b/test/test-pages/links-in-tables/expected.html
index ce794ab..8c51f33 100644
--- a/test/test-pages/links-in-tables/expected.html
+++ b/test/test-pages/links-in-tables/expected.html
@@ -54,7 +54,7 @@ to inefficient patches.
Watch how much the compressed text on the right side changes from a one-letter
change in the uncompressed text on the left:
</p>
-<div class="separator"><a href="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s1600/ipsum-opsum.gif" imageanchor="1"><img border="0" height="105" src="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s640/ipsum-opsum.gif" width="640"></img></a></div>
+<div class="separator"><a href="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s1600/ipsum-opsum.gif" imageanchor="1"><img height="105" src="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s640/ipsum-opsum.gif" width="640"></img></a></div>
<p>
File-by-File therefore is based on detecting changes in the uncompressed data.
To generate a patch, we first decompress both old and new files before computing
@@ -187,7 +187,7 @@ As a developer if you're interested in reducing your APK size still further,
here are some <a href="https://developer.android.com/topic/performance/reduce-apk-size.html?utm_campaign=android_discussion_filebyfile_120616&amp;utm_source=anddev&amp;utm_medium=blog">general
tips on reducing APK size</a>.
</p>
-<div class="separator"><a href="https://2.bp.blogspot.com/-5aRh1dM6Unc/WEcNs55RGhI/AAAAAAAADnI/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB/s1600/image01.png" imageanchor="1"><img border="0" height="200" src="https://2.bp.blogspot.com/-5aRh1dM6Unc/WEcNs55RGhI/AAAAAAAADnI/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB/s200/image01.png" width="191"></img></a></div>
+<div class="separator"><a href="https://2.bp.blogspot.com/-5aRh1dM6Unc/WEcNs55RGhI/AAAAAAAADnI/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB/s1600/image01.png" imageanchor="1"><img height="200" src="https://2.bp.blogspot.com/-5aRh1dM6Unc/WEcNs55RGhI/AAAAAAAADnI/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB/s200/image01.png" width="191"></img></a></div>
<span itemprop="author" itemscope="itemscope" itemtype="http://schema.org/Person">
<meta content="https://plus.google.com/116899029375914044550" itemprop="url"></meta></span>
diff --git a/test/test-pages/lwn-1/expected.html b/test/test-pages/lwn-1/expected.html
index 15ec81b..5818ba2 100644
--- a/test/test-pages/lwn-1/expected.html
+++ b/test/test-pages/lwn-1/expected.html
@@ -30,14 +30,14 @@ program</a> for third-party manufacturers interested in using the "Arduino" bran
<p>The new release is version 2.8, which was unveiled on March 2. An official <a href="http://qgis.org/en/site/forusers/visualchangelog28/index.html">change
log</a> is available on the QGIS site, while the release itself was announced primarily through blog posts (such as <a href="http://anitagraser.com/2015/03/02/qgis-2-8-ltr-has-landed/">this
post</a> by Anita Graser of the project's steering committee). Downloads are <a href="http://qgis.org/en/site/forusers/download.html">available</a> for a variety of platforms, including packages for Ubuntu, Debian, Fedora, openSUSE, and several other distributions.</p>
- <a href="http://fakehost/Articles/637747/"> <img align="right" alt="[QGIS main interface]" border="0" height="264" hspace="5" src="http://fakehost/images/2015/03-qgis-map-sm.png" width="350"></img></a>
+ <a href="http://fakehost/Articles/637747/"> <img alt="[QGIS main interface]" height="264" src="http://fakehost/images/2015/03-qgis-map-sm.png" width="350"></img></a>
<p>As the name might suggest, QGIS is a Qt application; the latest release will, in fact, build on both Qt4 and Qt5, although the binaries released by the project come only in Qt4 form at present. 2.8 has been labeled a long-term release (LTR)—which, in this case, means that the project has committed to providing backported bug fixes for one full calendar year, and that the 2.8.x series is in permanent feature freeze. The goal, according to the change log, is to provide a stable version suitable for businesses and deployments in other large organizations. The change log itself points out that the development of quite a few new features was underwritten by various GIS companies or university groups, which suggests that taking care of these organizations' needs is reaping dividends for the project. </p>
<p>For those new to QGIS (or GIS in general), there is a detailed new-user <a href="http://docs.qgis.org/testing/en/docs/training_manual/">tutorial</a> that provides a thorough walk-through of the data-manipulation, mapping, and analysis functions. Being a new user, I went through the tutorial; although there are a handful of minor differences between QGIS 2.8 and the version used in the text (primarily whether specific features were accessed through a toolbar or right-click menu), on the whole it is well worth the time. </p>
<p>QGIS is designed to make short work of importing spatially oriented data sets, mining information from them, and turning the results into a meaningful visualization. Technically speaking, the visualization output is optional: one could simply extract the needed statistics and results and use them to answer some question or, perhaps, publish the massaged data set as a database for others to use. </p>
<p>But well-made maps are often the easiest way to illuminate facts about populations, political regions, geography, and many other topics when human comprehension is the goal. QGIS makes importing data from databases, web-mapping services (WMS), and even unwieldy flat-file data dumps a painless experience. It handles converting between a variety of map-referencing systems more or less automatically, and allows the user to focus on finding the useful attributes of the data sets and rendering them on screen. </p>
<h4>Here be data</h4>
<p>The significant changes in QGIS 2.8 fall into several categories. There are updates to how QGIS handles the mathematical expressions and queries users can use to filter information out of a data set, improvements to the tools used to explore the on-screen map canvas, and enhancements to the "map composer" used to produce visual output. This is on top of plenty of other under-the-hood improvements, naturally.</p>
- <a href="http://fakehost/Articles/637748/"> <img align="left" alt="[QGIS query builder]" border="0" height="302" hspace="5" src="http://fakehost/images/2015/03-qgis-query-sm.png" width="300"></img></a>
+ <a href="http://fakehost/Articles/637748/"> <img alt="[QGIS query builder]" height="302" src="http://fakehost/images/2015/03-qgis-query-sm.png" width="300"></img></a>
<p>In the first category are several updates to the filtering tools used to mine a data set. Generally speaking, each independent data set is added to a QGIS project as its own layer, then transformed with filters to focus in on a specific portion of the original data. For instance, the land-usage statistics for a region might be one layer, while roads and buildings for the same region from OpenStreetMap might be two additional layers. Such filters can be created in several ways: there is a "query builder" that lets the user construct and test expressions on a data layer, then save the results, an SQL console for performing similar queries on a database, and spreadsheet-like editing tools for working directly on data tables. </p>
<p>All three have been improved in this release. New are support for <tt>if(condition, true, false)</tt> conditional statements, a set of operations for geometry primitives (e.g., to test whether regions overlap or lines intersect), and an "integer divide" operation. Users can also add comments to their queries to annotate their code, and there is a new <a href="http://nathanw.net/2015/01/19/function-editor-for-qgis-expressions/">custom
function editor</a> for writing Python functions that can be called in mathematical expressions within the query builder. </p>
@@ -45,11 +45,11 @@ function editor</a> for writing Python functions that can be called in mathemati
<p>There have also been several improvements to the Python and Processing plugins. Users can now drag-and-drop Python scripts onto QGIS and they will be run automatically. Several new analysis algorithms are now available through the Processing interface that were previously Python-only; they include algorithms for generating grids of points or vectors within a region, splitting layers and lines, generating <a href="http://en.wikipedia.org/wiki/Hypsometric_curve">hypsometric
curves</a>, refactoring data sets, and more. </p>
<h4>Maps in, maps out</h4>
- <a href="http://fakehost/Articles/637749/"> <img align="right" alt="[QGIS simplify tool]" border="0" height="303" hspace="5" src="http://fakehost/images/2015/03-qgis-simplify-sm.png" width="300"></img></a>
+ <a href="http://fakehost/Articles/637749/"> <img alt="[QGIS simplify tool]" height="303" src="http://fakehost/images/2015/03-qgis-simplify-sm.png" width="300"></img></a>
<p>The process of working with on-screen map data picked up some improvements in the new release as well. Perhaps the most fundamental is that each map layer added to the canvas is now handled in its own thread, so fewer hangs in the user interface are experienced when re-rendering a layer (as happens whenever the user changes the look of points or shapes in a layer). Since remote databases can also be layers, this multi-threaded approach is more resilient against connectivity problems, too. The interface also now supports temporary "scratch" layers that can be used to merge, filter, or simply experiment with a data set, but are not saved when the current project is saved. </p>
<p>For working on the canvas itself, polygonal regions can now use raster images (tiled, if necessary) as fill colors, the map itself can be rotated arbitrarily, and objects can be "snapped" to align with items on any layer (not just the current layer). For working with raster image layers (e.g., aerial photographs) or simply creating new geometric shapes by hand, there is a new digitizing tool that can offer assistance by locking lines to specific angles, automatically keeping borders parallel, and other niceties. </p>
<p>There is a completely overhauled "simplify" tool that is used to reduce the number of extraneous vertices of a vector layer (thus reducing its size). The old simplify tool provided only a relative "tolerance" setting that did not correspond directly to any units. With the new tool, users can set a simplification threshold in terms of the underlying map units, layer-specific units, pixels, and more—and, in addition, the tool reports how much the simplify operation has reduced the size of the data.</p>
- <a href="http://fakehost/Articles/637751/"> <img align="left" alt="[QGIS style editing]" border="0" height="286" hspace="5" src="http://fakehost/images/2015/03-qgis-style-sm.png" width="300"></img></a>
+ <a href="http://fakehost/Articles/637751/"> <img alt="[QGIS style editing]" height="286" src="http://fakehost/images/2015/03-qgis-style-sm.png" width="300"></img></a>
<p>There has also been an effort to present a uniform interface to one of the most important features of the map canvas: the ability to change the symbology used for an item based on some data attribute. The simplest example might be to change the line color of a road based on whether its road-type attribute is "highway," "service road," "residential," or so on. But the same feature is used to automatically highlight layer information based on the filtering and querying functionality discussed above. The new release allows many more map attributes to be controlled by these "data definition" settings, and provides a hard-to-miss button next to each attribute, through which a custom data definition can be set. </p>
<p>QGIS's composer module is the tool used to take project data and generate a map that can be used outside of the application (in print, as a static image, or as a layer for <a href="http://mapserver.org/">MapServer</a> or some other software tool, for example). Consequently, it is not a simple select-and-click-export tool; composing the output can involve a lot of choices about which data to make visible, how (and where) to label it, and how to make it generally accessible. </p>
<p>The updated composer in 2.8 now has a full-screen mode and sports several new options for configuring output. For instance, the user now has full control over how map axes are labeled. In previous releases, the grid coordinates of the map could be turned on or off, but the only options were all or nothing. Now, the user can individually choose whether coordinates are displayed on all four sides, and can even choose in which direction vertical text labels will run (so that they can be correctly justified to the edge of the map, for example). </p>
@@ -74,108 +74,108 @@ cut loose from Oracle</a><p> and found a new home as an Apache project. It is fa
<p> In the one-year period since late March 2014, there have been 381 changesets committed to the OpenOffice Subversion repository. The most active committers are: </p>
<blockquote>
- <table><tbody><tr><th align="center" colspan="2">Most active OpenOffice developers</th>
- </tr><tr><td valign="top" width="50%">
- <table cellspacing="3"><tbody><tr><th colspan="3">By changesets</th>
+ <table><tbody><tr><th colspan="2">Most active OpenOffice developers</th>
+ </tr><tr><td>
+ <table><tbody><tr><th colspan="3">By changesets</th>
</tr><tr class="Even"><td>Herbert Dürr</td>
- <td align="right">63</td>
- <td align="right">16.6%</td>
+ <td>63</td>
+ <td>16.6%</td>
</tr><tr class="Odd"><td>Jürgen Schmidt             </td>
- <td align="right">56</td>
- <td align="right">14.7%</td>
+ <td>56</td>
+ <td>14.7%</td>
</tr><tr class="Even"><td>Armin Le Grand</td>
- <td align="right">56</td>
- <td align="right">14.7%</td>
+ <td>56</td>
+ <td>14.7%</td>
</tr><tr class="Odd"><td>Oliver-Rainer Wittmann</td>
- <td align="right">46</td>
- <td align="right">12.1%</td>
+ <td>46</td>
+ <td>12.1%</td>
</tr><tr class="Even"><td>Tsutomu Uchino</td>
- <td align="right">33</td>
- <td align="right">8.7%</td>
+ <td>33</td>
+ <td>8.7%</td>
</tr><tr class="Odd"><td>Kay Schenk</td>
- <td align="right">27</td>
- <td align="right">7.1%</td>
+ <td>27</td>
+ <td>7.1%</td>
</tr><tr class="Even"><td>Pedro Giffuni</td>
- <td align="right">23</td>
- <td align="right">6.1%</td>
+ <td>23</td>
+ <td>6.1%</td>
</tr><tr class="Odd"><td>Ariel Constenla-Haile</td>
- <td align="right">22</td>
- <td align="right">5.8%</td>
+ <td>22</td>
+ <td>5.8%</td>
</tr><tr class="Even"><td>Andrea Pescetti</td>
- <td align="right">14</td>
- <td align="right">3.7%</td>
+ <td>14</td>
+ <td>3.7%</td>
</tr><tr class="Odd"><td>Steve Yin</td>
- <td align="right">11</td>
- <td align="right">2.9%</td>
+ <td>11</td>
+ <td>2.9%</td>
</tr><tr class="Even"><td>Andre Fischer</td>
- <td align="right">10</td>
- <td align="right">2.6%</td>
+ <td>10</td>
+ <td>2.6%</td>
</tr><tr class="Odd"><td>Yuri Dario</td>
- <td align="right">7</td>
- <td align="right">1.8%</td>
+ <td>7</td>
+ <td>1.8%</td>
</tr><tr class="Even"><td>Regina Henschel</td>
- <td align="right">6</td>
- <td align="right">1.6%</td>
+ <td>6</td>
+ <td>1.6%</td>
</tr><tr class="Odd"><td>Juan C. Sanz</td>
- <td align="right">2</td>
- <td align="right">0.5%</td>
+ <td>2</td>
+ <td>0.5%</td>
</tr><tr class="Even"><td>Clarence Guo</td>
- <td align="right">2</td>
- <td align="right">0.5%</td>
+ <td>2</td>
+ <td>0.5%</td>
</tr><tr class="Odd"><td>Tal Daniel</td>
- <td align="right">2</td>
- <td align="right">0.5%</td>
+ <td>2</td>
+ <td>0.5%</td>
</tr></tbody></table></td>
- <td valign="top" width="50%">
- <table cellspacing="3"><tbody><tr><th colspan="3">By changed lines</th>
+ <td>
+ <table><tbody><tr><th colspan="3">By changed lines</th>
</tr><tr class="Even"><td>Jürgen Schmidt             </td>
- <td align="right">455499</td>
- <td align="right">88.1%</td>
+ <td>455499</td>
+ <td>88.1%</td>
</tr><tr class="Odd"><td>Andre Fischer</td>
- <td align="right">26148</td>
- <td align="right">3.8%</td>
+ <td>26148</td>
+ <td>3.8%</td>
</tr><tr class="Even"><td>Pedro Giffuni</td>
- <td align="right">23183</td>
- <td align="right">3.4%</td>
+ <td>23183</td>
+ <td>3.4%</td>
</tr><tr class="Odd"><td>Armin Le Grand</td>
- <td align="right">11018</td>
- <td align="right">1.6%</td>
+ <td>11018</td>
+ <td>1.6%</td>
</tr><tr class="Even"><td>Juan C. Sanz</td>
- <td align="right">4582</td>
- <td align="right">0.7%</td>
+ <td>4582</td>
+ <td>0.7%</td>
</tr><tr class="Odd"><td>Oliver-Rainer Wittmann</td>
- <td align="right">4309</td>
- <td align="right">0.6%</td>
+ <td>4309</td>
+ <td>0.6%</td>
</tr><tr class="Even"><td>Andrea Pescetti</td>
- <td align="right">3908</td>
- <td align="right">0.6%</td>
+ <td>3908</td>
+ <td>0.6%</td>
</tr><tr class="Odd"><td>Herbert Dürr</td>
- <td align="right">2811</td>
- <td align="right">0.4%</td>
+ <td>2811</td>
+ <td>0.4%</td>
</tr><tr class="Even"><td>Tsutomu Uchino</td>
- <td align="right">1991</td>
- <td align="right">0.3%</td>
+ <td>1991</td>
+ <td>0.3%</td>
</tr><tr class="Odd"><td>Ariel Constenla-Haile</td>
- <td align="right">1258</td>
- <td align="right">0.2%</td>
+ <td>1258</td>
+ <td>0.2%</td>
</tr><tr class="Even"><td>Steve Yin</td>
- <td align="right">1010</td>
- <td align="right">0.1%</td>
+ <td>1010</td>
+ <td>0.1%</td>
</tr><tr class="Odd"><td>Kay Schenk</td>
- <td align="right">616</td>
- <td align="right">0.1%</td>
+ <td>616</td>
+ <td>0.1%</td>
</tr><tr class="Even"><td>Regina Henschel</td>
- <td align="right">417</td>
- <td align="right">0.1%</td>
+ <td>417</td>
+ <td>0.1%</td>
</tr><tr class="Odd"><td>Yuri Dario</td>
- <td align="right">268</td>
- <td align="right">0.0%</td>
+ <td>268</td>
+ <td>0.0%</td>
</tr><tr class="Even"><td>tal</td>
- <td align="right">16</td>
- <td align="right">0.0%</td>
+ <td>16</td>
+ <td>0.0%</td>
</tr><tr class="Odd"><td>Clarence Guo</td>
- <td align="right">11</td>
- <td align="right">0.0%</td>
+ <td>11</td>
+ <td>0.0%</td>
</tr></tbody></table></td>
</tr></tbody></table></blockquote>
<p> In truth, the above list is not just the most active OpenOffice developers — it is all of them; a total of 16 developers have committed changes to OpenOffice in the last year. Those developers changed 528,000 lines of code, but, as can be seen above, Jürgen Schmidt accounted for the bulk of those changes, which were mostly updates to translation files. </p>
@@ -183,132 +183,132 @@ cut loose from Oracle</a><p> and found a new home as an Apache project. It is fa
<p> The picture for LibreOffice is just a little bit different; in the same one-year period, the project has committed 22,134 changesets from 268 developers. The most active of these developers were: </p>
<blockquote>
- <table><tbody><tr><th align="center" colspan="2">Most active LibreOffice developers</th>
- </tr><tr><td valign="top" width="50%">
- <table cellspacing="3"><tbody><tr><th colspan="3">By changesets</th>
+ <table><tbody><tr><th colspan="2">Most active LibreOffice developers</th>
+ </tr><tr><td>
+ <table><tbody><tr><th colspan="3">By changesets</th>
</tr><tr class="Even"><td>Caolán McNamara</td>
- <td align="right">4307</td>
- <td align="right">19.5%</td>
+ <td>4307</td>
+ <td>19.5%</td>
</tr><tr class="Odd"><td>Stephan Bergmann</td>
- <td align="right">2351</td>
- <td align="right">10.6%</td>
+ <td>2351</td>
+ <td>10.6%</td>
</tr><tr class="Even"><td>Miklos Vajna</td>
- <td align="right">1449</td>
- <td align="right">6.5%</td>
+ <td>1449</td>
+ <td>6.5%</td>
</tr><tr class="Odd"><td>Tor Lillqvist</td>
- <td align="right">1159</td>
- <td align="right">5.2%</td>
+ <td>1159</td>
+ <td>5.2%</td>
</tr><tr class="Even"><td>Noel Grandin</td>
- <td align="right">1064</td>
- <td align="right">4.8%</td>
+ <td>1064</td>
+ <td>4.8%</td>
</tr><tr class="Odd"><td>Markus Mohrhard</td>
- <td align="right">935</td>
- <td align="right">4.2%</td>
+ <td>935</td>
+ <td>4.2%</td>
</tr><tr class="Even"><td>Michael Stahl</td>
- <td align="right">915</td>
- <td align="right">4.1%</td>
+ <td>915</td>
+ <td>4.1%</td>
</tr><tr class="Odd"><td>Kohei Yoshida</td>
- <td align="right">755</td>
- <td align="right">3.4%</td>
+ <td>755</td>
+ <td>3.4%</td>
</tr><tr class="Even"><td>Tomaž Vajngerl</td>
- <td align="right">658</td>
- <td align="right">3.0%</td>
+ <td>658</td>
+ <td>3.0%</td>
</tr><tr class="Odd"><td>Thomas Arnhold</td>
- <td align="right">619</td>
- <td align="right">2.8%</td>
+ <td>619</td>
+ <td>2.8%</td>
</tr><tr class="Even"><td>Jan Holesovsky</td>
- <td align="right">466</td>
- <td align="right">2.1%</td>
+ <td>466</td>
+ <td>2.1%</td>
</tr><tr class="Odd"><td>Eike Rathke</td>
- <td align="right">457</td>
- <td align="right">2.1%</td>
+ <td>457</td>
+ <td>2.1%</td>
</tr><tr class="Even"><td>Matteo Casalin</td>
- <td align="right">442</td>
- <td align="right">2.0%</td>
+ <td>442</td>
+ <td>2.0%</td>
</tr><tr class="Odd"><td>Bjoern Michaelsen</td>
- <td align="right">421</td>
- <td align="right">1.9%</td>
+ <td>421</td>
+ <td>1.9%</td>
</tr><tr class="Even"><td>Chris Sherlock</td>
- <td align="right">396</td>
- <td align="right">1.8%</td>
+ <td>396</td>
+ <td>1.8%</td>
</tr><tr class="Odd"><td>David Tardon</td>
- <td align="right">386</td>
- <td align="right">1.7%</td>
+ <td>386</td>
+ <td>1.7%</td>
</tr><tr class="Even"><td>Julien Nabet</td>
- <td align="right">362</td>
- <td align="right">1.6%</td>
+ <td>362</td>
+ <td>1.6%</td>
</tr><tr class="Odd"><td>Zolnai Tamás</td>
- <td align="right">338</td>
- <td align="right">1.5%</td>
+ <td>338</td>
+ <td>1.5%</td>
</tr><tr class="Even"><td>Matúš Kukan</td>
- <td align="right">256</td>
- <td align="right">1.2%</td>
+ <td>256</td>
+ <td>1.2%</td>
</tr><tr class="Odd"><td>Robert Antoni Buj Gelonch</td>
- <td align="right">231</td>
- <td align="right">1.0%</td>
+ <td>231</td>
+ <td>1.0%</td>
</tr></tbody></table></td>
- <td valign="top" width="50%">
- <table cellspacing="3"><tbody><tr><th colspan="3">By changed lines</th>
+ <td>
+ <table><tbody><tr><th colspan="3">By changed lines</th>
</tr><tr class="Even"><td>Lionel Elie Mamane</td>
- <td align="right">244062</td>
- <td align="right">12.5%</td>
+ <td>244062</td>
+ <td>12.5%</td>
</tr><tr class="Odd"><td>Noel Grandin</td>
- <td align="right">238711</td>
- <td align="right">12.2%</td>
+ <td>238711</td>
+ <td>12.2%</td>
</tr><tr class="Even"><td>Stephan Bergmann</td>
- <td align="right">161220</td>
- <td align="right">8.3%</td>
+ <td>161220</td>
+ <td>8.3%</td>
</tr><tr class="Odd"><td>Miklos Vajna</td>
- <td align="right">129325</td>
- <td align="right">6.6%</td>
+ <td>129325</td>
+ <td>6.6%</td>
</tr><tr class="Even"><td>Caolán McNamara</td>
- <td align="right">97544</td>
- <td align="right">5.0%</td>
+ <td>97544</td>
+ <td>5.0%</td>
</tr><tr class="Odd"><td>Tomaž Vajngerl</td>
- <td align="right">69404</td>
- <td align="right">3.6%</td>
+ <td>69404</td>
+ <td>3.6%</td>
</tr><tr class="Even"><td>Tor Lillqvist</td>
- <td align="right">59498</td>
- <td align="right">3.1%</td>
+ <td>59498</td>
+ <td>3.1%</td>
</tr><tr class="Odd"><td>Laurent Balland-Poirier</td>
- <td align="right">52802</td>
- <td align="right">2.7%</td>
+ <td>52802</td>
+ <td>2.7%</td>
</tr><tr class="Even"><td>Markus Mohrhard</td>
- <td align="right">50509</td>
- <td align="right">2.6%</td>
+ <td>50509</td>
+ <td>2.6%</td>
</tr><tr class="Odd"><td>Kohei Yoshida</td>
- <td align="right">45514</td>
- <td align="right">2.3%</td>
+ <td>45514</td>
+ <td>2.3%</td>
</tr><tr class="Even"><td>Chris Sherlock</td>
- <td align="right">36788</td>
- <td align="right">1.9%</td>
+ <td>36788</td>
+ <td>1.9%</td>
</tr><tr class="Odd"><td>Peter Foley</td>
- <td align="right">34305</td>
- <td align="right">1.8%</td>
+ <td>34305</td>
+ <td>1.8%</td>
</tr><tr class="Even"><td>Christian Lohmaier</td>
- <td align="right">33787</td>
- <td align="right">1.7%</td>
+ <td>33787</td>
+ <td>1.7%</td>
</tr><tr class="Odd"><td>Thomas Arnhold</td>
- <td align="right">32722</td>
- <td align="right">1.7%</td>
+ <td>32722</td>
+ <td>1.7%</td>
</tr><tr class="Even"><td>David Tardon</td>
- <td align="right">21681</td>
- <td align="right">1.1%</td>
+ <td>21681</td>
+ <td>1.1%</td>
</tr><tr class="Odd"><td>David Ostrovsky</td>
- <td align="right">21620</td>
- <td align="right">1.1%</td>
+ <td>21620</td>
+ <td>1.1%</td>
</tr><tr class="Even"><td>Jan Holesovsky</td>
- <td align="right">20792</td>
- <td align="right">1.1%</td>
+ <td>20792</td>
+ <td>1.1%</td>
</tr><tr class="Odd"><td>Valentin Kettner</td>
- <td align="right">20526</td>
- <td align="right">1.1%</td>
+ <td>20526</td>
+ <td>1.1%</td>
</tr><tr class="Even"><td>Robert Antoni Buj Gelonch</td>
- <td align="right">20447</td>
- <td align="right">1.0%</td>
+ <td>20447</td>
+ <td>1.0%</td>
</tr><tr class="Odd"><td>Michael Stahl</td>
- <td align="right">18216</td>
- <td align="right">0.9%</td>
+ <td>18216</td>
+ <td>0.9%</td>
</tr></tbody></table></td>
</tr></tbody></table></blockquote>
<p> To a first approximation, the top ten companies supporting LibreOffice in the last year are: </p>
@@ -317,35 +317,35 @@ cut loose from Oracle</a><p> and found a new home as an Apache project. It is fa
<table><tbody><tr><th colspan="3">Companies supporting LibreOffice development</th>
</tr><tr><th colspan="3">(by changesets)</th>
</tr><tr class="Even"><td>Red Hat</td>
- <td align="right">8417</td>
- <td align="right">38.0%</td>
+ <td>8417</td>
+ <td>38.0%</td>
</tr><tr class="Odd"><td>Collabora <strike>Multimedia</strike></td>
- <td align="right">6531</td>
- <td align="right">29.5%</td>
+ <td>6531</td>
+ <td>29.5%</td>
</tr><tr class="Even"><td>(Unknown)</td>
- <td align="right">5126</td>
- <td align="right">23.2%</td>
+ <td>5126</td>
+ <td>23.2%</td>
</tr><tr class="Odd"><td>(None)</td>
- <td align="right">1490</td>
- <td align="right">6.7%</td>
+ <td>1490</td>
+ <td>6.7%</td>
</tr><tr class="Even"><td>Canonical</td>
- <td align="right">422</td>
- <td align="right">1.9%</td>
+ <td>422</td>
+ <td>1.9%</td>
</tr><tr class="Odd"><td>Igalia S.L.</td>
- <td align="right">80</td>
- <td align="right">0.4%</td>
+ <td>80</td>
+ <td>0.4%</td>
</tr><tr class="Even"><td>Ericsson</td>
- <td align="right">21</td>
- <td align="right">0.1%</td>
+ <td>21</td>
+ <td>0.1%</td>
</tr><tr class="Odd"><td>Yandex</td>
- <td align="right">18</td>
- <td align="right">0.1%</td>
+ <td>18</td>
+ <td>0.1%</td>
</tr><tr class="Even"><td>FastMail.FM</td>
- <td align="right">17</td>
- <td align="right">0.1%</td>
+ <td>17</td>
+ <td>0.1%</td>
</tr><tr class="Odd"><td>SUSE</td>
- <td align="right">7</td>
- <td align="right">0.0%</td>
+ <td>7</td>
+ <td>0.0%</td>
</tr></tbody></table></blockquote>
<p> Development work on LibreOffice is thus concentrated in a small number of companies, though it is rather more spread out than OpenOffice development. It is worth noting that the LibreOffice developers with unknown affiliation, who contributed 23% of the changes, make up 82% of the developer base, so there would appear to be a substantial community of developers contributing from outside the above-listed companies. </p>
diff --git a/test/test-pages/pixnet/expected.html b/test/test-pages/pixnet/expected.html
index 28c5c32..63796ca 100644
--- a/test/test-pages/pixnet/expected.html
+++ b/test/test-pages/pixnet/expected.html
@@ -1,6 +1,6 @@
<div class="article-content-inner" id="article-content-inner">
<p>
- <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="12-IMG_3886.jpg" border="0" height="359" original="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" src="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" title="12-IMG_3886.jpg" width="521"></img></a>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="12-IMG_3886.jpg" height="359" original="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" src="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" title="12-IMG_3886.jpg" width="521"></img></a>
</p>
<p><span>一波波<span>接續性</span>低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣</span>
</p>
@@ -14,7 +14,7 @@
<p><span><span><span>營區內</span></span>除了露營、民宿、餐飲</span><span><span>、</span>賞楓項目<span>多了許多原木飾品更有畫龍點睛加乘效果</span></span>
</p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470396919"><img alt="30-IMG_4228.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" src="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" title="30-IMG_4228.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470396919"><img alt="30-IMG_4228.jpg" original="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" src="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" title="30-IMG_4228.jpg"></img></a></span></p>
<p><span>廣受歡迎的美樹營地有個很大特色就是<span>楓紅時期楓香樹由綠轉黃、轉紅到楓紅層層</span> </span>
</p>
<p><span><span>一來到"美樹"馬上眼睛為之一亮 也會深深地為那</span></span><span><span>多種顏色多層次渲染之下楓紅而迷惑</span></span>
@@ -29,66 +29,66 @@
</p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470396943"><img alt="31-IMG_4231.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" src="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" title="31-IMG_4231.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470396943"><img alt="31-IMG_4231.jpg" original="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" src="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" title="31-IMG_4231.jpg"></img></a></span></p>
<p><span> 每年12月向來是攝影班外拍的絕佳場所之一 楓紅期間入園費$50元</span></p>
<p><span>園區給愛攝一族淨空場景而不是散搭帳蓬之下反</span><span>而影響拍照畫面與構圖取景</span></p>
<p><span>露營的話則須待中午過後再進場搭帳的彈性做法個人也相當支持這樣的權宜之計</span></p>
<p><span> </span>
- <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610088.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" src="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" title="P1610088.jpg"></img></a>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610088.jpg" original="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" src="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" title="P1610088.jpg"></img></a>
</p>
<p> <span>來到現場已是落葉飄飄堆疊滿地 不時隨著風吹雨襲而葉落垂地</span></p>
<p><span> </span>
- <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610069.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" src="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" title="P1610069.jpg"></img></a>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610069.jpg" original="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" src="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" title="P1610069.jpg"></img></a>
</p>
<p><span>不忍踩過剛剛掉落的樹葉 沿著前人足跡踏痕輕踩而行</span></p>
<p><span>雖然只是一廂情願的想法 終究還是不可避免地將會化為塵土</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470383005"><img alt="02-P1610080.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" src="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" title="02-P1610080.jpg"></img></a> </span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470383005"><img alt="02-P1610080.jpg" original="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" src="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" title="02-P1610080.jpg"></img></a> </span></p>
<p><span> 葉落繽紛顯得幾分蕭瑟氣息 空氣中可以嗅得出來<span>依然</span>瀰漫著濕寒水氣</span>
</p>
<p><span>偶而還會飄下來一些霧氣水滴 不時張望尋找最佳楓葉主題</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470384469"><img alt="04-P1610087.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" src="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" title="04-P1610087.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470384469"><img alt="04-P1610087.jpg" original="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" src="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" title="04-P1610087.jpg"></img></a></span></p>
<p><span> 外拍的攝影班學員一堆早已不時穿梭其間</span></p>
<p><span>各自努力地找尋自認為最好的拍攝角度</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470384925"><img alt="05-P1610099.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" src="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" title="05-P1610099.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470384925"><img alt="05-P1610099.jpg" original="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" src="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" title="05-P1610099.jpg"></img></a></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610095.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" src="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" title="P1610095.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610095.jpg" original="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" src="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" title="P1610095.jpg"></img></a></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470389803"><img alt="13-IMG_3891.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" src="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" title="13-IMG_3891.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470389803"><img alt="13-IMG_3891.jpg" original="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" src="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" title="13-IMG_3891.jpg"></img></a></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470390760"><img alt="15-IMG_3906.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" src="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" title="15-IMG_3906.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470390760"><img alt="15-IMG_3906.jpg" original="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" src="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" title="15-IMG_3906.jpg"></img></a></span></p>
<p><span>"水槽"上面的這幾隻彩繪版貓頭鷹也太可愛了</span></p>
<p><span>同樣的造型加上不同色彩宛如賦予不同的生命力一般 cool!</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470391000"><img alt="16-IMG_3916.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" src="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" title="16-IMG_3916.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470391000"><img alt="16-IMG_3916.jpg" original="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" src="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" title="16-IMG_3916.jpg"></img></a></span></p>
<p><span> 雨水洗塵後的枝頭固然掉落些葉片是否也洗去塵勞憂傷</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470391519"><img alt="17-IMG_3919.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" src="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" title="17-IMG_3919.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470391519"><img alt="17-IMG_3919.jpg" original="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" src="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" title="17-IMG_3919.jpg"></img></a></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470385711"><img alt="06-IMG_3853.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" src="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" title="06-IMG_3853.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470385711"><img alt="06-IMG_3853.jpg" original="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" src="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" title="06-IMG_3853.jpg"></img></a></span></p>
<p><span> 喜歡拍照的不論是平面掃描、天空搜尋、</span><span>地上地毯式搜索</span></p>
<p><span>有如小說偵探一般 不放過蛛絲馬跡地用力尋尋覓覓找尋最美角度</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470386749"><img alt="07-P1610104.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" src="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" title="07-P1610104.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470386749"><img alt="07-P1610104.jpg" original="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" src="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" title="07-P1610104.jpg"></img></a></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470387232"><img alt="08-IMG_3862.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" src="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" title="08-IMG_3862.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470387232"><img alt="08-IMG_3862.jpg" original="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" src="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" title="08-IMG_3862.jpg"></img></a></span></p>
<p><span> 原本這周是由小朱團長早在一年前就跟"簍信"預定下來的場子</span></p>
<p><span>早上從台北出門之際還是小雨不斷細雨紛飛來到此地雖雨已停</span></p>
<p><span>但多日來的雨勢不斷已有部分區域水漬成攤並不適合落置帳篷</span></p>
@@ -98,32 +98,32 @@
</p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470391732"><img alt="18-P1610141.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" src="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" title="18-P1610141.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470391732"><img alt="18-P1610141.jpg" original="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" src="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" title="18-P1610141.jpg"></img></a></span></p>
<p><span>午後從"秀巒"回到美樹之際已經全數撤退只剩下我們三車留下來</span></p>
<p><span>唯有"離開地球表面"睡車上的才可以不受到地上泥濘而影響</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470392077"><img alt="19-IMG_3933.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" src="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" title="19-IMG_3933.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470392077"><img alt="19-IMG_3933.jpg" original="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" src="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" title="19-IMG_3933.jpg"></img></a></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470390364"><img alt="14-P1610134.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" src="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" title="14-P1610134.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470390364"><img alt="14-P1610134.jpg" original="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" src="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" title="14-P1610134.jpg"></img></a></span></p>
<p><span> 午後山嵐興起雲氣遊蕩<span>盤旋在對岸山頭 人潮來來去去似乎也沒有減少</span></span>
</p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470403381"><img alt="44-P1610283.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" src="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" title="44-P1610283.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470403381"><img alt="44-P1610283.jpg" original="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" src="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" title="44-P1610283.jpg"></img></a></span></p>
<p><span> 美樹民宿有開設餐廳 室內簡單佈置提供伙食餐飲 <br></br></span></p>
<p>
- <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610212.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" src="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" title="P1610212.jpg"></img></a>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610212.jpg" original="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" src="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" title="P1610212.jpg"></img></a>
</p>
<p> <span>這兩間是民宿房間 跟著民宿主人"簍信"聊起來還提到日後將改變成兩層木屋</span></p>
<p><span>一樓則是咖啡飲料/賣店提供訪客來賓有個落腳席座之地 二樓才會是民宿房間</span></p>
<p><span>心中有了計畫想法才會有日後的夢想藍圖 相信將會改變得更好的民宿露營環境<br></br></span></p>
<p>
- <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610219.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" src="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" title="P1610219.jpg"></img></a>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610219.jpg" original="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" src="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" title="P1610219.jpg"></img></a>
</p>
<p><span> 民宿前這一大區楓香林為土質營位 大致區分前、後兩個營區</span></p>
<p><span>前面這一區約可搭上十二帳/車/廳 後面那區也大約4~5帳/車/廳</span></p>
@@ -131,26 +131,26 @@
</p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470388054"><img alt="10-P1610114.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" src="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" title="10-P1610114.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470388054"><img alt="10-P1610114.jpg" original="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" src="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" title="10-P1610114.jpg"></img></a></span></p>
<p><span> 營區水電方便 水槽也很有特色</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470393178"><img alt="22-P1610245.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" src="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" title="22-P1610245.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470393178"><img alt="22-P1610245.jpg" original="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" src="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" title="22-P1610245.jpg"></img></a></span></p>
<p><span> 這次選擇左側地勢高些以防午夜下雨泥濘</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470392404"><img alt="20-P1610238.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" src="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" title="20-P1610238.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470392404"><img alt="20-P1610238.jpg" original="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" src="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" title="20-P1610238.jpg"></img></a></span></p>
<p><span> "野馬"特地帶來了冬至應景食材ㄜ<span>---湯圓</span></span>
</p>
<p><span>這家還是最近被評比第一名氣的湯圓專賣店 </span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470393130"><img alt="21-P1610241.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" src="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" title="21-P1610241.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470393130"><img alt="21-P1610241.jpg" original="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" src="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" title="21-P1610241.jpg"></img></a></span></p>
<p><span> 向來對於湯圓是敬謝不敏 沒想到是出乎意料之外的好吃 <span>沒話說!</span><br></br></span>
</p>
- <p><span> <a href="http://stevenhgm.pixnet.net/album/photo/470394156"><img alt="24-IMG_4113.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" src="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" title="24-IMG_4113.jpg"></img></a></span></p>
+ <p><span> <a href="http://stevenhgm.pixnet.net/album/photo/470394156"><img alt="24-IMG_4113.jpg" original="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" src="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" title="24-IMG_4113.jpg"></img></a></span></p>
<p><span> 喜歡原住民朋友的坦率、真誠 要將民宿營地經營的有聲有色並非容易之事</span></p>
<p><span><span>午茶時間與"簍信"閒聊分享著他的觀點理念之時很支持對於環境應有生態保護</span> </span>
</p>
@@ -159,46 +159,46 @@
</p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470397399"><img alt="32-IMG_4248.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" src="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" title="32-IMG_4248.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470397399"><img alt="32-IMG_4248.jpg" original="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" src="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" title="32-IMG_4248.jpg"></img></a></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470394732"><img alt="25-IMG_4152.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" src="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" title="25-IMG_4152.jpg"></img></a> </span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470394732"><img alt="25-IMG_4152.jpg" original="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" src="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" title="25-IMG_4152.jpg"></img></a> </span></p>
<p><span> 入夜前雨絲終於漸漸緩和下來 雖然氣溫很低卻沒感受到寒冷的跡象</span></p>
<p><span>是山谷中少了寒氣還是美樹營區裡的人熱情洋溢暖化了不少寒意</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470404359"><img alt="IMG_4158.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" src="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" title="IMG_4158.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470404359"><img alt="IMG_4158.jpg" original="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" src="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" title="IMG_4158.jpg"></img></a></span></p>
<p><span> 聖誕前夕裝點些聖誕飾品 感受一下節慶的氛圍<br></br></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470394948"><img alt="26-P1610261.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" src="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" title="26-P1610261.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470394948"><img alt="26-P1610261.jpg" original="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" src="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" title="26-P1610261.jpg"></img></a></span></p>
<p><span>晚餐準備了砂鍋魚頭</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470403921"><img alt="46-1021221美樹露營.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" src="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" title="46-1021221美樹露營.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470403921"><img alt="46-1021221美樹露營.jpg" original="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" src="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" title="46-1021221美樹露營.jpg"></img></a></span></p>
<p><span>"蒯嫂"還特地準備著羊肩排、鹹豬肉、柳葉魚...哇!這哩澎湃哩...</span></p>
<p><span> "永老爺"早已備妥了好酒為遠自台南來的蒯兄嫂敬一杯囉</span></p>
<p><span>感謝蒯嫂精心準備的好料理 食指大動好菜色感恩ㄟ!</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470395164"><img alt="27-IMG_4173.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" src="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" title="27-IMG_4173.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470395164"><img alt="27-IMG_4173.jpg" original="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" src="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" title="27-IMG_4173.jpg"></img></a></span></p>
<p><span> 吃得快精光之際...才想到忘了拍合照...(哇哩咧 ^&amp;*()<br></br></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470395614"><img alt="28-IMG_4178.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" src="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" title="28-IMG_4178.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470395614"><img alt="28-IMG_4178.jpg" original="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" src="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" title="28-IMG_4178.jpg"></img></a></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470396325"><img alt="29-IMG_4188.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" src="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" title="29-IMG_4188.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470396325"><img alt="29-IMG_4188.jpg" original="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" src="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" title="29-IMG_4188.jpg"></img></a></span></p>
<p><span> 隔日睡到很晚才起床 不用拍日出晨光的營地對我來說都是個幸福的睡眠</span></p>
<p><span>哪怕是葉落飄零落滿地還是睡夢周公召見而去 起床的事~差點都忘記了</span></p>
<p>
- <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="IMG_4205.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" src="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" title="IMG_4205.jpg"></img></a>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="IMG_4205.jpg" original="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" src="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" title="IMG_4205.jpg"></img></a>
</p>
<p> <span> 昨天細雨紛飛依然打落了不少落葉中間這株整個都快變成枯枝了</span></p>
<p><span>昨天依稀凋零稀疏的楓葉殘留今兒個完全不復存在(上周是最美的代名詞)</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470397765"><img alt="33-IMG_4255.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" src="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" title="33-IMG_4255.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470397765"><img alt="33-IMG_4255.jpg" original="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" src="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" title="33-IMG_4255.jpg"></img></a></span></p>
<p><span><span>上回來得太早沒能見到楓葉泛紅 這次晚了一周已陸續落葉也</span>無從比對楓葉差異性 </span>
</p>
<p><span><span> 另一種角度看不論青楓、金黃葉紅的楓香、葉落飄零秋滿霜、落葉枯枝的蕭瑟</span></span>
@@ -207,69 +207,69 @@
</p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470398749"><img alt="34-P1610269.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" src="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" title="34-P1610269.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470398749"><img alt="34-P1610269.jpg" original="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" src="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" title="34-P1610269.jpg"></img></a></span></p>
<p><span> 早起的"蒯嫂"已經備好熱騰騰中式稀飯、包子、蔬果 頓時~有幸福的感覺<br></br></span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470399232"><img alt="35-IMG_4303.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" src="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" title="35-IMG_4303.jpg"></img></a> </span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470399232"><img alt="35-IMG_4303.jpg" original="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" src="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" title="35-IMG_4303.jpg"></img></a> </span></p>
<p><span> 星期天早上趁著攝影團還沒入場先來人物場景特寫</span></p>
<p><span>野馬家兩張新"座椅"就當作是試坐囉!拍謝哩</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470400471"><img alt="38-IMG_4330.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" src="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" title="38-IMG_4330.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470400471"><img alt="38-IMG_4330.jpg" original="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" src="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" title="38-IMG_4330.jpg"></img></a></span></p>
<p>
- <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610279.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" src="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" title="P1610279.jpg"></img></a>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610279.jpg" original="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" src="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" title="P1610279.jpg"></img></a>
</p>
<p><span> 難得有此無人美景在楓樹下的聖誕氛圍也一定要來一張才行</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470399946"><img alt="37-IMG_4323.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" src="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" title="37-IMG_4323.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470399946"><img alt="37-IMG_4323.jpg" original="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" src="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" title="37-IMG_4323.jpg"></img></a></span></p>
<p><span> 三家合照(Hero也一定要入鏡的)</span></p>
- <p><span> <a href="http://stevenhgm.pixnet.net/album/photo/470401161"><img alt="40-IMG_4342.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" src="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" title="40-IMG_4342.jpg"></img></a></span></p>
+ <p><span> <a href="http://stevenhgm.pixnet.net/album/photo/470401161"><img alt="40-IMG_4342.jpg" original="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" src="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" title="40-IMG_4342.jpg"></img></a></span></p>
<p><span> 接著攝影團入場帶隊老師請求借個時間也來讓學員練習楓樹下的聖誕飾品</span></p>
<p><span>此時剛好也遇到早在FB社團相互回應卻頭一次謀面的Mr."大雄"真是幸會了</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470402037"><img alt="42-IMG_4382.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" src="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" title="42-IMG_4382.jpg"></img></a> </span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470402037"><img alt="42-IMG_4382.jpg" original="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" src="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" title="42-IMG_4382.jpg"></img></a> </span></p>
<p><span> 接近中午時分陽光漸露 藍天帷幕再次嶄露頭角 ~ 久違了!</span></p>
<p><span>期盼下的天空終於放晴 沒有缺席的藍天還是準時赴約如期出席</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470402682"><img alt="41-IMG_4366.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" src="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" title="41-IMG_4366.jpg"></img></a></span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470402682"><img alt="41-IMG_4366.jpg" original="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" src="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" title="41-IMG_4366.jpg"></img></a></span></p>
<p><span> 這兩天肉肉(Hero)天雨濕滑無法自由奔跑都快悶壞了</span></p>
<p><span>天晴後"蒯嫂"帶著散步遊園也好解解悶</span></p>
- <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470402898"><img alt="43-IMG_4383.jpg" border="0" original="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" src="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" title="43-IMG_4383.jpg"></img></a> </span></p>
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470402898"><img alt="43-IMG_4383.jpg" original="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" src="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" title="43-IMG_4383.jpg"></img></a> </span></p>
<p><span>收拾好裝備準備離開營地 亮麗的</span><span>天空鮮明對比下的楓樹林又讓人覺得有點捨不得離開</span></p>
<p><span><span>道別了"美樹營地"準備前往而行</span>"石磊國小"一個很生疏的小學座落在這深山部落裡</span>
</p>
<p><span>北橫"石磊部落" 一個從未踏入的陌生之地因為露營之故否則畢生大概也不會路過</span></p>
<p><span>三位大叔同行準備走著這段遙遠的路段 下次找機會再來重溫舊夢了.......</span></p>
- <p align="center" class="MsoNormal"><span lang="EN-US"><a href="http://tw.myblog.yahoo.com/wu141993/article?mid=104&amp;sc=1"><span lang="EN-US"><span lang="EN-US"><span>美樹營地</span></span>
+ <p class="MsoNormal"><span lang="EN-US"><a href="http://tw.myblog.yahoo.com/wu141993/article?mid=104&amp;sc=1"><span lang="EN-US"><span lang="EN-US"><span>美樹營地</span></span>
</span>
</a> </span><span lang="EN-US"><span>資訊</span></span>
</p>
- <p align="center" class="MsoNormal"><span lang="EN-US"><span><span>聯絡電話:</span><span lang="EN-US">03-584-7231</span><span>  </span><span lang="EN"> </span><span>行動</span><span lang="EN">:</span><span lang="EN-US"> 0937-141993</span><span lang="EN-US"><br></br></span><span>林錦武<span lang="EN-US"> (泰雅族名: 摟信)</span></span><span lang="EN"><br></br></span><span>營地地址:<span>新竹縣尖石鄉玉峰村<span lang="EN-US">6鄰20號</span></span>
+ <p class="MsoNormal"><span lang="EN-US"><span><span>聯絡電話:</span><span lang="EN-US">03-584-7231</span><span>  </span><span lang="EN"> </span><span>行動</span><span lang="EN">:</span><span lang="EN-US"> 0937-141993</span><span lang="EN-US"><br></br></span><span>林錦武<span lang="EN-US"> (泰雅族名: 摟信)</span></span><span lang="EN"><br></br></span><span>營地地址:<span>新竹縣尖石鄉玉峰村<span lang="EN-US">6鄰20號</span></span>
</span>
</span>
</span>
</p>
- <p align="center" class="MsoNormal"><span lang="EN-US"><span>每帳$600 兩間衛浴使用燒材鍋爐/ 兩間全天瓦斯 </span></span><span lang="EN-US"><span>廁所蹲式X 3 </span></span>
+ <p class="MsoNormal"><span lang="EN-US"><span>每帳$600 兩間衛浴使用燒材鍋爐/ 兩間全天瓦斯 </span></span><span lang="EN-US"><span>廁所蹲式X 3 </span></span>
</p>
- <p align="center" class="MsoNormal"><span lang="EN-US"><span>楓紅期間須過中午才可搭帳 </span></span><span lang="EN-US">水電便利</span></p>
- <p align="center" class="MsoNormal"><strong><span lang="EN-US">GPS: N24 39 16.4 <span> </span>E121 18 19.5</span></strong></p>
+ <p class="MsoNormal"><span lang="EN-US"><span>楓紅期間須過中午才可搭帳 </span></span><span lang="EN-US">水電便利</span></p>
+ <p class="MsoNormal"><strong><span lang="EN-US">GPS: N24 39 16.4 <span> </span>E121 18 19.5</span></strong></p>
<p><span><span>如果您喜歡</span>"<span>史蒂文的家"圖文分享 邀請您到 </span></span><span><a href="https://www.facebook.com/stevenhgm1188"><span>FB </span><span lang="EN-US"><span lang="EN-US">粉絲團</span></span>
</a><span>按個"讚"!</span></span>
</p>
- <p align="center" class="MsoNormal"><span><span><span>內文有不定期的更新旅遊、露營圖文訊息 </span></span><span><span>謝謝!</span></span>
+ <p class="MsoNormal"><span><span><span>內文有不定期的更新旅遊、露營圖文訊息 </span></span><span><span>謝謝!</span></span>
</span>
</p>
diff --git a/test/test-pages/svg-parsing/expected.html b/test/test-pages/svg-parsing/expected.html
index 1112299..1cc4559 100644
--- a/test/test-pages/svg-parsing/expected.html
+++ b/test/test-pages/svg-parsing/expected.html
@@ -11,7 +11,7 @@ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
-<svg height="50" version="1.1" viewbox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><clippath id="hex-mask-large"><polygon points="15,35 10,35 10,0 10,0 45,0 45,35 45,35 25,35 15,43"></polygon></clippath><clippath id="hex-mask-small"><polygon points="5,1 5,16 3,23 10,20 24,20 24,1"></polygon></clippath></g></svg><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+<svg height="50" style="position: absolute;" version="1.1" viewbox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><clippath id="hex-mask-large"><polygon points="15,35 10,35 10,0 10,0 45,0 45,35 45,35 25,35 15,43"></polygon></clippath><clippath id="hex-mask-small"><polygon points="5,1 5,16 3,23 10,20 24,20 24,1"></polygon></clippath></g></svg><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
diff --git a/test/test-pages/table-style-attributes/expected.html b/test/test-pages/table-style-attributes/expected.html
index f3719ab..202c051 100644
--- a/test/test-pages/table-style-attributes/expected.html
+++ b/test/test-pages/table-style-attributes/expected.html
@@ -1,42 +1,55 @@
-<div id="readability-page-1" class="page">
- <p> <span size="+3"><b>linux usability
- <span size="4"><br/>...or, why do I bother.</span></b>
- </span><br/> © 2002, 2003 <a href="mailto:/dev/[email protected]?subject=Please%20delete%20this%20message%20without%20reading%20it.">Jamie Zawinski</a> </p>
+<div>
+ <p>
+ <span size="+3"><b>linux usability
+ <span size="4"><br></br>...or, why do I bother.</span></b></span><br></br> © 2002, 2003
+ <a href="mailto:/dev/[email protected]?subject=Please%20delete%20this%20message%20without%20reading%20it.">Jamie Zawinski</a> </p>
+
+
<div>
- <table>
- <tbody>
- <tr>
- <td>
+ <table><tbody><tr><td>
<p> In December 2002, I tried to install some software on my computer. The experience was, shall we say, less than pleasant. On many levels. I wrote about my experience, as I so often do. </p>
<p> Then in January, the jackasses over at Slashdot <a href="http://slashdot.org/article.pl?sid=03/01/24/1440207">posted</a> a link to it, calling it a "review" of Linux video software. I guess you could consider it a review, if you were to squint at it just right. But really what it is is a <i>rant</i> about how I had an evening stolen from me by crap software design. It is a flame about the pathetic state of Linux usability in general, and the handful of video players I tried out in particular. It makes no attempt to be balanced or objective or exhaustive. It is a description of my experience. Perhaps your experience was different. Good for you. </p>
<p> So of course that day I got hundreds of emails about it. Every Linux apologist in the world wanted to make sure I was fully informed of their opinion. The replies were roughly in the following groups: </p>
- <ul>
- <li> "Right on! I had exactly the same experience! Thank you for putting it into words." <i>(This was about 1/3 of the replies.)</i> </li>
- <li> "You're clearly an idiot, Linux is too sophisticated for you, you clearly are incapable of understanding anything, you should go back to kindergarten and/or use a Mac." <i>(Oddly, all of these messages used the word</i> `clearly' <i>repeatedly.)</i> </li>
- <li> "If you don't like it, fix it yourself." </li>
- <li> "Netscape sucks! XEmacs sucks! You suck! I never liked you anyway! And you swear too much!" </li>
- <li> "How dare you criticize someone else's work! You got it for free! You should be on your knees thanking them for wasting your time!" </li>
- <li> "While you have some valid complaints, I'm going to focus on this one inconsequential error you made in your characterization of one of the many roadblocks you encountered. You suck!" </li>
- <li> "It's your fault for using Red Hat! You should be using Debian/<wbr/>Mandrake/<wbr/>Gentoo instead!" </li>
+
+ <ul><li> "Right on! I had exactly the same experience! Thank you for putting it into words." <i>(This was about 1/3 of the replies.)</i>
+
+ </li>
+ <li> "You're clearly an idiot, Linux is too sophisticated for you, you clearly are incapable of understanding anything, you should go back to kindergarten and/or use a Mac." <i>(Oddly, all of these messages used the word</i> `clearly' <i>repeatedly.)</i>
+
+ </li>
+ <li> "If you don't like it, fix it yourself."
+
+ </li>
+ <li> "Netscape sucks! XEmacs sucks! You suck! I never liked you anyway! And you swear too much!"
+
+ </li>
+ <li> "How dare you criticize someone else's work! You got it for free! You should be on your knees thanking them for wasting your time!"
+
+ </li>
+ <li> "While you have some valid complaints, I'm going to focus on this one inconsequential error you made in your characterization of one of the many roadblocks you encountered. You suck!"
+
+ </li>
+ <li> "It's your fault for using Red Hat! You should be using Debian/<wbr></wbr>Mandrake/<wbr></wbr>Gentoo instead!"
+
+ </li>
<li> "Red Hat 7.2 is totally obsolete! It's almost 14 months old! What were you expecting!" </li>
- </ul>
- <p> While I am flattered that so many logorrheic Linux fanboys are sufficiently interested in my opinions and experiences to share their deeply heartfelt views with me, you can all rest assured that: </p>
- <ul>
- <ul type="A">
- <li> I've heard it before; and </li>
+ </ul><p> While I am flattered that so many logorrheic Linux fanboys are sufficiently interested in my opinions and experiences to share their deeply heartfelt views with me, you can all rest assured that: </p>
+
+ <ul><ul type="A"><li> I've heard it before; and </li>
<li> I didn't care the first time. </li>
- </ul>
- </ul>
- <p> So please. Don't bother sending me any more mail about this. It's a near certainty that I will just delete it unread, so you might as well not waste your time. Feel free to call me names on your own web page if you feel the need to get it out of your system. But kindly stay out of my inbox. </p>
+ </ul></ul><p> So please. Don't bother sending me any more mail about this. It's a near certainty that I will just delete it unread, so you might as well not waste your time. Feel free to call me names on your own web page if you feel the need to get it out of your system. But kindly stay out of my inbox.
+
+
+ </p>
</td>
- </tr>
- </tbody>
- </table>
- </div>
- <p> <span size="+3"><b>that said...</b></span> </p>
+ </tr></tbody></table></div>
+
+ <p>
+ <span size="+3"><b>that said...</b></span>
+ </p>
<p> I understand that one can play videos on one's computer. I understand these videos come in many different formats. Every now and then I try to figure out what the Done Thing is, as far as playing movies on one's Linux machine. </p>
- <ul> (Really my eventual goal is to be able to <i>create</i> video on Linux, but I figured I'd start small, and see if I could just get <i>playback</i> working before trying something that is undoubtedly ten thousand times harder.) </ul>
- <p> I finally found <a href="http://mirrors.sctpc.com/dominik/linux/pkgs/mplayer/">RPMs</a> of <a href="http://www.mplayerhq.hu/">mplayer</a> that would consent to install themselves on a Red Hat 7.2 machine, and actually got it to play some videos. Amazing. But it's a total pain in the ass to use due to rampant "themeing." <i>Why do people do this?</i> They map this stupid shaped window with no titlebar (oh, sorry, your choice of a dozen stupidly-shaped windows without titlebars) all of which use fonts that are way too small to read. But, here's the best part, there's no way to raise the window to the top. So if another window ever gets on top of it, well, sorry, you're out of luck. And half of the themes always map the window at the very bottom of the
+
+ <ul> (Really my eventual goal is to be able to <i>create</i> video on Linux, but I figured I'd start small, and see if I could just get <i>playback</i> working before trying something that is undoubtedly ten thousand times harder.) </ul><p> I finally found <a href="http://mirrors.sctpc.com/dominik/linux/pkgs/mplayer/">RPMs</a> of <a href="http://www.mplayerhq.hu/">mplayer</a> that would consent to install themselves on a Red Hat 7.2 machine, and actually got it to play some videos. Amazing. But it's a total pain in the ass to use due to rampant "themeing." <i>Why do people do this?</i> They map this stupid shaped window with no titlebar (oh, sorry, your choice of a dozen stupidly-shaped windows without titlebars) all of which use fonts that are way too small to read. But, here's the best part, there's no way to raise the window to the top. So if another window ever gets on top of it, well, sorry, you're out of luck. And half of the themes always map the window at the very bottom of the
<nobr>screen --</nobr> conveniently <i>under</i> my panel where I can't reach it. </p>
<p> Resizing the window changes the aspect ratio of the video! Yeah, I'm sure someone has <i>ever</i> wanted that. </p>
<p> It moves the mouse to the upper left corner of every dialog box it creates! Which is great, because that means that when it gets into this cute little state of popping up a blank dialog that says "Error" five times a second, you can't even move the mouse over to another window to kill the program, you have to log in from another machine. </p>
@@ -49,39 +62,39 @@ RPMs</a>, and it sucks about the same as mplayer, and in about the same ways, th
<p> Then I checked out <a href="http://www.dtek.chalmers.se/groups/dvd/">Ogle</a> again, and it hasn't been updated since the last time I tried, six months ago. It's a pretty decent DVD player, if you have the physical DVD. It does on-screen menus, and you can click on them with the mouse. But I don't need a DVD player (I have a hardware DVD player that works just fine.) It can't, as far as I can tell, play anything but actual discs. </p>
<p> Oh, and even though I have libdvdcss installed (as evidenced by the fact that Ogle actually works) Xine won't play the same disc that Ogle will play. It seems to be claiming that the CSS stuff isn't installed, which it clearly is. </p>
<p> An idiocy that all of these programs have in common is that, in addition to opening a window for the movie, and a window for the control panel, they <i>also</i> spray a constant spatter of curses crud on the terminal they were started from. I imagine at some point, there was some user who said, ``this program is pretty nice, but you know what it's missing? It's missing a lot of pointless chatter about what plugins and fonts have been loaded!'' </p>
- <hr /> <b>And here's the Random Commentary section:</b>
+
+ <hr></hr><b>And here's the Random Commentary section:</b>
+
<blockquote> <b><a href="http://www.lazycat.org/">Makali</a> wrote:</b>
<ul><i>
Whenever a programmer thinks, "Hey, skins, what a cool idea", their
computer's speakers should create some sort of cock-shaped soundwave
and plunge it repeatedly through their skulls.
- </i></ul>
- <p> I am fully in support of this proposed audio-cock technology. </p>
+ </i></ul><p> I am fully in support of this proposed audio-cock technology. </p>
<p><b>Various people wrote:</b> </p>
<ul><i>
You shouldn't even bother compiling the GUI into mplayer!
- </i></ul>
- <p> So I should solve the problem of ``crappy GUI'' by replacing it with ``no GUI at all?'' I should use the program only from the command line, or by memorizing magic keystrokes? Awesome idea. </p>
+ </i></ul><p> So I should solve the problem of ``crappy GUI'' by replacing it with ``no GUI at all?'' I should use the program only from the command line, or by memorizing magic keystrokes? Awesome idea. </p>
<p><b>Various other people wrote:</b> </p>
<ul><i>
You didn't try <a href="http://www.videolan.org/vlc/">vlc</a>!
- </i></ul>
- <p> True, I hadn't. Now I have. It has an overly-complicated UI, (the Preferences panel is a festival of overkill) but at least it uses standard menus and buttons, so it doesn't make you want to claw your eyes out immediately. But, it can only play a miniscule number of video formats, so it's mostly useless. <i>*plonk*</i> </p>
+ </i></ul><p> True, I hadn't. Now I have. It has an overly-complicated UI, (the Preferences panel is a festival of overkill) but at least it uses standard menus and buttons, so it doesn't make you want to claw your eyes out immediately. But, it can only play a miniscule number of video formats, so it's mostly useless. <i>*plonk*</i> </p>
<p><b>Someone else wrote:</b> </p>
<ul><i>
Have you considered changing distributions?
- </i></ul>
- <p> Yes, every single time I try something like this, I very seriously consider <a href="http://fakehost/test/../gruntle/bittybox.html">getting a Mac</a>. </p>
+ </i></ul><p> Yes, every single time I try something like this, I very seriously consider <a href="http://fakehost/test/../gruntle/bittybox.html">getting a Mac</a>. </p>
<p> Really the only thing that's stopping me is that I fear the <a href="http://www.xemacs.org/">Emacs situation</a>. </p>
<p> (By which I mean, ``Lack of a usable version thereof.'' No, running RMSmacs inside a terminal window doesn't qualify. Nor does running an X server on the Mac: if I were going to switch, why in the world would I continue inflicting the X Windows Disaster on myself? Wouldn't getting away from that be the <i>whole
point?</i>) </p>
- <ul> <span size="-1"> (I understand there is an almost-functional Aqua version of <a href="http://fakehost/test/../hacks/why-cooperation-with-rms-is-impossible.mp3">
+
+ <ul><span size="-1"> (I understand there is an almost-functional Aqua version of <a href="http://fakehost/test/../hacks/why-cooperation-with-rms-is-impossible.mp3">
RMSmacs</a> now. I'll probably check it out at some point, but the problem with <i><a href="http://fakehost/test/lemacs.html">me</a></i> switching from XEmacs to RMSmacs is that it would probably result in another <a href="http://slashdot.org/article.pl?sid=03/01/24/1440207">
- Slashdork</a> post, meaning I'd wake up to another 150+ poorly spelled flames in my inbox... I'm hoping for a Aquafied XEmacs, but I know that's not likely to happen any time soon.)</span> </ul>
- <p> By the way, the suggestion to switch Linux distrubutions in order to get a single app to work might sound absurd at first. And that's because <a href="http://fakehost/test/linux.html">it is</a>. But I've been saturated with Unix-peanut-gallery effluvia for so long that it no longer even surprises me when every
+ Slashdork</a> post, meaning I'd wake up to another 150+ poorly spelled flames in my inbox... I'm hoping for a Aquafied XEmacs, but I know that's not likely to happen any time soon.)</span>
+ </ul><p> By the way, the suggestion to switch Linux distrubutions in order to get a single app to work might sound absurd at first. And that's because <a href="http://fakehost/test/linux.html">it is</a>. But I've been saturated with Unix-peanut-gallery effluvia for so long that it no longer even surprises me when every
<nobr>question --</nobr> no matter how
<nobr>simple --</nobr> results in someone suggesting that you either A) patch your kernel or B) change distros. It's inevitable and inescapable, like Hitler. </p>
</blockquote>
- <hr/>
- <p> <a href="http://fakehost/test/../"><img alt="[ up ]" class="compass" src="http://fakehost/test/../compass1.gif" onmouseover="this.src=&quot;../compass2.gif&quot;" onmouseout="this.src=&quot;../compass1.gif&quot;"/></a> </p>
-</div>
+
+ <hr></hr>
+ <p> <a href="http://fakehost/test/../"><img alt="[ up ]" class="compass" onmouseout="this.src=&quot;../compass1.gif&quot;" onmouseover="this.src=&quot;../compass2.gif&quot;" src="http://fakehost/test/../compass1.gif"></img></a> </p>
+</div> \ No newline at end of file
diff --git a/test/test-pages/youth/expected.html b/test/test-pages/youth/expected.html
index c306e89..8d2ba23 100644
--- a/test/test-pages/youth/expected.html
+++ b/test/test-pages/youth/expected.html
@@ -2,8 +2,8 @@
<div id="content">
<div class="article-content" id="container">
<div class="TRS_Editor">
- <p align="center"><img alt="海外留学生看两会:出国前后关注点大不同" height="269" oldsrc="W020170310313653868929.jpg" src="http://fakehost/test/W020170310313653868929.jpg" title="海外留学生看两会:出国前后关注点大不同" width="400"></img></p>
- <p align="center">图为马素湘在澳大利亚悉尼游玩时的近影。</p>
+ <p><img alt="海外留学生看两会:出国前后关注点大不同" height="269" oldsrc="W020170310313653868929.jpg" src="http://fakehost/test/W020170310313653868929.jpg" title="海外留学生看两会:出国前后关注点大不同" width="400"></img></p>
+ <p>图为马素湘在澳大利亚悉尼游玩时的近影。</p>
<p>  <strong>出国前后关注点大不同</strong></p>
<p>  <strong>出国前:政治科目会出啥考题?</strong></p>
<p>  <strong>出国后:国家未来将如何发展?</strong></p>
@@ -12,16 +12,16 @@
<p>   无独有偶,英国剑桥大学的李博灏也有着类似的经历。他表示,在国内读本科时,虽然关注过两会,但并不像现在这样,将关注点放在国家社会经济迫切需要解决的难题与问题上。“出国前更关心与我们学生的实际问题以及切身利益相关的议题,比如奖学金、助学金的发放与申请;相关工作行业就业前景等。”</p>
<p>   在英国求学6年后,李博灏希望能够学有所用,为国家发展过程中遇到的难题寻求解决办法。因此随着课题研究的深入,他更加关注国家和社会目前所面临的挑战,比如中等收入陷阱、供给侧改革、创意创新产业的发展等议题。</p>
<p>   还有一些学子表示,出国前对两会不太了解,出国后反而对两会热点多了些思考。在澳大利亚墨尔本留学的马素湘说:“想不关注都难啊!刷微博看新闻到处都是两会的消息。而且我现在学的是新闻专业,对世界发生的大小事都会留意。随着年龄、阅历增长,家国情怀也渐长,会关心国家发展的各方面问题。”</p>
- <p align="center"><img alt="" oldsrc="W020170310313654043127.jpg" src="http://fakehost/test/W020170310313654043127.jpg"></img></p>
- <p align="center">图为李博灏在瑞士日内日瓦联合国欧洲总部的近影。</p>
+ <p><img alt="" oldsrc="W020170310313654043127.jpg" src="http://fakehost/test/W020170310313654043127.jpg"></img></p>
+ <p>图为李博灏在瑞士日内日瓦联合国欧洲总部的近影。</p>
<p>  <strong>关注点多与所学专业相关</strong></p>
<p>  <strong>法学专业热议法定婚龄</strong> <strong>很多人关心供给侧改革</strong></p>
<p>   在谈及对两会的哪些话题比较感兴趣时,卢宇表示:“近几年,国内雾霾现象时有发生。而我本身是学习能源环境专业的,所以每年都对两会上政府工作报告和代表提案中有关环保和新能源政策的部分很感兴趣。今年两会提案中有几份关于大力发展清洁能源汽车的。我认为这对节能减排和防治雾霾都有积极作用,但也要注意加强电池和电动机等关键技术的研发。”</p>
<p>   对此提案,卢宇有着自己的看法,“百花齐放的局面固然可喜,但也不能一哄而上,国家应该提高行业准入门槛,完善新能源汽车准入管理规则,从源头上进行制度创新,将一些不具备新能源汽车生产资质的厂家淘汰出局,并高度关注电池系统安全问题,严格执行充电桩生产的国际标准。”</p>
<p>   马素湘表示,“出国读研之前,我在国内学习法学,因此对相关的问题比较感兴趣。今年两会上人大代表黄细花提出把法定婚龄降低到18岁的提案;而在微博的热搜榜上,一本儿童性教育读物引起了极大的争议。我认为降低婚龄并不适合我国国情。因为性教育的缺乏导致我国大部分人在18岁之前没有接受过完整的性教育,思想行动上也不够成熟,如何能够对自己的人生和自己的另一半负责?所以我希望能有人大代表提议在国民儿童阶段完善我国的性教育,而不是为了鼓励生育将法定婚龄提前。”</p>
<p>   李博灏是英国剑桥大学制造业研究所创新设计管理中心的一名博士。他格外关注的话题是供给侧结构性改革,知识产权保护,消费升级等议题。“我的博士研究课题是关于推动创新设计密集型产业的发展从而帮助中等收入国家克服中等收入陷阱的探索,因此一直十分关注国内关于供给侧改革的相关议题。通过本届两会对于该议题的进一步关注,我希望可以有效地帮助我了解供给侧改革与中等收入陷阱问题目前的发展状况以及解决情况;也希望可以与更多的机构取得联系,并帮助他们了解该议题最前沿的研究与解决方案。”</p>
- <p align="center"><img alt="" oldsrc="W020170310313654453091.jpg" src="http://fakehost/test/W020170310313654453091.jpg"></img></p>
- <p align="center">图为卢宇与祖国五星红旗和联合国会旗的合影。</p>
+ <p><img alt="" oldsrc="W020170310313654453091.jpg" src="http://fakehost/test/W020170310313654453091.jpg"></img></p>
+ <p>图为卢宇与祖国五星红旗和联合国会旗的合影。</p>
<p>  <strong> 两会成为了解国情的窗口</strong></p>
<p>  <strong> 盼准确把握国家发展需求 愿寻求机遇回国有所作为</strong></p>
<p>   不少学子时刻关注着国内动态,寻找回国发展的契机,而两会正是一个提供最新最全面信息的窗口。</p>