summaryrefslogtreecommitdiff
path: root/test/test-pages
diff options
context:
space:
mode:
authorAndres Rey <[email protected]>2018-03-10 17:49:00 +0000
committerAndres Rey <[email protected]>2018-03-10 17:49:00 +0000
commit746dd0bcf5f3b0e685d842252c620c01faff19b9 (patch)
tree0debfcb1d7f28a4de0c7f3aba97e60829980ee95 /test/test-pages
parentc2774e5df70f4933702c479d6356db2e0757e724 (diff)
Remove all class attributes from the tests
Diffstat (limited to 'test/test-pages')
-rw-r--r--test/test-pages/001/expected.html2
-rw-r--r--test/test-pages/002/expected.html70
-rw-r--r--test/test-pages/ars-1/expected.html56
-rw-r--r--test/test-pages/bbc-1/expected.html22
-rw-r--r--test/test-pages/blogger/expected.html14
-rw-r--r--test/test-pages/breitbart/expected.html16
-rw-r--r--test/test-pages/bug-1255978/expected.html46
-rw-r--r--test/test-pages/buzzfeed-1/expected.html34
-rw-r--r--test/test-pages/challenges/expected.html2
-rw-r--r--test/test-pages/cnet/expected.html6
-rw-r--r--test/test-pages/cnn/expected.html26
-rw-r--r--test/test-pages/daringfireball-1/expected.html2
-rw-r--r--test/test-pages/ehow-1/expected.html100
-rw-r--r--test/test-pages/ehow-2/expected.html92
-rw-r--r--test/test-pages/gmw/expected.html4
-rw-r--r--test/test-pages/heise/expected.html12
-rw-r--r--test/test-pages/herald-sun-1/expected.html14
-rw-r--r--test/test-pages/iab-1/expected.html12
-rw-r--r--test/test-pages/ietf-1/expected.html188
-rw-r--r--test/test-pages/infobae/expected.html2
-rw-r--r--test/test-pages/keep-images/expected.html256
-rw-r--r--test/test-pages/lemonde-1/expected.html28
-rw-r--r--test/test-pages/lemonde-2/expected.html20
-rw-r--r--test/test-pages/liberation-1/expected.html2
-rw-r--r--test/test-pages/lifehacker-post-comment-load/expected.html26
-rw-r--r--test/test-pages/lifehacker-working/expected.html26
-rw-r--r--test/test-pages/links-in-tables/expected.html6
-rw-r--r--test/test-pages/lwn-1/expected.html176
-rw-r--r--test/test-pages/medium-1/expected.html206
-rw-r--r--test/test-pages/medium-2/expected.html2
-rw-r--r--test/test-pages/medium-3/expected.html410
-rw-r--r--test/test-pages/mozilla-1/expected.html64
-rw-r--r--test/test-pages/mozilla-2/expected.html72
-rw-r--r--test/test-pages/msn/expected.html12
-rw-r--r--test/test-pages/needs-entity-normalization/expected.html4
-rw-r--r--test/test-pages/nytimes-1/expected.html58
-rw-r--r--test/test-pages/nytimes-2/expected.html58
-rw-r--r--test/test-pages/pixnet/expected.html14
-rw-r--r--test/test-pages/salon-1/expected.html2
-rw-r--r--test/test-pages/simplyfound-1/expected.html2
-rw-r--r--test/test-pages/social-buttons/expected.html2
-rw-r--r--test/test-pages/table-style-attributes/expected.html2
-rw-r--r--test/test-pages/telegraph/expected.html42
-rw-r--r--test/test-pages/tmz-1/expected.html10
-rw-r--r--test/test-pages/tumblr/expected.html4
-rw-r--r--test/test-pages/wapo-1/expected.html20
-rw-r--r--test/test-pages/wapo-2/expected.html6
-rw-r--r--test/test-pages/webmd-1/expected.html10
-rw-r--r--test/test-pages/webmd-2/expected.html2
-rw-r--r--test/test-pages/wikia/expected.html10
-rw-r--r--test/test-pages/wikipedia/expected.html354
-rw-r--r--test/test-pages/wordpress/expected.html8
-rw-r--r--test/test-pages/yahoo-1/expected.html70
-rw-r--r--test/test-pages/yahoo-2/expected.html40
-rw-r--r--test/test-pages/yahoo-3/expected.html14
-rw-r--r--test/test-pages/yahoo-4/expected.html2
-rw-r--r--test/test-pages/youth/expected.html6
57 files changed, 1383 insertions, 1383 deletions
diff --git a/test/test-pages/001/expected.html b/test/test-pages/001/expected.html
index c101aec..e05810f 100644
--- a/test/test-pages/001/expected.html
+++ b/test/test-pages/001/expected.html
@@ -13,7 +13,7 @@ help.</strong>
I guess.</p>
<p>Actually I've only found one which provides an adapter for <a href="http://visionmedia.github.io/mocha/">Mocha</a> and
actually works…</p>
- <blockquote class="twitter-tweet tw-align-center">
+ <blockquote>
<p>Drinking game for web devs:
<br></br>(1) Think of a noun
<br></br>(2) Google "&lt;noun&gt;.js"
diff --git a/test/test-pages/002/expected.html b/test/test-pages/002/expected.html
index d836b60..16dca2a 100644
--- a/test/test-pages/002/expected.html
+++ b/test/test-pages/002/expected.html
@@ -1,4 +1,4 @@
-<div><article class="post" role="article"><p>For more than a decade the Web has used XMLHttpRequest (XHR) to achieve
+<div><article role="article"><p>For more than a decade the Web has used XMLHttpRequest (XHR) to achieve
asynchronous requests in JavaScript. While very useful, XHR is not a very
nice API. It suffers from lack of separation of concerns. The input, output
and state are all managed by interacting with one object, and state is
@@ -29,8 +29,8 @@
<p>The most useful, high-level part of the Fetch API is the <code>fetch()</code> function.
In its simplest form it takes a URL and returns a promise that resolves
to the response. The response is captured as a <code>Response</code> object.</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript">fetch<span>(</span><span>"/data.json"</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>res<span>)</span> <span>{</span>
+ <div>
+ <table><tbody><tr><td><pre>fetch<span>(</span><span>"/data.json"</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>res<span>)</span> <span>{</span>
<span>// res instanceof Response == true.</span>
<span>if</span> <span>(</span>res.<span>ok</span><span>)</span> <span>{</span>
res.<span>json</span><span>(</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>data<span>)</span> <span>{</span>
@@ -45,8 +45,8 @@
</td>
</tr></tbody></table></div>
<p>Submitting some parameters, it would look like this:</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript">fetch<span>(</span><span>"http://www.example.org/submit.php"</span><span>,</span> <span>{</span>
+ <div>
+ <table><tbody><tr><td><pre>fetch<span>(</span><span>"http://www.example.org/submit.php"</span><span>,</span> <span>{</span>
method<span>:</span> <span>"POST"</span><span>,</span>
headers<span>:</span> <span>{</span>
<span>"Content-Type"</span><span>:</span> <span>"application/x-www-form-urlencoded"</span>
@@ -78,8 +78,8 @@
<br></br>supporting CORS rules and ensuring cookies aren’t readable by third parties.</p>
<p>The <a href="https://fetch.spec.whatwg.org/#headers-class">Headers interface</a> is
a simple multi-map of names to values:</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> content <span>=</span> <span>"Hello World"</span><span>;</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> content <span>=</span> <span>"Hello World"</span><span>;</span>
<span>var</span> reqHeaders <span>=</span> <span>new</span> Headers<span>(</span><span>)</span><span>;</span>
reqHeaders.<span>append</span><span>(</span><span>"Content-Type"</span><span>,</span> <span>"text/plain"</span>
reqHeaders.<span>append</span><span>(</span><span>"Content-Length"</span><span>,</span> content.<span>length</span>.<span>toString</span><span>(</span><span>)</span><span>)</span><span>;</span>
@@ -89,8 +89,8 @@ reqHeaders.<span>append</span><span>(</span><span>"X-Custom-Header"</span><span>
<p>The same can be achieved by passing an array of arrays or a JS object
literal
<br></br>to the constructor:</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript">reqHeaders <span>=</span> <span>new</span> Headers<span>(</span><span>{</span>
+ <div>
+ <table><tbody><tr><td><pre>reqHeaders <span>=</span> <span>new</span> Headers<span>(</span><span>{</span>
<span>"Content-Type"</span><span>:</span> <span>"text/plain"</span><span>,</span>
<span>"Content-Length"</span><span>:</span> content.<span>length</span>.<span>toString</span><span>(</span><span>)</span><span>,</span>
<span>"X-Custom-Header"</span><span>:</span> <span>"ProcessThisImmediately"</span><span>,</span>
@@ -98,8 +98,8 @@ reqHeaders.<span>append</span><span>(</span><span>"X-Custom-Header"</span><span>
</td>
</tr></tbody></table></div>
<p>The contents can be queried and retrieved:</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript">console.<span>log</span><span>(</span>reqHeaders.<span>has</span><span>(</span><span>"Content-Type"</span><span>)</span><span>)</span><span>;</span> <span>// true</span>
+ <div>
+ <table><tbody><tr><td><pre>console.<span>log</span><span>(</span>reqHeaders.<span>has</span><span>(</span><span>"Content-Type"</span><span>)</span><span>)</span><span>;</span> <span>// true</span>
console.<span>log</span><span>(</span>reqHeaders.<span>has</span><span>(</span><span>"Set-Cookie"</span><span>)</span><span>)</span><span>;</span> <span>// false</span>
reqHeaders.<span>set</span><span>(</span><span>"Content-Type"</span><span>,</span> <span>"text/html"</span><span>)</span><span>;</span>
reqHeaders.<span>append</span><span>(</span><span>"X-Custom-Header"</span><span>,</span> <span>"AnotherValue"</span><span>)</span><span>;</span>
@@ -135,8 +135,8 @@ console.<span>log</span><span>(</span>reqHeaders.<span>getAll</span><span>(</spa
<p>All of the Headers methods throw TypeError if <code>name</code> is not a
<a href="https://fetch.spec.whatwg.org/#concept-header-name">valid HTTP Header name</a>. The mutation operations will throw TypeError
if there is an immutable guard. Otherwise they fail silently. For example:</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> res <span>=</span> Response.<span>error</span><span>(</span><span>)</span><span>;</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> res <span>=</span> Response.<span>error</span><span>(</span><span>)</span><span>;</span>
<span>try</span> <span>{</span>
res.<span>headers</span>.<span>set</span><span>(</span><span>"Origin"</span><span>,</span> <span>"http://mybank.com"</span><span>)</span><span>;</span>
<span>}</span> <span>catch</span><span>(</span>e<span>)</span> <span>{</span>
@@ -152,8 +152,8 @@ console.<span>log</span><span>(</span>reqHeaders.<span>getAll</span><span>(</spa
a body, a request mode, credentials and cache hints.</p>
<p>The simplest Request is of course, just a URL, as you may do to GET a
resource.</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> req <span>=</span> <span>new</span> Request<span>(</span><span>"/index.html"</span><span>)</span><span>;</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> req <span>=</span> <span>new</span> Request<span>(</span><span>"/index.html"</span><span>)</span><span>;</span>
console.<span>log</span><span>(</span>req.<span>method</span><span>)</span><span>;</span> <span>// "GET"</span>
console.<span>log</span><span>(</span>req.<span>url</span><span>)</span><span>;</span> <span>// "http://example.com/index.html"</span></pre>
</td>
@@ -163,8 +163,8 @@ console.<span>log</span><span>(</span>req.<span>url</span><span>)</span><span>;<
<br></br>(This is not the same as calling the <code>clone()</code> method, which
is covered in
<br></br>the “Reading bodies” section.).</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> copy <span>=</span> <span>new</span> Request<span>(</span>req<span>)</span><span>;</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> copy <span>=</span> <span>new</span> Request<span>(</span>req<span>)</span><span>;</span>
console.<span>log</span><span>(</span>copy.<span>method</span><span>)</span><span>;</span> <span>// "GET"</span>
console.<span>log</span><span>(</span>copy.<span>url</span><span>)</span><span>;</span> <span>// "http://example.com/index.html"</span></pre>
</td>
@@ -173,8 +173,8 @@ console.<span>log</span><span>(</span>copy.<span>url</span><span>)</span><span>;
<p>The non-URL attributes of the <code>Request</code> can only be set by passing
initial
<br></br>values as a second argument to the constructor. This argument is a dictionary.</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> uploadReq <span>=</span> <span>new</span> Request<span>(</span><span>"/uploadImage"</span><span>,</span> <span>{</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> uploadReq <span>=</span> <span>new</span> Request<span>(</span><span>"/uploadImage"</span><span>,</span> <span>{</span>
method<span>:</span> <span>"POST"</span><span>,</span>
headers<span>:</span> <span>{</span>
<span>"Content-Type"</span><span>:</span> <span>"image/png"</span><span>,</span>
@@ -191,8 +191,8 @@ console.<span>log</span><span>(</span>copy.<span>url</span><span>)</span><span>;
origin with this mode set, the result is simply an error. You could use
this to ensure that
<br></br>a request is always being made to your origin.</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> arbitraryUrl <span>=</span> document.<span>getElementById</span><span>(</span><span>"url-input"</span><span>)</span>.<span>value</span><span>;</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> arbitraryUrl <span>=</span> document.<span>getElementById</span><span>(</span><span>"url-input"</span><span>)</span>.<span>value</span><span>;</span>
fetch<span>(</span>arbitraryUrl<span>,</span> <span>{</span> mode<span>:</span> <span>"same-origin"</span> <span>}</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>res<span>)</span> <span>{</span>
console.<span>log</span><span>(</span><span>"Response succeeded?"</span><span>,</span> res.<span>ok</span><span>)</span><span>;</span>
<span>}</span><span>,</span> <span>function</span><span>(</span>e<span>)</span> <span>{</span>
@@ -217,8 +217,8 @@ fetch<span>(</span>arbitraryUrl<span>,</span> <span>{</span> mode<span>:</span>
headers is exposed in the Response, but the body is readable. For example,
you could get a list of Flickr’s <a href="https://www.flickr.com/services/api/flickr.interestingness.getList.html">most interesting</a> photos
today like this:</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> u <span>=</span> <span>new</span> URLSearchParams<span>(</span><span>)</span><span>;</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> u <span>=</span> <span>new</span> URLSearchParams<span>(</span><span>)</span><span>;</span>
u.<span>append</span><span>(</span><span>'method'</span><span>,</span> <span>'flickr.interestingness.getList'</span><span>)</span><span>;</span>
u.<span>append</span><span>(</span><span>'api_key'</span><span>,</span> <span>'&lt;insert api key here&gt;'</span><span>)</span><span>;</span>
u.<span>append</span><span>(</span><span>'format'</span><span>,</span> <span>'json'</span><span>)</span><span>;</span>
@@ -241,8 +241,8 @@ apiCall.<span>then</span><span>(</span><span>function</span><span>(</span>respon
<p>You may not read out the “Date” header since Flickr does not allow it
via
<br></br><code>Access-Control-Expose-Headers</code>.</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript">response.<span>headers</span>.<span>get</span><span>(</span><span>"Date"</span><span>)</span><span>;</span> <span>// null</span></pre>
+ <div>
+ <table><tbody><tr><td><pre>response.<span>headers</span>.<span>get</span><span>(</span><span>"Date"</span><span>)</span><span>;</span> <span>// null</span></pre>
</td>
</tr></tbody></table></div>
<p>The <code>credentials</code> enumeration determines if cookies for the other
@@ -296,8 +296,8 @@ apiCall.<span>then</span><span>(</span><span>function</span><span>(</span>respon
The
<br></br>idiomatic way to return a Response to an intercepted request in ServiceWorkers
is:</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript">addEventListener<span>(</span><span>'fetch'</span><span>,</span> <span>function</span><span>(</span>event<span>)</span> <span>{</span>
+ <div>
+ <table><tbody><tr><td><pre>addEventListener<span>(</span><span>'fetch'</span><span>,</span> <span>function</span><span>(</span>event<span>)</span> <span>{</span>
event.<span>respondWith</span><span>(</span><span>new</span> Response<span>(</span><span>"Response body"</span><span>,</span> <span>{</span>
headers<span>:</span> <span>{</span> <span>"Content-Type"</span> <span>:</span> <span>"text/plain"</span> <span>}</span>
<span>}</span><span>)</span><span>;</span>
@@ -347,8 +347,8 @@ apiCall.<span>then</span><span>(</span><span>function</span><span>(</span>respon
</ul><p>This is a significant improvement over XHR in terms of ease of use of
non-text data!</p>
<p>Request bodies can be set by passing <code>body</code> parameters:</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> form <span>=</span> <span>new</span> FormData<span>(</span>document.<span>getElementById</span><span>(</span><span>'login-form'</span><span>)</span><span>)</span><span>;</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> form <span>=</span> <span>new</span> FormData<span>(</span>document.<span>getElementById</span><span>(</span><span>'login-form'</span><span>)</span><span>)</span><span>;</span>
fetch<span>(</span><span>"/login"</span><span>,</span> <span>{</span>
method<span>:</span> <span>"POST"</span><span>,</span>
body<span>:</span> form
@@ -356,8 +356,8 @@ fetch<span>(</span><span>"/login"</span><span>,</span> <span>{</span>
</td>
</tr></tbody></table></div>
<p>Responses take the first argument as the body.</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> res <span>=</span> <span>new</span> Response<span>(</span><span>new</span> File<span>(</span><span>[</span><span>"chunk"</span><span>,</span> <span>"chunk"</span><span>]</span><span>,</span> <span>"archive.zip"</span><span>,</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> res <span>=</span> <span>new</span> Response<span>(</span><span>new</span> File<span>(</span><span>[</span><span>"chunk"</span><span>,</span> <span>"chunk"</span><span>]</span><span>,</span> <span>"archive.zip"</span><span>,</span>
<span>{</span> type<span>:</span> <span>"application/zip"</span> <span>}</span><span>)</span><span>)</span><span>;</span></pre>
</td>
</tr></tbody></table></div>
@@ -371,8 +371,8 @@ fetch<span>(</span><span>"/login"</span><span>,</span> <span>{</span>
<p>It is important to realise that Request and Response bodies can only be
read once! Both interfaces have a boolean attribute <code>bodyUsed</code> to
determine if it is safe to read or not.</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript"><span>var</span> res <span>=</span> <span>new</span> Response<span>(</span><span>"one time use"</span><span>)</span><span>;</span>
+ <div>
+ <table><tbody><tr><td><pre><span>var</span> res <span>=</span> <span>new</span> Response<span>(</span><span>"one time use"</span><span>)</span><span>;</span>
console.<span>log</span><span>(</span>res.<span>bodyUsed</span><span>)</span><span>;</span> <span>// false</span>
res.<span>text</span><span>(</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>v<span>)</span> <span>{</span>
console.<span>log</span><span>(</span>res.<span>bodyUsed</span><span>)</span><span>;</span> <span>// true</span>
@@ -397,8 +397,8 @@ res.<span>text</span><span>(</span><span>)</span>.<span>catch</span><span>(</spa
will return a clone of the object, with a ‘new’ body. <code>clone()</code> MUST
be called before the body of the corresponding object has been used. That
is, <code>clone()</code> first, read later.</p>
- <div class="wp_syntax">
- <table><tbody><tr><td class="code"><pre class="javascript">addEventListener<span>(</span><span>'fetch'</span><span>,</span> <span>function</span><span>(</span>evt<span>)</span> <span>{</span>
+ <div>
+ <table><tbody><tr><td><pre>addEventListener<span>(</span><span>'fetch'</span><span>,</span> <span>function</span><span>(</span>evt<span>)</span> <span>{</span>
<span>var</span> sheep <span>=</span> <span>new</span> Response<span>(</span><span>"Dolly"</span><span>)</span><span>;</span>
console.<span>log</span><span>(</span>sheep.<span>bodyUsed</span><span>)</span><span>;</span> <span>// false</span>
<span>var</span> clone <span>=</span> sheep.<span>clone</span><span>(</span><span>)</span><span>;</span>
diff --git a/test/test-pages/ars-1/expected.html b/test/test-pages/ars-1/expected.html
index a00aa37..0aecf6e 100644
--- a/test/test-pages/ars-1/expected.html
+++ b/test/test-pages/ars-1/expected.html
@@ -1,37 +1,37 @@
-<div class="article-content clearfix" itemprop="articleBody">
- <figure class="intro-image image center full-width"><img height="331" src="http://cdn.arstechnica.net/wp-content/uploads/2015/04/server-crash-640x426.jpg" width="640"></img><figcaption class="caption">
+<div itemprop="articleBody">
+ <figure><img height="331" src="http://cdn.arstechnica.net/wp-content/uploads/2015/04/server-crash-640x426.jpg" width="640"></img><figcaption>
</figcaption></figure><p>A flaw in the wildly popular online game <em>Minecraft</em> makes it easy for just about anyone to crash the server hosting the game, according to a computer programmer who has released proof-of-concept code that exploits the vulnerability.</p>
<p>"I thought a lot before writing this post," Pakistan-based developer Ammar Askar wrote in a <a href="http://blog.ammaraskar.com/minecraft-vulnerability-advisory">blog post published Thursday</a>, 21 months, he said, after privately reporting the bug to <em>Minecraft</em> developer Mojang. "On the one hand I don't want to expose thousands of servers to a major vulnerability, yet on the other hand Mojang has failed to act on it."</p>
<p>The bug resides in the <a href="https://github.com/ammaraskar/pyCraft">networking internals of the <em>Minecraft </em>protocol</a>. It allows the contents of inventory slots to be exchanged, so that, among other things, items in players' hotbars are displayed automatically after logging in. <em>Minecraft</em> items can also store arbitrary metadata in a file format known as <a href="http://wiki.vg/NBT">Named Binary Tag (NBT)</a>, which allows complex data structures to be kept in hierarchical nests. Askar has released <a href="https://github.com/ammaraskar/pyCraft/tree/nbt_exploit">proof-of-concept attack code</a> he said exploits the vulnerability to crash any server hosting the game. Here's how it works.</p>
<blockquote>
<p>The vulnerability stems from the fact that the client is allowed to send the server information about certain slots. This, coupled with the NBT format’s nesting allows us to <em>craft</em> a packet that is incredibly complex for the server to deserialize but trivial for us to generate.</p>
<p>In my case, I chose to create lists within lists, down to five levels. This is a json representation of what it looks like.</p>
- <div class="highlight"> <pre><code class="language-javascript" data-lang="javascript"><span class="nx">rekt</span><span class="o">:</span> <span class="p">{</span>
- <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
- <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
- <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
- <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
- <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
- <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
- <span class="p">]</span>
- <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
- <span class="p">]</span>
- <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
- <span class="p">]</span>
- <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
- <span class="p">]</span>
- <span class="p">...</span>
- <span class="p">]</span>
- <span class="p">...</span>
- <span class="p">]</span>
- <span class="p">...</span>
- <span class="p">]</span>
- <span class="p">...</span>
- <span class="p">]</span>
- <span class="p">...</span>
- <span class="p">]</span>
- <span class="p">...</span>
-<span class="p">}</span></code></pre> </div>
+ <div> <pre><code data-lang="javascript"><span>rekt</span><span>:</span> <span>{</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>]</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>]</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>]</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+<span>}</span></code></pre> </div>
<p>The root of the object, <code>rekt</code>, contains 300 lists. Each list has a list with 10 sublists, and each of those sublists has 10 of their own, up until 5 levels of recursion. That’s a total of <code>10^5 * 300 = 30,000,000</code> lists.</p>
<p>And this isn’t even the theoretical maximum for this attack. Just the nbt data for this payload is 26.6 megabytes. But luckily Minecraft implements a way to compress large packets, lucky us! zlib shrinks down our evil data to a mere 39 kilobytes.</p>
<p>Note: in previous versions of Minecraft, there was no protocol wide compression for big packets. Previously, NBT was sent compressed with gzip and prefixed with a signed short of its length, which reduced our maximum payload size to <code>2^15 - 1</code>. Now that the length is a varint capable of storing integers up to <code>2^28</code>, our potential for attack has increased significantly.</p>
diff --git a/test/test-pages/bbc-1/expected.html b/test/test-pages/bbc-1/expected.html
index a3596bb..ca646fe 100644
--- a/test/test-pages/bbc-1/expected.html
+++ b/test/test-pages/bbc-1/expected.html
@@ -1,17 +1,17 @@
-<div class="story-body__inner" property="articleBody">
- <p class="story-body__introduction">President Barack Obama has admitted that his failure to pass "common sense gun safety laws" in the US is the greatest frustration of his presidency. </p><p>In an interview with the BBC, Mr Obama said it was "distressing" not to have made progress on the issue "even in the face of repeated mass killings".</p><p>He vowed to keep trying, but the BBC's North America editor Jon Sopel said the president did not sound very confident. </p><p>However, Mr Obama said race relations had improved during his presidency. </p><p>Hours after the interview, a gunman opened fire at a cinema in the US state of Louisiana, killing two people and injuring several others before shooting himself.</p><p>In a wide-ranging interview, President Obama also said:</p><ul class="story-body__unordered-list"><li class="story-body__list-item">
-<a class="story-body__link" href="http://www.bbc.co.uk/news/uk-politics-33647154">The UK must stay in the EU</a> to have influence on the world stage</li>
-<li class="story-body__list-item">He is confident the Iran nuclear deal will be passed by Congress </li>
-<li class="story-body__list-item">Syria needs a political solution in order to defeat the Islamic State group</li>
-<li class="story-body__list-item">He would speak "bluntly" against corruption <a class="story-body__link" href="http://www.bbc.co.uk/news/world-us-canada-33646563">and human rights violations in Kenya</a>
+<div property="articleBody">
+ <p>President Barack Obama has admitted that his failure to pass "common sense gun safety laws" in the US is the greatest frustration of his presidency. </p><p>In an interview with the BBC, Mr Obama said it was "distressing" not to have made progress on the issue "even in the face of repeated mass killings".</p><p>He vowed to keep trying, but the BBC's North America editor Jon Sopel said the president did not sound very confident. </p><p>However, Mr Obama said race relations had improved during his presidency. </p><p>Hours after the interview, a gunman opened fire at a cinema in the US state of Louisiana, killing two people and injuring several others before shooting himself.</p><p>In a wide-ranging interview, President Obama also said:</p><ul><li>
+<a href="http://www.bbc.co.uk/news/uk-politics-33647154">The UK must stay in the EU</a> to have influence on the world stage</li>
+<li>He is confident the Iran nuclear deal will be passed by Congress </li>
+<li>Syria needs a political solution in order to defeat the Islamic State group</li>
+<li>He would speak "bluntly" against corruption <a href="http://www.bbc.co.uk/news/world-us-canada-33646563">and human rights violations in Kenya</a>
</li>
-<li class="story-body__list-item">He would defend his advocacy of gay rights following protests in Kenya</li>
-<li class="story-body__list-item">Despite racial tensions, the US is becoming more diverse and more tolerant</li>
-</ul><p><a class="story-body__link" href="http://www.bbc.co.uk/news/world-us-canada-33646542">Read the full transcript of his interview</a></p><p>Mr Obama lands in Kenya later on Friday for his first visit since becoming president. </p><p>But with just 18 months left in power, he said gun control was the area where he has been "most frustrated and most stymied" since coming to power in 2009.</p><p>"If you look at the number of Americans killed since 9/11 by terrorism, it's less than 100. If you look at the number that have been killed by gun violence, it's in the tens of thousands," Mr Obama said. </p><figure class="media-landscape full-width has-caption"><img alt="Gun control campaigners protest in McPhearson Square in Washington DC - 25 April 2013" class="js-image-replace" datasrc="http://ichef.bbci.co.uk/news/976/cpsprodpb/462D/production/_84456971_gettyimages-167501087.jpg" height="549" src="http://ichef.bbci.co.uk/news/555/cpsprodpb/462D/production/_84456971_gettyimages-167501087.jpg" width="976"></img><figcaption class="media-caption"><span class="media-caption__text">
+<li>He would defend his advocacy of gay rights following protests in Kenya</li>
+<li>Despite racial tensions, the US is becoming more diverse and more tolerant</li>
+</ul><p><a href="http://www.bbc.co.uk/news/world-us-canada-33646542">Read the full transcript of his interview</a></p><p>Mr Obama lands in Kenya later on Friday for his first visit since becoming president. </p><p>But with just 18 months left in power, he said gun control was the area where he has been "most frustrated and most stymied" since coming to power in 2009.</p><p>"If you look at the number of Americans killed since 9/11 by terrorism, it's less than 100. If you look at the number that have been killed by gun violence, it's in the tens of thousands," Mr Obama said. </p><figure><img alt="Gun control campaigners protest in McPhearson Square in Washington DC - 25 April 2013" datasrc="http://ichef.bbci.co.uk/news/976/cpsprodpb/462D/production/_84456971_gettyimages-167501087.jpg" height="549" src="http://ichef.bbci.co.uk/news/555/cpsprodpb/462D/production/_84456971_gettyimages-167501087.jpg" width="976"></img><figcaption><span>
The president said he would continue fighting for greater gun control laws
</span>
- </figcaption></figure><p>"For us not to be able to resolve that issue has been something that is distressing," he added. </p><p>Mr Obama has pushed for stricter gun control throughout his presidency but has been unable to secure any significant changes to the laws. </p><p>After nine African-American churchgoers were killed in South Carolina in June, he admitted "politics in this town" meant there were few options available.</p><figure class="media-landscape body-width no-caption"><img alt="line" class="js-image-replace" datasrc="http://ichef.bbci.co.uk/news/464/media/images/76020000/jpg/_76020974_line976.jpg" height="2" src="http://ichef.bbci.co.uk/news/555/media/images/76020000/jpg/_76020974_line976.jpg" width="464"></img></figure><h2 class="story-body__crosshead">Analysis: Jon Sopel, BBC News, Washington</h2><figure class="media-landscape full-width no-caption"><img alt="President Barack Obama participates in an interview with Jon Sopel of BBC in the Roosevelt Room of the White House - 23 July 2015" class="js-image-replace" datasrc="http://ichef-1.bbci.co.uk/news/976/cpsprodpb/6D3D/production/_84456972_p072315al-0500.jpg" height="549" src="http://ichef-1.bbci.co.uk/news/555/cpsprodpb/6D3D/production/_84456972_p072315al-0500.jpg" width="976"></img></figure><p>Nine months ago, the president seemed like a spent force, after taking a beating in the midterm elections, during which members of his own party were reluctant to campaign on his record. </p><p>But the man sat before me today was relaxed and confident, buoyed by a string of "wins" on healthcare, Cuba and Iran, after bitter and ongoing battles with his many critics. </p><p>The only body swerve the president performed was when I asked him <a class="story-body__link" href="http://www.bbc.co.uk/news/world-us-canada-33643168"> how many minds he had changed on the Iran nuclear deal </a>after an intense sell aimed at Gulf allies and members of US Congress who remain implacably opposed. </p><p>There was a momentary flicker across the president's face as if to say "You think you got me?" before his smile returned and he proceeded to talk about how Congress would come round.</p><p>But notably, he did not give a direct answer to that question, which leaves me with the impression that he has persuaded precisely zero.</p><p><a class="story-body__link" href="http://www.bbc.co.uk/news/world-us-canada-33646875">Five things we learned from Obama interview</a></p><p><a class="story-body__link" href="http://www.bbc.co.uk/news/world-us-canada-33646545">The presidential body swerve</a></p><figure class="media-landscape body-width no-caption"><img alt="line" class="js-image-replace" datasrc="http://ichef.bbci.co.uk/news/464/media/images/76020000/jpg/_76020974_line976.jpg" height="2" src="http://ichef.bbci.co.uk/news/555/media/images/76020000/jpg/_76020974_line976.jpg" width="464"></img></figure><p>On race relations, Mr Obama said recent concerns around policing and mass incarcerations were "legitimate and deserve intense attention" but insisted progress had been made. </p><p>Children growing up during the eight years of his presidency "will have a different view of race relations in this country and what's possible," he said. </p><p>"There are going to be tensions that arise. But if you look at my daughters' generation, they have an attitude about race that's entirely different than even my generation."</p><p>Talking about how he was feeling after his recent successes, he said "every president, every leader has strengths and weaknesses". </p><p>"One of my strengths is I have a pretty even temperament. I don't get too high when it's high and I don't get too low when it's low," he said. </p><figure class="media-landscape full-width has-caption"><img alt="Customer looks at Obama shirts at a stall in Nairobi's Kibera slums, 23 July 2015" class="js-image-replace" datasrc="http://ichef-1.bbci.co.uk/news/976/cpsprodpb/142FD/production/_84458628_shirtreuters.jpg" height="549" src="http://ichef-1.bbci.co.uk/news/555/cpsprodpb/142FD/production/_84458628_shirtreuters.jpg" width="976"></img><figcaption class="media-caption"><span class="media-caption__text">
+ </figcaption></figure><p>"For us not to be able to resolve that issue has been something that is distressing," he added. </p><p>Mr Obama has pushed for stricter gun control throughout his presidency but has been unable to secure any significant changes to the laws. </p><p>After nine African-American churchgoers were killed in South Carolina in June, he admitted "politics in this town" meant there were few options available.</p><figure><img alt="line" datasrc="http://ichef.bbci.co.uk/news/464/media/images/76020000/jpg/_76020974_line976.jpg" height="2" src="http://ichef.bbci.co.uk/news/555/media/images/76020000/jpg/_76020974_line976.jpg" width="464"></img></figure><h2>Analysis: Jon Sopel, BBC News, Washington</h2><figure><img alt="President Barack Obama participates in an interview with Jon Sopel of BBC in the Roosevelt Room of the White House - 23 July 2015" datasrc="http://ichef-1.bbci.co.uk/news/976/cpsprodpb/6D3D/production/_84456972_p072315al-0500.jpg" height="549" src="http://ichef-1.bbci.co.uk/news/555/cpsprodpb/6D3D/production/_84456972_p072315al-0500.jpg" width="976"></img></figure><p>Nine months ago, the president seemed like a spent force, after taking a beating in the midterm elections, during which members of his own party were reluctant to campaign on his record. </p><p>But the man sat before me today was relaxed and confident, buoyed by a string of "wins" on healthcare, Cuba and Iran, after bitter and ongoing battles with his many critics. </p><p>The only body swerve the president performed was when I asked him <a href="http://www.bbc.co.uk/news/world-us-canada-33643168"> how many minds he had changed on the Iran nuclear deal </a>after an intense sell aimed at Gulf allies and members of US Congress who remain implacably opposed. </p><p>There was a momentary flicker across the president's face as if to say "You think you got me?" before his smile returned and he proceeded to talk about how Congress would come round.</p><p>But notably, he did not give a direct answer to that question, which leaves me with the impression that he has persuaded precisely zero.</p><p><a href="http://www.bbc.co.uk/news/world-us-canada-33646875">Five things we learned from Obama interview</a></p><p><a href="http://www.bbc.co.uk/news/world-us-canada-33646545">The presidential body swerve</a></p><figure><img alt="line" datasrc="http://ichef.bbci.co.uk/news/464/media/images/76020000/jpg/_76020974_line976.jpg" height="2" src="http://ichef.bbci.co.uk/news/555/media/images/76020000/jpg/_76020974_line976.jpg" width="464"></img></figure><p>On race relations, Mr Obama said recent concerns around policing and mass incarcerations were "legitimate and deserve intense attention" but insisted progress had been made. </p><p>Children growing up during the eight years of his presidency "will have a different view of race relations in this country and what's possible," he said. </p><p>"There are going to be tensions that arise. But if you look at my daughters' generation, they have an attitude about race that's entirely different than even my generation."</p><p>Talking about how he was feeling after his recent successes, he said "every president, every leader has strengths and weaknesses". </p><p>"One of my strengths is I have a pretty even temperament. I don't get too high when it's high and I don't get too low when it's low," he said. </p><figure><img alt="Customer looks at Obama shirts at a stall in Nairobi's Kibera slums, 23 July 2015" datasrc="http://ichef-1.bbci.co.uk/news/976/cpsprodpb/142FD/production/_84458628_shirtreuters.jpg" height="549" src="http://ichef-1.bbci.co.uk/news/555/cpsprodpb/142FD/production/_84458628_shirtreuters.jpg" width="976"></img><figcaption><span>
Kenya is getting ready to welcome the US president
</span>
- </figcaption></figure><h2 class="story-body__crosshead">Kenya trip</h2><p>Mr Obama was speaking to the BBC at the White House before departing for Kenya.</p><p>His father was Kenyan and the president is expected to meet relatives in Nairobi.</p><p>Mr Obama has faced criticism in the country after the US legalised gay marriage. However, in his interview, the president said he would not fall silent on the issue.</p><p>"I am not a fan of discrimination and bullying of anybody on the basis of race, on the basis of religion, on the basis of sexual orientation or gender," he said.</p><p>The president also admitted that some African governments, including Kenya's, needed to improve their records on human rights and democracy. However, he defended his decision to engage with and visit those governments. </p><p>"Well, they're not ideal institutions. But what we found is, is that when we combined blunt talk with engagement, that gives us the best opportunity to influence and open up space for civil society." </p><p>Mr Obama will become the first US president to address the African Union when he travels on to Ethiopia on Sunday.</p>
+ </figcaption></figure><h2>Kenya trip</h2><p>Mr Obama was speaking to the BBC at the White House before departing for Kenya.</p><p>His father was Kenyan and the president is expected to meet relatives in Nairobi.</p><p>Mr Obama has faced criticism in the country after the US legalised gay marriage. However, in his interview, the president said he would not fall silent on the issue.</p><p>"I am not a fan of discrimination and bullying of anybody on the basis of race, on the basis of religion, on the basis of sexual orientation or gender," he said.</p><p>The president also admitted that some African governments, including Kenya's, needed to improve their records on human rights and democracy. However, he defended his decision to engage with and visit those governments. </p><p>"Well, they're not ideal institutions. But what we found is, is that when we combined blunt talk with engagement, that gives us the best opportunity to influence and open up space for civil society." </p><p>Mr Obama will become the first US president to address the African Union when he travels on to Ethiopia on Sunday.</p>
</div> \ No newline at end of file
diff --git a/test/test-pages/blogger/expected.html b/test/test-pages/blogger/expected.html
index e7868b9..10b4874 100644
--- a/test/test-pages/blogger/expected.html
+++ b/test/test-pages/blogger/expected.html
@@ -1,22 +1,22 @@
-<div class="post-body entry-content" id="post-body-932306423056216142" itemprop="description articleBody"><p>
+<div 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 class="tr-caption-container"><tbody><tr><td>
+ </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><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><tr><td>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 class="tr-caption-container"><tbody><tr><td>
+ 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><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><tr><td>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 class="tr-caption-container"><tbody><tr><td>
+ </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><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><tr><td>Example labeling for a subset of the netlist and device graphs</td>
</tr></tbody></table>
The labeled nodes now need to be placed. The initial placement uses a simple greedy algorithm to create a valid (although not necessarily optimal or even routable) placement:</p><br></br><ol><li>Loop over the cells in the netlist. If any cell has a LOC constraint, which locks the cell to a specific physical site, attempt to assign the node to the specified site. If the specified node is the wrong type, doesn't exist, or is already used by another constrained node, the constraint is invalid so fail with an error.</li>
<li>Loop over all of the unconstrained cells in the netlist and assign them to the first unused site with the right label. If none are available, the design is too big for the device so fail with an error.</li>
diff --git a/test/test-pages/breitbart/expected.html b/test/test-pages/breitbart/expected.html
index b574235..eabc20d 100644
--- a/test/test-pages/breitbart/expected.html
+++ b/test/test-pages/breitbart/expected.html
@@ -1,21 +1,21 @@
<div>
- <figure class="figurearticlefeatured"><div class="featured-container"><img alt="Supporters of Republican presidential nominee Donald Trump cheer during election night at the New York Hilton Midtown in New York on November 9, 2016. / AFP / JIM WATSON (Photo credit should read JIM WATSON/AFP/Getty Images)" class="attachment-isc-bbn-full size-isc-bbn-full wp-post-image" height="480" itemprop="image" src="http://media.breitbart.com/media/2016/11/GettyImages-621866810-640x480.jpg" width="640"></img><p>JIM WATSON/AFP/Getty Images</p>
+ <figure><div><img alt="Supporters of Republican presidential nominee Donald Trump cheer during election night at the New York Hilton Midtown in New York on November 9, 2016. / AFP / JIM WATSON (Photo credit should read JIM WATSON/AFP/Getty Images)" height="480" itemprop="image" src="http://media.breitbart.com/media/2016/11/GettyImages-621866810-640x480.jpg" width="640"></img><p>JIM WATSON/AFP/Getty Images</p>
</div>
- </figure> <time class="op-published H" datetime="2016-12-22T10:43:37Z">22 Dec, 2016</time><time class="op-modified H" datetime="2016-12-22T18:59:12Z">22 Dec, 2016</time></div><div class="entry-content">
+ </figure> <time datetime="2016-12-22T10:43:37Z">22 Dec, 2016</time><time datetime="2016-12-22T18:59:12Z">22 Dec, 2016</time></div><div>
- <div class="desktop" id="EmailOptin">
- <p class="sh2"><span>SIGN UP</span> FOR OUR NEWSLETTER</p>
+ <div id="EmailOptin">
+ <p><span>SIGN UP</span> FOR OUR NEWSLETTER</p>
</div>
<h2><span>Snopes fact checker and staff writer David Emery posted to Twitter asking if there were “any un-angry Trump supporters?”</span></h2>
<p><span>Emery, a writer for partisan “fact-checking” website Snopes.com which soon will be in charge of labelling </span><a href="http://www.breitbart.com/tech/2016/12/15/facebook-introduce-warning-labels-stories-deemed-fake-news/"><span>“fake news”</span></a><span> alongside ABC News and Politifact, retweeted an article by Vulture magazine relating to the </span><a href="http://www.breitbart.com/big-hollywood/2016/11/19/boycotthamilton-trends-hamilton-cast-members-harass-mike-pence/"><span>protests</span></a><span> of the <em>Hamilton</em> musical following the decision by the cast of the show to make a </span><a href="http://www.breitbart.com/big-hollywood/2016/11/19/tolerance-hamilton-cast-lectures-mike-pence-broadway-stage/"><span>public announcement</span></a><span> to Vice-president elect Mike Pence while he watched the performance with his family.</span></p>
- <div class="mobile" id="EmailOptinM">
- <p class="sh2"><span>SIGN UP</span> FOR OUR NEWSLETTER</p>
+ <div id="EmailOptinM">
+ <p><span>SIGN UP</span> FOR OUR NEWSLETTER</p>
</div>
- <p><span>The tweet from Vulture magazine reads, “</span><a class=" x5l" href="https://twitter.com/hashtag/Hamilton?src=hash" rel="noopener" target="_blank"><span>#Hamilton</span></a><span> Chicago show interrupted by angry Trump supporter.” Emery retweeted the story, saying, “Are there un-angry Trump supporters?”</span></p>
+ <p><span>The tweet from Vulture magazine reads, “</span><a href="https://twitter.com/hashtag/Hamilton?src=hash" rel="noopener" target="_blank"><span>#Hamilton</span></a><span> Chicago show interrupted by angry Trump supporter.” Emery retweeted the story, saying, “Are there un-angry Trump supporters?”</span></p>
@@ -33,7 +33,7 @@
<p><span>Facebook believe that Emery, along with other Snopes writers, ABC News, and </span><a href="http://www.breitbart.com/tech/2016/12/16/flashback-weekly-standard-data-shows-politifact-has-it-out-for-republicans/"><span>Politifact</span></a><span> are impartial enough to label and silence what they believe to be “fake news” on social media. </span></p>
- <p><i><span>Lucas Nolan is a reporter for Breitbart Tech covering issues of free speech and online censorship. Follow him on Twitter </span></i><a class=" x5l" href="http://twitter.com/lucasnolan_" rel="noopener" target="_blank"><i><span>@LucasNolan_</span></i></a><i><span> or email him at </span></i><a href="http://www.breitbart.com/wp-admin/blank"><i><span>[email protected]</span></i></a></p>
+ <p><i><span>Lucas Nolan is a reporter for Breitbart Tech covering issues of free speech and online censorship. Follow him on Twitter </span></i><a href="http://twitter.com/lucasnolan_" rel="noopener" target="_blank"><i><span>@LucasNolan_</span></i></a><i><span> or email him at </span></i><a href="http://www.breitbart.com/wp-admin/blank"><i><span>[email protected]</span></i></a></p>
diff --git a/test/test-pages/bug-1255978/expected.html b/test/test-pages/bug-1255978/expected.html
index cdde39d..78f2f89 100644
--- a/test/test-pages/bug-1255978/expected.html
+++ b/test/test-pages/bug-1255978/expected.html
@@ -1,4 +1,4 @@
-<div class="text-wrapper" id="gigya-share-btns-2_gig_containerParent" itemprop="articleBody">
+<div id="gigya-share-btns-2_gig_containerParent" itemprop="articleBody">
<p>Most people go to hotels for the pleasure of sleeping in a giant bed with clean white sheets and waking up to fresh towels in the morning.</p>
<p>But those towels and sheets might not be as clean as they look, according to the hotel bosses that responded to an online thread about the things hotel owners don’t want you to know.</p>
@@ -11,10 +11,10 @@
- <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
- <div class="dnd-atom-rendered">
+ <div>
+ <div>
- <div class="image"><img alt="bandb2.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2014/03/18/10/bandb2.jpg" title="bandb2.jpg" width="564"></img></div>
+ <div><img alt="bandb2.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2014/03/18/10/bandb2.jpg" title="bandb2.jpg" width="564"></img></div>
</div>
<p>
@@ -27,17 +27,17 @@
<p>Forrest Jones said that anything that comes into contact with any of the previous guest’s skin should be taken out and washed every time the room is made, but that even the fanciest hotels don’t always do so. "Hotels are getting away from comforters. Blankets are here to stay, however. But some hotels are still hesitant about washing them every day if they think they can get out of it," he said.</p>
- <div class="dnd-widget-wrapper context-sdl_editor_representation type-video">
+ <div>
<p>Video shows bed bug infestation at New York hotel</p>
</div>
- <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
- <div class="dnd-atom-rendered">
+ <div>
+ <div>
- <div class="image"><img alt="hotel-door-getty.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2015/05/26/11/hotel-door-getty.jpg" title="hotel-door-getty.jpg" width="564"></img></div>
+ <div><img alt="hotel-door-getty.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2015/05/26/11/hotel-door-getty.jpg" title="hotel-door-getty.jpg" width="564"></img></div>
</div>
<p>
@@ -52,10 +52,10 @@
- <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
- <div class="dnd-atom-rendered">
+ <div>
+ <div>
- <div class="image"><img alt="luggage-3.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2013/07/31/15/luggage-3.jpg" title="luggage-3.jpg" width="564"></img></div>
+ <div><img alt="luggage-3.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2013/07/31/15/luggage-3.jpg" title="luggage-3.jpg" width="564"></img></div>
</div>
<p>
@@ -70,10 +70,10 @@
- <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
- <div class="dnd-atom-rendered">
+ <div>
+ <div>
- <div class="image"><img alt="Lifestyle-hotels.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2015/04/13/11/Lifestyle-hotels.jpg" title="Lifestyle-hotels.jpg" width="564"></img></div>
+ <div><img alt="Lifestyle-hotels.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2015/04/13/11/Lifestyle-hotels.jpg" title="Lifestyle-hotels.jpg" width="564"></img></div>
</div>
<p>
@@ -94,12 +94,12 @@
- <div class="dnd-widget-wrapper context-full type-gallery">
- <div class="dnd-atom-rendered">
+ <div>
+ <div>
- <div class="container grid-mod-gallery" data-scald-gallery="3739501">
+ <div data-scald-gallery="3739501">
- <h2 class="gallery-title"><span class="media-prefix icon-gallery"></span>Business news in pictures</h2>
+ <h2><span></span>Business news in pictures</h2>
</div>
@@ -114,10 +114,10 @@
- <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
- <div class="dnd-atom-rendered">
+ <div>
+ <div>
- <div class="image"><img alt="agenda7.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2014/03/13/16/agenda7.jpg" title="agenda7.jpg" width="564"></img></div>
+ <div><img alt="agenda7.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2014/03/13/16/agenda7.jpg" title="agenda7.jpg" width="564"></img></div>
</div>
<p>
@@ -129,11 +129,11 @@
<p>7. Always made sure the hand towels are clean when you arrive</p>
<p>Forrest Jones made a discovery when he was helping out with the housekeepers. “You know where you almost always find a hand towel in any recently-vacated hotel room that was occupied by a guy? On the floor, next to the bed, about halfway down, maybe a little toward the foot of the bed. Same spot in the floor, next to almost every bed occupied by a man, in every room. I'll leave the rest to your imagination,” he said.</p>
- <meta content="2016-05-08T10:11:51+01:00" itemprop="datePublished"></meta><ul class="inline-pipes-list"><li>
+ <meta content="2016-05-08T10:11:51+01:00" itemprop="datePublished"></meta><ul><li>
More about:
</li>
<li><a href="http://fakehost/topic/Hotels" itemprop="keywords">Hotels</a></li>
<li><a href="http://fakehost/topic/Hygiene" itemprop="keywords">Hygiene</a></li>
</ul>
- <a class="syndication-btn" href="http://fakehost/syndication/reuse-permision-form?url=http://www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" target="_blank"><img src="http://fakehost/sites/all/themes/ines_themes/independent_theme/img/reuse.png" width="25"></img>Reuse content</a>
+ <a href="http://fakehost/syndication/reuse-permision-form?url=http://www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" target="_blank"><img src="http://fakehost/sites/all/themes/ines_themes/independent_theme/img/reuse.png" width="25"></img>Reuse content</a>
</div> \ No newline at end of file
diff --git a/test/test-pages/buzzfeed-1/expected.html b/test/test-pages/buzzfeed-1/expected.html
index 3e477ae..82dc3a1 100644
--- a/test/test-pages/buzzfeed-1/expected.html
+++ b/test/test-pages/buzzfeed-1/expected.html
@@ -1,42 +1,42 @@
-<div class="c suplist_article suplist_list_show " id="buzz_sub_buzz">
- <div class="buzz_superlist_item buzz_superlist_item_image buzz_superlist_item_wide image_hit no_caption " id="superlist_3758406_5547137" rel:buzz_num="1">
+<div id="buzz_sub_buzz">
+ <div id="superlist_3758406_5547137" rel:buzz_num="1">
<h2>The mother of a woman who took suspected diet pills bought online has described how her daughter was “literally burning up from within” moments before her death.</h2>
- <p class="article_caption_w_attr"> <span class="sub_buzz_source_via buzz_attribution buzz_attr_no_caption">West Merica Police</span></p>
+ <p> <span>West Merica Police</span></p>
</div>
- <div class="buzz_superlist_item buzz_superlist_item_text buzz_superlist_item_wide " id="superlist_3758406_5547213" rel:buzz_num="2">
- <p class="sub_buzz_desc">Eloise Parry, 21, was taken to Royal Shrewsbury hospital on 12 April after taking a lethal dose of highly toxic “slimming tablets”. </p>
+ <div id="superlist_3758406_5547213" rel:buzz_num="2">
+ <p>Eloise Parry, 21, was taken to Royal Shrewsbury hospital on 12 April after taking a lethal dose of highly toxic “slimming tablets”. </p>
<p>“The drug was in her system, there was no anti-dote, two tablets was a lethal dose – and she had taken eight,” her mother, Fiona, <a href="https://www.westmercia.police.uk/article/9501/A-tribute-to-Eloise-Aimee-Parry-written-by-her-mother-Fiona-Parry">said in a statement</a> yesterday.</p>
<p>“As Eloise deteriorated, the staff in A&amp;E did all they could to stabilise her. As the drug kicked in and started to make her metabolism soar, they attempted to cool her down, but they were fighting an uphill battle.</p>
<p>“She was literally burning up from within.”</p>
<p>She added: “They never stood a chance of saving her. She burned and crashed.”</p>
</div>
- <div class="buzz_superlist_item buzz_superlist_item_grid_row buzz_superlist_item_wide no_caption " id="superlist_3758406_5547140" rel:buzz_num="3">
- <div class="grid_row two_pl grid_height_l">
- <div class="grid_cell cell_1">
- <div class="grid_cell_image_wrapper">
+ <div id="superlist_3758406_5547140" rel:buzz_num="3">
+ <div>
+ <div>
+ <div>
<img height="412" rel:bf_image_src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608056-15.jpg" src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608056-15.jpg" width="203"></img>
</div>
- <p class="sub_buzz_grid_source_via">Facebook</p>
+ <p>Facebook</p>
</div>
- <div class="grid_cell cell_2">
- <div class="grid_cell_image_wrapper">
+ <div>
+ <div>
<img height="412" rel:bf_image_src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608057-18.jpg" src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608057-18.jpg" width="412"></img>
</div>
- <p class="sub_buzz_grid_source_via">Facebook</p>
+ <p>Facebook</p>
</div>
</div>
</div>
- <div class="buzz_superlist_item buzz_superlist_item_text buzz_superlist_item_wide " id="superlist_3758406_5547284" rel:buzz_num="4">
- <p class="sub_buzz_desc">West Mercia police <a href="https://www.westmercia.police.uk/article/9500/Warning-Issued-As-Shrewsbury-Woman-Dies-After-Taking-Suspected-Diet-Pills">said the tablets were believed to contain dinitrophenol</a>, known as DNP, which is a highly toxic industrial chemical. </p>
+ <div id="superlist_3758406_5547284" rel:buzz_num="4">
+ <p>West Mercia police <a href="https://www.westmercia.police.uk/article/9500/Warning-Issued-As-Shrewsbury-Woman-Dies-After-Taking-Suspected-Diet-Pills">said the tablets were believed to contain dinitrophenol</a>, known as DNP, which is a highly toxic industrial chemical. </p>
<p>“We are undoubtedly concerned over the origin and sale of these pills and are working with partner agencies to establish where they were bought from and how they were advertised,” said chief inspector Jennifer Mattinson from the West Mercia police.</p>
<p>The Food Standards Agency warned people to stay away from slimming products that contained DNP.</p>
<p>“We advise the public not to take any tablets or powders containing DNP, as it is an industrial chemical and not fit for human consumption,” it said in a statement.</p>
</div>
- <div class="buzz_superlist_item buzz_superlist_item_text buzz_superlist_item_wide " id="superlist_3758406_5547219" rel:buzz_num="5">
+ <div id="superlist_3758406_5547219" rel:buzz_num="5">
<h2>Fiona Parry issued a plea for people to stay away from pills containing the chemical.</h2>
- <p class="sub_buzz_desc">“[Eloise] just never really understood how dangerous the tablets that she took were,” she said. “Most of us don’t believe that a slimming tablet could possibly kill us.</p>
+ <p>“[Eloise] just never really understood how dangerous the tablets that she took were,” she said. “Most of us don’t believe that a slimming tablet could possibly kill us.</p>
<p>“DNP is not a miracle slimming pill. It is a deadly toxin.”</p>
</div>
</div> \ No newline at end of file
diff --git a/test/test-pages/challenges/expected.html b/test/test-pages/challenges/expected.html
index b204943..195bdd2 100644
--- a/test/test-pages/challenges/expected.html
+++ b/test/test-pages/challenges/expected.html
@@ -1,4 +1,4 @@
-<div class="corps " itemprop="articlebody">
+<div itemprop="articlebody">
<p>par Alexandria Sage et Lisa Girion</p>
<p>LAS VEGAS, Nevada (Reuters) - La police américaine peinait mardi à établir les motivations qui ont poussé un retraité de 64 ans à tirer sur la foule depuis une chambre d'hôtel de Las Vegas, faisant 59 morts et 527 blessés dans la plus meurtrière fusillade de l'histoire des Etats-Unis.</p>
<p>Le tireur, qui s'est donné la mort peu avant l'arrivée de police, a été identifié comme Stephen Paddock, un individu apparemment sans histoire, inconnu des services de police et vivant dans un lotissement en périphérie de la ville. Le seul fait notable le concernant était une infraction au code de la route.</p>
diff --git a/test/test-pages/cnet/expected.html b/test/test-pages/cnet/expected.html
index 587e9d2..4f401da 100644
--- a/test/test-pages/cnet/expected.html
+++ b/test/test-pages/cnet/expected.html
@@ -1,10 +1,10 @@
-<div class="col-7 article-main-body row" data-component="lazyloadImages" itemprop="articleBody">
+<div data-component="lazyloadImages" itemprop="articleBody">
- <figure class="image image-medium&#xA; pull-right" section="shortcodeImage"><span class="imageContainer"><span itemprop="image" itemscope="" itemtype="https://schema.org/ImageObject"><img alt="" class="" height="0" src="https://cnet1.cbsistatic.com/img/nAMdBzIE1ogVw5bOBZBaiJCt3Ro=/570x0/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" width="570"></img><meta content="https://cnet1.cbsistatic.com/img/nAMdBzIE1ogVw5bOBZBaiJCt3Ro=/570x0/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" itemprop="url"></meta><meta content="0" itemprop="height"></meta><meta content="570" itemprop="width"></meta></span></span>
- <figcaption><span class="caption"><p>Facebook CEO Mark Zuckerberg, the man with the acquisition plan.</p></span><span class="credit">Photo by James Martin/CNET
+ <figure section="shortcodeImage"><span><span itemprop="image" itemscope="" itemtype="https://schema.org/ImageObject"><img alt="" class="" height="0" src="https://cnet1.cbsistatic.com/img/nAMdBzIE1ogVw5bOBZBaiJCt3Ro=/570x0/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" width="570"></img><meta content="https://cnet1.cbsistatic.com/img/nAMdBzIE1ogVw5bOBZBaiJCt3Ro=/570x0/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" itemprop="url"></meta><meta content="0" itemprop="height"></meta><meta content="570" itemprop="width"></meta></span></span>
+ <figcaption><span><p>Facebook CEO Mark Zuckerberg, the man with the acquisition plan.</p></span><span>Photo by James Martin/CNET
</span></figcaption></figure><p>Anyone who has ever been involved in closing a billion-dollar acquisition deal will tell you that you don't go in without a clear, well thought out plan.</p>
<p>Facebook CEO Mark Zuckerberg knows a thing or two about how to seal the deal on blockbuster buys. After all, he's the man behind his company's <a href="https://www.cnet.com/news/facebook-closes-19-billion-deal-for-whatsapp/" target="_blank">$19 billion acquisition</a> of WhatsApp, he <a href="https://www.cnet.com/news/zuckerberg-did-1-billion-instagram-deal-on-his-own/" target="_blank">personally brokered</a> its $1 billion buyout of <a href="https://www.cnet.com/news/why-facebook-plunked-down-1-billion-to-buy-instagram/" target="_blank">Instagram</a> and closed the <a href="https://www.cnet.com/news/facebook-to-buy-oculus-for-2-billion/" target="_blank">$3 billion deal</a> to buy Oculus VR.</p>
diff --git a/test/test-pages/cnn/expected.html b/test/test-pages/cnn/expected.html
index 9b3b86a..66c778d 100644
--- a/test/test-pages/cnn/expected.html
+++ b/test/test-pages/cnn/expected.html
@@ -1,13 +1,13 @@
<div id="storytext">
- <div class="ie--storytop" id="js-ie-storytop">
+ <div id="js-ie-storytop">
- <div class="cnnplayer fade-in" id="cnnplayer_cvp_story_0">
- <div class="cnnVidplayer">
- <div class="summaryImg" href="/video/news/2015/11/30/homeboy-industries-priest.cnnmoney" id="vid0" onclick="javascript:VideoPlayerManager.playVideos('cvp_story_0'); return false;"><video controls="controls" height="169" id="cvp_story_0" poster="" preload="metadata" src="http://ht3.cdn.turner.com/money/big/news/2015/11/30/homeboy-industries-priest.cnnmoney_1024x576.mp4" width="300"></video><div class="video-posterboard end-slate" id="cvp_story_0_endSlate">
- <div class="video-slate-wrapper">
- <div class="video-bg">
+ <div id="cnnplayer_cvp_story_0">
+ <div>
+ <div href="/video/news/2015/11/30/homeboy-industries-priest.cnnmoney" id="vid0" onclick="javascript:VideoPlayerManager.playVideos('cvp_story_0'); return false;"><video controls="controls" height="169" id="cvp_story_0" poster="" preload="metadata" src="http://ht3.cdn.turner.com/money/big/news/2015/11/30/homeboy-industries-priest.cnnmoney_1024x576.mp4" width="300"></video><div id="cvp_story_0_endSlate">
+ <div>
+ <div>
<img alt="" height="348" src="" width="620"></img></div>
</div>
@@ -22,10 +22,10 @@
<p> But a new report released on Monday by <a href="http://web.stanford.edu/group/scspi-dev/cgi-bin/" target="_blank">Stanford University's Center on Poverty and Inequality</a> calls that into question. </p>
<p> The report assessed poverty levels, income and wealth inequality, economic mobility and unemployment levels among 10 wealthy countries with social welfare programs. </p>
- <div class="module" id="smartassetcontainer">
- <div class="module">
- <div class="module-body">
- <div class="collapsible" id="smartasset-article">
+ <div id="smartassetcontainer">
+ <div>
+ <div>
+ <div id="smartasset-article">
<div>
<p>
Powered by SmartAsset.com
@@ -45,7 +45,7 @@
<p> As the <a href="http://web.stanford.edu/group/scspi-dev/cgi-bin/publications/state-union-report" target="_blank">report states</a>: "[T]he birth lottery matters more in the U.S. than in most well-off countries." </p>
<p> But this wasn't the only finding that suggests the U.S. isn't quite living up to its reputation as a country where everyone has an equal chance to get ahead through sheer will and hard work. </p>
- <p> <a href="http://money.cnn.com/2016/01/11/news/economy/rich-taxes/index.html?iid=EL"><span class="inStoryHeading">Related: Rich are paying more in taxes but not as much as they used to</span></a> </p>
+ <p> <a href="http://money.cnn.com/2016/01/11/news/economy/rich-taxes/index.html?iid=EL"><span>Related: Rich are paying more in taxes but not as much as they used to</span></a> </p>
<p> The report also suggested the U.S. might not be the "jobs machine" it thinks it is, when compared to other countries. </p>
<p> It ranked near the bottom of the pack based on the levels of unemployment among men and women of prime working age. The study determined this by taking the ratio of employed men and women between the ages of 25 and 54 compared to the total population of each country. </p>
@@ -60,9 +60,9 @@
</span>
</p>
<p> The low ranking the U.S. received was due to its extreme levels of wealth and income inequality and the ineffectiveness of its "safety net" -- social programs aimed at reducing poverty. </p>
- <p> <a href="http://money.cnn.com/2016/01/05/news/economy/chicago-segregated/index.html?iid=EL"><span class="inStoryHeading">Related: Chicago is America's most segregated city</span></a> </p>
+ <p> <a href="http://money.cnn.com/2016/01/05/news/economy/chicago-segregated/index.html?iid=EL"><span>Related: Chicago is America's most segregated city</span></a> </p>
<p> The report concluded that the American safety net was ineffective because it provides only half the financial help people need. Additionally, the levels of assistance in the U.S. are generally lower than in other countries. </p>
- <p> <span class="cnnStorySource"> CNNMoney (New York) </span> <span class="cnnDateStamp">First published February 1, 2016: 1:28 AM ET</span> </p>
+ <p> <span> CNNMoney (New York) </span> <span>First published February 1, 2016: 1:28 AM ET</span> </p>
</div> \ No newline at end of file
diff --git a/test/test-pages/daringfireball-1/expected.html b/test/test-pages/daringfireball-1/expected.html
index 101d972..6c3f154 100644
--- a/test/test-pages/daringfireball-1/expected.html
+++ b/test/test-pages/daringfireball-1/expected.html
@@ -3,7 +3,7 @@
<div id="Main">
- <div class="article">
+ <div>
<p>Daring Fireball is written and produced by John Gruber.</p>
<p>
diff --git a/test/test-pages/ehow-1/expected.html b/test/test-pages/ehow-1/expected.html
index 0e7b914..06e78cc 100644
--- a/test/test-pages/ehow-1/expected.html
+++ b/test/test-pages/ehow-1/expected.html
@@ -1,17 +1,17 @@
-<div class="col-main">
- <header class="page-head bordered">
+<div>
+ <header>
- </header><div class="mod step">
- <div class="stepContent mod">
+ </header><div>
+ <div>
<p>Glass cloche terrariums are not only appealing to the eye, but they also preserve a bit of nature in your home and serve as a simple, yet beautiful, piece of art. Closed terrariums are easy to care for, as they retain much of their own moisture and provide a warm environment with a consistent level of humidity. You won’t have to water the terrariums unless you see that the walls are not misting up. Small growing plants that don’t require a lot of light work best such as succulents, ferns, moss, even orchids.</p>
- <figure class="stepThumb"><img alt="Glass cloche terrariums" class="photo" data-credit="Lucy Akins " longdesc="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" title="Glass cloche terrariums"></img></figure><figcaption class="small caption"> Glass cloche terrariums (Lucy Akins) </figcaption></div>
+ <figure><img alt="Glass cloche terrariums" data-credit="Lucy Akins " longdesc="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" title="Glass cloche terrariums"></img></figure><figcaption> Glass cloche terrariums (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">What You'll Need:</span>
- <ul class="markdown-ul"><li>Cloche</li>
+ <div>
+ <div>
+ <div> <span>What You'll Need:</span>
+ <ul><li>Cloche</li>
<li>Planter saucer, small shallow dish or desired platform</li>
<li>Floral foam oasis</li>
<li>Ruler </li>
@@ -24,82 +24,82 @@
</ul></div>
</div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Step 1</span>
+ <div>
+ <div>
+ <div> <span>Step 1</span>
<p>Measure the circumference of your cloche and cut the foam oasis about 3/4 inch (2 cm) smaller. Place the foam oasis into a container full of water and allow to soak until it sinks to the bottom. Dig out a hole on the oasis large enough to fit your plant, being careful not to pierce all the way through to the bottom.</p>
</div>
- <figure class="stepThumb"><img alt="Dig a hole in the oasis." class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/fc249ef6-4d27-41b4-8c21-15f7a8512b50.jpg"></img></figure><figcaption class="small caption"> Dig a hole in the oasis. (Lucy Akins) </figcaption></div>
+ <figure><img alt="Dig a hole in the oasis." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/fc249ef6-4d27-41b4-8c21-15f7a8512b50.jpg"></img></figure><figcaption> Dig a hole in the oasis. (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Step 2</span>
+ <div>
+ <div>
+ <div> <span>Step 2</span>
<p>Insert your plant into the hole.</p>
</div>
- <figure class="stepThumb"><img alt="Orchid in foam oasis" class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/aae11d4d-a4aa-4251-a4d9-41023ebf6d84.jpg"></img></figure><figcaption class="small caption"> Orchid in foam oasis (Lucy Akins) </figcaption></div>
+ <figure><img alt="Orchid in foam oasis" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/aae11d4d-a4aa-4251-a4d9-41023ebf6d84.jpg"></img></figure><figcaption> Orchid in foam oasis (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Step 3</span>
+ <div>
+ <div>
+ <div> <span>Step 3</span>
<p>You can add various plants if you wish.</p>
</div>
- <figure class="stepThumb"><img alt="Various foliage" class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/7afdfa1e-da74-44b5-b89c-ca8123516272.jpg"></img></figure><figcaption class="small caption"> Various foliage (Lucy Akins) </figcaption></div>
+ <figure><img alt="Various foliage" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/7afdfa1e-da74-44b5-b89c-ca8123516272.jpg"></img></figure><figcaption> Various foliage (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Step 4</span>
+ <div>
+ <div>
+ <div> <span>Step 4</span>
<p>Using floral pins, attach enough moss around the oasis to cover it.</p>
</div>
- <figure class="stepThumb"><img alt="Attach moss." class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/4f6612c0-316a-4c74-bb03-cb4e778f6d72.jpg"></img></figure><figcaption class="small caption"> Attach moss. (Lucy Akins) </figcaption></div>
+ <figure><img alt="Attach moss." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/4f6612c0-316a-4c74-bb03-cb4e778f6d72.jpg"></img></figure><figcaption> Attach moss. (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Step 5</span>
+ <div>
+ <div>
+ <div> <span>Step 5</span>
<p>Gently place the cloche over the oasis. The glass may push some of the moss upward, exposing some of the foam.</p>
</div>
- <figure class="stepThumb"><img alt="Place cloche over oasis." class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/eeb1e0b4-e573-40a3-8db1-2c76f0b13b84.jpg"></img></figure><figcaption class="small caption"> Place cloche over oasis. (Lucy Akins) </figcaption></div>
+ <figure><img alt="Place cloche over oasis." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/eeb1e0b4-e573-40a3-8db1-2c76f0b13b84.jpg"></img></figure><figcaption> Place cloche over oasis. (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Step 6</span>
+ <div>
+ <div>
+ <div> <span>Step 6</span>
<p>Simply pull down the moss with tweezers or insert more moss to fill in the empty spaces.</p>
</div>
- <figure class="stepThumb"><img alt="Rearrange moss." class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/812d4649-4152-4363-97c0-f181d02e709a.jpg"></img></figure><figcaption class="small caption"> Rearrange moss. (Lucy Akins) </figcaption></div>
+ <figure><img alt="Rearrange moss." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/812d4649-4152-4363-97c0-f181d02e709a.jpg"></img></figure><figcaption> Rearrange moss. (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Step 7</span>
+ <div>
+ <div>
+ <div> <span>Step 7</span>
<p>You can use any platform you wish. In this case, a small saucer was used.</p>
</div>
- <figure class="stepThumb"><img alt="Place cloche on a platform to sit on." class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/0cb3988c-9318-47d6-bc9c-c798da1ede72.jpg"></img></figure><figcaption class="small caption"> Place cloche on a platform to sit on. (Lucy Akins) </figcaption></div>
+ <figure><img alt="Place cloche on a platform to sit on." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/0cb3988c-9318-47d6-bc9c-c798da1ede72.jpg"></img></figure><figcaption> Place cloche on a platform to sit on. (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Step 8</span>
+ <div>
+ <div>
+ <div> <span>Step 8</span>
<p>This particular terrarium rests on a planter saucer and features a small white pumpkin.</p>
</div>
- <figure class="stepThumb"><img alt="Cloche placed on a terracotta saucer" class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/e3e18f0b-ab2c-4ffb-9988-a1ea63faef8b.jpg"></img></figure><figcaption class="small caption"> Cloche placed on a terracotta saucer (Lucy Akins) </figcaption></div>
+ <figure><img alt="Cloche placed on a terracotta saucer" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/e3e18f0b-ab2c-4ffb-9988-a1ea63faef8b.jpg"></img></figure><figcaption> Cloche placed on a terracotta saucer (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Step 9</span>
+ <div>
+ <div>
+ <div> <span>Step 9</span>
<p>This particular terrarium was placed on a wood slice and a little toy squirrel was placed inside to add a little whimsy.</p>
</div>
- <figure class="stepThumb"><img alt="Placed on a wooden slice" class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/2cd79f8d-0d16-4573-8861-e47fb74b0638.jpg"></img></figure><figcaption class="small caption"> Placed on a wooden slice (Lucy Akins) </figcaption></div>
+ <figure><img alt="Placed on a wooden slice" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/2cd79f8d-0d16-4573-8861-e47fb74b0638.jpg"></img></figure><figcaption> Placed on a wooden slice (Lucy Akins) </figcaption></div>
</div>
- <div class="mod step">
- <div class="stepContent">
- <div class="content"> <span class="headline2 head mg-1 block">Finished Terrarium</span>
+ <div>
+ <div>
+ <div> <span>Finished Terrarium</span>
<p>Displayed alone or in a group, these pretty arrangements allow you to add a little nature to your decor or tablescape.</p>
</div>
- <figure class="stepThumb"><img alt="Cloche terrarium" class="photo" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/78670312-8636-4c42-a75c-3029f7aa6c73.jpg"></img></figure><figcaption class="small caption"> Cloche terrarium (Lucy Akins) </figcaption></div>
+ <figure><img alt="Cloche terrarium" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/78670312-8636-4c42-a75c-3029f7aa6c73.jpg"></img></figure><figcaption> Cloche terrarium (Lucy Akins) </figcaption></div>
</div>
- <section class="mod" data-module="rcp_tombstone" id="FeaturedTombstone"><h2 class="headline2 head mg-2">Featured</h2>
+ <section data-module="rcp_tombstone" id="FeaturedTombstone"><h2>Featured</h2>
</section></div> \ No newline at end of file
diff --git a/test/test-pages/ehow-2/expected.html b/test/test-pages/ehow-2/expected.html
index d2148ae..e7d33e8 100644
--- a/test/test-pages/ehow-2/expected.html
+++ b/test/test-pages/ehow-2/expected.html
@@ -1,15 +1,15 @@
-<section class="InlineTemplate FLC" data-page-id="inlinetemplate" data-section="body" id="Body">
+<section data-page-id="inlinetemplate" data-section="body" id="Body">
- <header class="page-head bordered pre-col">
+ <header>
<div data-type="AuthorProfile">
- <div class="post-meta clearfix headline6 mg-2">
- <a class="gtm_contributorBylineAvatar contributor-follow-tip" href="http://fakehost/contributor/gina_robertsgrey/" id="img-follow-tip" target="_top">
- <img class="avatar fl" data-failover="//img-aws.ehowcdn.com/60x60/ehow-cdn-assets/test15/media/images/authors/missing-author-image.png" onerror="var failover = this.getAttribute('data-failover');&#xA; if (failover) failover = failover.replace(/^https?:/,'');&#xA; var src = this.src ? this.src.replace(/^https?:/,'') : '';&#xA; if (src != failover){&#xA; this.src = failover;&#xA; }" src="http://img-aws.ehowcdn.com/60x60/cme/cme_public_images/www_demandstudios_com/sitelife.studiod.com/ver1.0/Content/images/store/9/2/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg"></img></a>
+ <div>
+ <a href="http://fakehost/contributor/gina_robertsgrey/" id="img-follow-tip" target="_top">
+ <img data-failover="//img-aws.ehowcdn.com/60x60/ehow-cdn-assets/test15/media/images/authors/missing-author-image.png" onerror="var failover = this.getAttribute('data-failover');&#xA; if (failover) failover = failover.replace(/^https?:/,'');&#xA; var src = this.src ? this.src.replace(/^https?:/,'') : '';&#xA; if (src != failover){&#xA; this.src = failover;&#xA; }" src="http://img-aws.ehowcdn.com/60x60/cme/cme_public_images/www_demandstudios_com/sitelife.studiod.com/ver1.0/Content/images/store/9/2/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg"></img></a>
</div>
- <div class="post-meta clearfix headline6 mg-2" data-author-url="/contributor/gina_robertsgrey/" id="author_powertip">
- <a class="gtm_contributorBylineAvatar" href="http://fakehost/contributor/gina_robertsgrey/" target="_top">
- <img class="avatar fl" data-failover="//img-aws.ehowcdn.com/60x60/ehow-cdn-assets/test15/media/images/authors/missing-author-image.png" onerror="var failover = this.getAttribute('data-failover');&#xA; if (failover) failover = failover.replace(/^https?:/,'');&#xA; var src = this.src ? this.src.replace(/^https?:/,'') : '';&#xA; if (src != failover){&#xA; this.src = failover;&#xA; }" src="http://img-aws.ehowcdn.com/60x60/cme/cme_public_images/www_demandstudios_com/sitelife.studiod.com/ver1.0/Content/images/store/9/2/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg"></img></a>
+ <div data-author-url="/contributor/gina_robertsgrey/" id="author_powertip">
+ <a href="http://fakehost/contributor/gina_robertsgrey/" target="_top">
+ <img data-failover="//img-aws.ehowcdn.com/60x60/ehow-cdn-assets/test15/media/images/authors/missing-author-image.png" onerror="var failover = this.getAttribute('data-failover');&#xA; if (failover) failover = failover.replace(/^https?:/,'');&#xA; var src = this.src ? this.src.replace(/^https?:/,'') : '';&#xA; if (src != failover){&#xA; this.src = failover;&#xA; }" src="http://img-aws.ehowcdn.com/60x60/cme/cme_public_images/www_demandstudios_com/sitelife.studiod.com/ver1.0/Content/images/store/9/2/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg"></img></a>
<p>Follow</p>
</div>
@@ -18,15 +18,15 @@
</div>
- </header><div class="col-main">
- <article data-type="article"><div class="mod step">
- <div class="stepContent mod">
- <div class="content lead">
+ </header><div>
+ <article data-type="article"><div>
+ <div>
+ <div>
<p>Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They’re also costly for mom and dad.</p>
<p>The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern statistics, and parties in urban areas like New York City are thought to have a much higher price tag.</p>
<p>Thankfully, there are plenty of creative ways to trim a little grad party fat without sacrificing any of the fun or celebratory spirit.</p>
</div>
- <figure class="stepThumb"><img alt="Graduation" class="photo" data-credit="Mike Watson Images/Moodboard/Getty " data-pin-ehow-hover="true" data-pin-no-hover="true" longdesc="http://s3.amazonaws.com/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" title="Graduation"></img></figure><figcaption class="small caption">
+ <figure><img alt="Graduation" data-credit="Mike Watson Images/Moodboard/Getty " data-pin-ehow-hover="true" data-pin-no-hover="true" longdesc="http://s3.amazonaws.com/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" title="Graduation"></img></figure><figcaption>
(Mike Watson Images/Moodboard/Getty)
</figcaption></div>
</div>
@@ -34,34 +34,34 @@
<span>
<span>
-<div class="mod step">
-<div class="stepContent mod">
-<div class="content">
+<div>
+<div>
+<div>
<span><p>Parties hosted at restaurants, clubhouses and country clubs eliminate the need to spend hours cleaning up once party guests have gone home. But that convenience comes with a price tag. A country club may charge as much as $2,000 for room rental and restaurant food and beverage will almost always cost more than food prepped and served at home.</p></span> </div>
- <figure class="stepThumb"><img alt="Save money hosting the party at home." class="photo" data-credit="Thomas Jackson/Digital Vision/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/FE/CB/121569D2-6984-4B2F-83C4-9D2D9A27CBFE/121569D2-6984-4B2F-83C4-9D2D9A27CBFE.jpg"></img></figure><figcaption class="small caption">
+ <figure><img alt="Save money hosting the party at home." data-credit="Thomas Jackson/Digital Vision/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/FE/CB/121569D2-6984-4B2F-83C4-9D2D9A27CBFE/121569D2-6984-4B2F-83C4-9D2D9A27CBFE.jpg"></img></figure><figcaption>
Thomas Jackson/Digital Vision/Getty Images </figcaption></div>
</div>
</span>
</span>
<span>
<span>
-<div class="mod step">
-<div class="stepContent mod">
-<div class="content">
+<div>
+<div>
+<div>
<span><p>Instead of hiring a DJ, use your iPod or Smartphone to spin the tunes. Both easily hook up to most speakers or mp3 compatible docks to play music from your music library. Or download Pandora, the free online radio app, and play hours of music for free.</p>
<p>Personalize the music with a playlist of the grad’s favorite songs or songs that were big hits during his or her years in school.</p></span> </div>
- <figure class="stepThumb"><img alt="Online radio can take the place of a hired DJ." class="photo" data-credit="Spencer Platt/Getty Images News/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/DF/FC/A05B0252-BD73-4BC7-A09A-96F0A504FCDF/A05B0252-BD73-4BC7-A09A-96F0A504FCDF.jpg"></img></figure><figcaption class="small caption">
+ <figure><img alt="Online radio can take the place of a hired DJ." data-credit="Spencer Platt/Getty Images News/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/DF/FC/A05B0252-BD73-4BC7-A09A-96F0A504FCDF/A05B0252-BD73-4BC7-A09A-96F0A504FCDF.jpg"></img></figure><figcaption>
Spencer Platt/Getty Images News/Getty Images </figcaption></div>
</div>
</span>
</span>
<span>
<span>
-<div class="mod step">
-<div class="stepContent mod">
-<div class="content">
+<div>
+<div>
+<div>
<span><p>Avoid canned drinks, which guests often open, but don't finish. Serve pitchers of tap water with lemon and cucumber slices or sliced strawberries for an interesting and refreshing flavor. Opt for punches and non-alcoholic drinks for high school graduates that allow guests to dole out the exact amount they want to drink.</p></span> </div>
- <figure class="stepThumb"><img alt="Serve drinks in pitchers, not in cans." class="photo" data-credit="evgenyb/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/EB/DB/8A04CCA7-3255-4225-B59A-C41441F8DBEB/8A04CCA7-3255-4225-B59A-C41441F8DBEB.jpg"></img></figure><figcaption class="small caption">
+ <figure><img alt="Serve drinks in pitchers, not in cans." data-credit="evgenyb/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/EB/DB/8A04CCA7-3255-4225-B59A-C41441F8DBEB/8A04CCA7-3255-4225-B59A-C41441F8DBEB.jpg"></img></figure><figcaption>
evgenyb/iStock/Getty Images </figcaption></div>
</div>
@@ -69,45 +69,45 @@
</span>
<span>
<span>
-<div class="mod step">
-<div class="stepContent mod">
-<div class="content">
+<div>
+<div>
+<div>
<span><p>Instead of inviting everyone you – and the graduate – know or ever knew, scale back the guest list. Forgo inviting guests that you or your grad haven't seen for eons. There is no reason to provide provisions for people who are essentially out of your lives. Sticking to a small, but personal, guest list allows more time to mingle with loved ones during the party, too.</p></span> </div>
- <figure class="stepThumb"><img alt="Limit guests to those close to the graduate." class="photo" data-credit="Kane Skennar/Photodisc/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/94/10/08035476-0167-4A03-AADC-13A7E7AA1094/08035476-0167-4A03-AADC-13A7E7AA1094.jpg"></img></figure><figcaption class="small caption">
+ <figure><img alt="Limit guests to those close to the graduate." data-credit="Kane Skennar/Photodisc/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/94/10/08035476-0167-4A03-AADC-13A7E7AA1094/08035476-0167-4A03-AADC-13A7E7AA1094.jpg"></img></figure><figcaption>
Kane Skennar/Photodisc/Getty Images </figcaption></div>
</div>
</span>
</span>
<span>
<span>
-<div class="mod step">
-<div class="stepContent mod">
-<div class="content">
+<div>
+<div>
+<div>
<span><p>See if your grad and his best friend, girlfriend or close family member would consider hosting a joint party. You can split some of the expenses, especially when the two graduates share mutual friends. You'll also have another parent to bounce ideas off of and to help you stick to your budget when you're tempted to splurge.</p></span> </div>
- <figure class="stepThumb"><img alt="Throw a joint bash for big savings." class="photo" data-credit="Mike Watson Images/Moodboard/Getty" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/06/49/4AD62696-FC95-4DA2-8351-42740C7B4906/4AD62696-FC95-4DA2-8351-42740C7B4906.jpg"></img></figure><figcaption class="small caption">
+ <figure><img alt="Throw a joint bash for big savings." data-credit="Mike Watson Images/Moodboard/Getty" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/06/49/4AD62696-FC95-4DA2-8351-42740C7B4906/4AD62696-FC95-4DA2-8351-42740C7B4906.jpg"></img></figure><figcaption>
Mike Watson Images/Moodboard/Getty </figcaption></div>
</div>
</span>
</span>
<span>
<span>
-<div class="mod step">
-<div class="stepContent mod">
-<div class="content">
+<div>
+<div>
+<div>
<span><p>Skip carving stations of prime rib and jumbo shrimp as appetizers, especially for high school graduation parties. Instead, serve some of the graduate's favorite side dishes that are cost effective, like a big pot of spaghetti with breadsticks. Opt for easy and simple food such as pizza, finger food and mini appetizers. </p>
<p>Avoid pre-packaged foods and pre-made deli platters. These can be quite costly. Instead, make your own cheese and deli platters for less than half the cost of pre-made.</p></span> </div>
- <figure class="stepThumb"><img alt="Cost effective appetizers are just as satisfying as pre-made deli platters." class="photo" data-credit="Mark Stout/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/D0/51/B6AED06C-5E19-4A26-9AAD-0E175F6251D0/B6AED06C-5E19-4A26-9AAD-0E175F6251D0.jpg"></img></figure><figcaption class="small caption">
+ <figure><img alt="Cost effective appetizers are just as satisfying as pre-made deli platters." data-credit="Mark Stout/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/D0/51/B6AED06C-5E19-4A26-9AAD-0E175F6251D0/B6AED06C-5E19-4A26-9AAD-0E175F6251D0.jpg"></img></figure><figcaption>
Mark Stout/iStock/Getty Images </figcaption></div>
</div>
</span>
</span>
<span>
<span>
-<div class="mod step">
-<div class="stepContent mod">
-<div class="content">
+<div>
+<div>
+<div>
<span><p>Instead of an evening dinner party, host a grad lunch or all appetizers party. Brunch and lunch fare or finger food costs less than dinner. Guests also tend to consume less alcohol in the middle of the day, which keeps cost down.</p></span> </div>
- <figure class="stepThumb"><img alt="A brunch gathering will cost less than a dinner party." class="photo" data-credit="Mark Stout/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/35/B4/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435.jpg"></img></figure><figcaption class="small caption">
+ <figure><img alt="A brunch gathering will cost less than a dinner party." data-credit="Mark Stout/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/35/B4/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435.jpg"></img></figure><figcaption>
Mark Stout/iStock/Getty Images </figcaption></div>
</div>
@@ -116,18 +116,18 @@
</span>
<span>
<span>
-<div class="mod step">
-<div class="stepContent mod">
-<div class="content">
+<div>
+<div>
+<div>
<span><p>Decorate your party in the graduate's current school colors or the colors of the school he or she will be headed to next. Décor that is not specifically graduation-themed may cost a bit less, and any leftovers can be re-used for future parties, picnics and events.</p></span> </div>
- <figure class="stepThumb"><img alt="Theme the party by color without graduation-specific decor." class="photo" data-credit="jethuynh/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/A1/FA/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1.jpg"></img></figure><figcaption class="small caption">
+ <figure><img alt="Theme the party by color without graduation-specific decor." data-credit="jethuynh/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/A1/FA/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1.jpg"></img></figure><figcaption>
jethuynh/iStock/Getty Images </figcaption></div>
</div>
</span>
</span>
- <h2 class="RsTitle head mg-2 title">
+ <h2>
<a href="https://www.google.com/adsense/support/bin/request.py?contact=abg_afc&amp;url=http://ehow.com/&amp;hl=en&amp;client=ehow&amp;gl=US" target="_blank">Related Searches</a>
</h2>
diff --git a/test/test-pages/gmw/expected.html b/test/test-pages/gmw/expected.html
index 2db9916..b3c62d3 100644
--- a/test/test-pages/gmw/expected.html
+++ b/test/test-pages/gmw/expected.html
@@ -21,7 +21,7 @@
<p>  美国宇航局约翰逊航天中心发言人丹尼尔·霍特(Daniel Huot)表示:“国际空间站上的宇航员不允许喝酒。在国际空间站上,酒精和其它挥发性化合物的使用受到控制,因为它们的挥发物可能对该站的水回收系统产生影响。”</p>
<p>  为此,国际空间站上的宇航员甚至没有被提供含有酒精的产品,例如漱口水、香水或须后水。如果在国际空间站上饮酒狂欢,溢出的啤酒也可能存在损坏设备的风险。</p>
<p><img alt="(Credit: iStock)" id="45395150" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e592a.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
- <p class="pictext">
+ <p>
<span face="楷体">  图注:测试表明,有关人在高空中喝酒更容易醉的传言是不正确的</span>
</p>
<p>  然后是责任的问题。我们不允许汽车司机或飞机飞行员喝醉后驾驶,所以并不奇怪同样的规则适用于国际空间站上的宇航员。毕竟国际空间站的造价高达1500亿美元,而且在接近真空的太空中其运行速度达到了每小时27680公里。</p>
@@ -40,7 +40,7 @@
<p>  相比之下,执行登陆火星任务的人将远离家乡几年,而不是几个月,因此可能会有人提出有关禁止饮酒的规定可以放松一些。</p>
<p>  然而,像戴夫?汉森这样的专家认为,继续禁止饮酒并没有什么害处。除了实际的安全问题,饮酒还可能有其它挑战。汉森认为,地球人存在许多社会文化方面的差异,而且人连续几年时间呆在一个狭小的空间里,很容易突然发怒,这些因素都使饮酒问题变得很棘手。</p>
<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">
+ <p>
<span face="楷体">  图注:奥尔德林的圣餐杯回到了地球上</span>
</p>
<p>  他说:“这是一个政治问题,也是一个文化方面的问题,但不是一个科学上的问题。这将是未来一个可能产生冲突领域,因为人们具有不同的文化背景,他们对饮酒的态度不同。”他进一步指出,如果你与穆斯林、摩门教徒或禁酒主义者分配在同一间宿舍怎么办?面对未来人们可能在一个没有期限的时间内呆在一个有限的空间里,需要“尽早解决”如何协调不同文化观点的问题。</p>
diff --git a/test/test-pages/heise/expected.html b/test/test-pages/heise/expected.html
index 04dc19a..95ab304 100644
--- a/test/test-pages/heise/expected.html
+++ b/test/test-pages/heise/expected.html
@@ -1,12 +1,12 @@
-<div class="meldung_wrapper">
+<div>
- <figure class="aufmacherbild"><img src="http://3.f.ix.de/scale/geometry/600/q75/imgs/18/1/4/6/2/3/5/1/Barcode-Scanner-With-Border-fc08c913da5cea5d.jpeg"></img><figcaption><p class="caption">1Password scannt auch QR-Codes.</p>
+ <figure><img src="http://3.f.ix.de/scale/geometry/600/q75/imgs/18/1/4/6/2/3/5/1/Barcode-Scanner-With-Border-fc08c913da5cea5d.jpeg"></img><figcaption><p>1Password scannt auch QR-Codes.</p>
- <p class="source">(Bild: Hersteller)</p>
+ <p>(Bild: Hersteller)</p>
- </figcaption></figure><p class="meldung_anrisstext"><strong>Das in der iOS-Version bereits enthaltene TOTP-Feature ist nun auch für OS X 10.10 verfügbar. Zudem gibt es neue Zusatzfelder in der Datenbank und weitere Verbesserungen.</strong></p>
+ </figcaption></figure><p><strong>Das in der iOS-Version bereits enthaltene TOTP-Feature ist nun auch für OS X 10.10 verfügbar. Zudem gibt es neue Zusatzfelder in der Datenbank und weitere Verbesserungen.</strong></p>
<p><a href="https://itunes.apple.com/de/app/1password-password-manager/id443987910" rel="external" target="_blank">AgileBits hat Version 5.3 seines bekannten Passwortmanagers 1Password für OS X freigegeben.</a> Mit dem Update wird eine praktische Funktion nachgereicht, die <a href="http://fakehost/mac-and-i/meldung/Passwortmanager-1Password-mit-groesseren-Updates-fuer-OS-X-und-iOS-2529204.html">die iOS-Version der Anwendung bereits seit längerem beherrscht</a>: Das direkte Erstellen von Einmal-Passwörtern. Unterstützt wird dabei der <a href="https://blog.agilebits.com/2015/01/26/totp-for-1password-users/" rel="external" target="_blank">TOTP-Standard</a> (Time-Based One-Time Passwords), den unter anderem Firmen wie Evernote, Dropbox oder Google einsetzen, um ihre Zugänge besser abzusichern. Neben Account und regulärem Passwort wird dabei dann ein Zusatzcode verlangt, der nur kurze Zeit gilt.</p>
<p>Zur TOTP-Nutzung muss zunächst ein Startwert an 1Password übergeben werden. Das geht unter anderem per QR-Code, den die App über ein neues Scanfenster selbst einlesen kann – etwa aus dem Webbrowser. Eine Einführung in die Technik gibt <a href="http://1pw.ca/TOTPvideoMac" rel="external" target="_blank">ein kurzes Video</a>. Die TOTP-Unterstützung in 1Password erlaubt es, auf ein zusätzliches Gerät (z.B. ein iPhone) neben dem Mac zu verzichten, das den Code liefert – was allerdings auch die Sicherheit verringert, weil es keinen "echten" zweiten Faktor mehr gibt.</p>
<p>Update 5.3 des Passwortmanagers liefert auch noch weitere Verbesserungen. So gibt es die Möglichkeit, FaceTime-Audio- oder Skype-Anrufe aus 1Password zu starten, die Zahl der Zusatzfelder in der Datenbank wurde erweitert und der Umgang mit unterschiedlichen Zeitzonen klappt besser. Die Engine zur Passworteingabe im Browser soll beschleunigt worden sein.</p>
@@ -14,7 +14,7 @@
-<span class="ISI_IGNORE">(<a href="mailto:[email protected]" title="Ben Schwan">bsc</a>)</span>
-<br class="clear"></br></p>
+<span>(<a href="mailto:[email protected]" title="Ben Schwan">bsc</a>)</span>
+<br></br></p>
</div> \ No newline at end of file
diff --git a/test/test-pages/herald-sun-1/expected.html b/test/test-pages/herald-sun-1/expected.html
index ec6dbaf..6b0cbe6 100644
--- a/test/test-pages/herald-sun-1/expected.html
+++ b/test/test-pages/herald-sun-1/expected.html
@@ -1,11 +1,11 @@
-<div class="story-body ">
- <div class="article-media article-media-main">
- <div class="image">
- <div class="image-frame">
+<div>
+ <div>
+ <div>
+ <div>
<img alt="A new Bill would require telecommunications service providers to store so-called ‘metadat" data-src="http://api.news.com.au/content/1.0/heraldsun/images/1227261885862?format=jpg&amp;group=iphone&amp;size=medium" src="http://api.news.com.au/content/1.0/heraldsun/images/1227261885862?format=jpg&amp;group=iphone&amp;size=medium"></img></div>
- <p class="caption">
- <span class="caption-text" id="imgCaption">A new Bill would require telecommunications service providers to store so-called ‘metadata’ for two years.</span>
- <span class="image-source"><em>Source:</em>
+ <p>
+ <span id="imgCaption">A new Bill would require telecommunications service providers to store so-called ‘metadata’ for two years.</span>
+ <span><em>Source:</em>
Supplied</span>
</p>
</div>
diff --git a/test/test-pages/iab-1/expected.html b/test/test-pages/iab-1/expected.html
index a688a22..8aaa4c8 100644
--- a/test/test-pages/iab-1/expected.html
+++ b/test/test-pages/iab-1/expected.html
@@ -1,5 +1,5 @@
-<div class="container module--news">
- <div class="article__content">
+<div>
+ <div>
<p>We messed up. As technologists, tasked with delivering content and services to users, we lost track of the user experience.</p>
<p>Twenty years ago we saw an explosion of websites, built by developers around the world, providing all forms of content. This was the beginning of an age of enlightenment, the intersection of content and technology. Many of us in the technical field felt compelled, and even empowered, to produce information as the distribution means for mass communication were no longer restricted by a high barrier to entry.</p>
<p>In 2000, the dark ages came when the dot-com bubble burst. We were told that our startups were gone or that our divisions sustained by corporate parent companies needed to be in the black. It was a wakeup call that led to a renaissance age. Digital advertising became the foundation of an economic engine that, still now, sustains the free and democratic World Wide Web. In digital publishing, we strived to balance content, commerce, and technology. The content management systems and communication gateways we built to inform and entertain populations around the world disrupted markets and in some cases governments, informed communities of imminent danger, and liberated new forms of art and entertainment—all while creating a digital middle class of small businesses.</p>
@@ -9,7 +9,7 @@
<p>Through our pursuit of further automation and maximization of margins during the industrial age of media technology, we built advertising technology to optimize publishers’ yield of marketing budgets that had eroded after the last recession. Looking back now, our scraping of dimes may have cost us dollars in consumer loyalty. The fast, scalable systems of targeting users with ever-heftier advertisements have slowed down the public internet and drained more than a few batteries. We were so clever and so good at it that we over-engineered the capabilities of the plumbing laid down by, well, ourselves. This steamrolled the users, depleted their devices, and tried their patience.</p>
<p>The rise of ad blocking poses a threat to the internet and could potentially drive users to an enclosed platform world dominated by a few companies. We have let the fine equilibrium of content, commerce, and technology get out of balance in the open web. We had, and still do have, a responsibility to educate the business side, and in some cases to push back. We lost sight of our social and ethical responsibility to provide a safe, usable experience for anyone and everyone wanting to consume the content of their choice.</p>
<p>We need to bring that back into alignment, starting right now.</p>
-<p><a href="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux.jpg"><img alt="Getting LEAN with Digital Ad UX" class="alignnone size-medium wp-image-15403" height="250" src="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux-300x250.jpg" width="300"></img></a>Today, the IAB Tech Lab is launching the L.E.A.N. Ads program. Supported by the Executive Committee of the IAB Tech Lab Board, IABs around the world, and hundreds of member companies, L.E.A.N. stands for Light, Encrypted, Ad choice supported, Non-invasive ads. These are principles that will help guide the next phases of advertising technical standards for the global digital advertising supply chain.</p>
+<p><a href="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux.jpg"><img alt="Getting LEAN with Digital Ad UX" height="250" src="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux-300x250.jpg" width="300"></img></a>Today, the IAB Tech Lab is launching the L.E.A.N. Ads program. Supported by the Executive Committee of the IAB Tech Lab Board, IABs around the world, and hundreds of member companies, L.E.A.N. stands for Light, Encrypted, Ad choice supported, Non-invasive ads. These are principles that will help guide the next phases of advertising technical standards for the global digital advertising supply chain.</p>
<p>As with any other industry, standards should be created by non-profit standards-setting bodies, with many diverse voices providing input. We will invite all parties for public comment, and make sure consumer interest groups have the opportunity to provide input.</p>
<p>L.E.A.N. Ads do not replace the current advertising standards many consumers still enjoy and engage with while consuming content on our sites across all IP enabled devices. Rather, these principles will guide an alternative set of standards that provide choice for marketers, content providers, and consumers.</p>
<p>Among the many areas of concentration, we must also address frequency capping on retargeting in Ad Tech and make sure a user is targeted appropriately before, but never AFTER they make a purchase. If we are so good at reach and scale, we can be just as good, if not better, at moderation. Additionally, we must address volume of ads per page as well as continue on the path to viewability. The dependencies here are critical to an optimized user experience.</p>
@@ -21,9 +21,9 @@
<table><tbody><tr><td>IAB Tech Lab Members can join the IAB Tech Lab Ad Blocking Working Group, please email <a href="mailto:[email protected]">[email protected]</a> for more information.</td>
</tr></tbody></table><p>Read <a href="http://www.iab.com/insights/ad-blocking/" target="_blank">more about ad blocking here</a>.</p>
</div>
- </div><div><div class="clearfix">
- <figure class="author__img"><img alt="Auto Draft 14" src="http://www.iab.com/wp-content/uploads/2015/05/auto-draft-16-150x150.jpg"></img></figure><div class="author__text">
- <h4 class="author__text__heading">About the author</h4>
+ </div><div><div>
+ <figure><img alt="Auto Draft 14" src="http://www.iab.com/wp-content/uploads/2015/05/auto-draft-16-150x150.jpg"></img></figure><div>
+ <h4>About the author</h4>
<p><strong>Scott Cunningham</strong></p>
<p>Senior Vice President of Technology and Ad Operations at IAB, and General Manager of the IAB Tech Lab</p>
</div>
diff --git a/test/test-pages/ietf-1/expected.html b/test/test-pages/ietf-1/expected.html
index 15aae73..aa5b470 100644
--- a/test/test-pages/ietf-1/expected.html
+++ b/test/test-pages/ietf-1/expected.html
@@ -1,13 +1,13 @@
<div>
-<span class="pre noprint docinfo top">[<a href="http://fakehost/test/../html/" title="Document search and retrieval page">Docs</a>] [<a href="https://tools.ietf.org/id/draft-dejong-remotestorage-04.txt" title="Plaintext version of this document">txt</a>|<a href="http://fakehost/pdf/draft-dejong-remotestorage-04.txt" title="PDF version of this document">pdf</a>] [<a href="https://datatracker.ietf.org/doc/draft-dejong-remotestorage" title="IESG Datatracker information for this document">Tracker</a>] [<a href="mailto:[email protected]?subject=draft-dejong-remotestorage%20" title="Send email to the document authors">Email</a>] [<a href="http://fakehost/rfcdiff?difftype=--hwdiff&amp;url2=draft-dejong-remotestorage-04.txt" title="Inline diff (wdiff)">Diff1</a>] [<a href="http://fakehost/rfcdiff?url2=draft-dejong-remotestorage-04.txt" title="Side-by-side diff">Diff2</a>] [<a href="http://fakehost/idnits?url=https://tools.ietf.org/id/draft-dejong-remotestorage-04.txt" title="Run an idnits check of this document">Nits</a>] </span><br></br><span class="pre noprint docinfo"> </span><p><span class="pre noprint docinfo">Versions: <a href="http://fakehost/test/draft-dejong-remotestorage-00">00</a> <a href="http://fakehost/test/draft-dejong-remotestorage-01">01</a> <a href="http://fakehost/test/draft-dejong-remotestorage-02">02</a> <a href="http://fakehost/test/draft-dejong-remotestorage-03">03</a> <a href="http://fakehost/test/draft-dejong-remotestorage-04">04</a> </span><span class="pre noprint docinfo"> </span></p><p><pre>INTERNET DRAFT Michiel B. de Jong
+<span>[<a href="http://fakehost/test/../html/" title="Document search and retrieval page">Docs</a>] [<a href="https://tools.ietf.org/id/draft-dejong-remotestorage-04.txt" title="Plaintext version of this document">txt</a>|<a href="http://fakehost/pdf/draft-dejong-remotestorage-04.txt" title="PDF version of this document">pdf</a>] [<a href="https://datatracker.ietf.org/doc/draft-dejong-remotestorage" title="IESG Datatracker information for this document">Tracker</a>] [<a href="mailto:[email protected]?subject=draft-dejong-remotestorage%20" title="Send email to the document authors">Email</a>] [<a href="http://fakehost/rfcdiff?difftype=--hwdiff&amp;url2=draft-dejong-remotestorage-04.txt" title="Inline diff (wdiff)">Diff1</a>] [<a href="http://fakehost/rfcdiff?url2=draft-dejong-remotestorage-04.txt" title="Side-by-side diff">Diff2</a>] [<a href="http://fakehost/idnits?url=https://tools.ietf.org/id/draft-dejong-remotestorage-04.txt" title="Run an idnits check of this document">Nits</a>] </span><br></br><span> </span><p><span>Versions: <a href="http://fakehost/test/draft-dejong-remotestorage-00">00</a> <a href="http://fakehost/test/draft-dejong-remotestorage-01">01</a> <a href="http://fakehost/test/draft-dejong-remotestorage-02">02</a> <a href="http://fakehost/test/draft-dejong-remotestorage-03">03</a> <a href="http://fakehost/test/draft-dejong-remotestorage-04">04</a> </span><span> </span></p><p><pre>INTERNET DRAFT Michiel B. de Jong
Document: <a href="http://fakehost/test/draft-dejong-remotestorage-04">draft-dejong-remotestorage-04</a> IndieHosters
F. Kooman
Intended Status: Proposed Standard (independent)
Expires: 18 June 2015 15 December 2014
- <span class="h1">remoteStorage</span>
+ <span>remoteStorage</span>
Abstract
@@ -52,9 +52,9 @@ Copyright Notice
described in the Simplified BSD License.
-<span class="grey">de Jong [Page 1]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-2" id="page-2" name="page-2"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 1]</span>
+</pre><pre><a href="#page-2" id="page-2" name="page-2"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
Table of Contents
@@ -89,7 +89,7 @@ Table of Contents
<a href="#section-18">18</a>. Authors' addresses............................................<a href="#page-22">22</a>
-<span class="h2"><a class="selflink" href="#section-1" name="section-1">1</a>. Introduction</span>
+<span><a href="#section-1" name="section-1">1</a>. Introduction</span>
Many services for data storage are available over the internet. This
specification describes a vendor-independent interface for such
@@ -102,9 +102,9 @@ Table of Contents
documents and subfolders currently contained by the folder
-<span class="grey">de Jong [Page 2]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-3" id="page-3" name="page-3"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 2]</span>
+</pre><pre><a href="#page-3" id="page-3" name="page-3"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
* GET a document: retrieve its content type, current version,
@@ -122,7 +122,7 @@ Table of Contents
The exact details of these four actions are described in this
specification.
-<span class="h2"><a class="selflink" href="#section-2" name="section-2">2</a>. Terminology</span>
+<span><a href="#section-2" name="section-2">2</a>. Terminology</span>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
@@ -135,7 +135,7 @@ Table of Contents
implement the general requirement when such failure would result in
interoperability failure.
-<span class="h2"><a class="selflink" href="#section-3" name="section-3">3</a>. Storage model</span>
+<span><a href="#section-3" name="section-3">3</a>. Storage model</span>
The server stores data in nodes that form a tree structure.
Internal nodes are called 'folders' and leaf nodes are called
@@ -152,9 +152,9 @@ Table of Contents
For a document, the server stores, and should be able to produce:
-<span class="grey">de Jong [Page 3]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-4" id="page-4" name="page-4"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 3]</span>
+</pre><pre><a href="#page-4" id="page-4" name="page-4"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
@@ -163,7 +163,7 @@ Table of Contents
* content length
* content
-<span class="h2"><a class="selflink" href="#section-4" name="section-4">4</a>. Requests</span>
+<span><a href="#section-4" name="section-4">4</a>. Requests</span>
Client-to-server requests SHOULD be made over https [<a href="#ref-HTTPS">HTTPS</a>], and
servers MUST comply with HTTP/1.1 [<a href="#ref-HTTP">HTTP</a>]. Specifically, they
@@ -202,9 +202,9 @@ Table of Contents
A folder description is a map containing a string-valued 'ETag'
-<span class="grey">de Jong [Page 4]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-5" id="page-5" name="page-5"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 4]</span>
+</pre><pre><a href="#page-5" id="page-5" name="page-5"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
field, representing the folder's current version.
@@ -252,9 +252,9 @@ Table of Contents
version as a strong ETag in an 'ETag' header.
-<span class="grey">de Jong [Page 5]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-6" id="page-6" name="page-6"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 5]</span>
+</pre><pre><a href="#page-6" id="page-6" name="page-6"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
@@ -302,12 +302,12 @@ Table of Contents
-<span class="grey">de Jong [Page 6]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-7" id="page-7" name="page-7"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 6]</span>
+</pre><pre><a href="#page-7" id="page-7" name="page-7"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
-<span class="h2"><a class="selflink" href="#section-5" name="section-5">5</a>. Response codes</span>
+<span><a href="#section-5" name="section-5">5</a>. Response codes</span>
Response codes SHOULD be given as defined by [HTTP, <a href="#section-6">section 6</a>] and
[BEARER, <a href="#section-3.1">section 3.1</a>]. The following is a non-normative checklist
@@ -340,7 +340,7 @@ Table of Contents
Clients SHOULD also handle the case where a response takes too long
to arrive, or where no response is received at all.
-<span class="h2"><a class="selflink" href="#section-6" name="section-6">6</a>. Versioning</span>
+<span><a href="#section-6" name="section-6">6</a>. Versioning</span>
All successful requests MUST return an 'ETag' header [<a href="#ref-HTTP">HTTP</a>] with, in
the case of GET, the current version, in the case of PUT, the new
@@ -352,9 +352,9 @@ Table of Contents
-<span class="grey">de Jong [Page 7]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-8" id="page-8" name="page-8"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 7]</span>
+</pre><pre><a href="#page-8" id="page-8" name="page-8"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
GET requests MAY have a comma-separated list of revisions in an
@@ -370,14 +370,14 @@ Table of Contents
A provider MAY offer version rollback functionality to its users,
but this specification does not define the user interface for that.
-<span class="h2"><a class="selflink" href="#section-7" name="section-7">7</a>. CORS headers</span>
+<span><a href="#section-7" name="section-7">7</a>. CORS headers</span>
All responses MUST carry CORS headers [<a href="#ref-CORS">CORS</a>]. The server MUST also
reply to OPTIONS requests as per CORS. For GET requests, a wildcard
origin MAY be returned, but for PUT and DELETE requests, the
response MUST echo back the Origin header sent by the client.
-<span class="h2"><a class="selflink" href="#section-8" name="section-8">8</a>. Session description</span>
+<span><a href="#section-8" name="section-8">8</a>. Session description</span>
The information that a client needs to receive in order to be able
to connect to a server SHOULD reach the client as described in the
@@ -402,9 +402,9 @@ Table of Contents
tokens, to the URL that is the concatenation of &lt;storage_root&gt; with
-<span class="grey">de Jong [Page 8]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-9" id="page-9" name="page-9"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 8]</span>
+</pre><pre><a href="#page-9" id="page-9" name="page-9"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
'/' plus one or more &lt;folder&gt; '/' strings indicating a path in the
@@ -418,7 +418,7 @@ Table of Contents
* https://storage.example.com/bob/public/documents/
* https://storage.example.com/bob/public/documents/draft.txt
-<span class="h2"><a class="selflink" href="#section-9" name="section-9">9</a>. Bearer tokens and access control</span>
+<span><a href="#section-9" name="section-9">9</a>. Bearer tokens and access control</span>
A bearer token represents one or more access scopes. These access
scopes are represented as strings of the form &lt;module&gt; &lt;level&gt;,
@@ -452,13 +452,13 @@ Table of Contents
<a href="#section-2.3">section 2.3</a>].
-<span class="grey">de Jong [Page 9]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-10" id="page-10" name="page-10"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 9]</span>
+</pre><pre><a href="#page-10" id="page-10" name="page-10"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
-<span class="h2"><a class="selflink" href="#section-10" name="section-10">10</a>. Application-first bearer token issuance</span>
+<span><a href="#section-10" name="section-10">10</a>. Application-first bearer token issuance</span>
To make a remoteStorage server available as 'the remoteStorage of
&lt;account&gt; at &lt;host&gt;', exactly one link of the following format
@@ -502,9 +502,9 @@ Table of Contents
instead of in the request header.
-<span class="grey">de Jong [Page 10]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-11" id="page-11" name="page-11"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 10]</span>
+</pre><pre><a href="#page-11" id="page-11" name="page-11"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
@@ -533,7 +533,7 @@ Table of Contents
client_id parameter in favor of relying on the redirect_uri
parameter for client identification.
-<span class="h2"><a class="selflink" href="#section-11" name="section-11">11</a>. Storage-first bearer token issuance</span>
+<span><a href="#section-11" name="section-11">11</a>. Storage-first bearer token issuance</span>
The provider MAY also present a dashboard to the user, where they
have some way to add open web app manifests [<a href="#ref-MANIFEST">MANIFEST</a>]. Adding a
@@ -552,9 +552,9 @@ Table of Contents
to the application or open it in a new window. To mimic coming back
-<span class="grey">de Jong [Page 11]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-12" id="page-12" name="page-12"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 11]</span>
+</pre><pre><a href="#page-12" id="page-12" name="page-12"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
from the OAuth dialog, it MAY add 'access_token' and 'scope'
@@ -591,20 +591,20 @@ Table of Contents
debug tool, thus bypassing the need for an OAuth dance. Clients
SHOULD NOT rely on this in production.
-<span class="h2"><a class="selflink" href="#section-12" name="section-12">12</a>. Example wire transcripts</span>
+<span><a href="#section-12" name="section-12">12</a>. Example wire transcripts</span>
The following examples are not normative ("\" indicates a line was
wrapped).
-<span class="h3"><a class="selflink" href="#section-12.1" name="section-12.1">12.1</a>. WebFinger</span>
+<span><a href="#section-12.1" name="section-12.1">12.1</a>. WebFinger</span>
In application-first, an in-browser application might issue the
following request, using XMLHttpRequest and CORS:
-<span class="grey">de Jong [Page 12]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-13" id="page-13" name="page-13"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 12]</span>
+</pre><pre><a href="#page-13" id="page-13" name="page-13"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
@@ -643,7 +643,7 @@ motestorage-04",
}]
}
-<span class="h3"><a class="selflink" href="#section-12.2" name="section-12.2">12.2</a>. OAuth dialog form</span>
+<span><a href="#section-12.2" name="section-12.2">12.2</a>. OAuth dialog form</span>
Once the in-browser application has discovered the server's OAuth
end-point, it will typically redirect the user to this URL, in
@@ -652,9 +652,9 @@ motestorage-04",
the account's "myfavoritedrinks" scope:
-<span class="grey">de Jong [Page 13]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-14" id="page-14" name="page-14"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 13]</span>
+</pre><pre><a href="#page-14" id="page-14" name="page-14"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
@@ -673,7 +673,7 @@ unhosted.5apps.com&amp;response_type=token HTTP/1.1
&lt;title&gt;Allow access?&lt;/title&gt;
...
-<span class="h3"><a class="selflink" href="#section-12.3" name="section-12.3">12.3</a>. OAuth dialog form submission</span>
+<span><a href="#section-12.3" name="section-12.3">12.3</a>. OAuth dialog form submission</span>
When the user submits the form, the request would look something
like this:
@@ -698,13 +698,13 @@ low
Location:https://drinks-unhosted.5apps.com/#access_token=j2YnGt\
XjzzzHNjkd1CJxoQubA1o%3D&amp;token_type=bearer&amp;state=
-<span class="h3"><a class="selflink" href="#section-12.4" name="section-12.4">12.4</a>. OPTIONS preflight</span>
+<span><a href="#section-12.4" name="section-12.4">12.4</a>. OPTIONS preflight</span>
-<span class="grey">de Jong [Page 14]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-15" id="page-15" name="page-15"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 14]</span>
+</pre><pre><a href="#page-15" id="page-15" name="page-15"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
When an in-browser application makes a cross-origin request which
@@ -726,7 +726,7 @@ XjzzzHNjkd1CJxoQubA1o%3D&amp;token_type=bearer&amp;state=
Access-Control-Allow-Headers: Authorization, Content-Length, Co\
ntent-Type, Origin, X-Requested-With, If-Match, If-None-Match
-<span class="h3"><a class="selflink" href="#section-12.5" name="section-12.5">12.5</a>. Initial PUT</span>
+<span><a href="#section-12.5" name="section-12.5">12.5</a>. Initial PUT</span>
An initial PUT may contain an 'If-None-Match: *' header, like this:
@@ -749,12 +749,12 @@ ntent-Type, Origin, X-Requested-With, If-Match, If-None-Match
Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
ETag: "1382694045000"
-<span class="h3"><a class="selflink" href="#section-12.6" name="section-12.6">12.6</a>. Subsequent PUT</span>
+<span><a href="#section-12.6" name="section-12.6">12.6</a>. Subsequent PUT</span>
-<span class="grey">de Jong [Page 15]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-16" id="page-16" name="page-16"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 15]</span>
+</pre><pre><a href="#page-16" id="page-16" name="page-16"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
@@ -779,7 +779,7 @@ e.io/spec/modules/myfavoritedrinks/drink"}
Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
ETag: "1382694048000"
-<span class="h3"><a class="selflink" href="#section-12.7" name="section-12.7">12.7</a>. GET</span>
+<span><a href="#section-12.7" name="section-12.7">12.7</a>. GET</span>
A GET request would also include the bearer token, and optionally
an If-None-Match header:
@@ -802,9 +802,9 @@ e.io/spec/modules/myfavoritedrinks/drink"}
HTTP/1.1 200 OK
-<span class="grey">de Jong [Page 16]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-17" id="page-17" name="page-17"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 16]</span>
+</pre><pre><a href="#page-17" id="page-17" name="page-17"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
@@ -838,7 +838,7 @@ charset=UTF-8","Content-Length":106}}}
HTTP/1.1 404 Not Found
Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
-<span class="h3"><a class="selflink" href="#section-12.8" name="section-12.8">12.8</a>. DELETE</span>
+<span><a href="#section-12.8" name="section-12.8">12.8</a>. DELETE</span>
A DELETE request may look like this:
@@ -852,9 +852,9 @@ charset=UTF-8","Content-Length":106}}}
-<span class="grey">de Jong [Page 17]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-18" id="page-18" name="page-18"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 17]</span>
+</pre><pre><a href="#page-18" id="page-18" name="page-18"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
And the server may respond with a 412 Conflict or a 200 OK status:
@@ -863,7 +863,7 @@ charset=UTF-8","Content-Length":106}}}
Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
ETag: "1382694048000"
-<span class="h2"><a class="selflink" href="#section-13" name="section-13">13</a>. Distributed versioning</span>
+<span><a href="#section-13" name="section-13">13</a>. Distributed versioning</span>
This section is non-normative, and is intended to explain some of
the design choices concerning ETags and folder listings. At the
@@ -902,9 +902,9 @@ charset=UTF-8","Content-Length":106}}}
-<span class="grey">de Jong [Page 18]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-19" id="page-19" name="page-19"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 18]</span>
+</pre><pre><a href="#page-19" id="page-19" name="page-19"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
As an example, the root folder may contain 10 directories,
@@ -925,7 +925,7 @@ charset=UTF-8","Content-Length":106}}}
but it is up to whichever client discovers a given version
conflict, to resolve it.
-<span class="h2"><a class="selflink" href="#section-14" name="section-14">14</a>. Security Considerations</span>
+<span><a href="#section-14" name="section-14">14</a>. Security Considerations</span>
To prevent man-in-the-middle attacks, the use of https instead of
http is important for both the interface itself and all end-points
@@ -952,9 +952,9 @@ charset=UTF-8","Content-Length":106}}}
OAuth dialog and launch dashboard or token revokation interface
-<span class="grey">de Jong [Page 19]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-20" id="page-20" name="page-20"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 19]</span>
+</pre><pre><a href="#page-20" id="page-20" name="page-20"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
SHOULD be on a different origin than the remoteStorage interface.
@@ -970,7 +970,7 @@ charset=UTF-8","Content-Length":106}}}
The server SHOULD also detect and stop denial-of-service attacks
that aim to overwhelm its interface with too much traffic.
-<span class="h2"><a class="selflink" href="#section-15" name="section-15">15</a>. IANA Considerations</span>
+<span><a href="#section-15" name="section-15">15</a>. IANA Considerations</span>
This document registers the 'remotestorage' link relation, as well
as the following WebFinger properties:
@@ -980,7 +980,7 @@ charset=UTF-8","Content-Length":106}}}
* "<a href="http://tools.ietf.org/html/rfc7233">http://tools.ietf.org/html/rfc7233</a>"
* "<a href="http://remotestorage.io/spec/web-authoring">http://remotestorage.io/spec/web-authoring</a>"
-<span class="h2"><a class="selflink" href="#section-16" name="section-16">16</a>. Acknowledgements</span>
+<span><a href="#section-16" name="section-16">16</a>. Acknowledgements</span>
The authors would like to thank everybody who contributed to the
development of this protocol, including Kenny Bentley, Javier Diaz,
@@ -993,18 +993,18 @@ charset=UTF-8","Content-Length":106}}}
Rick van Rein, Mark Nottingham, Julian Reschke, and Markus
Lanthaler, among many others.
-<span class="h2"><a class="selflink" href="#section-17" name="section-17">17</a>. References</span>
+<span><a href="#section-17" name="section-17">17</a>. References</span>
-<span class="h3"><a class="selflink" href="#section-17.1" name="section-17.1">17.1</a>. Normative References</span>
+<span><a href="#section-17.1" name="section-17.1">17.1</a>. Normative References</span>
[<a id="ref-WORDS" name="ref-WORDS">WORDS</a>]
Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", <a href="http://fakehost/test/bcp14">BCP 14</a>, <a href="http://fakehost/test/rfc2119">RFC 2119</a>, March 1997.
-<span class="grey">de Jong [Page 20]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-21" id="page-21" name="page-21"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 20]</span>
+</pre><pre><a href="#page-21" id="page-21" name="page-21"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
@@ -1020,7 +1020,7 @@ charset=UTF-8","Content-Length":106}}}
"<a href="#section-4.2">Section 4.2</a>: Implicit Grant", in: Hardt, D. (ed), "The OAuth
2.0 Authorization Framework", <a href="http://fakehost/test/rfc6749">RFC6749</a>, October 2012.
-<span class="h3"><a class="selflink" href="#section-17.2" name="section-17.2">17.2</a>. Informative References</span>
+<span><a href="#section-17.2" name="section-17.2">17.2</a>. Informative References</span>
[<a id="ref-HTTPS" name="ref-HTTPS">HTTPS</a>]
Rescorla, E., "HTTP Over TLS", <a href="http://fakehost/test/rfc2818">RFC2818</a>, May 2000.
@@ -1052,9 +1052,9 @@ charset=UTF-8","Content-Length":106}}}
W3C Candidate Recommendation 29 January 2013",
-<span class="grey">de Jong [Page 21]</span>
-</pre><pre class="newpage"><a class="invisible" href="#page-22" id="page-22" name="page-22"> </a>
-<span class="grey">Internet-Draft remoteStorage December 2014</span>
+<span>de Jong [Page 21]</span>
+</pre><pre><a href="#page-22" id="page-22" name="page-22"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
<a href="http://www.w3.org/TR/cors/">http://www.w3.org/TR/cors/</a>, January 2013.
@@ -1081,7 +1081,7 @@ charset=UTF-8","Content-Length":106}}}
September 2014. <a href="https://github.com/michielbdejong/resite/wiki">https://github.com/michielbdejong/resite/wiki</a>
/Using-remoteStorage-for-web-authoring
-<span class="h2"><a class="selflink" href="#section-18" name="section-18">18</a>. Authors' addresses</span>
+<span><a href="#section-18" name="section-18">18</a>. Authors' addresses</span>
Michiel B. de Jong
IndieHosters
@@ -1104,7 +1104,7 @@ charset=UTF-8","Content-Length":106}}}
de Jong [Page 22]
-</pre><span class="noprint"><small><small>Html markup produced by rfcmarkup 1.111, available from
+</pre><span><small><small>Html markup produced by rfcmarkup 1.111, available from
<a href="https://tools.ietf.org/tools/rfcmarkup/">https://tools.ietf.org/tools/rfcmarkup/</a>
</small></small></span>
</p></div> \ No newline at end of file
diff --git a/test/test-pages/infobae/expected.html b/test/test-pages/infobae/expected.html
index 5d1afcc..0ae3610 100644
--- a/test/test-pages/infobae/expected.html
+++ b/test/test-pages/infobae/expected.html
@@ -1 +1 @@
-<div class="article-body article-body-elements" id="article-body"> <div id="article-content"> <div class="row"> <figure class="element element-image col-xs-12"><div class="single-image"> <img alt="Jonathan Castellari tiene 25 años y fue golpeado por una patota de 8 hombres" class="image-lazy" data-original="https://www.infobae.com/new-resizer/b_LU5bsrOM_BmZtNMzegvdNoPNE=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23QU6XDTECU5EDVI4HBTME4PLIOQ" height="422.32142857142856" id="QU6XDTECU5EDVI4HBTME4PLIOQ" src="https://www.infobae.com/new-resizer/b_LU5bsrOM_BmZtNMzegvdNoPNE=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg" width="750"></img></div> <figcaption class=""><span class="credit">Jonathan Castellari tiene 25 años y fue golpeado por una patota de 8 hombres</span> </figcaption></figure></div> <div class="row"> <p class="element element-paragraph"> Eran casi las 6:30 de la mañana. Jonathan Castellari, de 25 años, volvía de bailar junto a Sebastián, su amigo. Les pareció una buena idea detenerse en el Mc Donald's de Avenida Córdoba al 3100 con el objetivo de desayunar y continuar el viaje hasta sus hogares. Mientras esperaban la comida, un grupo de 8 chicos de entre 20 y 25 años ingresó al local con el mismo objetivo, aunque adoptaron otro plan: mirarlos fijamente, reírse de ellos y hacer chistes sobre la sexualidad de ambos.</p> </div> <div class="row"> <p class="element element-paragraph"> Sebastián relató a<strong> Infobae:</strong> "Estábamos esperando nuestro pedido, haciéndonos chistes, riéndonos de lo sucedido durante la noche. Hablábamos entre nosotros. En ese momento entró un grupo de 8 chicos, de contextura grande, y notamos que estaban alcoholizados. Nos miraban, hacían chistes, se reían de nosotros. Fue ahí cuando decidimos salir con Jonathan a fumar un cigarrillo y esperar que se fueran. <strong>Él salió primero y vi que uno de estos pibes lo abrazó y se lo llevó. Instantáneamente se metieron los demás a pegarle. Le pegaron mucho.</strong> Quise pararlos y no pude. Ligué yo también, pero nada en comparación a lo que sufrió Jonathan. Cuando lo soltaron lo agarré como pude y justo una enfermera del Sanatorio Güemes (está a dos cuadras del local) estaba tomando un café y le dio los primeros auxilios".</p> </div> <div class="row"> <figure class="element element-image col-xs-12"><div class="single-image"> <img alt="" class="image-lazy" data-original="https://www.infobae.com/new-resizer/PUJQSwJZOtaetM7tXKqic4Ib1Wg=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161934/Jonathan-Castellani-SF-2.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23NH7MLFDU4JH4VOSMUUN6JPRYUQ" height="937.7289377289377" id="NH7MLFDU4JH4VOSMUUN6JPRYUQ" src="https://www.infobae.com/new-resizer/PUJQSwJZOtaetM7tXKqic4Ib1Wg=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161934/Jonathan-Castellani-SF-2.jpg" width="750"></img></div> <figcaption class=""><span class="credit"></span> </figcaption></figure></div> <div class="row"> <p class="element element-paragraph"> "Fuimos a verlo recién, no paraba de llorar y de decirnos que le pegaron por puto", dijo a <strong>Infobae</strong> María Rachid, titular del Instituto contra la Discriminación de la Defensoría del Pueblo CABA. "Lamentablemente su situación es delicada. Recién nos informaron que lo van a intervenir quirúrgicamente porque <strong>podría perder un ojo</strong>".</p> </div> <div class="row"> <p class="element element-paragraph"> Como Jonathan no conoce a los agresores, desde la Defensoría y la Federación LGBT se comunicaron con autoridades del Ministerio de Seguridad para que soliciten las cámaras de seguridad del Mc Donald's, del sanatorio Güemes y de otros negocios de la cuadra para poder identificarlos.</p> </div> <div class="row"> <figure class="element element-image col-xs-12"><div class="single-image"> <img alt="" class="image-lazy" data-original="https://www.infobae.com/new-resizer/yS5kphJxw_CBn1mycqbcrMjoNmQ=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163101/JonathanGay2.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23O7QMD7FTTNCIJOVETW7KYJVVDA" height="422.32142857142856" id="O7QMD7FTTNCIJOVETW7KYJVVDA" src="https://www.infobae.com/new-resizer/yS5kphJxw_CBn1mycqbcrMjoNmQ=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163101/JonathanGay2.jpg" width="750"></img></div> <figcaption class=""><span class="credit"></span> </figcaption></figure></div> <div class="row"> <p class="element element-paragraph"> Gastón Llopart, abogado de Sebastián, le detalló a <strong>Infobae</strong> que Jonathan está "próximo a recibir una intervención quirúrgica, ya que<strong> tuvo fractura en el hueso del pómulo derecho de su rostro. Sebastián llamó al 911 dos veces y no fueron.</strong> Me contaron que los agresores los siguieron hasta el sanatorio mientras los insultaban: la gente de seguridad tuvo que echarlos".</p> </div> <div class="row"> <p class="element element-paragraph"> Llopart agregó que la patota, <strong>mientras lo golpeaban, le gritaba: "Te vamos a matar por puto"</strong>. La familia de Jonathan está en el sanatorio a la espera de la intervención quirúrgica. Llopart dijo que "harán la denuncia el lunes por la mañana, cuando existan mayores precisiones de lo ocurrido".</p> </div> <div class="row"> <figure class="element element-image col-xs-12"><div class="single-image"> <img alt="" class="image-lazy" data-original="https://www.infobae.com/new-resizer/cFidtpanVMHP25zNoWF78I4qjMA=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161927/Jonathan-Castellani-1920.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%237BCY2NEI6ZADBA3TRJGQC6R3BU" height="422.32142857142856" id="7BCY2NEI6ZADBA3TRJGQC6R3BU" src="https://www.infobae.com/new-resizer/cFidtpanVMHP25zNoWF78I4qjMA=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161927/Jonathan-Castellani-1920.jpg" width="750"></img></div> <figcaption class=""><span class="credit"></span> </figcaption></figure></div> <div class="row"> <p class="element element-paragraph"> Jonathan y Sebastián forman parte de Ciervos Pampas Rugby Club, un equipo que nació hace cinco años como el primer equipo de la Argentina por la diversidad sexual. Se trata de un combinado que no está integrado en un 100% por varones gays, pero en el que estos encuentran un lugar en el cual expresar libremente su orientación sexual, <strong>sin miedo a los prejuicios o a la discriminación.</strong> El club emitió un comunicado en su cuenta de Facebook, relatando los hechos y solidarizándose con Jonathan.</p> </div> </div> </div> \ No newline at end of file
+<div id="article-body"> <div id="article-content"> <div> <figure><div> <img alt="Jonathan Castellari tiene 25 años y fue golpeado por una patota de 8 hombres" data-original="https://www.infobae.com/new-resizer/b_LU5bsrOM_BmZtNMzegvdNoPNE=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23QU6XDTECU5EDVI4HBTME4PLIOQ" height="422.32142857142856" id="QU6XDTECU5EDVI4HBTME4PLIOQ" src="https://www.infobae.com/new-resizer/b_LU5bsrOM_BmZtNMzegvdNoPNE=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg" width="750"></img></div> <figcaption class=""><span>Jonathan Castellari tiene 25 años y fue golpeado por una patota de 8 hombres</span> </figcaption></figure></div> <div> <p> Eran casi las 6:30 de la mañana. Jonathan Castellari, de 25 años, volvía de bailar junto a Sebastián, su amigo. Les pareció una buena idea detenerse en el Mc Donald's de Avenida Córdoba al 3100 con el objetivo de desayunar y continuar el viaje hasta sus hogares. Mientras esperaban la comida, un grupo de 8 chicos de entre 20 y 25 años ingresó al local con el mismo objetivo, aunque adoptaron otro plan: mirarlos fijamente, reírse de ellos y hacer chistes sobre la sexualidad de ambos.</p> </div> <div> <p> Sebastián relató a<strong> Infobae:</strong> "Estábamos esperando nuestro pedido, haciéndonos chistes, riéndonos de lo sucedido durante la noche. Hablábamos entre nosotros. En ese momento entró un grupo de 8 chicos, de contextura grande, y notamos que estaban alcoholizados. Nos miraban, hacían chistes, se reían de nosotros. Fue ahí cuando decidimos salir con Jonathan a fumar un cigarrillo y esperar que se fueran. <strong>Él salió primero y vi que uno de estos pibes lo abrazó y se lo llevó. Instantáneamente se metieron los demás a pegarle. Le pegaron mucho.</strong> Quise pararlos y no pude. Ligué yo también, pero nada en comparación a lo que sufrió Jonathan. Cuando lo soltaron lo agarré como pude y justo una enfermera del Sanatorio Güemes (está a dos cuadras del local) estaba tomando un café y le dio los primeros auxilios".</p> </div> <div> <figure><div> <img alt="" data-original="https://www.infobae.com/new-resizer/PUJQSwJZOtaetM7tXKqic4Ib1Wg=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161934/Jonathan-Castellani-SF-2.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23NH7MLFDU4JH4VOSMUUN6JPRYUQ" height="937.7289377289377" id="NH7MLFDU4JH4VOSMUUN6JPRYUQ" src="https://www.infobae.com/new-resizer/PUJQSwJZOtaetM7tXKqic4Ib1Wg=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161934/Jonathan-Castellani-SF-2.jpg" width="750"></img></div> <figcaption class=""><span></span> </figcaption></figure></div> <div> <p> "Fuimos a verlo recién, no paraba de llorar y de decirnos que le pegaron por puto", dijo a <strong>Infobae</strong> María Rachid, titular del Instituto contra la Discriminación de la Defensoría del Pueblo CABA. "Lamentablemente su situación es delicada. Recién nos informaron que lo van a intervenir quirúrgicamente porque <strong>podría perder un ojo</strong>".</p> </div> <div> <p> Como Jonathan no conoce a los agresores, desde la Defensoría y la Federación LGBT se comunicaron con autoridades del Ministerio de Seguridad para que soliciten las cámaras de seguridad del Mc Donald's, del sanatorio Güemes y de otros negocios de la cuadra para poder identificarlos.</p> </div> <div> <figure><div> <img alt="" data-original="https://www.infobae.com/new-resizer/yS5kphJxw_CBn1mycqbcrMjoNmQ=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163101/JonathanGay2.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23O7QMD7FTTNCIJOVETW7KYJVVDA" height="422.32142857142856" id="O7QMD7FTTNCIJOVETW7KYJVVDA" src="https://www.infobae.com/new-resizer/yS5kphJxw_CBn1mycqbcrMjoNmQ=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163101/JonathanGay2.jpg" width="750"></img></div> <figcaption class=""><span></span> </figcaption></figure></div> <div> <p> Gastón Llopart, abogado de Sebastián, le detalló a <strong>Infobae</strong> que Jonathan está "próximo a recibir una intervención quirúrgica, ya que<strong> tuvo fractura en el hueso del pómulo derecho de su rostro. Sebastián llamó al 911 dos veces y no fueron.</strong> Me contaron que los agresores los siguieron hasta el sanatorio mientras los insultaban: la gente de seguridad tuvo que echarlos".</p> </div> <div> <p> Llopart agregó que la patota, <strong>mientras lo golpeaban, le gritaba: "Te vamos a matar por puto"</strong>. La familia de Jonathan está en el sanatorio a la espera de la intervención quirúrgica. Llopart dijo que "harán la denuncia el lunes por la mañana, cuando existan mayores precisiones de lo ocurrido".</p> </div> <div> <figure><div> <img alt="" data-original="https://www.infobae.com/new-resizer/cFidtpanVMHP25zNoWF78I4qjMA=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161927/Jonathan-Castellani-1920.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%237BCY2NEI6ZADBA3TRJGQC6R3BU" height="422.32142857142856" id="7BCY2NEI6ZADBA3TRJGQC6R3BU" src="https://www.infobae.com/new-resizer/cFidtpanVMHP25zNoWF78I4qjMA=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161927/Jonathan-Castellani-1920.jpg" width="750"></img></div> <figcaption class=""><span></span> </figcaption></figure></div> <div> <p> Jonathan y Sebastián forman parte de Ciervos Pampas Rugby Club, un equipo que nació hace cinco años como el primer equipo de la Argentina por la diversidad sexual. Se trata de un combinado que no está integrado en un 100% por varones gays, pero en el que estos encuentran un lugar en el cual expresar libremente su orientación sexual, <strong>sin miedo a los prejuicios o a la discriminación.</strong> El club emitió un comunicado en su cuenta de Facebook, relatando los hechos y solidarizándose con Jonathan.</p> </div> </div> </div> \ No newline at end of file
diff --git a/test/test-pages/keep-images/expected.html b/test/test-pages/keep-images/expected.html
index 35d42ca..5a5a176 100644
--- a/test/test-pages/keep-images/expected.html
+++ b/test/test-pages/keep-images/expected.html
@@ -1,109 +1,109 @@
-<div class="notesSource">
- <div class="postField postField--body">
- <section class=" section--first section--last" name="ef8c">
- <div class="section-content">
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage graf--first" id="b9ad" name="b9ad"><div class="aspectRatioPlaceholder is-locked">
+<div>
+ <div>
+ <section name="ef8c">
+ <div>
+ <div>
+ <figure id="b9ad" name="b9ad"><div>
- <img class="graf-image" data-height="1402" data-image-id="1*sLDnS1UWEFIS33uLMxq3cw.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*sLDnS1UWEFIS33uLMxq3cw.jpeg"></img></div>
+ <img data-height="1402" data-image-id="1*sLDnS1UWEFIS33uLMxq3cw.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*sLDnS1UWEFIS33uLMxq3cw.jpeg"></img></div>
</figure></div>
- <div class="section-inner layoutSingleColumn">
+ <div>
- <h4 class="graf--h4" data-align="center" id="9736" name="9736">Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions asked.</h4>
+ <h4 data-align="center" id="9736" name="9736">Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions asked.</h4>
- <figure class="graf--figure" id="7417" name="7417"><div class="aspectRatioPlaceholder is-locked">
+ <figure id="7417" name="7417"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*3vIhkoHIzcxvUdijoCVx6w.png" data-height="24" data-image-id="1*3vIhkoHIzcxvUdijoCVx6w.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*3vIhkoHIzcxvUdijoCVx6w.png"></img></div>
- </figure><p class="graf--p" id="8a83" name="8a83">Standing at a table in a chemistry lab in Barcelona, Cristina Gil Lladanosa
+ <img data-action="zoom" data-action-value="1*3vIhkoHIzcxvUdijoCVx6w.png" data-height="24" data-image-id="1*3vIhkoHIzcxvUdijoCVx6w.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*3vIhkoHIzcxvUdijoCVx6w.png"></img></div>
+ </figure><p id="8a83" name="8a83">Standing at a table in a chemistry lab in Barcelona, Cristina Gil Lladanosa
tears open a silver, smell-proof protective envelope. She slides out a
transparent bag full of crystals. Around her, machines whir and hum, and
other researchers mill around in long, white coats.</p>
- <p class="graf--p" id="b675" name="b675">She is holding the lab’s latest delivery of a drug bought from the “deep
+ <p id="b675" name="b675">She is holding the lab’s latest delivery of a drug bought from the “deep
web,” the clandestine corner of the internet that isn’t reachable by normal
search engines, and is home to some sites that require special software
- to access. Labeled as <a class="markup--anchor markup--p-anchor" data-href="http://en.wikipedia.org/wiki/MDMA" href="http://en.wikipedia.org/wiki/MDMA" rel="nofollow">MDMA</a> (the street
+ to access. Labeled as <a data-href="http://en.wikipedia.org/wiki/MDMA" href="http://en.wikipedia.org/wiki/MDMA" rel="nofollow">MDMA</a> (the street
term is ecstasy), this sample has been shipped from Canada. Lladanosa and
her colleague Iván Fornís Espinosa have also received drugs, anonymously,
from people in China, Australia, Europe and the United States.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="3c0b" name="3c0b">“Here we have speed, MDMA, cocaine, pills,” Lladanosa says, pointing to
+ <p id="3c0b" name="3c0b">“Here we have speed, MDMA, cocaine, pills,” Lladanosa says, pointing to
vials full of red, green, blue and clear solutions sitting in labeled boxes.</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="c4e6" name="c4e6"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="c4e6" name="c4e6"><div>
- <img class="graf-image" data-height="1402" data-image-id="1*4gN1-fzOwCniw-DbqQjDeQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*4gN1-fzOwCniw-DbqQjDeQ.jpeg"></img></div>
- <figcaption class="imageCaption">Cristina Gil Lladanosa, at the Barcelona testing lab | photo by Joan Bardeletti</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <p class="graf--p" id="7a54" name="7a54">Since 2011, with the launch of <a class="markup--anchor markup--p-anchor" data-href="http://en.wikipedia.org/wiki/Silk_Road_%28marketplace%29" href="http://en.wikipedia.org/wiki/Silk_Road_%28marketplace%29" rel="nofollow">Silk Road</a>, anybody has been able to safely buy illegal
+ <img data-height="1402" data-image-id="1*4gN1-fzOwCniw-DbqQjDeQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*4gN1-fzOwCniw-DbqQjDeQ.jpeg"></img></div>
+ <figcaption>Cristina Gil Lladanosa, at the Barcelona testing lab | photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="7a54" name="7a54">Since 2011, with the launch of <a data-href="http://en.wikipedia.org/wiki/Silk_Road_%28marketplace%29" href="http://en.wikipedia.org/wiki/Silk_Road_%28marketplace%29" rel="nofollow">Silk Road</a>, anybody has been able to safely buy illegal
drugs from the deep web and have them delivered to their door. Though the
FBI shut down that black market in October 2013, other outlets have emerged
to fill its role. For the last 10 months the lab at which Lladanosa and
Espinosa work has offered a paid testing service of those drugs. By sending
in samples for analysis, users can know exactly what it is they are buying,
and make a more informed decision about whether to ingest the substance.
- The group, called <a class="markup--anchor markup--p-anchor" data-href="http://energycontrol.org/" href="http://energycontrol.org/" rel="nofollow">Energy Control</a>,
+ The group, called <a data-href="http://energycontrol.org/" href="http://energycontrol.org/" rel="nofollow">Energy Control</a>,
which has being running “harm reduction” programs since 1999, is the first
to run a testing service explicitly geared towards verifying those purchases
from the deep web.</p>
- <p class="graf--p" id="4395" name="4395">Before joining Energy Control, Lladanosa briefly worked at a pharmacy,
+ <p id="4395" name="4395">Before joining Energy Control, Lladanosa briefly worked at a pharmacy,
whereas Espinosa spent 14 years doing drug analysis. Working at Energy
Control is “more gratifying,” and “rewarding” than her previous jobs, Lladanosa
told me. They also receive help from a group of volunteers, made up of
a mixture of “squatters,” as Espinosa put it, and medical students, who
prepare the samples for testing.</p>
- <p class="graf--p" id="0c18" name="0c18">After weighing out the crystals, aggressively mixing it with methanol
+ <p id="0c18" name="0c18">After weighing out the crystals, aggressively mixing it with methanol
until dissolved, and delicately pouring the liquid into a tiny brown bottle,
Lladanosa, a petite woman who is nearly engulfed by her lab coat, is now
ready to test the sample. She loads a series of three trays on top of a
large white appliance sitting on a table, called a gas chromatograph (GC).
A jungle of thick pipes hang from the lab’s ceiling behind it.</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="559c" name="559c"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="559c" name="559c"><div>
- <img class="graf-image" data-height="1402" data-image-id="1*2KPmZkIBUrhps-2uwDvYFQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*2KPmZkIBUrhps-2uwDvYFQ.jpeg"></img></div>
- <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <p class="graf--p graf--startsWithDoubleQuote" id="1549" name="1549">“Chromatography separates all the substances,” Lladanosa says as she loads
+ <img data-height="1402" data-image-id="1*2KPmZkIBUrhps-2uwDvYFQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*2KPmZkIBUrhps-2uwDvYFQ.jpeg"></img></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="1549" name="1549">“Chromatography separates all the substances,” Lladanosa says as she loads
the machine with an array of drugs sent from the deep web and local Spanish
users. It can tell whether a sample is pure or contaminated, and if the
latter, with what.</p>
- <p class="graf--p" id="5d0f" name="5d0f">Rushes of hot air blow across the desk as the gas chromatograph blasts
+ <p id="5d0f" name="5d0f">Rushes of hot air blow across the desk as the gas chromatograph blasts
the sample at 280 degrees Celsius. Thirty minutes later the machine’s robotic
arm automatically moves over to grip another bottle. The machine will continue
cranking through the 150 samples in the trays for most of the work week.</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="d6aa" name="d6aa"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="d6aa" name="d6aa"><div>
- <img class="graf-image" data-height="1241" data-image-id="1*PU40bbbox2Ompc5I3RE99A.jpeg" data-width="2013" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*PU40bbbox2Ompc5I3RE99A.jpeg"></img></div>
- <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <p class="graf--p" id="15e0" name="15e0">To get the drugs to Barcelona, a user mails at least 10 milligrams of
+ <img data-height="1241" data-image-id="1*PU40bbbox2Ompc5I3RE99A.jpeg" data-width="2013" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*PU40bbbox2Ompc5I3RE99A.jpeg"></img></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="15e0" name="15e0">To get the drugs to Barcelona, a user mails at least 10 milligrams of
a substance to the offices of the Asociación Bienestar y Desarrollo, the
non-government organization that oversees Energy Control. The sample then
gets delivered to the testing service’s laboratory, at the Barcelona Biomedical
Research Park, a futuristic, seven story building sitting metres away from
the beach. Energy Control borrows its lab space from a biomedical research
group for free.</p>
- <p class="graf--p" id="2574" name="2574">The tests cost 50 Euro per sample. Users pay, not surprisingly, with Bitcoin.
+ <p id="2574" name="2574">The tests cost 50 Euro per sample. Users pay, not surprisingly, with Bitcoin.
In the post announcing Energy Control’s service on the deep web, the group
promised that “All profits of this service are set aside of maintenance
of this project.”</p>
- <p class="graf--p" id="2644" name="2644">About a week after testing, those results are sent in a PDF to an email
+ <p id="2644" name="2644">About a week after testing, those results are sent in a PDF to an email
address provided by the anonymous client.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="9f91" name="9f91">“The process is quite boring, because you are in a routine,” Lladanosa
+ <p id="9f91" name="9f91">“The process is quite boring, because you are in a routine,” Lladanosa
says. But one part of the process is consistently surprising: that moment
when the results pop up on the screen. “Every time it’s something different.”
For instance, one cocaine sample she had tested also contained phenacetin,
a painkiller added to increase the product’s weight; lidocaine, an anesthetic
that numbs the gums, giving the impression that the user is taking higher
quality cocaine; and common caffeine.</p>
- <figure class="graf--figure" id="b821" name="b821"><div class="aspectRatioPlaceholder is-locked">
+ <figure id="b821" name="b821"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png" data-height="24" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"></img></div>
- </figure><p class="graf--p" id="39a6" name="39a6">The deep web drug lab is the brainchild of Fernando Caudevilla, a Spanish
+ <img data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png" data-height="24" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"></img></div>
+ </figure><p id="39a6" name="39a6">The deep web drug lab is the brainchild of Fernando Caudevilla, a Spanish
physician who is better known as “DoctorX” on the deep web, a nickname
given to him by his Energy Control co-workers because of his earlier writing
about the history, risks and recreational culture of MDMA. In the physical
@@ -112,40 +112,40 @@
illegal drug users medical guidance, and often writing leaflets about the
harms of certain substances.</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="eebc" name="eebc"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="eebc" name="eebc"><div>
- <img class="graf-image" data-height="1241" data-image-id="1*mKvUNOAVQxl6atCbxbCZsg.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*mKvUNOAVQxl6atCbxbCZsg.jpeg"></img></div>
- <figcaption class="imageCaption">Fernando Caudevilla, AKA DoctorX. Photo: Joseph Cox</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <p class="graf--p" id="c099" name="c099">Caudevilla first ventured into Silk Road forums in April 2013. “I would
+ <img data-height="1241" data-image-id="1*mKvUNOAVQxl6atCbxbCZsg.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*mKvUNOAVQxl6atCbxbCZsg.jpeg"></img></div>
+ <figcaption>Fernando Caudevilla, AKA DoctorX. Photo: Joseph Cox</figcaption></figure></div>
+ <div>
+ <p id="c099" name="c099">Caudevilla first ventured into Silk Road forums in April 2013. “I would
like to contribute to this forum offering professional advice in topics
- related to drug use and health,” he wrote in an <a class="markup--anchor markup--p-anchor" data-href="http://web.archive.org/web/20131015051405/https://dkn255hz262ypmii.onion.to/index.php?topic=147607.0" href="http://web.archive.org/web/20131015051405/https://dkn255hz262ypmii.onion.to/index.php?topic=147607.0" rel="nofollow">introductory post</a>,
+ related to drug use and health,” he wrote in an <a data-href="http://web.archive.org/web/20131015051405/https://dkn255hz262ypmii.onion.to/index.php?topic=147607.0" href="http://web.archive.org/web/20131015051405/https://dkn255hz262ypmii.onion.to/index.php?topic=147607.0" rel="nofollow">introductory post</a>,
using his DoctorX alias. Caudevilla offered to provide answers to questions
that a typical doctor is not prepared, or willing, to respond to, at least
not without a lecture or a judgment. “This advice cannot replace a complete
face-to-face medical evaluation,” he wrote, “but I know how difficult it
can be to talk frankly about these things.”</p>
- <p class="graf--p" id="ff1d" name="ff1d">The requests flooded in. A diabetic asked what effect MDMA has on blood
+ <p id="ff1d" name="ff1d">The requests flooded in. A diabetic asked what effect MDMA has on blood
sugar; another what the risks of frequent psychedelic use were for a young
person. Someone wanted to know whether amphetamine use should be avoided
during lactation. In all, Fernando’s thread received over 50,000 visits
and 300 questions before the FBI shut down Silk Road.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="1f35" name="1f35">“He’s amazing. A gift to this community,” one user wrote on the Silk Road
+ <p id="1f35" name="1f35">“He’s amazing. A gift to this community,” one user wrote on the Silk Road
2.0 forum, a site that sprang up after the original. “His knowledge is
invaluable, and never comes with any judgment.” Up until recently, Caudevilla
answered questions on the marketplace “Evolution.” Last week, however,
- the administrators of that site <a class="markup--anchor markup--p-anchor" data-href="http://motherboard.vice.com/read/one-of-the-darknets-biggest-markets-may-have-just-stole-all-its-users-bitcoin" href="http://motherboard.vice.com/read/one-of-the-darknets-biggest-markets-may-have-just-stole-all-its-users-bitcoin" rel="nofollow">pulled a scam</a>,
+ the administrators of that site <a data-href="http://motherboard.vice.com/read/one-of-the-darknets-biggest-markets-may-have-just-stole-all-its-users-bitcoin" href="http://motherboard.vice.com/read/one-of-the-darknets-biggest-markets-may-have-just-stole-all-its-users-bitcoin" rel="nofollow">pulled a scam</a>,
shutting the market down and escaping with an estimated $12 million worth
of Bitcoin.</p>
- <p class="graf--p" id="b20f" name="b20f">Caudevilla’s transition from dispensing advice to starting up a no-questions-asked
+ <p id="b20f" name="b20f">Caudevilla’s transition from dispensing advice to starting up a no-questions-asked
drug testing service came as a consequence of his experience on the deep
web. He’d wondered whether he could help bring more harm reduction services
to a marketplace without controls. The Energy Control project, as part
of its mandate of educating drug users and preventing harm, had already
been carrying out drug testing for local Spanish users since 2001, at music
festivals, night clubs, or through a drop-in service at a lab in Madrid.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="f739" name="f739">“I thought, we are doing this in Spain, why don’t we do an international
+ <p id="f739" name="f739">“I thought, we are doing this in Spain, why don’t we do an international
drug testing service?” Caudevilla told me when I visited the other Energy
Control lab, in Madrid. Caudevilla, a stocky character with ear piercings
and short, shaved hair, has eyes that light up whenever he discusses the
@@ -156,164 +156,164 @@
service, where one needs to establish “credibility, trustworthiness, [and]
transparency,” Caudevilla said. “We could not make mistakes,” he added.</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="4058" name="4058"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="4058" name="4058"><div>
- <img class="graf-image" data-height="3141" data-image-id="1*knT10_FNVUmqQIBLnutmzQ.jpeg" data-width="4400" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*knT10_FNVUmqQIBLnutmzQ.jpeg"></img></div>
- <figcaption class="imageCaption">Photo: Joseph Cox</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <figure class="graf--figure" id="818c" name="818c"><div class="aspectRatioPlaceholder is-locked">
+ <img data-height="3141" data-image-id="1*knT10_FNVUmqQIBLnutmzQ.jpeg" data-width="4400" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*knT10_FNVUmqQIBLnutmzQ.jpeg"></img></div>
+ <figcaption>Photo: Joseph Cox</figcaption></figure></div>
+ <div>
+ <figure id="818c" name="818c"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png" data-height="24" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"></img></div>
- </figure><p class="graf--p" id="7b5e" name="7b5e">While the Energy Control lab in Madrid lab only tests Spanish drugs from
+ <img data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png" data-height="24" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"></img></div>
+ </figure><p id="7b5e" name="7b5e">While the Energy Control lab in Madrid lab only tests Spanish drugs from
various sources, it is the Barcelona location which vets the substances
bought in the shadowy recesses of of the deep web. Caudevilla no longer
runs it, having handed it over to his colleague Ana Muñoz. She maintains
a presence on the deep web forums, answers questions from potential users,
and sends back reports when they are ready.</p>
- <p class="graf--p" id="0f0e" name="0f0e">The testing program exists in a legal grey area. The people who own the
+ <p id="0f0e" name="0f0e">The testing program exists in a legal grey area. The people who own the
Barcelona lab are accredited to experiment with and handle drugs, but Energy
Control doesn’t have this permission itself, at least not in writing.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="e002" name="e002">“We have a verbal agreement with the police and other authorities. They
+ <p id="e002" name="e002">“We have a verbal agreement with the police and other authorities. They
already know what we are doing,” Lladanosa tells me. It is a pact of mutual
benefit. Energy Control provides the police with information on batches
of drugs in Spain, whether they’re from the deep web or not, Espinosa says.
They also contribute to the European Monitoring Centre for Drugs and Drug
Addiction’s early warning system, a collaboration that attempts to spread
information about dangerous drugs as quickly as possible.</p>
- <p class="graf--p" id="db1b" name="db1b">By the time of my visit in February, Energy Control had received over
+ <p id="db1b" name="db1b">By the time of my visit in February, Energy Control had received over
150 samples from the deep web and have been receiving more at a rate of
between 4 and 8 a week. Traditional drugs, such as cocaine and MDMA, make
up about 70 percent of the samples tested, but the Barcelona lab has also
received samples of the prescription pill codeine, research chemicals and
synthetic cannabinoids, and even pills of Viagra.</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="b885" name="b885"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="b885" name="b885"><div>
- <img class="graf-image" data-height="1402" data-image-id="1*Vr61dyCTRwk6CemmVF8YAQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*Vr61dyCTRwk6CemmVF8YAQ.jpeg"></img></div>
- <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <p class="graf--p" id="e76f" name="e76f">So it’s fair to make a tentative judgement on what people are paying for
+ <img data-height="1402" data-image-id="1*Vr61dyCTRwk6CemmVF8YAQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*Vr61dyCTRwk6CemmVF8YAQ.jpeg"></img></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="e76f" name="e76f">So it’s fair to make a tentative judgement on what people are paying for
on the deep web. The verdict thus far? Overall, drugs on the deep web appear
to be of much higher quality than those found on the street.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="5352" name="5352">“In general, the cocaine is amazing,” says Caudevilla, saying that the
+ <p id="5352" name="5352">“In general, the cocaine is amazing,” says Caudevilla, saying that the
samples they’ve seen have purities climbing towards 80 or 90 percent, and
some even higher. To get an idea of how unusual this is, take a look at
- the <a class="markup--anchor markup--p-anchor" data-href="http://www.unodc.org/documents/wdr2014/Cocaine_2014_web.pdf" href="http://www.unodc.org/documents/wdr2014/Cocaine_2014_web.pdf" rel="nofollow">United Nations Office on Drugs and Crime World Drug Report 2014</a>,
+ the <a data-href="http://www.unodc.org/documents/wdr2014/Cocaine_2014_web.pdf" href="http://www.unodc.org/documents/wdr2014/Cocaine_2014_web.pdf" rel="nofollow">United Nations Office on Drugs and Crime World Drug Report 2014</a>,
which reports that the average quality of street cocaine in Spain is just
over 40 percent, while in the United Kingdom it is closer to 30 percent.“We
have found 100 percent [pure] cocaine,” he adds. “That’s really, really
strange. That means that, technically, this cocaine has been purified,
with clandestine methods.”</p>
- <p class="graf--p" id="a71c" name="a71c">Naturally, identifying vendors who sell this top-of-the-range stuff is
+ <p id="a71c" name="a71c">Naturally, identifying vendors who sell this top-of-the-range stuff is
one of the reasons that people have sent samples to Energy Control. Caudevilla
was keen to stress that, officially, Energy Control’s service “is not intended
to be a control of drug quality,” meaning a vetting process for identifying
the best sellers, but that is exactly how some people have been using it.</p>
- <p class="graf--p" id="cb5b" name="cb5b">As one buyer on the Evolution market, elmo666, wrote to me over the site’s
+ <p id="cb5b" name="cb5b">As one buyer on the Evolution market, elmo666, wrote to me over the site’s
messaging system, “My initial motivations were selfish. My primary motivation
was to ensure that I was receiving and continue to receive a high quality
product, essentially to keep the vendor honest as far as my interactions
with them went.”</p>
- <p class="graf--p" id="d80d" name="d80d">Vendors on deep web markets advertise their product just like any other
+ <p id="d80d" name="d80d">Vendors on deep web markets advertise their product just like any other
outlet does, using flash sales, gimmicky giveaways and promises of drugs
that are superior to those of their competitors. The claims, however, can
turn out to be empty: despite the test results that show that deep web
cocaine vendors typically sell product that is of a better quality than
that found on the street, in plenty of cases, the drugs are nowhere near
as pure as advertised.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="36de" name="36de">“You won’t be getting anything CLOSE to what you paid for,” one user complained
+ <p id="36de" name="36de">“You won’t be getting anything CLOSE to what you paid for,” one user complained
about the cocaine from ‘Mirkov’, a vendor on Evolution. “He sells 65% not
95%.”</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="8544" name="8544"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="8544" name="8544"><div>
- <img class="graf-image" data-height="1402" data-image-id="1*a-1_13xE6_ErQ-QSlz6myw.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*a-1_13xE6_ErQ-QSlz6myw.jpeg"></img></div>
- <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <figure class="graf--figure" id="d521" name="d521"><div class="aspectRatioPlaceholder is-locked">
+ <img data-height="1402" data-image-id="1*a-1_13xE6_ErQ-QSlz6myw.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*a-1_13xE6_ErQ-QSlz6myw.jpeg"></img></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <figure id="d521" name="d521"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png" data-height="24" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"></img></div>
- </figure><p class="graf--p" id="126b" name="126b">Despite the prevalence of people using the service to gauge the quality
+ <img data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png" data-height="24" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"></img></div>
+ </figure><p id="126b" name="126b">Despite the prevalence of people using the service to gauge the quality
of what goes up their nose, many users send samples to Energy Control in
the spirit of its original mission: keeping themselves alive and healthy.
The worst case scenario from drugs purchased on the deep web is, well the
- worst case. That was the outcome when <a class="markup--anchor markup--p-anchor" data-href="http://www.independent.co.uk/news/uk/crime/teenager-patrick-mcmullen-who-died-while-on-skype-had-bought-drugs-from-silk-road-8942329.html" href="http://www.independent.co.uk/news/uk/crime/teenager-patrick-mcmullen-who-died-while-on-skype-had-bought-drugs-from-silk-road-8942329.html" rel="nofollow">Patrick McMullen,</a> a
+ worst case. That was the outcome when <a data-href="http://www.independent.co.uk/news/uk/crime/teenager-patrick-mcmullen-who-died-while-on-skype-had-bought-drugs-from-silk-road-8942329.html" href="http://www.independent.co.uk/news/uk/crime/teenager-patrick-mcmullen-who-died-while-on-skype-had-bought-drugs-from-silk-road-8942329.html" rel="nofollow">Patrick McMullen,</a> a
17-year-old Scottish student, ingested half a gram of MDMA and three tabs
of LSD, reportedly purchased from the Silk Road. While talking to his friends
on Skype, his words became slurred and he passed out. Paramedics could
not revive him. The coroner for that case, Sherrif Payne, who deemed the
- cause of death ecstasy toxicity, told <em class="markup--em markup--p-em">The Independent</em> “You
+ cause of death ecstasy toxicity, told <em>The Independent</em> “You
never know the purity of what you are taking and you can easily come unstuck.”</p>
- <p class="graf--p" id="5e9e" name="5e9e">ScreamMyName, a deep web user who has been active since the original Silk
+ <p id="5e9e" name="5e9e">ScreamMyName, a deep web user who has been active since the original Silk
Road, wants to alert users to the dangerous chemicals that are often mixed
with drugs, and is using Energy Control as a means to do so.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="19a6" name="19a6">“We’re at a time where some vendors are outright sending people poison.
+ <p id="19a6" name="19a6">“We’re at a time where some vendors are outright sending people poison.
Some do it unknowingly,” ScreamMyName told me in an encrypted message.
“Cocaine production in South America is often tainted with either levamisole
or phenacetine. Both poison to humans and both with severe side effects.”</p>
- <p class="graf--p" id="9fef" name="9fef">In the case of Levamisole, those prescribing it are often not doctors
+ <p id="9fef" name="9fef">In the case of Levamisole, those prescribing it are often not doctors
but veterinarians, as Levamisole is commonly used on animals, primarily
for the treatment of worms. If ingested by humans it can lead to cases
- of extreme eruptions of the skin, as <a class="markup--anchor markup--p-anchor" data-href="http://www.ncbi.nlm.nih.gov/pubmed/22127712" href="http://www.ncbi.nlm.nih.gov/pubmed/22127712" rel="nofollow">documented in a study</a> from researchers at the University
+ of extreme eruptions of the skin, as <a data-href="http://www.ncbi.nlm.nih.gov/pubmed/22127712" href="http://www.ncbi.nlm.nih.gov/pubmed/22127712" rel="nofollow">documented in a study</a> from researchers at the University
of California, San Francisco. But Lladanosa has found Levamisole in cocaine
samples; dealers use it to increase the product weight, allowing them to
stretch their batch further for greater profit — and also, she says, because
Levamisole has a strong stimulant effect.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="7886" name="7886">“It got me sick as fuck,” Dr. Feel, an Evolution user, wrote on the site’s
+ <p id="7886" name="7886">“It got me sick as fuck,” Dr. Feel, an Evolution user, wrote on the site’s
forums after consuming cocaine that had been cut with 23 percent Levamisole,
and later tested by Energy Control. “I was laid up in bed for several days
because of that shit. The first night I did it, I thought I was going to
die. I nearly drove myself to the ER.”</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="18d3" name="18d3">“More people die because of tainted drugs than the drugs themselves,”
+ <p id="18d3" name="18d3">“More people die because of tainted drugs than the drugs themselves,”
Dr. Feel added. “It’s the cuts and adulterants that are making people sick
and killing them.”</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="552a" name="552a"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="552a" name="552a"><div>
- <img class="graf-image" data-height="1192" data-image-id="1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg"></img></div>
- <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <p class="graf--p" id="839a" name="839a">The particular case of cocaine cut with Levamisole is one of the reasons
+ <img data-height="1192" data-image-id="1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg"></img></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="839a" name="839a">The particular case of cocaine cut with Levamisole is one of the reasons
that ScreamMyName has been pushing for more drug testing on the deep web
markets. “I recognize that drug use isn’t exactly healthy, but why exacerbate
the problem?” he told me when I contacted him after his post. “[Energy
Control] provides a way for users to test the drugs they’ll use and for
these very users to know what it is they’re putting in their bodies. Such
services are in very short supply.”</p>
- <p class="graf--p" id="18dc" name="18dc">After sending a number of Energy Control tests himself, ScreamMyName started
+ <p id="18dc" name="18dc">After sending a number of Energy Control tests himself, ScreamMyName started
a de facto crowd-sourcing campaign to get more drugs sent to the lab, and
then shared the results, after throwing in some cash to get the ball rolling.
- <a class="markup--anchor markup--p-anchor" data-href="https://blockchain.info/address/1Mi6VjMFqjcD48FPV7cnPB24MAtQQenRy3" href="https://blockchain.info/address/1Mi6VjMFqjcD48FPV7cnPB24MAtQQenRy3" rel="nofollow">He set up a Bitcoin wallet</a>, with the hope that users might chip in
+ <a data-href="https://blockchain.info/address/1Mi6VjMFqjcD48FPV7cnPB24MAtQQenRy3" href="https://blockchain.info/address/1Mi6VjMFqjcD48FPV7cnPB24MAtQQenRy3" rel="nofollow">He set up a Bitcoin wallet</a>, with the hope that users might chip in
to fund further tests. At the time of writing, the wallet has received
a total of 1.81 bitcoins; around $430 at today’s exchange rates.</p>
- <p class="graf--p" id="dcbd" name="dcbd">In posts to the Evolution community, ScreamMyName pitched this project
+ <p id="dcbd" name="dcbd">In posts to the Evolution community, ScreamMyName pitched this project
as something that will benefit users and keep drug dealer honest. “When
the funds build up to a point where we can purchase an [Energy Control]
test fee, we’ll do a US thread poll for a few days and try to cohesively
decide on what vendor to test,” he continued.</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="9d32" name="9d32"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="9d32" name="9d32"><div>
- <img class="graf-image" data-height="913" data-image-id="1*NGcrjfkV0l37iQH2uyYjEw.jpeg" data-width="1368" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*NGcrjfkV0l37iQH2uyYjEw.jpeg"></img></div>
- <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <p class="graf--p" id="bff6" name="bff6">Other members of the community have been helping out, too. PlutoPete,
+ <img data-height="913" data-image-id="1*NGcrjfkV0l37iQH2uyYjEw.jpeg" data-width="1368" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*NGcrjfkV0l37iQH2uyYjEw.jpeg"></img></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="bff6" name="bff6">Other members of the community have been helping out, too. PlutoPete,
a vendor from the original Silk Road who sold cannabis seeds and other
legal items, has provided ScreamMyName with packaging to safely send the
samples to Barcelona. “A box of baggies, and a load of different moisture
barrier bags,” PlutoPete told me over the phone. “That’s what all the vendors
use.”</p>
- <p class="graf--p" id="bb78" name="bb78">It’s a modest program so far. ScreamMyName told me that so far he had
+ <p id="bb78" name="bb78">It’s a modest program so far. ScreamMyName told me that so far he had
gotten enough public funding to purchase five different Energy Control
tests, in addition to the ten or so he’s sent himself so far. “The program
created is still in its infancy and it is growing and changing as we go
along but I have a lot of faith in what we’re doing,” he says.</p>
- <p class="graf--p" id="5638" name="5638">But the spirit is contagious: elmo666, the other deep web user testing
+ <p id="5638" name="5638">But the spirit is contagious: elmo666, the other deep web user testing
cocaine, originally kept the results of the drug tests to himself, but
he, too, saw a benefit to distributing the data. “It is clear that it is
a useful service to other users, keeping vendors honest and drugs (and
@@ -321,17 +321,17 @@
on the forums, and then created a thread with summaries of the test results,
as well as comments from the vendors if they provided it. Other users were
soon basing their decisions on what to buy on elmo666‘s tests.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="de75" name="de75">“I’m defo trying the cola based on the incredibly helpful elmo and his
+ <p id="de75" name="de75">“I’m defo trying the cola based on the incredibly helpful elmo and his
energy control results and recommendations,” wrote user jayk1984. On top
of this, elmo666 plans to launch an independent site on the deep web that
will collate all of these results, which should act as a resource for users
of all the marketplaces.</p>
- <p class="graf--p" id="6b72" name="6b72">As word of elmo666's efforts spread, he began getting requests from drug
+ <p id="6b72" name="6b72">As word of elmo666's efforts spread, he began getting requests from drug
dealers who wanted him to use their wares for testing. Clearly, they figured
that a positive result from Energy Control would be a fantastic marketing
tool to draw more customers. They even offered elmo666 free samples. (He
passed.)</p>
- <p class="graf--p" id="b008" name="b008">Meanwhile, some in the purchasing community are arguing that those running
+ <p id="b008" name="b008">Meanwhile, some in the purchasing community are arguing that those running
markets on the deep web should be providing quality control themselves.
PlutoPete told me over the phone that he had been in discussions about
this with Dread Pirate Roberts, the pseudonymous owner of the original
@@ -339,7 +339,7 @@
on Silk Road 1, doing lots of anonymous buys to police each category. But
of course they took the thing [Silk Road] down before we got it properly
off the ground,” he lamented.</p>
- <p class="graf--p" id="49c8" name="49c8">But perhaps it is best that the users, those who are actually consuming
+ <p id="49c8" name="49c8">But perhaps it is best that the users, those who are actually consuming
the drugs, remain in charge of shaming dealers and warning each other.
“It’s our responsibility to police the market based on reviews and feedback,”
elmo666 wrote in an Evolution forum post. It seems that in the lawless
@@ -347,33 +347,33 @@
sold openly, users have cooperated in an organic display of self-regulation
to stamp out those particular batches of drugs that are more likely to
harm users.</p>
- <p class="graf--p graf--startsWithDoubleQuote" id="386d" name="386d">“That’s always been the case with the deep web,” PlutoPete told me. Indeed,
+ <p id="386d" name="386d">“That’s always been the case with the deep web,” PlutoPete told me. Indeed,
ever since Silk Road, a stable of the drug markets has been the review
system, where buyers can leave a rating and feedback for vendors, letting
others know about the reliability of the seller. But DoctorX’s lab, rigorously
testing the products with scientific instruments, takes it a step further.</p>
</div>
- <div class="section-inner u-sizeFullWidth">
- <figure class="graf--figure postField--fillWidthImage" id="890b" name="890b"><div class="aspectRatioPlaceholder is-locked">
+ <div>
+ <figure id="890b" name="890b"><div>
- <img class="graf-image" data-height="1373" data-image-id="1*WRlKt3q3mt7utmwxcbl3sQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*WRlKt3q3mt7utmwxcbl3sQ.jpeg"></img></div>
- <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption></figure></div>
- <div class="section-inner layoutSingleColumn">
- <p class="graf--p graf--startsWithDoubleQuote" id="b109" name="b109">“In the white market, they have quality control. In the dark market, it
+ <img data-height="1373" data-image-id="1*WRlKt3q3mt7utmwxcbl3sQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*WRlKt3q3mt7utmwxcbl3sQ.jpeg"></img></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="b109" name="b109">“In the white market, they have quality control. In the dark market, it
should be the same,” Cristina Gil Lladanosa says to me before I leave the
Barcelona lab.</p>
- <p class="graf--p" id="e3a4" name="e3a4">A week after I visit the lab, the results of the MDMA arrive in my inbox:
+ <p id="e3a4" name="e3a4">A week after I visit the lab, the results of the MDMA arrive in my inbox:
it is 85 percent pure, with no indications of other active ingredients.
Whoever ordered that sample from the digital shelves of the deep web, and
had it shipped to their doorstep in Canada, got hold of some seriously
good, and relatively safe drugs. And now they know it.</p>
- <figure class="graf--figure" id="31cf" name="31cf"><div class="aspectRatioPlaceholder is-locked">
+ <figure id="31cf" name="31cf"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*320_4I0lxbn5x3bx4XPI5Q.png" data-height="24" data-image-id="1*320_4I0lxbn5x3bx4XPI5Q.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*320_4I0lxbn5x3bx4XPI5Q.png"></img></div>
- </figure><p class="graf--p" data-align="center" id="9b87" name="9b87"><em class="markup--em markup--p-em">Top photo by Joan Bardeletti</em>
+ <img data-action="zoom" data-action-value="1*320_4I0lxbn5x3bx4XPI5Q.png" data-height="24" data-image-id="1*320_4I0lxbn5x3bx4XPI5Q.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*320_4I0lxbn5x3bx4XPI5Q.png"></img></div>
+ </figure><p data-align="center" id="9b87" name="9b87"><em>Top photo by Joan Bardeletti</em>
</p>
- <p class="graf--p graf--last" data-align="center" id="c30a" name="c30a">Follow Backchannel: <a class="markup--anchor markup--p-anchor" data-href="https://twitter.com/backchnnl" href="https://twitter.com/backchnnl" rel="nofollow"><em class="markup--em markup--p-em">Twitter</em></a>
- <em class="markup--em markup--p-em">|</em><a class="markup--anchor markup--p-anchor" data-href="https://www.facebook.com/pages/Backchannel/1488568504730671" href="https://www.facebook.com/pages/Backchannel/1488568504730671" rel="nofollow"><em class="markup--em markup--p-em">Facebook</em></a>
+ <p data-align="center" id="c30a" name="c30a">Follow Backchannel: <a data-href="https://twitter.com/backchnnl" href="https://twitter.com/backchnnl" rel="nofollow"><em>Twitter</em></a>
+ <em>|</em><a data-href="https://www.facebook.com/pages/Backchannel/1488568504730671" href="https://www.facebook.com/pages/Backchannel/1488568504730671" rel="nofollow"><em>Facebook</em></a>
</p>
</div>
</div>
diff --git a/test/test-pages/lemonde-1/expected.html b/test/test-pages/lemonde-1/expected.html
index 67ed491..dd91ed5 100644
--- a/test/test-pages/lemonde-1/expected.html
+++ b/test/test-pages/lemonde-1/expected.html
@@ -1,9 +1,9 @@
-<p class="bloc_signature"> <span data-source="Le Monde.fr" id="publisher" itemprop="Publisher">Le Monde</span> |
+<p> <span data-source="Le Monde.fr" id="publisher" itemprop="Publisher">Le Monde</span> |
<time datetime="2015-05-04T13:36:31+02:00" itemprop="datePublished">04.05.2015 à 13h36</time> • Mis à jour le
- <time datetime="2015-05-05T20:13:12+02:00" itemprop="dateModified">05.05.2015 à 20h13</time> | <span class="signature_article">
-Par <span class="auteur txt2_120" itemprop="author"> <a class="auteur" href="http://fakehost/journaliste/martin-untersinger/" target="_blank">Martin Untersinger</a> (avec Damien Leloup et Morgane Tual)
+ <time datetime="2015-05-05T20:13:12+02:00" itemprop="dateModified">05.05.2015 à 20h13</time> | <span>
+Par <span itemprop="author"> <a href="http://fakehost/journaliste/martin-untersinger/" target="_blank">Martin Untersinger</a> (avec Damien Leloup et Morgane Tual)
</span> </span>
- </p><div class="contenu_article js_article_body" id="articleBody" itemprop="articleBody">
+ </p><div id="articleBody" itemprop="articleBody">
<p>
<iframe frameborder="0" height="320" src="//www.dailymotion.com/embed/video/x2p552m?syndication=131181" width="534"></iframe>
</p>
@@ -14,33 +14,33 @@ Par <span class="auteur txt2_120" itemprop="author"> <a class="a
<p>Pouria Amirshahi, député socialiste des Français de l'étranger qui a également voté contre, a annoncé qu'il transmettrait un « mémorandum argumenté » au Conseil constitutionnel et demanderait à se faire auditionner sur le projet de loi. D'autres députés ont prévu de faire la même démarche.</p>
<p>Ce texte, fortement décrié par la société civile pour son manque de contre-pouvoir et le caractère intrusif des techniques qu’il autorise, entend donner un cadre aux pratiques des services de renseignement, rendant légales certaines pratiques qui, jusqu’à présent, ne l’étaient pas.</p>
<p><u>Retour sur ses principales dispositions, après son passage en commission des lois et après le débat en séance publique.</u></p>
- <h2 class="intertitre">Définition des objectifs des services</h2>
+ <h2>Définition des objectifs des services</h2>
<p>Le projet de loi énonce les domaines que peuvent invoquer les services pour justifier leur surveillance. Il s’agit notamment, de manière attendue, de <em>« l’indépendance nationale, de l’intégrité du territoire et de la défense nationale »</em> et de<em> « la prévention du terrorisme »,</em> mais également des <em>« intérêts majeurs de la politique étrangère »,</em> ainsi que de la <em>« prévention des atteintes à la forme républicaine des institutions »</em> et de <em>« la criminalité et de la délinquance organisées »</em>. Des formulations parfois larges qui inquiètent les opposants au texte qui craignent qu’elles puissent permettre de surveiller des activistes ou des manifestants.</p>
- <h2 class="intertitre">La Commission de contrôle</h2>
+ <h2>La Commission de contrôle</h2>
<p>Le contrôle de cette surveillance sera confié à une nouvelle autorité administrative indépendante, la Commission nationale de contrôle des techniques de renseignement (CNCTR), composée de six magistrats du Conseil d’Etat et de la Cour de cassation, de trois députés et trois sénateurs de la majorité et de l’opposition, et d’un expert technique. Elle remplacera l’actuelle Commission nationale de contrôle des interceptions de sécurité (CNCIS).</p>
<p>Elle délivrera son avis, sauf cas d’urgence, avant toute opération de surveillance ciblée. Deux types urgences sont prévus par la loi : d’un côté une <em>« urgence absolue »</em>, pour laquelle un agent pourra se passer de l’avis de la CNCTR mais pas de l’autorisation du premier ministre. De l’autre, une urgence opérationnelle extrêmement limitée, notamment en termes de techniques, à l’initiative du chef du service de renseignement, qui se passe de l’avis de la CNCTR. Ces cas d’urgence ne justifieront pas l’intrusion d’un domicile ni la surveillance d’un journaliste, un parlementaire ou un avocat. Dans ces cas, la procédure classique devra s’appliquer.</p>
<p>L’avis de la CNCTR ne sera pas contraignant, mais cette commission pourra saisir le Conseil d’Etat si elle estime que la loi n’est pas respectée et elle disposera de pouvoirs d’enquête. Ce recours juridictionnel est une nouveauté dans le monde du renseignement.</p>
- <h2 class="intertitre">Les « boîtes noires »</h2>
+ <h2>Les « boîtes noires »</h2>
<p>Une des dispositions les plus contestées de ce projet de loi prévoit de pouvoir contraindre les fournisseurs d’accès à Internet (FAI) à « <em>détecter une menace terroriste sur la base d’un traitement automatisé ». </em>Ce dispositif – autorisé par le premier ministre par tranche de quatre mois – permettrait de détecter, en temps réel ou quasi réel, les personnes ayant une activité en ligne typique de « schémas » utilisés par les terroristes pour transmettre des informations.</p>
<p>En pratique, les services de renseignement pourraient installer chez les FAI une « boîte noire » surveillant le trafic. Le contenu des communications – qui resterait « anonyme » – ne serait pas surveillé, mais uniquement les métadonnées : origine ou destinataire d’un message, adresse IP d’un site visité, durée de la conversation ou de la connexion… Ces données ne seraient pas conservées.</p>
<p>La Commission nationale informatique et libertés<strong> </strong>(CNIL), qui critique fortement cette disposition. La CNIL soulève notamment que l’anonymat de ces données est très relatif, puisqu’il peut être levé.</p>
- <p class="lire">Lire aussi : <a href="http://fakehost/pixels/article/2015/03/18/les-critiques-de-la-cnil-contre-le-projet-de-loi-sur-le-renseignement_4595839_4408996.html">Les critiques de la CNIL contre le projet de loi sur le renseignement</a> </p>
+ <p>Lire aussi : <a href="http://fakehost/pixels/article/2015/03/18/les-critiques-de-la-cnil-contre-le-projet-de-loi-sur-le-renseignement_4595839_4408996.html">Les critiques de la CNIL contre le projet de loi sur le renseignement</a> </p>
<p>Le dispositif introduit une forme de « pêche au chalut » – un brassage très large des données des Français à la recherche de quelques individus. Le gouvernement se défend de toute similarité avec les dispositifs mis en place par la NSA américaine, arguant notamment que les données ne seront pas conservées et que cette activité sera contrôlée par une toute nouvelle commission aux moyens largement renforcés. Il s’agit cependant d’un dispositif très large, puisqu’il concernera tous les fournisseurs d’accès à Internet, et donc tous les internautes français.</p>
- <h2 class="intertitre">L’élargissement de la surveillance électronique pour détecter les « futurs » terroristes</h2>
+ <h2>L’élargissement de la surveillance électronique pour détecter les « futurs » terroristes</h2>
<p>La surveillance des métadonnées sera aussi utilisée pour tenter de détecter de nouveaux profils de terroristes potentiels, prévoit le projet de loi. Le gouvernement considère qu’il s’agit d’une manière efficace de détecter les profils qui passent aujourd’hui <em>« entre les mailles du filet »</em>, par exemple des personnes parties en Syrie ou en Irak sans qu’aucune activité suspecte n’ait été décelée avant leur départ.</p>
<p>Pour repérer ces personnes, la loi permettra d’étendre la surveillance électronique à toutes les personnes en contact avec des personnes déjà suspectées. En analysant leurs contacts, la fréquence de ces derniers et les modes de communication, les services de renseignement espèrent pouvoir détecter ces nouveaux profils en amont.</p>
- <h2 class="intertitre">De nouveaux outils et méthodes de collecte</h2>
+ <h2>De nouveaux outils et méthodes de collecte</h2>
<p>Les services pourront également procéder, après un avis de la CNCTR, à la pose de micros dans une pièce ou de mouchards sur un objet (voiture par exemple), ou à l’intérieur d’un ordinateur. L’utilisation des IMSI-catchers (fausses antennes qui permettent d’intercepter des conversations téléphoniques) est également légalisée, pour les services de renseignement, dans certains cas. Le nombre maximal de ces appareils sera fixé par arrêté du premier ministre après l’avis de la CNCTR.</p>
<p><strong>Lire : <a href="http://fakehost/pixels/article/2015/03/31/que-sont-les-imsi-catchers-ces-valises-qui-espionnent-les-telephones-portables_4605827_4408996.html">Que sont les IMSI-catchers, ces valises qui espionnent les téléphones portables ?</a></strong></p>
<p>La loi introduit également des mesures de surveillance internationale : concrètement, les procédures de contrôle seront allégées lorsqu’un des « bouts » de la communication sera situé à l’étranger (concrètement, un Français qui parle avec un individu situé à l’étranger). Cependant, comme l’a souligné l’Arcep (l’Autorité de régulation des communications électroniques et des postes), sollicitée pour le versant technique de cette mesure, il est parfois difficile de s’assurer qu’une communication, même passant par l’étranger, ne concerne pas deux Français.</p>
- <h2 class="intertitre">Un nouveau fichier</h2>
+ <h2>Un nouveau fichier</h2>
<p>La loi crée un fichier judiciaire national automatisé des auteurs d’infractions terroristes (Fijait), dont les données pourront être conservées pendant vingt ans.</p>
<p>Ce fichier concerne les personnes ayant été condamnées, même si une procédure d’appel est en cours. Les mineurs pourront aussi être inscrits dans ce fichier et leurs données conservées jusqu’à dix ans. L’inscription ne sera pas automatique et se fera sur décision judiciaire. Certaines mises en examen pourront aussi apparaître sur ce fichier. En cas de non-lieu, relaxe, acquittement, amnistie ou réhabilitation, ces informations seront effacées.</p>
- <h2 class="intertitre">Renseignement pénitentiaire</h2>
+ <h2>Renseignement pénitentiaire</h2>
<p>Le renseignement pénitentiaire pourra, dans des conditions qui seront fixées par décret, profiter des techniques que légalise le projet de loi pour les services de renseignement. La ministre de la justice, Christiane Taubira, était défavorable à cette disposition, soutenue par le rapporteur du texte, la droite et une partie des députés de gauche. Pour la ministre, cette innovation va dénaturer le renseignement pénitentiaire et le transformer en véritable service de renseignement.</p>
- <h2 class="intertitre">Conservation des données</h2>
+ <h2>Conservation des données</h2>
<p>La CNIL <a href="http://www.cnil.fr/fileadmin/documents/La_CNIL/actualite/Les_propositions_de_la_CNIL_sur_les_evolutions_de_la_loi_Informatique_et_Libertes.pdf">a fait part à plusieurs reprises de sa volonté</a> d’exercer sa mission de contrôle sur les fichiers liés au renseignement, qui seront alimentés par ces collectes. Ces fichiers sont aujourd’hui exclus du périmètre d’action de la CNIL.</p>
<p>La durée de conservation des données collectées – et l’adaptation de cette durée à la technique employée – a par ailleurs été inscrite dans la loi, contrairement au projet initial du gouvernement qui entendait fixer ces limites par décret. Elle pourra aller jusqu’à cinq ans dans le cas des données de connexion.</p>
- <h2 class="intertitre">Un dispositif pour les lanceurs d’alerte</h2>
+ <h2>Un dispositif pour les lanceurs d’alerte</h2>
<p>La loi prévoit également une forme de protection pour les agents qui seraient témoins de surveillance illégale. Ces lanceurs d’alerte pourraient solliciter la CNCTR, voire le premier ministre, et leur fournir toutes les pièces utiles. La CNCTR pourra ensuite aviser le procureur de la République et solliciter la Commission consultative du secret de la défense nationale afin que cette dernière <em>« donne au premier ministre son avis sur la possibilité de déclassifier tout ou partie de ces éléments »</em>. Aucune mesure de rétorsion ne pourra viser l’agent qui aurait dénoncé des actes potentiellement illégaux.</p>
</div> \ No newline at end of file
diff --git a/test/test-pages/lemonde-2/expected.html b/test/test-pages/lemonde-2/expected.html
index de34476..8be4848 100644
--- a/test/test-pages/lemonde-2/expected.html
+++ b/test/test-pages/lemonde-2/expected.html
@@ -1,13 +1,13 @@
-<p class="txt3 description-article" itemprop="description">Le retour à la stabilité coûtera des milliards d'euros, mais l'Union européenne en vaut la peine, estime un collectif d'industriels.</p><div class="contenu_article js_article_body" id="articleBody" itemprop="articleBody">
- <h2 class="taille_courante">L'union monétaire s'enlise dans la crise, l'euro reste soumis au feu des critiques. C'est le bilan des nombreux <a class="lien_interne rub" href="http://www.lemonde.fr/afrique-debats/" title="Toute l’actualité débats">débats</a> qui ont eu lieu ces derniers mois.</h2>
-<p>En tant qu'industriels allemands et français, qui ont la responsabilité de 1 500 milliards d'euros de chiffre d'affaires et de cinq millions de salariés dans <a class="lien_interne rub" href="http://www.lemonde.fr/le-monde/" title="Toute l’actualité le monde">le monde</a> entier, nous nous soucions de l'<a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/troisieme-groupe/avenir/" onclick="return false;" target="_blank" title="Conjugaison du verbe avenir">avenir</a> de l'euro et de l'union économique et monétaire européenne. L'<a class="lien_interne rub" href="http://www.lemonde.fr/histoire/" title="Toute l’actualité histoire">histoire</a> de l'euro est une véritable réussite. Qui aurait pensé, lorsque l'euro a été introduit il y a douze ans, qu'il aurait aujourd'hui gagné en valeur par rapport au dollar et de nombreuses autres monnaies ?</p>
-<p>L'euro s'est imposé comme seconde monnaie de référence à côté du dollar et a renforcé le rôle de l'<a class="lien_interne rub" href="http://www.lemonde.fr/europe/" title="Toute l’actualité Europe">Europe</a> en tant que puissance économique. Avec l'euro, un marché commun doté d'une monnaie unique et sans fluctuation de cours de change a vu le jour, créant ainsi prospérité et richesse pour nous tous. Depuis son introduction, près de 9 millions de nouveaux emplois ont été créés dans la zone euro. Les <a class="lien_interne rub" href="http://www.lemonde.fr/entreprises/" title="Toute l’actualité entreprises">entreprises</a> européennes profitent de ce <a class="lien_interne rub" href="http://www.lemonde.fr/developpement/" title="Toute l’actualité développement">développement</a>. Elles ont élargi leurs capacités de financement et augmenté leur compétitivité à l'<a class="lien_interne rub" href="http://www.lemonde.fr/international/" title="Toute l’actualité international">international</a>.</p>
-<p>Le ralentissement de l'économie mondiale a conduit certains pays de l'union monétaire à s'<a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/endetter/" onclick="return false;" target="_blank" title="Conjugaison du verbe endetter">endetter</a> encore davantage. A court terme, ces pays doivent <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/auxiliaire/%C3%AAtre/" onclick="return false;" target="_blank" title="Conjugaison du verbe être">être</a> aidés pour <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/regagner/" onclick="return false;" target="_blank" title="Conjugaison du verbe regagner">regagner</a> leur indépendance financière et <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/recr%C3%A9er/" onclick="return false;" target="_blank" title="Conjugaison du verbe recréer">recréer</a> les conditions d'un avenir meilleur pour leur <a class="lien_interne rub" href="http://www.lemonde.fr/demographie/" title="Toute l’actualité population">population</a>.</p>
-<p>En contrepartie, des mesures efficaces doivent être mises en oeuvre. Le retour à une situation financière stable coûtera de nombreux milliards d'euros, mais l'<a class="lien_interne rub" href="http://www.lemonde.fr/union-europeenne/" title="Toute l’actualité Union européenne">Union européenne</a> et notre monnaie commune en valent la peine. Nous devons <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/troisieme-groupe/convaincre/" onclick="return false;" target="_blank" title="Conjugaison du verbe convaincre">convaincre</a> nos concitoyens de cela.</p>
+<p itemprop="description">Le retour à la stabilité coûtera des milliards d'euros, mais l'Union européenne en vaut la peine, estime un collectif d'industriels.</p><div id="articleBody" itemprop="articleBody">
+ <h2>L'union monétaire s'enlise dans la crise, l'euro reste soumis au feu des critiques. C'est le bilan des nombreux <a href="http://www.lemonde.fr/afrique-debats/" title="Toute l’actualité débats">débats</a> qui ont eu lieu ces derniers mois.</h2>
+<p>En tant qu'industriels allemands et français, qui ont la responsabilité de 1 500 milliards d'euros de chiffre d'affaires et de cinq millions de salariés dans <a href="http://www.lemonde.fr/le-monde/" title="Toute l’actualité le monde">le monde</a> entier, nous nous soucions de l'<a href="http://conjugaison.lemonde.fr/conjugaison/troisieme-groupe/avenir/" onclick="return false;" target="_blank" title="Conjugaison du verbe avenir">avenir</a> de l'euro et de l'union économique et monétaire européenne. L'<a href="http://www.lemonde.fr/histoire/" title="Toute l’actualité histoire">histoire</a> de l'euro est une véritable réussite. Qui aurait pensé, lorsque l'euro a été introduit il y a douze ans, qu'il aurait aujourd'hui gagné en valeur par rapport au dollar et de nombreuses autres monnaies ?</p>
+<p>L'euro s'est imposé comme seconde monnaie de référence à côté du dollar et a renforcé le rôle de l'<a href="http://www.lemonde.fr/europe/" title="Toute l’actualité Europe">Europe</a> en tant que puissance économique. Avec l'euro, un marché commun doté d'une monnaie unique et sans fluctuation de cours de change a vu le jour, créant ainsi prospérité et richesse pour nous tous. Depuis son introduction, près de 9 millions de nouveaux emplois ont été créés dans la zone euro. Les <a href="http://www.lemonde.fr/entreprises/" title="Toute l’actualité entreprises">entreprises</a> européennes profitent de ce <a href="http://www.lemonde.fr/developpement/" title="Toute l’actualité développement">développement</a>. Elles ont élargi leurs capacités de financement et augmenté leur compétitivité à l'<a href="http://www.lemonde.fr/international/" title="Toute l’actualité international">international</a>.</p>
+<p>Le ralentissement de l'économie mondiale a conduit certains pays de l'union monétaire à s'<a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/endetter/" onclick="return false;" target="_blank" title="Conjugaison du verbe endetter">endetter</a> encore davantage. A court terme, ces pays doivent <a href="http://conjugaison.lemonde.fr/conjugaison/auxiliaire/%C3%AAtre/" onclick="return false;" target="_blank" title="Conjugaison du verbe être">être</a> aidés pour <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/regagner/" onclick="return false;" target="_blank" title="Conjugaison du verbe regagner">regagner</a> leur indépendance financière et <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/recr%C3%A9er/" onclick="return false;" target="_blank" title="Conjugaison du verbe recréer">recréer</a> les conditions d'un avenir meilleur pour leur <a href="http://www.lemonde.fr/demographie/" title="Toute l’actualité population">population</a>.</p>
+<p>En contrepartie, des mesures efficaces doivent être mises en oeuvre. Le retour à une situation financière stable coûtera de nombreux milliards d'euros, mais l'<a href="http://www.lemonde.fr/union-europeenne/" title="Toute l’actualité Union européenne">Union européenne</a> et notre monnaie commune en valent la peine. Nous devons <a href="http://conjugaison.lemonde.fr/conjugaison/troisieme-groupe/convaincre/" onclick="return false;" target="_blank" title="Conjugaison du verbe convaincre">convaincre</a> nos concitoyens de cela.</p>
<p><strong>RÈGLES PLUS STRICTES</strong></p>
-<p>Nous avons besoin d'une <a class="lien_interne rub" href="http://www.lemonde.fr/politique/" title="Toute l’actualité politique">politique</a> économique européenne et de règles de stabilité plus strictes. Pour <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/%C3%A9viter/" onclick="return false;" target="_blank" title="Conjugaison du verbe éviter">éviter</a>, à l'avenir, une crise telle que celle que nous traversons actuellement, nous devons <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/renforcer/" onclick="return false;" target="_blank" title="Conjugaison du verbe renforcer">renforcer</a> les règles de stabilité existantes et <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/assurer/" onclick="return false;" target="_blank" title="Conjugaison du verbe assurer">assurer</a> leur respect. Les solutions envisagées, comme, par exemple, l'<a class="lien_interne rub" href="http://www.lemonde.fr/exclusion/" title="Toute l’actualité exclusion">exclusion</a> de pays membres de la zone euro ou la scission entre une Union des pays du Nord et du Sud, ne sont pas bonnes. Cela aurait des conséquences qui sont difficilement prévisibles aujourd'hui. De telles propositions démagogiques ne sont pas adaptées à la gravité de la situation.</p>
-<p>Cependant, des mesures doivent être prises à temps et être aussi efficaces que possible. De plus, les Etats membres doivent <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/coordonner/" onclick="return false;" target="_blank" title="Conjugaison du verbe coordonner">coordonner</a>, plus étroitement qu'auparavant, leur <a class="lien_interne rub" href="http://www.lemonde.fr/afrique-politique/" title="Toute l’actualité politique">politique</a> économique intérieure et <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/parler/" onclick="return false;" target="_blank" title="Conjugaison du verbe parler">parler</a> d'une seule voix vis-à-vis de l'extérieur.</p>
-<p>En tant qu'industriels allemands et français, nous voulons <a class="lien_interne conjug" href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/souligner/" onclick="return false;" target="_blank" title="Conjugaison du verbe souligner">souligner</a> les immenses avantages que l'espace monétaire commun a apportés. Nous envoyons un message de soutien aux responsables politiques, afin qu'ils mettent en place des conditions nécessaires à un euro durablement stable et compétitif. C'est la base de la future prospérité en Europe. L'union monétaire a durablement besoin de <a class="lien_interne rub" href="http://www.lemonde.fr/finance/" title="Toute l’actualité finances">finances</a> publiques solides, de règles de responsabilité claires, de structures transparentes et de conditions de concurrence équitables.</p>
+<p>Nous avons besoin d'une <a href="http://www.lemonde.fr/politique/" title="Toute l’actualité politique">politique</a> économique européenne et de règles de stabilité plus strictes. Pour <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/%C3%A9viter/" onclick="return false;" target="_blank" title="Conjugaison du verbe éviter">éviter</a>, à l'avenir, une crise telle que celle que nous traversons actuellement, nous devons <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/renforcer/" onclick="return false;" target="_blank" title="Conjugaison du verbe renforcer">renforcer</a> les règles de stabilité existantes et <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/assurer/" onclick="return false;" target="_blank" title="Conjugaison du verbe assurer">assurer</a> leur respect. Les solutions envisagées, comme, par exemple, l'<a href="http://www.lemonde.fr/exclusion/" title="Toute l’actualité exclusion">exclusion</a> de pays membres de la zone euro ou la scission entre une Union des pays du Nord et du Sud, ne sont pas bonnes. Cela aurait des conséquences qui sont difficilement prévisibles aujourd'hui. De telles propositions démagogiques ne sont pas adaptées à la gravité de la situation.</p>
+<p>Cependant, des mesures doivent être prises à temps et être aussi efficaces que possible. De plus, les Etats membres doivent <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/coordonner/" onclick="return false;" target="_blank" title="Conjugaison du verbe coordonner">coordonner</a>, plus étroitement qu'auparavant, leur <a href="http://www.lemonde.fr/afrique-politique/" title="Toute l’actualité politique">politique</a> économique intérieure et <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/parler/" onclick="return false;" target="_blank" title="Conjugaison du verbe parler">parler</a> d'une seule voix vis-à-vis de l'extérieur.</p>
+<p>En tant qu'industriels allemands et français, nous voulons <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/souligner/" onclick="return false;" target="_blank" title="Conjugaison du verbe souligner">souligner</a> les immenses avantages que l'espace monétaire commun a apportés. Nous envoyons un message de soutien aux responsables politiques, afin qu'ils mettent en place des conditions nécessaires à un euro durablement stable et compétitif. C'est la base de la future prospérité en Europe. L'union monétaire a durablement besoin de <a href="http://www.lemonde.fr/finance/" title="Toute l’actualité finances">finances</a> publiques solides, de règles de responsabilité claires, de structures transparentes et de conditions de concurrence équitables.</p>
<p>Ce n'est qu'à ces conditions que l'euro sortira renforcé de la crise de la dette. Il n'y a pas d'alternative sérieuse à l'euro commun. L'euro symbolise l'Europe d'aujourd'hui. Un échec de l'euro serait un revers fatal pour l'Europe.</p>
<hr></hr><p>
-Appel Frank (Deutsche Post) ; Aschenbroich Jacques (Valeo) ; Berger Roland (Roland Berger Strategy Consultants) ; Bock Kurt (BASF) ; Bories Christel (Constellium) ; Borsig Clemens (Deutsche Bank) ; Brunck Robert (CGG Veritas) ; Buffet Patrick (Eramet) ; Burda Hubert (Hubert Burda Media Holding) ; Caparros Alain (Rewe group) ; Clamadieu Jean-Pierre (Rhodia) ; Cromme Gerhard (ThyssenKrupp) ; Crouzet Philippe (Vallourec) ; de Chalendar Pierre-André (Saint-Gobain) ; de Margerie Christophe (Total) ; de Romanet Augustin (Caisse des dépôts et consignations) ; Degenhart Elmar (Continental) ; Diekmann Michael (Allianz) ; Engel Klaus (Evonik Industries) ; Fehrenbach Franz (Robert Bosch) ; Frérot Antoine (Veolia </p><a class="lien_interne rub" href="http://www.lemonde.fr/environnement/" title="Toute l’actualité Environnement">Environnement</a><p>) ; Hagemann Snabe Jim (SAP) ; Henrot François (Groupe Rothschild Cie Banque) ; Hermelin Paul (Cap Gemini) ; Kormann Hermut (Lazard) ; Kron Patrick (Alstom) ; Lachmann Henri (Schneider Electric) ; Lafont Bruno (Lafarge) ; Lauvergeon Anne (Areva) ; Lévy Maurice (Publicis Groupe SA) ; Lévy Jean-Bernard (Vivendi) ; Löscher Peter (Siemens) ; Mestrallet Gérard (GDF Suez) ; Obermann René (Deutsche Telekom) ;Oetker Arend (Dr Arend Oetker Holding) ; Oudéa Frédéric (Société Générale) ; Potier Benoit (Air Liquide) ; Ranque Denis (Cercle de l'</p><a class="lien_interne rub" href="http://www.lemonde.fr/industrie/" title="Toute l’actualité industrie">industrie</a><p>/Technicolor) ; Reithofer Norbert (BMW) ; Reitzle Wolfgang (Linde) ; Richard Stéphane (France Telecom) ; Rollier Michel (Michelin) ; Rose Frédéric (Technicolor) ; Schnepp Gilles (Legrand) ; Spinetta Jean-Cyril (Air-</p><a class="lien_interne rub" href="http://www.lemonde.fr/europeennes-france/" title="Toute l’actualité France">France</a><p> KLM)  ; Teyssen Johannes (E.ON)  ; Thumann Jürgen (BusinessEurope) ; Verwaayen Ben (Alcatel-Lucent) ; Viehbacher Chris (Sanofi) ; Zetsche Dieter (Daimler).</p><br></br></div> \ No newline at end of file
+Appel Frank (Deutsche Post) ; Aschenbroich Jacques (Valeo) ; Berger Roland (Roland Berger Strategy Consultants) ; Bock Kurt (BASF) ; Bories Christel (Constellium) ; Borsig Clemens (Deutsche Bank) ; Brunck Robert (CGG Veritas) ; Buffet Patrick (Eramet) ; Burda Hubert (Hubert Burda Media Holding) ; Caparros Alain (Rewe group) ; Clamadieu Jean-Pierre (Rhodia) ; Cromme Gerhard (ThyssenKrupp) ; Crouzet Philippe (Vallourec) ; de Chalendar Pierre-André (Saint-Gobain) ; de Margerie Christophe (Total) ; de Romanet Augustin (Caisse des dépôts et consignations) ; Degenhart Elmar (Continental) ; Diekmann Michael (Allianz) ; Engel Klaus (Evonik Industries) ; Fehrenbach Franz (Robert Bosch) ; Frérot Antoine (Veolia </p><a href="http://www.lemonde.fr/environnement/" title="Toute l’actualité Environnement">Environnement</a><p>) ; Hagemann Snabe Jim (SAP) ; Henrot François (Groupe Rothschild Cie Banque) ; Hermelin Paul (Cap Gemini) ; Kormann Hermut (Lazard) ; Kron Patrick (Alstom) ; Lachmann Henri (Schneider Electric) ; Lafont Bruno (Lafarge) ; Lauvergeon Anne (Areva) ; Lévy Maurice (Publicis Groupe SA) ; Lévy Jean-Bernard (Vivendi) ; Löscher Peter (Siemens) ; Mestrallet Gérard (GDF Suez) ; Obermann René (Deutsche Telekom) ;Oetker Arend (Dr Arend Oetker Holding) ; Oudéa Frédéric (Société Générale) ; Potier Benoit (Air Liquide) ; Ranque Denis (Cercle de l'</p><a href="http://www.lemonde.fr/industrie/" title="Toute l’actualité industrie">industrie</a><p>/Technicolor) ; Reithofer Norbert (BMW) ; Reitzle Wolfgang (Linde) ; Richard Stéphane (France Telecom) ; Rollier Michel (Michelin) ; Rose Frédéric (Technicolor) ; Schnepp Gilles (Legrand) ; Spinetta Jean-Cyril (Air-</p><a href="http://www.lemonde.fr/europeennes-france/" title="Toute l’actualité France">France</a><p> KLM)  ; Teyssen Johannes (E.ON)  ; Thumann Jürgen (BusinessEurope) ; Verwaayen Ben (Alcatel-Lucent) ; Viehbacher Chris (Sanofi) ; Zetsche Dieter (Daimler).</p><br></br></div> \ No newline at end of file
diff --git a/test/test-pages/liberation-1/expected.html b/test/test-pages/liberation-1/expected.html
index 6963480..889c2b9 100644
--- a/test/test-pages/liberation-1/expected.html
+++ b/test/test-pages/liberation-1/expected.html
@@ -1,4 +1,4 @@
-<section id="news-article"><article itemscope="" itemtype="http://schema.org/NewsArticle"><div class="article-body mod" id="article-body" itemprop="articleBody">
+<section id="news-article"><article itemscope="" itemtype="http://schema.org/NewsArticle"><div id="article-body" itemprop="articleBody">
<div>
<p>Un troisième Français a été tué dans le tremblement de terre samedi au Népal, emporté par une avalanche, <a href="http://www.liberation.fr/video/2015/04/30/laurent-fabius-plus-de-200-francais-n-ont-pas-ete-retrouves_1278687" target="_blank">a déclaré jeudi le ministre des Affaires étrangères</a>. Les autorités françaises sont toujours sans nouvelles <em>«d’encore plus de 200» </em>personnes. <em>«Pour certains d’entre eux on est très interrogatif»</em>, a ajouté Laurent Fabius. Il accueillait à Roissy un premier avion spécial ramenant des rescapés. <a href="http://www.liberation.fr/video/2015/04/30/seisme-au-nepal-soulages-mais-inquiets-206-survivants-de-retour-en-france_1278758" target="_blank">L’Airbus A350 affrété par les autorités françaises s’est posé peu avant 5h45</a> avec à son bord 206 passagers, dont 12 enfants et 26 blessés, selon une source du Quai d’Orsay. Quasiment tous sont français, à l’exception d’une quinzaine de ressortissants allemands, suisses, italiens, portugais ou encore turcs. Des psychologues, une équipe médicale et des personnels du centre de crise du Quai d’Orsay les attendent.</p>
<p>L’appareil, mis à disposition par Airbus, était arrivé à Katmandou mercredi matin avec 55 personnels de santé et humanitaires, ainsi que 25 tonnes de matériel (abris, médicaments, aide alimentaire). Un deuxième avion dépêché par Paris, qui était immobilisé aux Emirats depuis mardi avec 20 tonnes de matériel, est arrivé jeudi à Katmandou, <a href="http://www.liberation.fr/monde/2015/04/29/embouteillages-et-retards-a-l-aeroport-de-katmandou_1276612" target="_blank">dont le petit aéroport est engorgé</a> par le trafic et l’afflux d’aide humanitaire. Il devait lui aussi ramener des Français, <em>«les plus éprouvés»</em> par la catastrophe et les <em>«plus vulnérables (blessés, familles avec enfants)»</em>, selon le ministère des Affaires étrangères.</p>
diff --git a/test/test-pages/lifehacker-post-comment-load/expected.html b/test/test-pages/lifehacker-post-comment-load/expected.html
index ed41c96..d5e6c7c 100644
--- a/test/test-pages/lifehacker-post-comment-load/expected.html
+++ b/test/test-pages/lifehacker-post-comment-load/expected.html
@@ -1,4 +1,4 @@
-<div class="post-content entry-content new-annotation"><p class="has-media media-640" data-textannotation-id="58a492029dca5e6a6e481d21b6b2933a"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" class="js_annotatable-image cursor-crosshair" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" data-chomp-id="n1s6c2m6kc07iqdyllj6" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" width="636"></img></span></p><p class="first-text" data-textannotation-id="a043044f9b3e31fd85568b17e3b1b5f3"><span>We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.</span></p>
+<div><p data-textannotation-id="58a492029dca5e6a6e481d21b6b2933a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" data-chomp-id="n1s6c2m6kc07iqdyllj6" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" width="636"></img></span></p><p data-textannotation-id="a043044f9b3e31fd85568b17e3b1b5f3"><span>We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.</span></p>
@@ -21,7 +21,7 @@
-<p class="has-media media-640" data-textannotation-id="268f7702467d33e3b0972dd09f1cf0a6"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" class="js_annotatable-image cursor-crosshair" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" data-chomp-id="o4dpyrcbiqyfrc3bxx6p" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" width="636"></img></span></p>
+<p data-textannotation-id="268f7702467d33e3b0972dd09f1cf0a6"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" data-chomp-id="o4dpyrcbiqyfrc3bxx6p" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" width="636"></img></span></p>
@@ -56,7 +56,7 @@
-<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+<aside>
</aside><p data-textannotation-id="89992f1ca493b248eea6ed1772326c46">For example, confirmation bias makes you only believe the information that conforms to your prior beliefs, while you discount everything else. Advertisers appeal to this bias directly by convincing you one item is better than another with imagery and other tricks, regardless of what hard facts might say. Keep your mind open, do your own research, and accept when you're wrong about a product. The Decoy effect is also a commonly used tactic. You think one product is a deal because it's next to a similar product that's priced way higher. Even if it's a product you need, it's probably not as good of a deal as it looks right then and there. Again, always research beforehand and be on the lookout for this common trick to avoid impulse buys.</p>
@@ -79,7 +79,7 @@
-<p class="has-media media-640" data-textannotation-id="8044cf9aab698fd28931acd90ba96f7a"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" class="js_annotatable-image cursor-crosshair" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" data-chomp-id="xrhkwleyurcizy4akiae" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" width="636"></img></span></p>
+<p data-textannotation-id="8044cf9aab698fd28931acd90ba96f7a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" data-chomp-id="xrhkwleyurcizy4akiae" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" width="636"></img></span></p>
@@ -103,7 +103,7 @@
-<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+<aside>
</aside><p data-textannotation-id="bbe57b7aa20b48550e5f66b7c530822c">The purpose of this exercise is twofold: you see what you already have and don't need to ever buy again, and you get to see what you shouldn't have bought in the first place. As you list everything out, separate items into categories. It's extremely important that you are as honest with yourself as possible while you do this. It's also important you actually write this all down or type it all out. Here is the first set of categories to separate everything into:</p>
@@ -159,7 +159,7 @@
-<p class="has-media media-640" data-textannotation-id="bc2f55587bf4ab07a1852a8d26217233"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" class="js_annotatable-image cursor-crosshair" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" data-chomp-id="qodag11euf2npkawkn9v" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" width="636"></img></span></p>
+<p data-textannotation-id="bc2f55587bf4ab07a1852a8d26217233"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" data-chomp-id="qodag11euf2npkawkn9v" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" width="636"></img></span></p>
@@ -203,7 +203,7 @@
-<p class="has-media media-640" data-textannotation-id="bafeac1c3808e0d2900190979f058b2c"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" class="js_annotatable-image cursor-crosshair" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" data-chomp-id="imfc9ybqfw0jmztbhfrh" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" width="636"></img></span></p>
+<p data-textannotation-id="bafeac1c3808e0d2900190979f058b2c"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" data-chomp-id="imfc9ybqfw0jmztbhfrh" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" width="636"></img></span></p>
@@ -247,7 +247,7 @@
-<p class="has-media media-640" data-textannotation-id="64f5c7155ad89bd2835399d33c1ae28a"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" class="js_annotatable-image cursor-crosshair" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" data-chomp-id="afy7n45jfvsjdmmhonct" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" width="636"></img></span></p>
+<p data-textannotation-id="64f5c7155ad89bd2835399d33c1ae28a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" data-chomp-id="afy7n45jfvsjdmmhonct" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" width="636"></img></span></p>
@@ -291,7 +291,7 @@
-<p class="has-media media-640" data-textannotation-id="ff438b878771354bb7f6d065ff50dbb2"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" class="js_annotatable-image cursor-crosshair" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" data-chomp-id="s3pq8vjrvyjgne4lfsod" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" width="636"></img></span></p>
+<p data-textannotation-id="ff438b878771354bb7f6d065ff50dbb2"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" data-chomp-id="s3pq8vjrvyjgne4lfsod" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" width="636"></img></span></p>
@@ -335,7 +335,7 @@
-<p class="has-media media-640" data-textannotation-id="1d43712fc5ce8f156e4661cca5750575"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" class="js_annotatable-image cursor-crosshair" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" data-chomp-id="y2ldv5eufb3jcrtfouye" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" width="636"></img></span></p>
+<p data-textannotation-id="1d43712fc5ce8f156e4661cca5750575"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" data-chomp-id="y2ldv5eufb3jcrtfouye" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" width="636"></img></span></p>
@@ -381,7 +381,7 @@
-<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+<aside>
</aside><p data-textannotation-id="27385752c06848647540ad931892b21e">The last thing you should consider when it comes to impulse buys is "artificial replacement." As Trent Hamm at The Simple Dollar explains, artificial replacement can happen when you start to <a href="http://www.thesimpledollar.com/balancing-spending-and-time-how-time-frugality-can-save-you-lots-of-cash/" target="_blank">reduce the time</a> you get with your main interests:</p>
@@ -427,7 +427,7 @@
-<p class="has-media media-640" data-textannotation-id="21154394d63f1943d01f2b717aa31115"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" class="js_annotatable-image cursor-crosshair" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" data-chomp-id="atb9qm07fvvg7hqkumkw" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" width="636"></img></span></p>
+<p data-textannotation-id="21154394d63f1943d01f2b717aa31115"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" data-chomp-id="atb9qm07fvvg7hqkumkw" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" width="636"></img></span></p>
@@ -484,5 +484,5 @@
-<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+<aside>
</aside><p data-textannotation-id="b54d87ffdace50f420c3a6ff0404cbf3"><em><small>Photos by <a href="http://www.shutterstock.com/pic-129762989/stock-vector-consumer.html?src=id&amp;ws=1" target="_blank">cmgirl</a> (Shutterstock), <a href="http://www.shutterstock.com/pic-227832739/stock-vector-hacker-icon-man-in-hoody-with-laptop-flat-isolated-on-dark-background-vector-illustration.html?src=id&amp;ws=1" target="_blank">Macrovector</a> (Shutterstock), <a href="https://www.flickr.com/photos/jetheriot/6186786217" target="_blank">J E Theriot</a>, <a href="https://www.flickr.com/photos/puuikibeach/15289861843" target="_blank">davidd</a>, <a href="https://www.flickr.com/photos/funfilledgeorgie/10922459733" target="_blank">George Redgrave</a>, <a href="https://www.flickr.com/photos/amslerpix/7252002214" target="_blank">David Amsler</a>, <a href="https://www.flickr.com/photos/amalakar/7299820870" target="_blank">Arup Malakar</a>, <a href="https://www.flickr.com/photos/lobsterstew/89644885" target="_blank">J B</a>, <a href="https://www.flickr.com/photos/jakerome/3298702453" target="_blank">jakerome</a>, <a href="http://401kcalculator.org/" target="_blank">401(K) 2012</a>.</small></em></p></div> \ No newline at end of file
diff --git a/test/test-pages/lifehacker-working/expected.html b/test/test-pages/lifehacker-working/expected.html
index 918b0d9..d5e6c7c 100644
--- a/test/test-pages/lifehacker-working/expected.html
+++ b/test/test-pages/lifehacker-working/expected.html
@@ -1,4 +1,4 @@
-<div class="post-content entry-content "><p class="has-media media-640" data-textannotation-id="58a492029dca5e6a6e481d21b6b2933a"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" data-chomp-id="n1s6c2m6kc07iqdyllj6" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" width="636"></img></span></p><p class="first-text" data-textannotation-id="a043044f9b3e31fd85568b17e3b1b5f3"><span>We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.</span></p>
+<div><p data-textannotation-id="58a492029dca5e6a6e481d21b6b2933a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" data-chomp-id="n1s6c2m6kc07iqdyllj6" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" width="636"></img></span></p><p data-textannotation-id="a043044f9b3e31fd85568b17e3b1b5f3"><span>We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.</span></p>
@@ -21,7 +21,7 @@
-<p class="has-media media-640" data-textannotation-id="268f7702467d33e3b0972dd09f1cf0a6"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" data-chomp-id="o4dpyrcbiqyfrc3bxx6p" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" width="636"></img></span></p>
+<p data-textannotation-id="268f7702467d33e3b0972dd09f1cf0a6"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" data-chomp-id="o4dpyrcbiqyfrc3bxx6p" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" width="636"></img></span></p>
@@ -56,7 +56,7 @@
-<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+<aside>
</aside><p data-textannotation-id="89992f1ca493b248eea6ed1772326c46">For example, confirmation bias makes you only believe the information that conforms to your prior beliefs, while you discount everything else. Advertisers appeal to this bias directly by convincing you one item is better than another with imagery and other tricks, regardless of what hard facts might say. Keep your mind open, do your own research, and accept when you're wrong about a product. The Decoy effect is also a commonly used tactic. You think one product is a deal because it's next to a similar product that's priced way higher. Even if it's a product you need, it's probably not as good of a deal as it looks right then and there. Again, always research beforehand and be on the lookout for this common trick to avoid impulse buys.</p>
@@ -79,7 +79,7 @@
-<p class="has-media media-640" data-textannotation-id="8044cf9aab698fd28931acd90ba96f7a"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" data-chomp-id="xrhkwleyurcizy4akiae" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" width="636"></img></span></p>
+<p data-textannotation-id="8044cf9aab698fd28931acd90ba96f7a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" data-chomp-id="xrhkwleyurcizy4akiae" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" width="636"></img></span></p>
@@ -103,7 +103,7 @@
-<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+<aside>
</aside><p data-textannotation-id="bbe57b7aa20b48550e5f66b7c530822c">The purpose of this exercise is twofold: you see what you already have and don't need to ever buy again, and you get to see what you shouldn't have bought in the first place. As you list everything out, separate items into categories. It's extremely important that you are as honest with yourself as possible while you do this. It's also important you actually write this all down or type it all out. Here is the first set of categories to separate everything into:</p>
@@ -159,7 +159,7 @@
-<p class="has-media media-640" data-textannotation-id="bc2f55587bf4ab07a1852a8d26217233"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" data-chomp-id="qodag11euf2npkawkn9v" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" width="636"></img></span></p>
+<p data-textannotation-id="bc2f55587bf4ab07a1852a8d26217233"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" data-chomp-id="qodag11euf2npkawkn9v" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" width="636"></img></span></p>
@@ -203,7 +203,7 @@
-<p class="has-media media-640" data-textannotation-id="bafeac1c3808e0d2900190979f058b2c"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" data-chomp-id="imfc9ybqfw0jmztbhfrh" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" width="636"></img></span></p>
+<p data-textannotation-id="bafeac1c3808e0d2900190979f058b2c"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" data-chomp-id="imfc9ybqfw0jmztbhfrh" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" width="636"></img></span></p>
@@ -247,7 +247,7 @@
-<p class="has-media media-640" data-textannotation-id="64f5c7155ad89bd2835399d33c1ae28a"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" data-chomp-id="afy7n45jfvsjdmmhonct" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" width="636"></img></span></p>
+<p data-textannotation-id="64f5c7155ad89bd2835399d33c1ae28a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" data-chomp-id="afy7n45jfvsjdmmhonct" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" width="636"></img></span></p>
@@ -291,7 +291,7 @@
-<p class="has-media media-640" data-textannotation-id="ff438b878771354bb7f6d065ff50dbb2"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" data-chomp-id="s3pq8vjrvyjgne4lfsod" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" width="636"></img></span></p>
+<p data-textannotation-id="ff438b878771354bb7f6d065ff50dbb2"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" data-chomp-id="s3pq8vjrvyjgne4lfsod" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" width="636"></img></span></p>
@@ -335,7 +335,7 @@
-<p class="has-media media-640" data-textannotation-id="1d43712fc5ce8f156e4661cca5750575"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" data-chomp-id="y2ldv5eufb3jcrtfouye" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" width="636"></img></span></p>
+<p data-textannotation-id="1d43712fc5ce8f156e4661cca5750575"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" data-chomp-id="y2ldv5eufb3jcrtfouye" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" width="636"></img></span></p>
@@ -381,7 +381,7 @@
-<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+<aside>
</aside><p data-textannotation-id="27385752c06848647540ad931892b21e">The last thing you should consider when it comes to impulse buys is "artificial replacement." As Trent Hamm at The Simple Dollar explains, artificial replacement can happen when you start to <a href="http://www.thesimpledollar.com/balancing-spending-and-time-how-time-frugality-can-save-you-lots-of-cash/" target="_blank">reduce the time</a> you get with your main interests:</p>
@@ -427,7 +427,7 @@
-<p class="has-media media-640" data-textannotation-id="21154394d63f1943d01f2b717aa31115"><span class="img-border"><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" data-chomp-id="atb9qm07fvvg7hqkumkw" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" width="636"></img></span></p>
+<p data-textannotation-id="21154394d63f1943d01f2b717aa31115"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" data-chomp-id="atb9qm07fvvg7hqkumkw" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" width="636"></img></span></p>
@@ -484,5 +484,5 @@
-<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+<aside>
</aside><p data-textannotation-id="b54d87ffdace50f420c3a6ff0404cbf3"><em><small>Photos by <a href="http://www.shutterstock.com/pic-129762989/stock-vector-consumer.html?src=id&amp;ws=1" target="_blank">cmgirl</a> (Shutterstock), <a href="http://www.shutterstock.com/pic-227832739/stock-vector-hacker-icon-man-in-hoody-with-laptop-flat-isolated-on-dark-background-vector-illustration.html?src=id&amp;ws=1" target="_blank">Macrovector</a> (Shutterstock), <a href="https://www.flickr.com/photos/jetheriot/6186786217" target="_blank">J E Theriot</a>, <a href="https://www.flickr.com/photos/puuikibeach/15289861843" target="_blank">davidd</a>, <a href="https://www.flickr.com/photos/funfilledgeorgie/10922459733" target="_blank">George Redgrave</a>, <a href="https://www.flickr.com/photos/amslerpix/7252002214" target="_blank">David Amsler</a>, <a href="https://www.flickr.com/photos/amalakar/7299820870" target="_blank">Arup Malakar</a>, <a href="https://www.flickr.com/photos/lobsterstew/89644885" target="_blank">J B</a>, <a href="https://www.flickr.com/photos/jakerome/3298702453" target="_blank">jakerome</a>, <a href="http://401kcalculator.org/" target="_blank">401(K) 2012</a>.</small></em></p></div> \ No newline at end of file
diff --git a/test/test-pages/links-in-tables/expected.html b/test/test-pages/links-in-tables/expected.html
index 8c51f33..73b554d 100644
--- a/test/test-pages/links-in-tables/expected.html
+++ b/test/test-pages/links-in-tables/expected.html
@@ -1,4 +1,4 @@
-<div class="post-body entry-content" id="post-body-2701400044422363572" itemprop="articlesBody">
+<div id="post-body-2701400044422363572" itemprop="articlesBody">
<p>
<em>Posted by Andrew Hayden, Software Engineer on Google Play</em>
</p>
@@ -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 height="105" src="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s640/ipsum-opsum.gif" width="640"></img></a></div>
+<div><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 height="200" src="https://2.bp.blogspot.com/-5aRh1dM6Unc/WEcNs55RGhI/AAAAAAAADnI/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB/s200/image01.png" width="191"></img></a></div>
+<div><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 5818ba2..b2bef41 100644
--- a/test/test-pages/lwn-1/expected.html
+++ b/test/test-pages/lwn-1/expected.html
@@ -1,7 +1,7 @@
-<div><td class="MidColumn">
+<div><td>
- <div class="ArticleText">
- <h2 class="SummaryHL"><a href="http://fakehost/Articles/637755/">A trademark battle in the Arduino community</a></h2>
+ <div>
+ <h2><a href="http://fakehost/Articles/637755/">A trademark battle in the Arduino community</a></h2>
<p>The <a href="https://en.wikipedia.org/wiki/Arduino">Arduino</a> has been one of the biggest success stories of the open-hardware movement, but that success does not protect it from internal conflict. In recent months, two of the project's founders have come into conflict about the direction of future efforts—and that conflict has turned into a legal dispute about who owns the rights to the Arduino trademark. </p>
<p>The current fight is a battle between two companies that both bear the Arduino name: Arduino LLC and Arduino SRL. The disagreements that led to present state of affairs go back a bit further. </p>
@@ -23,7 +23,7 @@ program</a> for third-party manufacturers interested in using the "Arduino" bran
<p>But, perhaps, once a project becomes profitable, there is simply no way to predict what might happen. Arduino LLC would seem to have a strong case for continual and rigorous use of the "Arduino" trademark, which is the salient point in US trademark law. It could still be a while before the courts rule on either side of that question, however. </p>
<p><a href="http://fakehost/Articles/637755/#Comments">Comments (5 posted)</a> </p>
- <h2 class="SummaryHL"><a href="http://fakehost/Articles/637533/">Mapping and data mining with QGIS 2.8</a></h2>
+ <h2><a href="http://fakehost/Articles/637533/">Mapping and data mining with QGIS 2.8</a></h2>
<p> By <b>Nathan Willis</b>
<br></br>March 25, 2015 </p>
<p><a href="http://qgis.org/">QGIS</a> is a free-software geographic information system (GIS) tool; it provides a unified interface in which users can import, edit, and analyze geographic-oriented information, and it can produce output as varied as printable maps or map-based web services. The project recently made its first update to be designated a long-term release (LTR), and that release is both poised for high-end usage and friendly to newcomers alike. </p>
@@ -57,7 +57,7 @@ curves</a>, refactoring data sets, and more. </p>
<p>QGIS is one of those rare free-software applications that is both powerful enough for high-end work and yet also straightforward to use for the simple tasks that might attract a newcomer to GIS in the first place. The 2.8 release, particularly with its project-wide commitment to long-term support, appears to be an update well worth checking out, whether one needs to create a simple, custom map or to mine a database for obscure geo-referenced meaning. </p>
<p><a href="http://fakehost/Articles/637533/#Comments">Comments (3 posted)</a> </p>
- <h2 class="SummaryHL"><a href="http://fakehost/Articles/637735/">Development activity in LibreOffice and OpenOffice</a></h2>
+ <h2><a href="http://fakehost/Articles/637735/">Development activity in LibreOffice and OpenOffice</a></h2>
<p> By <b>Jonathan Corbet</b>
<br></br>March 25, 2015 </p><p> The LibreOffice project was </p><a href="http://fakehost/Articles/407383/">announced</a><p> with great fanfare in September 2010. Nearly one year later, the OpenOffice.org project (from which LibreOffice was forked) </p><a href="http://fakehost/Articles/446093/">was
cut loose from Oracle</a><p> and found a new home as an Apache project. It is fair to say that the rivalry between the two projects in the time since then has been strong. Predictions that one project or the other would fail have not been borne out, but that does not mean that the two projects are equally successful. A look at the two projects' development communities reveals some interesting differences.
@@ -77,103 +77,103 @@ cut loose from Oracle</a><p> and found a new home as an Apache project. It is fa
<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>
+ </tr><tr><td>Herbert Dürr</td>
<td>63</td>
<td>16.6%</td>
- </tr><tr class="Odd"><td>Jürgen Schmidt             </td>
+ </tr><tr><td>Jürgen Schmidt             </td>
<td>56</td>
<td>14.7%</td>
- </tr><tr class="Even"><td>Armin Le Grand</td>
+ </tr><tr><td>Armin Le Grand</td>
<td>56</td>
<td>14.7%</td>
- </tr><tr class="Odd"><td>Oliver-Rainer Wittmann</td>
+ </tr><tr><td>Oliver-Rainer Wittmann</td>
<td>46</td>
<td>12.1%</td>
- </tr><tr class="Even"><td>Tsutomu Uchino</td>
+ </tr><tr><td>Tsutomu Uchino</td>
<td>33</td>
<td>8.7%</td>
- </tr><tr class="Odd"><td>Kay Schenk</td>
+ </tr><tr><td>Kay Schenk</td>
<td>27</td>
<td>7.1%</td>
- </tr><tr class="Even"><td>Pedro Giffuni</td>
+ </tr><tr><td>Pedro Giffuni</td>
<td>23</td>
<td>6.1%</td>
- </tr><tr class="Odd"><td>Ariel Constenla-Haile</td>
+ </tr><tr><td>Ariel Constenla-Haile</td>
<td>22</td>
<td>5.8%</td>
- </tr><tr class="Even"><td>Andrea Pescetti</td>
+ </tr><tr><td>Andrea Pescetti</td>
<td>14</td>
<td>3.7%</td>
- </tr><tr class="Odd"><td>Steve Yin</td>
+ </tr><tr><td>Steve Yin</td>
<td>11</td>
<td>2.9%</td>
- </tr><tr class="Even"><td>Andre Fischer</td>
+ </tr><tr><td>Andre Fischer</td>
<td>10</td>
<td>2.6%</td>
- </tr><tr class="Odd"><td>Yuri Dario</td>
+ </tr><tr><td>Yuri Dario</td>
<td>7</td>
<td>1.8%</td>
- </tr><tr class="Even"><td>Regina Henschel</td>
+ </tr><tr><td>Regina Henschel</td>
<td>6</td>
<td>1.6%</td>
- </tr><tr class="Odd"><td>Juan C. Sanz</td>
+ </tr><tr><td>Juan C. Sanz</td>
<td>2</td>
<td>0.5%</td>
- </tr><tr class="Even"><td>Clarence Guo</td>
+ </tr><tr><td>Clarence Guo</td>
<td>2</td>
<td>0.5%</td>
- </tr><tr class="Odd"><td>Tal Daniel</td>
+ </tr><tr><td>Tal Daniel</td>
<td>2</td>
<td>0.5%</td>
</tr></tbody></table></td>
<td>
<table><tbody><tr><th colspan="3">By changed lines</th>
- </tr><tr class="Even"><td>Jürgen Schmidt             </td>
+ </tr><tr><td>Jürgen Schmidt             </td>
<td>455499</td>
<td>88.1%</td>
- </tr><tr class="Odd"><td>Andre Fischer</td>
+ </tr><tr><td>Andre Fischer</td>
<td>26148</td>
<td>3.8%</td>
- </tr><tr class="Even"><td>Pedro Giffuni</td>
+ </tr><tr><td>Pedro Giffuni</td>
<td>23183</td>
<td>3.4%</td>
- </tr><tr class="Odd"><td>Armin Le Grand</td>
+ </tr><tr><td>Armin Le Grand</td>
<td>11018</td>
<td>1.6%</td>
- </tr><tr class="Even"><td>Juan C. Sanz</td>
+ </tr><tr><td>Juan C. Sanz</td>
<td>4582</td>
<td>0.7%</td>
- </tr><tr class="Odd"><td>Oliver-Rainer Wittmann</td>
+ </tr><tr><td>Oliver-Rainer Wittmann</td>
<td>4309</td>
<td>0.6%</td>
- </tr><tr class="Even"><td>Andrea Pescetti</td>
+ </tr><tr><td>Andrea Pescetti</td>
<td>3908</td>
<td>0.6%</td>
- </tr><tr class="Odd"><td>Herbert Dürr</td>
+ </tr><tr><td>Herbert Dürr</td>
<td>2811</td>
<td>0.4%</td>
- </tr><tr class="Even"><td>Tsutomu Uchino</td>
+ </tr><tr><td>Tsutomu Uchino</td>
<td>1991</td>
<td>0.3%</td>
- </tr><tr class="Odd"><td>Ariel Constenla-Haile</td>
+ </tr><tr><td>Ariel Constenla-Haile</td>
<td>1258</td>
<td>0.2%</td>
- </tr><tr class="Even"><td>Steve Yin</td>
+ </tr><tr><td>Steve Yin</td>
<td>1010</td>
<td>0.1%</td>
- </tr><tr class="Odd"><td>Kay Schenk</td>
+ </tr><tr><td>Kay Schenk</td>
<td>616</td>
<td>0.1%</td>
- </tr><tr class="Even"><td>Regina Henschel</td>
+ </tr><tr><td>Regina Henschel</td>
<td>417</td>
<td>0.1%</td>
- </tr><tr class="Odd"><td>Yuri Dario</td>
+ </tr><tr><td>Yuri Dario</td>
<td>268</td>
<td>0.0%</td>
- </tr><tr class="Even"><td>tal</td>
+ </tr><tr><td>tal</td>
<td>16</td>
<td>0.0%</td>
- </tr><tr class="Odd"><td>Clarence Guo</td>
+ </tr><tr><td>Clarence Guo</td>
<td>11</td>
<td>0.0%</td>
</tr></tbody></table></td>
@@ -186,127 +186,127 @@ cut loose from Oracle</a><p> and found a new home as an Apache project. It is fa
<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>
+ </tr><tr><td>Caolán McNamara</td>
<td>4307</td>
<td>19.5%</td>
- </tr><tr class="Odd"><td>Stephan Bergmann</td>
+ </tr><tr><td>Stephan Bergmann</td>
<td>2351</td>
<td>10.6%</td>
- </tr><tr class="Even"><td>Miklos Vajna</td>
+ </tr><tr><td>Miklos Vajna</td>
<td>1449</td>
<td>6.5%</td>
- </tr><tr class="Odd"><td>Tor Lillqvist</td>
+ </tr><tr><td>Tor Lillqvist</td>
<td>1159</td>
<td>5.2%</td>
- </tr><tr class="Even"><td>Noel Grandin</td>
+ </tr><tr><td>Noel Grandin</td>
<td>1064</td>
<td>4.8%</td>
- </tr><tr class="Odd"><td>Markus Mohrhard</td>
+ </tr><tr><td>Markus Mohrhard</td>
<td>935</td>
<td>4.2%</td>
- </tr><tr class="Even"><td>Michael Stahl</td>
+ </tr><tr><td>Michael Stahl</td>
<td>915</td>
<td>4.1%</td>
- </tr><tr class="Odd"><td>Kohei Yoshida</td>
+ </tr><tr><td>Kohei Yoshida</td>
<td>755</td>
<td>3.4%</td>
- </tr><tr class="Even"><td>Tomaž Vajngerl</td>
+ </tr><tr><td>Tomaž Vajngerl</td>
<td>658</td>
<td>3.0%</td>
- </tr><tr class="Odd"><td>Thomas Arnhold</td>
+ </tr><tr><td>Thomas Arnhold</td>
<td>619</td>
<td>2.8%</td>
- </tr><tr class="Even"><td>Jan Holesovsky</td>
+ </tr><tr><td>Jan Holesovsky</td>
<td>466</td>
<td>2.1%</td>
- </tr><tr class="Odd"><td>Eike Rathke</td>
+ </tr><tr><td>Eike Rathke</td>
<td>457</td>
<td>2.1%</td>
- </tr><tr class="Even"><td>Matteo Casalin</td>
+ </tr><tr><td>Matteo Casalin</td>
<td>442</td>
<td>2.0%</td>
- </tr><tr class="Odd"><td>Bjoern Michaelsen</td>
+ </tr><tr><td>Bjoern Michaelsen</td>
<td>421</td>
<td>1.9%</td>
- </tr><tr class="Even"><td>Chris Sherlock</td>
+ </tr><tr><td>Chris Sherlock</td>
<td>396</td>
<td>1.8%</td>
- </tr><tr class="Odd"><td>David Tardon</td>
+ </tr><tr><td>David Tardon</td>
<td>386</td>
<td>1.7%</td>
- </tr><tr class="Even"><td>Julien Nabet</td>
+ </tr><tr><td>Julien Nabet</td>
<td>362</td>
<td>1.6%</td>
- </tr><tr class="Odd"><td>Zolnai Tamás</td>
+ </tr><tr><td>Zolnai Tamás</td>
<td>338</td>
<td>1.5%</td>
- </tr><tr class="Even"><td>Matúš Kukan</td>
+ </tr><tr><td>Matúš Kukan</td>
<td>256</td>
<td>1.2%</td>
- </tr><tr class="Odd"><td>Robert Antoni Buj Gelonch</td>
+ </tr><tr><td>Robert Antoni Buj Gelonch</td>
<td>231</td>
<td>1.0%</td>
</tr></tbody></table></td>
<td>
<table><tbody><tr><th colspan="3">By changed lines</th>
- </tr><tr class="Even"><td>Lionel Elie Mamane</td>
+ </tr><tr><td>Lionel Elie Mamane</td>
<td>244062</td>
<td>12.5%</td>
- </tr><tr class="Odd"><td>Noel Grandin</td>
+ </tr><tr><td>Noel Grandin</td>
<td>238711</td>
<td>12.2%</td>
- </tr><tr class="Even"><td>Stephan Bergmann</td>
+ </tr><tr><td>Stephan Bergmann</td>
<td>161220</td>
<td>8.3%</td>
- </tr><tr class="Odd"><td>Miklos Vajna</td>
+ </tr><tr><td>Miklos Vajna</td>
<td>129325</td>
<td>6.6%</td>
- </tr><tr class="Even"><td>Caolán McNamara</td>
+ </tr><tr><td>Caolán McNamara</td>
<td>97544</td>
<td>5.0%</td>
- </tr><tr class="Odd"><td>Tomaž Vajngerl</td>
+ </tr><tr><td>Tomaž Vajngerl</td>
<td>69404</td>
<td>3.6%</td>
- </tr><tr class="Even"><td>Tor Lillqvist</td>
+ </tr><tr><td>Tor Lillqvist</td>
<td>59498</td>
<td>3.1%</td>
- </tr><tr class="Odd"><td>Laurent Balland-Poirier</td>
+ </tr><tr><td>Laurent Balland-Poirier</td>
<td>52802</td>
<td>2.7%</td>
- </tr><tr class="Even"><td>Markus Mohrhard</td>
+ </tr><tr><td>Markus Mohrhard</td>
<td>50509</td>
<td>2.6%</td>
- </tr><tr class="Odd"><td>Kohei Yoshida</td>
+ </tr><tr><td>Kohei Yoshida</td>
<td>45514</td>
<td>2.3%</td>
- </tr><tr class="Even"><td>Chris Sherlock</td>
+ </tr><tr><td>Chris Sherlock</td>
<td>36788</td>
<td>1.9%</td>
- </tr><tr class="Odd"><td>Peter Foley</td>
+ </tr><tr><td>Peter Foley</td>
<td>34305</td>
<td>1.8%</td>
- </tr><tr class="Even"><td>Christian Lohmaier</td>
+ </tr><tr><td>Christian Lohmaier</td>
<td>33787</td>
<td>1.7%</td>
- </tr><tr class="Odd"><td>Thomas Arnhold</td>
+ </tr><tr><td>Thomas Arnhold</td>
<td>32722</td>
<td>1.7%</td>
- </tr><tr class="Even"><td>David Tardon</td>
+ </tr><tr><td>David Tardon</td>
<td>21681</td>
<td>1.1%</td>
- </tr><tr class="Odd"><td>David Ostrovsky</td>
+ </tr><tr><td>David Ostrovsky</td>
<td>21620</td>
<td>1.1%</td>
- </tr><tr class="Even"><td>Jan Holesovsky</td>
+ </tr><tr><td>Jan Holesovsky</td>
<td>20792</td>
<td>1.1%</td>
- </tr><tr class="Odd"><td>Valentin Kettner</td>
+ </tr><tr><td>Valentin Kettner</td>
<td>20526</td>
<td>1.1%</td>
- </tr><tr class="Even"><td>Robert Antoni Buj Gelonch</td>
+ </tr><tr><td>Robert Antoni Buj Gelonch</td>
<td>20447</td>
<td>1.0%</td>
- </tr><tr class="Odd"><td>Michael Stahl</td>
+ </tr><tr><td>Michael Stahl</td>
<td>18216</td>
<td>0.9%</td>
</tr></tbody></table></td>
@@ -316,34 +316,34 @@ cut loose from Oracle</a><p> and found a new home as an Apache project. It is fa
<blockquote>
<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>
+ </tr><tr><td>Red Hat</td>
<td>8417</td>
<td>38.0%</td>
- </tr><tr class="Odd"><td>Collabora <strike>Multimedia</strike></td>
+ </tr><tr><td>Collabora <strike>Multimedia</strike></td>
<td>6531</td>
<td>29.5%</td>
- </tr><tr class="Even"><td>(Unknown)</td>
+ </tr><tr><td>(Unknown)</td>
<td>5126</td>
<td>23.2%</td>
- </tr><tr class="Odd"><td>(None)</td>
+ </tr><tr><td>(None)</td>
<td>1490</td>
<td>6.7%</td>
- </tr><tr class="Even"><td>Canonical</td>
+ </tr><tr><td>Canonical</td>
<td>422</td>
<td>1.9%</td>
- </tr><tr class="Odd"><td>Igalia S.L.</td>
+ </tr><tr><td>Igalia S.L.</td>
<td>80</td>
<td>0.4%</td>
- </tr><tr class="Even"><td>Ericsson</td>
+ </tr><tr><td>Ericsson</td>
<td>21</td>
<td>0.1%</td>
- </tr><tr class="Odd"><td>Yandex</td>
+ </tr><tr><td>Yandex</td>
<td>18</td>
<td>0.1%</td>
- </tr><tr class="Even"><td>FastMail.FM</td>
+ </tr><tr><td>FastMail.FM</td>
<td>17</td>
<td>0.1%</td>
- </tr><tr class="Odd"><td>SUSE</td>
+ </tr><tr><td>SUSE</td>
<td>7</td>
<td>0.0%</td>
</tr></tbody></table></blockquote>
@@ -371,7 +371,7 @@ bark but the caravan moves on.</span>" That may be true, but, in this case, the
</td>
- <td class="RightColumn">
+ <td>
</td>
</div> \ No newline at end of file
diff --git a/test/test-pages/medium-1/expected.html b/test/test-pages/medium-1/expected.html
index abe1db2..0ab250c 100644
--- a/test/test-pages/medium-1/expected.html
+++ b/test/test-pages/medium-1/expected.html
@@ -1,54 +1,54 @@
-<div class="section-inner layoutSingleColumn">
- <h2 class="graf--h2" data-align="center" id="3c62" name="3c62">Open Journalism Project:</h2>
+<div>
+ <h2 data-align="center" id="3c62" name="3c62">Open Journalism Project:</h2>
- <h4 class="graf--h4" data-align="center" id="425a" name="425a"><em class="markup--em markup--h4-em">Better Student Journalism</em></h4>
+ <h4 data-align="center" id="425a" name="425a"><em>Better Student Journalism</em></h4>
- <p class="graf--p" id="d178" name="d178">We pushed out the first version of the <a class="markup--anchor markup--p-anchor" data-href="http://pippinlee.github.io/open-journalism-project/" href="http://pippinlee.github.io/open-journalism-project/" rel="nofollow">Open Journalism site</a> in January. Our goal is for the
+ <p id="d178" name="d178">We pushed out the first version of the <a data-href="http://pippinlee.github.io/open-journalism-project/" href="http://pippinlee.github.io/open-journalism-project/" rel="nofollow">Open Journalism site</a> in January. Our goal is for the
site to be a place to teach students what they should know about journalism
on the web. It should be fun too.</p>
- <p class="graf--p" id="01ed" name="01ed">Topics like <a class="markup--anchor markup--p-anchor" data-href="http://pippinlee.github.io/open-journalism-project/Mapping/" href="http://pippinlee.github.io/open-journalism-project/Mapping/" rel="nofollow">mapping</a>, <a class="markup--anchor markup--p-anchor" data-href="http://pippinlee.github.io/open-journalism-project/Security/" href="http://pippinlee.github.io/open-journalism-project/Security/" rel="nofollow">security</a>, command
- line tools, and <a class="markup--anchor markup--p-anchor" data-href="http://pippinlee.github.io/open-journalism-project/Open-source/" href="http://pippinlee.github.io/open-journalism-project/Open-source/" rel="nofollow">open source</a> are
+ <p id="01ed" name="01ed">Topics like <a data-href="http://pippinlee.github.io/open-journalism-project/Mapping/" href="http://pippinlee.github.io/open-journalism-project/Mapping/" rel="nofollow">mapping</a>, <a data-href="http://pippinlee.github.io/open-journalism-project/Security/" href="http://pippinlee.github.io/open-journalism-project/Security/" rel="nofollow">security</a>, command
+ line tools, and <a data-href="http://pippinlee.github.io/open-journalism-project/Open-source/" href="http://pippinlee.github.io/open-journalism-project/Open-source/" rel="nofollow">open source</a> are
all concepts that should be made more accessible, and should be easily
understood at a basic level by all journalists. We’re focusing on students
because we know student journalism well, and we believe that teaching maturing
journalists about the web will provide them with an important lens to view
the world with. This is how we got to where we are now.</p>
- <h3 class="graf--h3" id="0348" name="0348">Circa 2011</h3>
- <p class="graf--p" id="f923" name="f923">In late 2011 I sat in the design room of our university’s student newsroom
+ <h3 id="0348" name="0348">Circa 2011</h3>
+ <p id="f923" name="f923">In late 2011 I sat in the design room of our university’s student newsroom
with some of the other editors: Kate Hudson, Brent Rose, and Nicholas Maronese.
I was working as the photo editor then—something I loved doing. I was very
happy travelling and photographing people while listening to their stories.</p>
- <p class="graf--p" id="c9d4" name="c9d4">Photography was my lucky way of experiencing the many types of people
+ <p id="c9d4" name="c9d4">Photography was my lucky way of experiencing the many types of people
my generation seemed to avoid, as well as many the public spends too much
time discussing. One of my habits as a photographer was scouring sites
like Flickr to see how others could frame the world in ways I hadn’t previously
considered.</p>
- <figure class="graf--figure" id="06e8" name="06e8"><div class="aspectRatioPlaceholder is-locked">
+ <figure id="06e8" name="06e8"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*AzYWbe4cZkMMEUbfRjysLQ.png" data-height="500" data-image-id="1*AzYWbe4cZkMMEUbfRjysLQ.png" data-width="1000" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*AzYWbe4cZkMMEUbfRjysLQ.png"></img></div>
- <figcaption class="imageCaption">topleftpixel.com</figcaption></figure><p class="graf--p" id="930f" name="930f">I started discovering beautiful things the <a class="markup--anchor markup--p-anchor" data-href="http://wvs.topleftpixel.com/13/02/06/timelapse-strips-homewood.htm" href="http://wvs.topleftpixel.com/13/02/06/timelapse-strips-homewood.htm" rel="nofollow">web could do with images</a>:
+ <img data-action="zoom" data-action-value="1*AzYWbe4cZkMMEUbfRjysLQ.png" data-height="500" data-image-id="1*AzYWbe4cZkMMEUbfRjysLQ.png" data-width="1000" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*AzYWbe4cZkMMEUbfRjysLQ.png"></img></div>
+ <figcaption>topleftpixel.com</figcaption></figure><p id="930f" name="930f">I started discovering beautiful things the <a data-href="http://wvs.topleftpixel.com/13/02/06/timelapse-strips-homewood.htm" href="http://wvs.topleftpixel.com/13/02/06/timelapse-strips-homewood.htm" rel="nofollow">web could do with images</a>:
things not possible with print. Just as every generation revolts against
walking in the previous generations shoes, I found myself questioning the
expectations that I came up against as a photo editor. In our newsroom
the expectations were built from an outdated information world. We were
expected to fill old shoes.</p>
- <p class="graf--p" id="2674" name="2674">So we sat in our student newsroom—not very happy with what we were doing.
+ <p id="2674" name="2674">So we sat in our student newsroom—not very happy with what we were doing.
Our weekly newspaper had remained essentially unchanged for 40+ years.
- Each editorial position had the same requirement every year. The <em class="markup--em markup--p-em">big</em> change
+ Each editorial position had the same requirement every year. The <em>big</em> change
happened in the 80s when the paper started using colour. We’d also stumbled
into having a website, but it was updated just once a week with the release
of the newspaper.</p>
- <p class="graf--p" id="e498" name="e498">Information had changed form, but the student newsroom hadn’t, and it
+ <p id="e498" name="e498">Information had changed form, but the student newsroom hadn’t, and it
was becoming harder to romanticize the dusty newsprint smell coming from
the shoes we were handed down from previous generations of editors. It
was, we were told, all part of “becoming a journalist.”</p>
- <figure class="graf--figure" id="12da" name="12da"><div class="aspectRatioPlaceholder is-locked">
+ <figure id="12da" name="12da"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*d0Hp6KlzyIcGHcL6to1sYQ.png" data-height="451" data-image-id="1*d0Hp6KlzyIcGHcL6to1sYQ.png" data-width="868" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*d0Hp6KlzyIcGHcL6to1sYQ.png"></img></div>
- </figure><h3 class="graf--h3" id="e2f0" name="e2f0">We don’t know what we don’t know</h3>
- <p class="graf--p" id="8263" name="8263">We spent much of the rest of the school year asking “what should we be
+ <img data-action="zoom" data-action-value="1*d0Hp6KlzyIcGHcL6to1sYQ.png" data-height="451" data-image-id="1*d0Hp6KlzyIcGHcL6to1sYQ.png" data-width="868" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*d0Hp6KlzyIcGHcL6to1sYQ.png"></img></div>
+ </figure><h3 id="e2f0" name="e2f0">We don’t know what we don’t know</h3>
+ <p id="8263" name="8263">We spent much of the rest of the school year asking “what should we be
doing in the newsroom?”, which mainly led us to ask “how do we use the
web to tell stories?” It was a straightforward question that led to many
more questions about the web: something we knew little about. Out in the
@@ -56,96 +56,96 @@
in a dying print world. They wore the same design of shoes that we were
supposed to fill. Being pushed to repeat old, failing strategies and blocked
from trying something new scared us.</p>
- <p class="graf--p" id="231e" name="231e">We had questions, so we started doing some research. We talked with student
+ <p id="231e" name="231e">We had questions, so we started doing some research. We talked with student
newsrooms in Canada and the United States, and filled too many Google Doc
files with notes. Looking at the notes now, they scream of fear. We annotated
our notes with naive solutions, often involving scrambled and immature
odysseys into the future of online journalism.</p>
- <p class="graf--p" id="6ec3" name="6ec3">There was a lot we didn’t know. We didn’t know <strong class="markup--strong markup--p-strong">how to build a mobile app</strong>.
- We didn’t know <strong class="markup--strong markup--p-strong">if we should build a mobile app</strong>.
- We didn’t know <strong class="markup--strong markup--p-strong">how to run a server</strong>.
- We didn’t know <strong class="markup--strong markup--p-strong">where to go to find a server</strong>.
- We didn’t know <strong class="markup--strong markup--p-strong">how the web worked</strong>.
- We didn’t know <strong class="markup--strong markup--p-strong">how people used the web to read news</strong>.
- We didn’t know <strong class="markup--strong markup--p-strong">what news should be on the web</strong>.
+ <p id="6ec3" name="6ec3">There was a lot we didn’t know. We didn’t know <strong>how to build a mobile app</strong>.
+ We didn’t know <strong>if we should build a mobile app</strong>.
+ We didn’t know <strong>how to run a server</strong>.
+ We didn’t know <strong>where to go to find a server</strong>.
+ We didn’t know <strong>how the web worked</strong>.
+ We didn’t know <strong>how people used the web to read news</strong>.
+ We didn’t know <strong>what news should be on the web</strong>.
If news is just information, what does that even look like?</p>
- <p class="graf--p" id="f373" name="f373">We asked these questions to many students at other papers to get a consensus
+ <p id="f373" name="f373">We asked these questions to many students at other papers to get a consensus
of what had worked and what hadn’t. They reported similar questions and
fears about the web but followed with “print advertising is keeping us
afloat so we can’t abandon it”.</p>
- <p class="graf--p" id="034b" name="034b">In other words, we knew that we should be building a newer pair of shoes,
+ <p id="034b" name="034b">In other words, we knew that we should be building a newer pair of shoes,
but we didn’t know what the function of the shoes should be.</p>
- <h3 class="graf--h3" id="ea15" name="ea15">Common problems in student newsrooms (2011)</h3>
- <p class="graf--p" id="a90b" name="a90b">Our questioning of other student journalists in 15 student newsrooms brought
+ <h3 id="ea15" name="ea15">Common problems in student newsrooms (2011)</h3>
+ <p id="a90b" name="a90b">Our questioning of other student journalists in 15 student newsrooms brought
up a few repeating issues.</p>
- <ul class="postList"><li class="graf--li" id="a586" name="a586">Lack of mentorship</li>
- <li class="graf--li" id="a953" name="a953">A news process that lacked consideration of the web</li>
- <li class="graf--li" id="6286" name="6286">No editor/position specific to the web</li>
- <li class="graf--li" id="04c1" name="04c1">Little exposure to many of the cool projects being put together by professional
+ <ul><li id="a586" name="a586">Lack of mentorship</li>
+ <li id="a953" name="a953">A news process that lacked consideration of the web</li>
+ <li id="6286" name="6286">No editor/position specific to the web</li>
+ <li id="04c1" name="04c1">Little exposure to many of the cool projects being put together by professional
newsrooms</li>
- <li class="graf--li" id="a1fb" name="a1fb">Lack of diverse skills within the newsroom. Writers made up 95% of the
+ <li id="a1fb" name="a1fb">Lack of diverse skills within the newsroom. Writers made up 95% of the
personnel. Students with other skills were not sought because journalism
was seen as “a career with words.” The other 5% were designers, designing
words on computers, for print.</li>
- <li class="graf--li" id="0be9" name="0be9">Not enough discussion between the business side and web efforts</li>
- </ul><figure class="graf--figure" id="79ed" name="79ed"><div class="aspectRatioPlaceholder is-locked">
+ <li id="0be9" name="0be9">Not enough discussion between the business side and web efforts</li>
+ </ul><figure id="79ed" name="79ed"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*_9KYIFrk_PqWFgptsMDeww.png" data-height="500" data-image-id="1*_9KYIFrk_PqWFgptsMDeww.png" data-width="1086" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*_9KYIFrk_PqWFgptsMDeww.png"></img></div>
- <figcaption class="imageCaption">From our 2011 research</figcaption></figure><h3 class="graf--h3" id="8d0c" name="8d0c">Common problems in student newsrooms (2013)</h3>
- <p class="graf--p" id="3ef6" name="3ef6">Two years later, we went back and looked at what had changed. We talked
+ <img data-action="zoom" data-action-value="1*_9KYIFrk_PqWFgptsMDeww.png" data-height="500" data-image-id="1*_9KYIFrk_PqWFgptsMDeww.png" data-width="1086" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*_9KYIFrk_PqWFgptsMDeww.png"></img></div>
+ <figcaption>From our 2011 research</figcaption></figure><h3 id="8d0c" name="8d0c">Common problems in student newsrooms (2013)</h3>
+ <p id="3ef6" name="3ef6">Two years later, we went back and looked at what had changed. We talked
to a dozen more newsrooms and weren’t surprised by our findings.</p>
- <ul class="postList"><li class="graf--li" id="abb1" name="abb1">Still no mentorship or link to professional newsrooms building stories
+ <ul><li id="abb1" name="abb1">Still no mentorship or link to professional newsrooms building stories
for the web</li>
- <li class="graf--li" id="9250" name="9250">Very little control of website and technology</li>
- <li class="graf--li" id="d822" name="d822">The lack of exposure that student journalists have to interactive storytelling.
+ <li id="9250" name="9250">Very little control of website and technology</li>
+ <li id="d822" name="d822">The lack of exposure that student journalists have to interactive storytelling.
While some newsrooms are in touch with what’s happening with the web and
journalism, there still exists a huge gap between the student newsroom
and its professional counterpart</li>
- <li class="graf--li" id="6bf2" name="6bf2">No time in the current news development cycle for student newsrooms to
+ <li id="6bf2" name="6bf2">No time in the current news development cycle for student newsrooms to
experiment with the web</li>
- <li class="graf--li" id="e62f" name="e62f">Lack of skill diversity (specifically coding, interaction design, and
+ <li id="e62f" name="e62f">Lack of skill diversity (specifically coding, interaction design, and
statistics)</li>
- <li class="graf--li" id="f4f0" name="f4f0">Overly restricted access to student website technology. Changes are primarily
+ <li id="f4f0" name="f4f0">Overly restricted access to student website technology. Changes are primarily
visual rather than functional.</li>
- <li class="graf--li" id="8b8d" name="8b8d">Significantly reduced print production of many papers</li>
- <li class="graf--li" id="dfe0" name="dfe0">Computers aren’t set up for experimenting with software and code, and
+ <li id="8b8d" name="8b8d">Significantly reduced print production of many papers</li>
+ <li id="dfe0" name="dfe0">Computers aren’t set up for experimenting with software and code, and
often locked down</li>
- </ul><p class="graf--p" id="52cd" name="52cd">Newsrooms have traditionally been covered in copies of The New York Times
+ </ul><p id="52cd" name="52cd">Newsrooms have traditionally been covered in copies of The New York Times
or Globe and Mail. Instead newsrooms should try spend at 20 minutes each
week going over the coolest/weirdest online storytelling in an effort to
- expose each other to what is possible. “<a class="markup--anchor markup--p-anchor" data-href="http://nytlabs.com/" href="http://nytlabs.com/" rel="nofollow">Hey, what has the New York Times R&amp;D lab been up to this week?</a>”</p>
- <p class="graf--p" id="0142" name="0142">Instead of having computers that are locked down, try setting aside a
+ expose each other to what is possible. “<a data-href="http://nytlabs.com/" href="http://nytlabs.com/" rel="nofollow">Hey, what has the New York Times R&amp;D lab been up to this week?</a>”</p>
+ <p id="0142" name="0142">Instead of having computers that are locked down, try setting aside a
few office computers that allow students to play and “break”, or encourage
editors to buy their own Macbooks so they’re always able to practice with
code and new tools on their own.</p>
- <p class="graf--p" id="5d29" name="5d29">From all this we realized that changing a student newsroom is difficult.
+ <p id="5d29" name="5d29">From all this we realized that changing a student newsroom is difficult.
It takes patience. It requires that the business and editorial departments
of the student newsroom be on the same (web)page. The shoes of the future
must be different from the shoes we were given.</p>
- <p class="graf--p" id="1ffc" name="1ffc">We need to rethink how long the new shoe design will be valid. It’s more
+ <p id="1ffc" name="1ffc">We need to rethink how long the new shoe design will be valid. It’s more
important that we focus on the process behind making footwear than on actually
creating a specific shoe. We shouldn’t be building a shoe to last 40 years.
Our footwear design process will allow us to change and adapt as technology
evolves. The media landscape will change, so having a newsroom that can
change with it will be critical.</p>
- <p class="graf--p" id="2888" name="2888"><strong class="markup--strong markup--p-strong">We are building a shoe machine, not a shoe.</strong>
+ <p id="2888" name="2888"><strong>We are building a shoe machine, not a shoe.</strong>
</p>
- <h3 class="graf--h3" id="9c30" name="9c30">A train or light at the end of the tunnel: are student newsrooms changing for the better?</h3>
+ <h3 id="9c30" name="9c30">A train or light at the end of the tunnel: are student newsrooms changing for the better?</h3>
- <p class="graf--p" id="4634" name="4634">In our 2013 research we found that almost 50% of student newsrooms had
- created roles specifically for the web. <strong class="markup--strong markup--p-strong">This sounds great, but is still problematic in its current state.</strong>
+ <p id="4634" name="4634">In our 2013 research we found that almost 50% of student newsrooms had
+ created roles specifically for the web. <strong>This sounds great, but is still problematic in its current state.</strong>
</p>
- <figure class="graf--figure" id="416f" name="416f"><div class="aspectRatioPlaceholder is-locked">
+ <figure id="416f" name="416f"><div>
- <img class="graf-image" data-height="560" data-image-id="1*Vh2MpQjqjPkzYJaaWExoVg.png" data-width="624" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*Vh2MpQjqjPkzYJaaWExoVg.png"></img></div>
- <figcaption class="imageCaption"><strong class="markup--strong markup--figure-strong">We designed many of these slides to help explain to ourselves what we were doing</strong>
- </figcaption></figure><p class="graf--p" id="39e6" name="39e6">When a newsroom decides to create a position for the web, it’s often with
+ <img data-height="560" data-image-id="1*Vh2MpQjqjPkzYJaaWExoVg.png" data-width="624" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*Vh2MpQjqjPkzYJaaWExoVg.png"></img></div>
+ <figcaption><strong>We designed many of these slides to help explain to ourselves what we were doing</strong>
+ </figcaption></figure><p id="39e6" name="39e6">When a newsroom decides to create a position for the web, it’s often with
the intent of having content flow steadily from writers onto the web. This
is a big improvement from just uploading stories to the web whenever there
- is a print issue. <em class="markup--em markup--p-em">However…</em>
+ is a print issue. <em>However…</em>
</p>
- <ol class="postList"><li class="graf--li" id="91b5" name="91b5"><strong class="markup--strong markup--li-strong">The handoff</strong>
+ <ol><li id="91b5" name="91b5"><strong>The handoff</strong>
<br></br>Problems arise because web editors are given roles that absolve the rest
of the editors from thinking about the web. All editors should be involved
in the process of story development for the web. While it’s a good idea
@@ -153,37 +153,37 @@
should all play with and learn about the web. Instead of “can you make
a computer do XYZ for me?”, we should be saying “can you show me how to
make a computer do XYZ?”</li>
- <li class="graf--li" id="6448" name="6448"><strong class="markup--strong markup--li-strong">Not just social media<br></br></strong>A
+ <li id="6448" name="6448"><strong>Not just social media<br></br></strong>A
web editor could do much more than simply being in charge of the social
media accounts for the student paper. Their responsibility could include
teaching all other editors to be listening to what’s happening online.
The web editor can take advantage of live information to change how the
student newsroom reports news in real time.</li>
- <li class="graf--li" id="ab30" name="ab30"><strong class="markup--strong markup--li-strong">Web (interactive) editor<br></br></strong>The
+ <li id="ab30" name="ab30"><strong>Web (interactive) editor<br></br></strong>The
goal of having a web editor should be for someone to build and tell stories
that take full advantage of the web as their medium. Too often the web’s
interactivity is not considered when developing the story. The web then
ends up as a resting place for print words.</li>
- </ol><p class="graf--p" id="e983" name="e983">Editors at newsrooms are still figuring out how to convince writers of
+ </ol><p id="e983" name="e983">Editors at newsrooms are still figuring out how to convince writers of
the benefit to having their content online. There’s still a stronger draw
to writers seeing their name in print than on the web. Showing writers
that their stories can be told in new ways to larger audiences is a convincing
argument that the web is a starting point for telling a story, not its
graveyard.</p>
- <p class="graf--p" id="5c11" name="5c11">When everyone in the newsroom approaches their website with the intention
+ <p id="5c11" name="5c11">When everyone in the newsroom approaches their website with the intention
of using it to explore the web as a medium, they all start to ask “what
is possible?” and “what can be done?” You can’t expect students to think
in terms of the web if it’s treated as a place for print words to hang
out on a web page.</p>
- <p class="graf--p" id="4eb1" name="4eb1">We’re OK with this problem, if we see newsrooms continue to take small
+ <p id="4eb1" name="4eb1">We’re OK with this problem, if we see newsrooms continue to take small
steps towards having all their editors involved in the stories for the
web.</p>
- <figure class="graf--figure" id="7aab" name="7aab"><div class="aspectRatioPlaceholder is-locked">
+ <figure id="7aab" name="7aab"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*2Ln_DmC95Xpz6LzgywkcFQ.png" data-height="718" data-image-id="1*2Ln_DmC95Xpz6LzgywkcFQ.png" data-width="1315" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*2Ln_DmC95Xpz6LzgywkcFQ.png"></img></div>
- <figcaption class="imageCaption">The current Open Journalism site was a few years in the making. This was
- an original launch page we use in 2012</figcaption></figure><h3 class="graf--h3" id="08f5" name="08f5">What we know</h3>
- <ul class="postList"><li class="graf--li" id="f7fe" name="f7fe"><strong class="markup--strong markup--li-strong">New process</strong>
+ <img data-action="zoom" data-action-value="1*2Ln_DmC95Xpz6LzgywkcFQ.png" data-height="718" data-image-id="1*2Ln_DmC95Xpz6LzgywkcFQ.png" data-width="1315" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*2Ln_DmC95Xpz6LzgywkcFQ.png"></img></div>
+ <figcaption>The current Open Journalism site was a few years in the making. This was
+ an original launch page we use in 2012</figcaption></figure><h3 id="08f5" name="08f5">What we know</h3>
+ <ul><li id="f7fe" name="f7fe"><strong>New process</strong>
<br></br>Our rough research has told us newsrooms need to be reorganized. This
includes every part of the newsroom’s workflow: from where a story and
its information comes from, to thinking of every word, pixel, and interaction
@@ -196,15 +196,15 @@
“digital manifestos”, it’s about being curious enough that you’ll want
to to continue experimenting with your process until you’ve found one that
fits your newsroom’s needs.</li>
- <li class="graf--li" id="d757" name="d757"><strong class="markup--strong markup--li-strong">More (remote) mentorship</strong>
- <br></br>Lack of mentorship is still a big problem. <a class="markup--anchor markup--li-anchor" data-href="http://www.google.com/get/journalismfellowship/" href="http://www.google.com/get/journalismfellowship/" rel="nofollow">Google’s fellowship program</a> is great. The fact that it
+ <li id="d757" name="d757"><strong>More (remote) mentorship</strong>
+ <br></br>Lack of mentorship is still a big problem. <a data-href="http://www.google.com/get/journalismfellowship/" href="http://www.google.com/get/journalismfellowship/" rel="nofollow">Google’s fellowship program</a> is great. The fact that it
only caters to United States students isn’t. There are only a handful of
internships in Canada where students interested in journalism can get experience
writing code and building interactive stories. We’re OK with this for now,
as we expect internships and mentorship over the next 5 years between professional
newsrooms and student newsrooms will only increase. It’s worth noting that
some of that mentorship will likely be done remotely.</li>
- <li class="graf--li" id="a9b8" name="a9b8"><strong class="markup--strong markup--li-strong">Changing a newsroom culture</strong>
+ <li id="a9b8" name="a9b8"><strong>Changing a newsroom culture</strong>
<br></br>Skill diversity needs to change. We encourage every student newsroom we
talk to, to start building a partnership with their school’s Computer Science
department. It will take some work, but you’ll find there are many CS undergrads
@@ -215,72 +215,72 @@
who love statistics and exploring data. Getting students who are amazing
at design, data, code, words, and images into one room is one of the coolest
experience I’ve had. Everyone benefits from a more diverse newsroom.</li>
- </ul><h3 class="graf--h3" id="a67e" name="a67e">What we don’t know</h3>
- <ul class="postList"><li class="graf--li" id="7320" name="7320"><strong class="markup--strong markup--li-strong">Sharing curiosity for the web</strong>
+ </ul><h3 id="a67e" name="a67e">What we don’t know</h3>
+ <ul><li id="7320" name="7320"><strong>Sharing curiosity for the web</strong>
<br></br>We don’t know how to best teach students about the web. It’s not efficient
for us to teach coding classes. We do go into newsrooms and get them running
their first code exercises, but if someone wants to learn to program, we
can only provide the initial push and curiosity. We will be trying out
“labs” with a few schools next school year to hopefully get a better idea
of how to teach students about the web.</li>
- <li class="graf--li" id="8b23" name="8b23"><strong class="markup--strong markup--li-strong">Business</strong>
+ <li id="8b23" name="8b23"><strong>Business</strong>
<br></br>We don’t know how to convince the business side of student papers that
they should invest in the web. At the very least we’re able to explain
that having students graduate with their current skill set is painful in
the current job market.</li>
- <li class="graf--li" id="191e" name="191e"><strong class="markup--strong markup--li-strong">The future</strong>
+ <li id="191e" name="191e"><strong>The future</strong>
<br></br>We don’t know what journalism or the web will be like in 10 years, but
we can start encouraging students to keep an open mind about the skills
they’ll need. We’re less interested in preparing students for the current
newsroom climate, than we are in teaching students to have the ability
to learn new tools quickly as they come and go.</li>
- </ul></div><div class="section-inner layoutSingleColumn">
- <h3 class="graf--h3" id="009a" name="009a">What we’re trying to share with others</h3>
- <ul class="postList"><li class="graf--li" id="8bfa" name="8bfa"><strong class="markup--strong markup--li-strong">A concise guide to building stories for the web</strong>
+ </ul></div><div>
+ <h3 id="009a" name="009a">What we’re trying to share with others</h3>
+ <ul><li id="8bfa" name="8bfa"><strong>A concise guide to building stories for the web</strong>
<br></br>There are too many options to get started. We hope to provide an opinionated
guide that follows both our experiences, research, and observations from
trying to teach our peers.</li>
- </ul><p class="graf--p" id="8196" name="8196">Student newsrooms don’t have investors to please. Student newsrooms can
+ </ul><p id="8196" name="8196">Student newsrooms don’t have investors to please. Student newsrooms can
change their website every week if they want to try a new design or interaction.
As long as students start treating the web as a different medium, and start
building stories around that idea, then we’ll know we’re moving forward.</p>
- <h3 class="graf--h3" id="f6c6" name="f6c6">A note to professional news orgs</h3>
- <p class="graf--p" id="d8f5" name="d8f5">We’re also asking professional newsrooms to be more open about their process
+ <h3 id="f6c6" name="f6c6">A note to professional news orgs</h3>
+ <p id="d8f5" name="d8f5">We’re also asking professional newsrooms to be more open about their process
of developing stories for the web. You play a big part in this. This means
writing about it, and sharing code. We need to start building a bridge
between student journalism and professional newsrooms.</p>
- <figure class="graf--figure" id="7ed3" name="7ed3"><div class="aspectRatioPlaceholder is-locked">
+ <figure id="7ed3" name="7ed3"><div>
- <img class="graf-image" data-height="400" data-image-id="1*bXaR_NBJdoHpRc8lUWSsow.png" data-width="686" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*bXaR_NBJdoHpRc8lUWSsow.png"></img></div>
- <figcaption class="imageCaption">2012</figcaption></figure><h3 class="graf--h3" id="ee1b" name="ee1b">This is a start</h3>
- <p class="graf--p" id="ebf9" name="ebf9">We going to continue slowly growing the content on <a class="markup--anchor markup--p-anchor" data-href="http://pippinlee.github.io/open-journalism-project/" href="http://pippinlee.github.io/open-journalism-project/" rel="nofollow">Open Journalism</a>. We still consider this the beta version,
+ <img data-height="400" data-image-id="1*bXaR_NBJdoHpRc8lUWSsow.png" data-width="686" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*bXaR_NBJdoHpRc8lUWSsow.png"></img></div>
+ <figcaption>2012</figcaption></figure><h3 id="ee1b" name="ee1b">This is a start</h3>
+ <p id="ebf9" name="ebf9">We going to continue slowly growing the content on <a data-href="http://pippinlee.github.io/open-journalism-project/" href="http://pippinlee.github.io/open-journalism-project/" rel="nofollow">Open Journalism</a>. We still consider this the beta version,
but expect to polish it, and beef up the content for a real launch at the
beginning of the summer.</p>
- <p class="graf--p" id="bd44" name="bd44">We expect to have more original tutorials as well as the beginnings of
+ <p id="bd44" name="bd44">We expect to have more original tutorials as well as the beginnings of
what a curriculum may look like that a student newsroom can adopt to start
guiding their transition to become a web first newsroom. We’re also going
- to be working with the <a class="markup--anchor markup--p-anchor" data-href="http://queensjournal.ca/" href="http://queensjournal.ca/" rel="nofollow">Queen’s Journal</a> and
- <a class="markup--anchor markup--p-anchor" data-href="http://ubyssey.ca/" href="http://ubyssey.ca/" rel="nofollow">The Ubyssey</a>next school year to better understand how to make the student
+ to be working with the <a data-href="http://queensjournal.ca/" href="http://queensjournal.ca/" rel="nofollow">Queen’s Journal</a> and
+ <a data-href="http://ubyssey.ca/" href="http://ubyssey.ca/" rel="nofollow">The Ubyssey</a>next school year to better understand how to make the student
newsroom a place for experimenting with telling stories on the web. If
this sound like a good idea in your newsroom, we’re still looking to add
1 more school.</p>
- <p class="graf--p" id="abd5" name="abd5">We’re trying out some new shoes. And while they’re not self-lacing, and
+ <p id="abd5" name="abd5">We’re trying out some new shoes. And while they’re not self-lacing, and
smell a bit different, we feel lacing up a new pair of kicks can change
a lot.</p>
- <figure class="graf--figure" id="4c68" name="4c68"><div class="aspectRatioPlaceholder is-locked">
+ <figure id="4c68" name="4c68"><div>
- <img class="graf-image" data-action="zoom" data-action-value="1*lulfisQxgSQ209vPHMAifg.png" data-height="534" data-image-id="1*lulfisQxgSQ209vPHMAifg.png" data-width="950" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*lulfisQxgSQ209vPHMAifg.png"></img></div>
+ <img data-action="zoom" data-action-value="1*lulfisQxgSQ209vPHMAifg.png" data-height="534" data-image-id="1*lulfisQxgSQ209vPHMAifg.png" data-width="950" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*lulfisQxgSQ209vPHMAifg.png"></img></div>
</figure>
- <p class="graf--p" id="2c5c" name="2c5c"><strong class="markup--strong markup--p-strong">Let’s talk. Let’s listen.</strong>
+ <p id="2c5c" name="2c5c"><strong>Let’s talk. Let’s listen.</strong>
</p>
- <p class="graf--p" id="63ec" name="63ec"><strong class="markup--strong markup--p-strong">We’re still in the early stages of what this project will look like, so if you want to help or have thoughts, let’s talk.</strong>
+ <p id="63ec" name="63ec"><strong>We’re still in the early stages of what this project will look like, so if you want to help or have thoughts, let’s talk.</strong>
</p>
- <p class="graf--p" id="9376" name="9376"><a class="markup--anchor markup--p-anchor" data-href="mailto:[email protected]" href="mailto:[email protected]" rel="nofollow"><strong class="markup--strong markup--p-strong">[email protected]</strong></a>
+ <p id="9376" name="9376"><a data-href="mailto:[email protected]" href="mailto:[email protected]" rel="nofollow"><strong>[email protected]</strong></a>
</p>
- <p class="graf--p graf--last" id="ea00" name="ea00"><em class="markup--em markup--p-em">This isn’t supposed to be a </em>
- <strong class="markup--strong markup--p-strong"><em class="markup--em markup--p-em">manifesto™©</em>
- </strong><em class="markup--em markup--p-em"> we just think it’s pretty cool to share what we’ve learned so far, and hope you’ll do the same. We’re all in this together.</em>
+ <p id="ea00" name="ea00"><em>This isn’t supposed to be a </em>
+ <strong><em>manifesto™©</em>
+ </strong><em> we just think it’s pretty cool to share what we’ve learned so far, and hope you’ll do the same. We’re all in this together.</em>
</p>
</div> \ No newline at end of file
diff --git a/test/test-pages/medium-2/expected.html b/test/test-pages/medium-2/expected.html
index 96baebc..b371180 100644
--- a/test/test-pages/medium-2/expected.html
+++ b/test/test-pages/medium-2/expected.html
@@ -1 +1 @@
-<section class=" section--first" name="d9f8"><div class="section-content"><div class="section-inner layoutSingleColumn"><figure class="graf--figure graf--first" id="4924" name="4924"><div class="aspectRatioPlaceholder is-locked"><img class="graf-image" data-action="zoom" data-action-value="1*eR_J8DurqygbhrwDg-WPnQ.png" data-height="1280" data-image-id="1*eR_J8DurqygbhrwDg-WPnQ.png" data-width="1891" src="https://d262ilb51hltx0.cloudfront.net/max/1600/1*eR_J8DurqygbhrwDg-WPnQ.png"></img></div><figcaption class="imageCaption">Words need defenders.</figcaption></figure><h3 class="graf--h3" id="b098" name="b098">On Behalf of “Literally”</h3><p class="graf--p" id="1a73" name="1a73">You either are a “literally” abuser or know of one. If you’re anything like me, hearing the word “literally” used incorrectly causes a little piece of your soul to whither and die. Of course I do not mean that literally, I mean that figuratively. An abuser would have said: “Every time a person uses that word, a piece of my soul literally withers and dies.” Which is terribly, horribly wrong.</p><p class="graf--p" id="104a" name="104a">For whatever bizarre reason, people feel the need to use literally as a sort of verbal crutch. They use it to emphasize a point, which is silly because they’re already using an analogy or a metaphor to illustrate said point. For example: “Ugh, I literally tore the house apart looking for my remote control!” No, you literally did not tear apart your house, because it’s still standing. If you’d just told me you “tore your house apart” searching for your remote, I would’ve understood what you meant. No need to add “literally” to the sentence.</p><p class="graf--p" id="c2c0" name="c2c0">Maybe I should define literally.</p><blockquote class="graf--pullquote pullquote" id="b239" name="b239">Literally means actually. When you say something literally happened, you’re describing the scene or situation as it actually happened.</blockquote><p class="graf--p" id="a8fd" name="a8fd">So you should only use literally when you mean it. It should not be used in hyperbole. Example: “That was so funny I literally cried.” Which is possible. Some things are funny enough to elicit tears. Note the example stops with “literally cried.” You cannot <em class="markup--em markup--p-em">literally cry your eyes out</em>. The joke wasn’t so funny your eyes popped out of their sockets.</p><h4 class="graf--h4" id="165a" name="165a">When in Doubt, Leave it Out</h4><p class="graf--p graf--startsWithDoubleQuote" id="e434" name="e434">“I’m so hungry I could eat a horse,” means you’re hungry. You don’t need to say “I’m so hungry I could literally eat a horse.” Because you can’t do that in one sitting, I don’t care how big your stomach is.</p><p class="graf--p graf--startsWithDoubleQuote" id="d88f" name="d88f">“That play was so funny I laughed my head off,” illustrates the play was amusing. You don’t need to say you literally laughed your head off, because then your head would be on the ground and you wouldn’t be able to speak, much less laugh.</p><p class="graf--p graf--startsWithDoubleQuote" id="4bab" name="4bab">“I drove so fast my car was flying,” we get your point: you were speeding. But your car is never going fast enough to fly, so don’t say your car was literally flying.</p><h4 class="graf--h4" id="f2f0" name="f2f0">Insecurities?</h4><p class="graf--p" id="1bd7" name="1bd7">Maybe no one believed a story you told as a child, and you felt the need to prove that it actually happened. <em class="markup--em markup--p-em">No really, mom, I literally climbed the tree. </em>In efforts to prove truth, you used literally to describe something real, however outlandish it seemed. Whatever the reason, now your overuse of literally has become a habit.</p><h4 class="graf--h4" id="d7c1" name="d7c1">Hard Habit to Break?</h4><p class="graf--p" id="714b" name="714b">Abusing literally isn’t as bad a smoking, but it’s still an unhealthy habit (I mean that figuratively). Help is required in order to break it.</p><p class="graf--p" id="f929" name="f929">This is my version of an intervention for literally abusers. I’m not sure how else to do it other than in writing. I know this makes me sound like a know-it-all, and I accept that. But there’s no excuse other than blatant ignorance to misuse the word “literally.” So just stop it.</p><p class="graf--p" id="fd19" name="fd19">Don’t say “Courtney, this post is so snobbish it literally burned up my computer.” Because nothing is that snobbish that it causes computers to combust. Or: “Courtney, your head is so big it literally cannot get through the door.” Because it can, unless it’s one of those tiny doors from <em class="markup--em markup--p-em">Alice in Wonderland</em> and I need to eat a mushroom to make my whole body smaller.</p><h4 class="graf--h4" id="fe12" name="fe12">No One’s Perfect</h4><p class="graf--p" id="7ff8" name="7ff8">And I’m not saying I am. I’m trying to restore meaning to a word that’s lost meaning. I’m standing up for literally. It’s a good word when used correctly. People are butchering it and destroying it every day (figuratively speaking) and the massacre needs to stop. Just as there’s a coalition of people against the use of certain fonts (like <a class="markup--anchor markup--p-anchor" data-href="http://bancomicsans.com/main/?page_id=2" href="http://bancomicsans.com/main/?page_id=2" rel="nofollow">Comic Sans</a> and <a class="markup--anchor markup--p-anchor" data-href="https://www.facebook.com/group.php?gid=14448723154" href="https://www.facebook.com/group.php?gid=14448723154" rel="nofollow">Papyrus</a>), so should there be a coalition of people against the abuse of literally.</p><h4 class="graf--h4" id="049e" name="049e">Saying it to Irritate?</h4><p class="graf--p" id="9381" name="9381">Do you misuse the word “literally” just to annoy your know-it-all or grammar police friends/acquaintances/total strangers? If so, why? Doing so would be like me going outside when it’s freezing, wearing nothing but a pair of shorts and t-shirt in hopes of making you cold by just looking at me. Who suffers more?</p><h4 class="graf--h4" id="3e52" name="3e52">Graphical Representation</h4><p class="graf--p graf--last" id="b57e" name="b57e">Matthew Inman of “The Oatmeal” wrote a comic about literally. Abusers and defenders alike <a class="markup--anchor markup--p-anchor" data-href="http://theoatmeal.com/comics/literally" href="http://theoatmeal.com/comics/literally" rel="nofollow">should check it out</a>. It’s clear this whole craze about literally is driving a lot of us nuts. You literally abusers are killing off pieces of our souls. You must be stopped, or the world will be lost to meaninglessness forever. Figuratively speaking.</p></div></div></section> \ No newline at end of file
+<section name="d9f8"><div><div><figure id="4924" name="4924"><div><img data-action="zoom" data-action-value="1*eR_J8DurqygbhrwDg-WPnQ.png" data-height="1280" data-image-id="1*eR_J8DurqygbhrwDg-WPnQ.png" data-width="1891" src="https://d262ilb51hltx0.cloudfront.net/max/1600/1*eR_J8DurqygbhrwDg-WPnQ.png"></img></div><figcaption>Words need defenders.</figcaption></figure><h3 id="b098" name="b098">On Behalf of “Literally”</h3><p id="1a73" name="1a73">You either are a “literally” abuser or know of one. If you’re anything like me, hearing the word “literally” used incorrectly causes a little piece of your soul to whither and die. Of course I do not mean that literally, I mean that figuratively. An abuser would have said: “Every time a person uses that word, a piece of my soul literally withers and dies.” Which is terribly, horribly wrong.</p><p id="104a" name="104a">For whatever bizarre reason, people feel the need to use literally as a sort of verbal crutch. They use it to emphasize a point, which is silly because they’re already using an analogy or a metaphor to illustrate said point. For example: “Ugh, I literally tore the house apart looking for my remote control!” No, you literally did not tear apart your house, because it’s still standing. If you’d just told me you “tore your house apart” searching for your remote, I would’ve understood what you meant. No need to add “literally” to the sentence.</p><p id="c2c0" name="c2c0">Maybe I should define literally.</p><blockquote id="b239" name="b239">Literally means actually. When you say something literally happened, you’re describing the scene or situation as it actually happened.</blockquote><p id="a8fd" name="a8fd">So you should only use literally when you mean it. It should not be used in hyperbole. Example: “That was so funny I literally cried.” Which is possible. Some things are funny enough to elicit tears. Note the example stops with “literally cried.” You cannot <em>literally cry your eyes out</em>. The joke wasn’t so funny your eyes popped out of their sockets.</p><h4 id="165a" name="165a">When in Doubt, Leave it Out</h4><p id="e434" name="e434">“I’m so hungry I could eat a horse,” means you’re hungry. You don’t need to say “I’m so hungry I could literally eat a horse.” Because you can’t do that in one sitting, I don’t care how big your stomach is.</p><p id="d88f" name="d88f">“That play was so funny I laughed my head off,” illustrates the play was amusing. You don’t need to say you literally laughed your head off, because then your head would be on the ground and you wouldn’t be able to speak, much less laugh.</p><p id="4bab" name="4bab">“I drove so fast my car was flying,” we get your point: you were speeding. But your car is never going fast enough to fly, so don’t say your car was literally flying.</p><h4 id="f2f0" name="f2f0">Insecurities?</h4><p id="1bd7" name="1bd7">Maybe no one believed a story you told as a child, and you felt the need to prove that it actually happened. <em>No really, mom, I literally climbed the tree. </em>In efforts to prove truth, you used literally to describe something real, however outlandish it seemed. Whatever the reason, now your overuse of literally has become a habit.</p><h4 id="d7c1" name="d7c1">Hard Habit to Break?</h4><p id="714b" name="714b">Abusing literally isn’t as bad a smoking, but it’s still an unhealthy habit (I mean that figuratively). Help is required in order to break it.</p><p id="f929" name="f929">This is my version of an intervention for literally abusers. I’m not sure how else to do it other than in writing. I know this makes me sound like a know-it-all, and I accept that. But there’s no excuse other than blatant ignorance to misuse the word “literally.” So just stop it.</p><p id="fd19" name="fd19">Don’t say “Courtney, this post is so snobbish it literally burned up my computer.” Because nothing is that snobbish that it causes computers to combust. Or: “Courtney, your head is so big it literally cannot get through the door.” Because it can, unless it’s one of those tiny doors from <em>Alice in Wonderland</em> and I need to eat a mushroom to make my whole body smaller.</p><h4 id="fe12" name="fe12">No One’s Perfect</h4><p id="7ff8" name="7ff8">And I’m not saying I am. I’m trying to restore meaning to a word that’s lost meaning. I’m standing up for literally. It’s a good word when used correctly. People are butchering it and destroying it every day (figuratively speaking) and the massacre needs to stop. Just as there’s a coalition of people against the use of certain fonts (like <a data-href="http://bancomicsans.com/main/?page_id=2" href="http://bancomicsans.com/main/?page_id=2" rel="nofollow">Comic Sans</a> and <a data-href="https://www.facebook.com/group.php?gid=14448723154" href="https://www.facebook.com/group.php?gid=14448723154" rel="nofollow">Papyrus</a>), so should there be a coalition of people against the abuse of literally.</p><h4 id="049e" name="049e">Saying it to Irritate?</h4><p id="9381" name="9381">Do you misuse the word “literally” just to annoy your know-it-all or grammar police friends/acquaintances/total strangers? If so, why? Doing so would be like me going outside when it’s freezing, wearing nothing but a pair of shorts and t-shirt in hopes of making you cold by just looking at me. Who suffers more?</p><h4 id="3e52" name="3e52">Graphical Representation</h4><p id="b57e" name="b57e">Matthew Inman of “The Oatmeal” wrote a comic about literally. Abusers and defenders alike <a data-href="http://theoatmeal.com/comics/literally" href="http://theoatmeal.com/comics/literally" rel="nofollow">should check it out</a>. It’s clear this whole craze about literally is driving a lot of us nuts. You literally abusers are killing off pieces of our souls. You must be stopped, or the world will be lost to meaninglessness forever. Figuratively speaking.</p></div></div></section> \ No newline at end of file
diff --git a/test/test-pages/medium-3/expected.html b/test/test-pages/medium-3/expected.html
index 54d01f1..f1c311e 100644
--- a/test/test-pages/medium-3/expected.html
+++ b/test/test-pages/medium-3/expected.html
@@ -1,226 +1,226 @@
-<section class="section section--body section--first" name="55ff">
- <div class="section-content">
- <div class="section-inner sectionLayout--insetColumn">
+<section name="55ff">
+ <div>
+ <div>
- <p class="graf graf--p graf-after--h3" id="97e7" name="97e7">How to get shanked doing what people say they want</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="df70" name="df70">don’t preach to me<br></br>Mr. integrity</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="c979" name="c979">(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a dusting of transphobia along the way, all totally okay because the ends justify the means, and it’s okay when “good” people do it.)</p>
- <p class="graf graf--p graf-after--p" id="342d" name="342d">First, I need to say something about this article: the reason I’m writing it infuriates me. Worse than installing CS 3 or Acrobat 7 ever did, and the former inspired comparisons to fecophile porn. I’m actually too mad to cuss. Well, not completely, but in this case, I don’t think the people I’m mad at are worth the creativity I try to put into profanity. This is about a brownfield of hypocrisy and viciously deliberate mischaracterization that “shame” cannot even come close to the shame those behind it should feel.</p>
- <p class="graf graf--p graf-after--p" id="2e61" name="2e61">Now, read this post by Samantha Bielefeld: The Elephant in the Room. First, it is a well-written critical piece that raises a few points in a calm, rational, nonconfrontational fashion, exactly the kind of things the pushers of The Great Big Lie say we need more of, as opposed to the screaming that is the norm in such cases.</p>
- <p class="graf graf--p graf-after--p" id="cd31" name="cd31">…sorry, I should explain “The Great Big Lie”. There are several, but in this case, our <em class="markup--em markup--p-em">specific</em> instance of “The Great Big Lie” is about criticism. Over and over, you hear from the very people I am not going to be nice to in this that we need “better” criticsm. Instead of rage and anger, volume and vitriol, we need in-depth rational criticism, that isn’t personal or ad hominem. That it should focus on points, not people.</p>
- <p class="graf graf--p graf-after--p graf--trailing" id="ae07" name="ae07">That, readers, is “The Big Lie”. It is a lie so big that if one ponders the reality of it, as I am going to, one wonders why anyone would believe it. It is a lie and it is one we should stop telling.</p>
+ <p id="97e7" name="97e7">How to get shanked doing what people say they want</p>
+ <blockquote id="df70" name="df70">don’t preach to me<br></br>Mr. integrity</blockquote>
+ <p id="c979" name="c979">(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a dusting of transphobia along the way, all totally okay because the ends justify the means, and it’s okay when “good” people do it.)</p>
+ <p id="342d" name="342d">First, I need to say something about this article: the reason I’m writing it infuriates me. Worse than installing CS 3 or Acrobat 7 ever did, and the former inspired comparisons to fecophile porn. I’m actually too mad to cuss. Well, not completely, but in this case, I don’t think the people I’m mad at are worth the creativity I try to put into profanity. This is about a brownfield of hypocrisy and viciously deliberate mischaracterization that “shame” cannot even come close to the shame those behind it should feel.</p>
+ <p id="2e61" name="2e61">Now, read this post by Samantha Bielefeld: The Elephant in the Room. First, it is a well-written critical piece that raises a few points in a calm, rational, nonconfrontational fashion, exactly the kind of things the pushers of The Great Big Lie say we need more of, as opposed to the screaming that is the norm in such cases.</p>
+ <p id="cd31" name="cd31">…sorry, I should explain “The Great Big Lie”. There are several, but in this case, our <em>specific</em> instance of “The Great Big Lie” is about criticism. Over and over, you hear from the very people I am not going to be nice to in this that we need “better” criticsm. Instead of rage and anger, volume and vitriol, we need in-depth rational criticism, that isn’t personal or ad hominem. That it should focus on points, not people.</p>
+ <p id="ae07" name="ae07">That, readers, is “The Big Lie”. It is a lie so big that if one ponders the reality of it, as I am going to, one wonders why anyone would believe it. It is a lie and it is one we should stop telling.</p>
</div>
</div>
- </section><section class="section section--body" name="c360">
- <div class="section-content">
- <div class="section-inner sectionLayout--insetColumn">
- <p class="graf graf--p graf--leading" id="a02f" name="a02f">Samantha’s points (I assume you read it, for you are smart people who know the importance of such things) are fairly clear:</p>
- <ol class="postList"><li class="graf graf--li graf-after--p" id="9213" name="9213">With the release of Overcast 2.0, a product Samantha actually likes, Marco Arment moved to a <a class="markup--anchor markup--li-anchor" data-href="http://www.marco.org/2015/10/09/overcast2" href="http://www.marco.org/2015/10/09/overcast2" rel="nofollow noopener" target="_blank">patronage model</a> that will probably be successful for him.</li>
- <li class="graf graf--li graf-after--li" id="dfa5" name="dfa5">Arment’s insistence that “<a class="markup--anchor markup--li-anchor" data-href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" target="_blank">anyone can do this</a>” while technically true, (anyone can in fact, implement this pricing model), also implies that “anyone” can have the kind of success that a developer with Marco’s history, financial status, and deep ties to the Apple News Web is expected to have. This is silly.</li>
- <li class="graf graf--li graf-after--li" id="e55d" name="e55d">Marco Arment occupies a fairly unique position in the Apple universe, (gained by hard work and no small talent), and because of that, benefits from a set of privileges that a new developer or even one that has been around for a long time, but isn’t, well, <em class="markup--em markup--li-em">Marco</em>, not only don’t have, but have little chance of attaining anytime soon.</li>
- <li class="graf graf--li graf-after--li" id="35fb" name="35fb">Marco has earned his success and is entitled to the benefits and privileges it brings, but he seems rather blind to all of that, and seems to still imagine himself as “two guys in a garage”. This is just not correct.</li>
- <li class="graf graf--li graf-after--li" id="38e2" name="38e2">In addition, the benefits and privileges of the above ensure that by releasing Overcast 2 as a free app, with patronage pricing, he has, if not gutted, severely hurt the ability of folks actually selling their apps for an up-front price of not free to continue doing so. This has the effect of accelerating the “race to the bottom” in the podcast listening app segment, which hurts devs who cannot afford to work on a “I don’t really need this money, so whatever you feel like sending is okay” model.</li>
- </ol><p class="graf graf--p graf-after--li" id="0481" name="0481">None of this is incorrect. None of this is an ad hominem attack in any way. It is just pointing out that a developer of Arment’s stature and status lives in a very different world than someone in East Frog Balls, Arkansas trying to make a living off of App sales. Our dev in EFB doesn’t have the main sites on the Apple web falling all over themselves to review their app the way that Arment does. They’re not friends with the people being The Loop, Daring Fireball, SixColors, iMore, The Mac Observer, etc., yadda.</p>
- <p class="graf graf--p graf-after--p" id="5a45" name="5a45">So, our hero, in a fit of well-meaning ignorance writes this piece (posted this morning, 14 Oct. 15) and of course, the response and any criticisms are just as reasonable and thoughtful.</p>
- <p class="graf graf--p graf-after--p graf--trailing" id="3bc7" name="3bc7">If you really believe that, you are the most preciously ignorant person in the world, and can I have your seriously charmed life.</p>
+ </section><section name="c360">
+ <div>
+ <div>
+ <p id="a02f" name="a02f">Samantha’s points (I assume you read it, for you are smart people who know the importance of such things) are fairly clear:</p>
+ <ol><li id="9213" name="9213">With the release of Overcast 2.0, a product Samantha actually likes, Marco Arment moved to a <a data-href="http://www.marco.org/2015/10/09/overcast2" href="http://www.marco.org/2015/10/09/overcast2" rel="nofollow noopener" target="_blank">patronage model</a> that will probably be successful for him.</li>
+ <li id="dfa5" name="dfa5">Arment’s insistence that “<a data-href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" target="_blank">anyone can do this</a>” while technically true, (anyone can in fact, implement this pricing model), also implies that “anyone” can have the kind of success that a developer with Marco’s history, financial status, and deep ties to the Apple News Web is expected to have. This is silly.</li>
+ <li id="e55d" name="e55d">Marco Arment occupies a fairly unique position in the Apple universe, (gained by hard work and no small talent), and because of that, benefits from a set of privileges that a new developer or even one that has been around for a long time, but isn’t, well, <em>Marco</em>, not only don’t have, but have little chance of attaining anytime soon.</li>
+ <li id="35fb" name="35fb">Marco has earned his success and is entitled to the benefits and privileges it brings, but he seems rather blind to all of that, and seems to still imagine himself as “two guys in a garage”. This is just not correct.</li>
+ <li id="38e2" name="38e2">In addition, the benefits and privileges of the above ensure that by releasing Overcast 2 as a free app, with patronage pricing, he has, if not gutted, severely hurt the ability of folks actually selling their apps for an up-front price of not free to continue doing so. This has the effect of accelerating the “race to the bottom” in the podcast listening app segment, which hurts devs who cannot afford to work on a “I don’t really need this money, so whatever you feel like sending is okay” model.</li>
+ </ol><p id="0481" name="0481">None of this is incorrect. None of this is an ad hominem attack in any way. It is just pointing out that a developer of Arment’s stature and status lives in a very different world than someone in East Frog Balls, Arkansas trying to make a living off of App sales. Our dev in EFB doesn’t have the main sites on the Apple web falling all over themselves to review their app the way that Arment does. They’re not friends with the people being The Loop, Daring Fireball, SixColors, iMore, The Mac Observer, etc., yadda.</p>
+ <p id="5a45" name="5a45">So, our hero, in a fit of well-meaning ignorance writes this piece (posted this morning, 14 Oct. 15) and of course, the response and any criticisms are just as reasonable and thoughtful.</p>
+ <p id="3bc7" name="3bc7">If you really believe that, you are the most preciously ignorant person in the world, and can I have your seriously charmed life.</p>
</div>
</div>
- </section><section class="section section--body" name="2ba2">
- <div class="section-content">
- <div class="section-inner sectionLayout--insetColumn">
- <p class="graf graf--p graf--leading" id="0fb2" name="0fb2">The response, from all quarters, including Marco, someone who is so sensitive to criticism that the word “useless” is <a class="markup--anchor markup--p-anchor" data-href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" rel="nofollow noopener" target="_blank">enough to shut him down</a>, who <a class="markup--anchor markup--p-anchor" data-href="https://twitter.com/marcoarment/status/641330113934700544" href="https://twitter.com/marcoarment/status/641330113934700544" rel="nofollow noopener" target="_blank">blocked a friend of mine for the high crime of pointing out that his review of podcasting mics centered around higher priced gear and ignored folks without the scratch, who might not be ready for such things</a>, is, in a single word, disgusting. Vomitous even.</p>
- <p class="graf graf--p graf-after--p" id="9a6e" name="9a6e">It’s an hours-long dogpile that beggars even my imagination, and I can imagine almost anything. Seriously, it’s all there in <a class="markup--anchor markup--p-anchor" data-href="https://twitter.com/s_bielefeld/with_replies" href="https://twitter.com/s_bielefeld/with_replies" rel="nofollow noopener" target="_blank">Samantha’s Twitter Feed</a>. From what I can tell, she’s understandably shocked over it. I however was not. This one comment in her feed made me smile (warning, this wanders a bit…er…LOT. Twitter timelines are not easy to put together):</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="3271" name="3271">I can see why you have some reservations about publishing it, but my gut feeling is that he would take it better than Nilay.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="ec72" name="ec72">Oh honey, bless your sweet, ignorant heart. Marco is one of the biggest pushers of The Big Lie, and one of the reasons it is <em class="markup--em markup--p-em">such</em> a lie.</p>
- <p class="graf graf--p graf-after--p" id="5cc4" name="5cc4">But it gets better. First, you have the “hey, Marco <em class="markup--em markup--p-em">earned</em> his status!” lot. A valid point, and one Bielefeld explicitly acknowledges, here:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="4e5f" name="4e5f">From his ground floor involvement in Tumblr (for which he is now a millionaire), to the creation and sale of a wildly successful app called Instapaper, he has become a household name in technology minded circles. It is this extensive time spent in the spotlight, the huge following on Twitter, and dedicated listeners of his weekly aired Accidental Tech Podcast, that has granted him the freedom to break from seeking revenue in more traditional manners.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="cee9" name="cee9">and here:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="3f1b" name="3f1b">I’m not knocking his success, he has put effort into his line of work, and has built his own life.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="e527" name="e527">and here:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="3e4f" name="3e4f">He has earned his time in the spotlight, and it’s only natural for him to take advantage of it.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="8a01" name="8a01">But still, you get the people telling her something she already acknowledge:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="7685" name="7685">I don’t think he’s blind. he’s worked to where he has gotten and has had failures like everyone else.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="b151" name="b151">Thank you for restating something in the article. To the person who wrote it.</p>
- <p class="graf graf--p graf-after--p" id="87bc" name="87bc">In the original article, Samantha talked about the money Marco makes from his podcast. She based that on the numbers <a class="markup--anchor markup--p-anchor" data-href="http://atp.fm/sponsor/" href="http://atp.fm/sponsor/" rel="nofollow noopener" target="_blank">provided by ATP in terms of sponsorship rates</a> and the number of current sponsors the podcast has. Is this going to yield perfect numbers? No. But the numbers you get from it will at least be reasonable, or should be unless the published sponsorship rates are just fantasy, and you’re stupid for taking them seriously.</p>
- <p class="graf graf--p graf-after--p" id="dbda" name="dbda">At first, she went with a simple formula:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="1b4e" name="1b4e">$4K x 3 per episode = $12K x 52 weeks / 3 hosts splitting it.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="0b33" name="0b33">That’s not someone making shit up, right? Rather quickly, someone pointed out that she’d made an error in how she calculated it:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="76d7" name="76d7">That’s $4k per ad, no? So more like $12–16k per episode.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="a089" name="a089">She’d already realized her mistake and fixed it.</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="b369" name="b369">which is actually wrong, and I’m correcting now. $4,000 per sponsor, per episode! So, $210,000 per year.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="8b3b" name="8b3b">Again, this is based on <em class="markup--em markup--p-em">publicly available data</em> the only kind someone not part of ATP or a close friend of Arment has access to. So while her numbers may be wrong, if they are, there’s no way for her to know that. She’s basing her opinion on actual available data. Which is sadly rare.</p>
- <p class="graf graf--p graf-after--p" id="135a" name="135a">This becomes a huge flashpoint. You name a reason to attack her over this, people do. No really. For example, she’s not calculating his <em class="markup--em markup--p-em">income taxes correctly</em>:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="5e7e" name="5e7e">especially since it isn’t his only source of income thus, not an indicator of his marginal inc. tax bracket.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="6036" name="6036">thus, guessing net income is more haphazard than stating approx. gross income.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="aac1" name="aac1">Ye Gods. She’s not doing his taxes for him, her point is invalid?</p>
- <p class="graf graf--p graf-after--p" id="600f" name="600f">Then there’s the people who seem to have not read anything past what other people are telling them:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="9b62" name="9b62">Not sure what to make of your Marco piece, to be honest. You mention his fame, whatever, but what’s the main idea here?</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="c18a" name="c18a">Just how spoon-fed do you have to be? Have you no teeth?</p>
- <p class="graf graf--p graf-after--p" id="c445" name="c445">Of course, Marco jumps in, and predictably, he’s snippy:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="0c21" name="0c21">If you’re going to speak in precise absolutes, it’s best to first ensure that you’re correct.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="8f8d" name="8f8d">If you’re going to be like that, it’s best to provide better data. Don’t get snippy when someone is going off the only data available, and is clearly open to revising based on better data.</p>
- <p class="graf graf--p graf-after--p" id="cc97" name="cc97">Then Marco’s friends/fans get into it:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="f9da" name="f9da">I really don’t understand why it’s anyone’s business</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="0094" name="0094">Samantha is trying to qualify for sainthood at this point:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="0105" name="0105">It isn’t really, it was a way of putting his income in context in regards to his ability to gamble with Overcast.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="cdd1" name="cdd1">Again, she’s trying to drag people back to her actual point, but no one is going to play. The storm has begun. Then we get people who are just spouting nonsense:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="f56c" name="f56c">Why is that only relevant for him? It’s a pretty weird metric,especially since his apps aren’t free.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="4fef" name="4fef">Wha?? Overcast 2 is absolutely free. Samantha points this out:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="0f36" name="0f36">His app is free, that’s what sparked the article to begin with.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="40d2" name="40d2">The response is literally a parallel to “How can there be global warming if it snowed today in my town?”</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="6760" name="6760">If it’s free, how have I paid for it? Twice?</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="7b13" name="7b13">She is still trying:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="44ba" name="44ba">You paid $4.99 to unlock functionality in Overcast 1.0 and you chose to support him with no additional functionality in 2.0</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="2152" name="2152">He is having none of it. IT SNOWED! SNOWWWWWWW!</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="99a6" name="99a6">Yes. That’s not free. Free is when you choose not to make money. And that can be weaponized. But that’s not what Overcast does.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="5e6f" name="5e6f">She however, is relentless:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="1b0f" name="1b0f">No, it’s still free. You can choose to support it, you are required to pay $4.99 for Pocket Casts. Totally different model.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="d24f" name="d24f">Dude seems to give up. (Note: allllll the people bagging on her are men. All of them. Mansplaining like hell. And I’d bet every one of them considers themselves a feminist.)</p>
- <p class="graf graf--p graf-after--p" id="10e1" name="10e1">We get another guy trying to push the narrative she’s punishing him for his success, which is just…it’s stupid, okay? Stupid.</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="9b01" name="9b01">It also wasn’t my point in writing my piece today, but it seems to be everyone’s focus.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="340c" name="340c">(UNDERSTATEMENT OF THE YEAR)</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="7244" name="7244">I think the focus should be more on that fact that while it’s difficult, Marco spent years building his audience.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="ffb1" name="ffb1">It doesn’t matter what he makes it how he charges. If the audience be earned is willing to pay for it, awesome.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="e44e" name="e44e">She tries, oh lord, she tries:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="a502" name="a502">To assert that he isn’t doing anything any other dev couldn’t, is wrong. It’s successful because it’s Marco.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="7dcd" name="7dcd">But no, HE KNOWS HER POINT BETTER THAN SHE DOES:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="a62a" name="a62a">No, it’s successful because he busted his ass to make it so. It’s like any other business. He grew it.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="df8c" name="df8c">Christ. This is like a field of strawmen. Stupid ones. Very stupid ones.</p>
- <p class="graf graf--p graf-after--p" id="521a" name="521a">One guy tries to blame it all on Apple, another in a string of Wha??? moments:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="d80d" name="d80d">the appropriate context is Apple’s App Store policies. Other devs aren’t Marco’s responsibility</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="db0b" name="db0b">Seriously? Dude, are you even trying to talk about what Samantha actually wrote? At this point, Samantha is clearly mystified at the entire thing:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="7a78" name="7a78">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="6e09" name="6e09">Because it’s a nit they can pick and allows them to ignore everything you wrote. That’s the only reason.</p>
- <p class="graf graf--p graf-after--p" id="b7db" name="b7db">One guy is “confused”:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="3626" name="3626">I see. He does have clout, so are you saying he’s too modest in how he sees himself as a dev?</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="9daa" name="9daa">Yes. He can’t be equated to the vast majority of other developers. Like calling Gruber, “just another blogger”.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="f6da" name="f6da">Alright, that’s fair. I was just confused by the $ and fame angle at first.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="d5b1" name="d5b1">Samantha’s point centers on the benefits Marco gains via his fame and background. <em class="markup--em markup--p-em">HOW DO YOU NOT MENTION THAT? HOW IS THAT CONFUSING?</em></p>
- <p class="graf graf--p graf-after--p" id="58d0" name="58d0">People of course are telling her it’s her fault for mentioning a salient fact at all:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="30d2" name="30d2">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="765b" name="765b">Maybe because you went there with your article?</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="61fe" name="61fe">As a way of rationalizing his ability to gamble with the potential for Overcast to generate income…not the norm at all.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="f17c" name="f17c">Of course, had she not brought up those important points, she’d have been bagged on for “not providing proof”. Lose some, lose more. By now, she’s had enough and she just deletes all mention of it. Understandable, but sad she was bullied into doing that.</p>
- <p class="graf graf--p graf-after--p" id="0b60" name="0b60">Yes, bullied. That’s all this is. Bullying. She didn’t lie, cheat, or exaagerate. If her numbers were wrong, they weren’t wrong in a way she had any ability to do anything about. But there’s blood in the water, and the comments and attacks get worse:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="65ab" name="65ab">Because you decided to start a conversation about someone else’s personal shit. You started this war.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="1adb" name="1adb">War. THIS. IS. WAR.</p>
- <p class="graf graf--p graf-after--p" id="de94" name="de94">This is a bunch of nerds attacking someone for reasoned, calm, <em class="markup--em markup--p-em">polite</em> criticism of their friend/idol. Samantha is politely pushing back a bit:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="4458" name="4458">That doesn’t explain why every other part of my article is being pushed aside.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="aeac" name="aeac">She’s right. This is all nonsense. This is people ignoring her article completely, just looking for things to attack so it can be dismissed. It’s tribalism at its purest.</p>
- <p class="graf graf--p graf-after--p" id="0078" name="0078">Then some of the other annointed get into it, including Jason Snell in one of the most spectactular displays of “I have special knowledge you can’t be expected to have, therefore you are totally off base and wrong, even though there’s no way for you to know this” I’ve seen in a while. Jason:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="c4c9" name="c4c9">You should never use an ad rate card to estimate ad revenue from any media product ever.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="b66b" name="b66b">I learned this when I started working for a magazine — rate cards are mostly fiction, like prices on new cars</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="6907" name="6907">How…exactly…in the name of whatever deity Jason may believe in…is Samantha or anyone not “in the biz” supposed to know this. Also, what exactly does a magazine on paper like Macworld have to do with sponsorships for a podcast? I have done podcasts that were sponsored, and I can retaliate with “we charged what the rate card said we did. <em class="markup--em markup--p-em">Checkmate Elitests!</em>”</p>
- <p class="graf graf--p graf-after--p" id="41ec" name="41ec">Samantha basically abases herself at his feet:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="0b14" name="0b14">I understand my mistake, and it’s unfortunate that it has completely diluted the point of my article.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="590f" name="590f">I think she should have told him where and how to stuff that nonsense, but she’s a nicer person than I am. Also, it’s appropriate that Jason’s twitter avatar has its nose in the air. This is some rank snobbery. It’s disgusting and if anyone pulled that on him, Jason would be very upset. But hey, one cannot criticize The Marco without getting pushback. By “pushback”, I mean “an unrelenting fecal flood”.</p>
- <p class="graf graf--p graf-after--p" id="69dc" name="69dc">Her only mistake was criticizing one of the Kool Kids. Folks, if you criticize anyone in The Deck Clique, or their friends, expect the same thing, regardless of tone or point.</p>
- <p class="graf graf--p graf-after--p" id="5ab4" name="5ab4">Another App Dev, seemingly unable to parse Samantha’s words, needs <em class="markup--em markup--p-em">more</em> explanation:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="957b" name="957b">so just looking over your mentions, I’m curious what exactly was your main point? Ignoring the podcast income bits.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="0a7e" name="0a7e">Oh wait, he didn’t even read the article. Good on you, Dev Guy, good. on. you. Still, she plays nice <em class="markup--em markup--p-em">with someone who didn’t even read her article</em>:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="f7db" name="f7db">That a typical unknown developer can’t depend on patronage to generate revenue, and charging for apps will become a negative.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="937f" name="937f">Marco comes back of course, and now basically accuses her of lying about other devs talking to her and supporting her point:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="c9dd" name="c9dd">How many actual developers did you hear from, really? Funny how almost nobody wants to give a (real) name on these accusations.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="c522" name="c522">Really? You’re going to do that? “There’s no name, so I don’t think it’s a real person.” Just…what’s the Joe Welch quote from the McCarthy hearings?</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="907e" name="907e">Let us not assassinate this lad further, Senator. You’ve done enough. Have you no sense of decency, sir? At long last, have you left no sense of decency?</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="2158" name="2158">That is what this is at this point: character assasination because she said something critical of A Popular Person. It’s disgusting. Depressing and disgusting. No one, none of these people have seriously discussed her point, heck, it looks like they barely bothered to read it, if they did at all.</p>
- <p class="graf graf--p graf-after--p" id="13f8" name="13f8">Marco starts getting really petty with her (no big shock) and Samantha finally starts pushing back:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="96c6" name="96c6">Glad to see you be the bigger person and ignore the mindset of so many developers not relating to you, good for you!</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="5d3f" name="5d3f">That of course, is what caused Marco to question the validity, if not the existence of her sources. (Funny how anonymous sources are totes okay when they convenience Marco et al, and work for oh, <em class="markup--em markup--p-em">Apple</em>, but when they are inconvenient? Ha! PROVIDE ME PROOF YOU INTEMPERATE WOMAN!)</p>
- <p class="graf graf--p graf-after--p" id="c07c" name="c07c">Make no mistake, there’s some sexist shit going on here. Every tweet I’ve quoted was authored by a guy.</p>
- <p class="graf graf--p graf-after--p" id="8b32" name="8b32">Of course, Marco has to play the “I’ve been around longer than you” card with this bon mot:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="de26" name="de26">Yup, before you existed!</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="a3bd" name="a3bd">Really dude? I mean, I’m sorry about the penis, but really?</p>
- <p class="graf graf--p graf-after--p" id="1c51" name="1c51">Mind you, when the criticism isn’t just bizarrely stupid, Samantha reacts the way Marco and his ilk claim they would to (if they ever got any <em class="markup--em markup--p-em">valid</em> criticism. Which clearly is impossible):</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="9848" name="9848">Not to get into the middle of this, but “income” is not the term you’re looking for. “Revenue” is.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="f2a6" name="f2a6">lol. Noted.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="aed9" name="aed9">And I wasn’t intending to be a dick, just a lot of people hear/say “income” when they intend “revenue”, and then discussion …</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="f9d8" name="f9d8">… gets derailed by a jedi handwave of “Expenses”. But outside of charitable donation, it is all directly related.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="f61c" name="f61c">haha. Thank you for the clarification.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="5dd9" name="5dd9">Note to Marco and the other…whatever they are…that is how one reacts to that kind of criticism. With a bit of humor and self-deprecation. You should try it sometime. For real, not just in your heads or conversations in Irish Pubs in S.F.</p>
- <p class="graf graf--p graf-after--p" id="dc44" name="dc44">But now, the door has been cracked, and the cheap shots come out:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="0c94" name="0c94">@testflight_app: Don’t worry guys, we process <a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/marcoarment" href="https://twitter.com/marcoarment" rel="nofollow noopener" target="_blank">@marcoarment</a>’s apps in direct proportion to his megabucks earnings. <a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/hashtag/fairelephant?src=hash" href="https://twitter.com/hashtag/fairelephant?src=hash" rel="nofollow noopener" target="_blank">#fairelephant</a></blockquote>
- <p class="graf graf--p graf-after--blockquote" id="343b" name="343b">(Note: testflight_app is a parody account. Please do not mess with the actual testflight folks. They are still cool.)</p>
- <p class="graf graf--p graf-after--p" id="09bf" name="09bf">Or this…conversation:</p>
- <figure class="graf graf--figure graf-after--p" id="4d63" name="4d63"><div class="aspectRatioPlaceholder is-locked">
+ </section><section name="2ba2">
+ <div>
+ <div>
+ <p id="0fb2" name="0fb2">The response, from all quarters, including Marco, someone who is so sensitive to criticism that the word “useless” is <a data-href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" rel="nofollow noopener" target="_blank">enough to shut him down</a>, who <a data-href="https://twitter.com/marcoarment/status/641330113934700544" href="https://twitter.com/marcoarment/status/641330113934700544" rel="nofollow noopener" target="_blank">blocked a friend of mine for the high crime of pointing out that his review of podcasting mics centered around higher priced gear and ignored folks without the scratch, who might not be ready for such things</a>, is, in a single word, disgusting. Vomitous even.</p>
+ <p id="9a6e" name="9a6e">It’s an hours-long dogpile that beggars even my imagination, and I can imagine almost anything. Seriously, it’s all there in <a data-href="https://twitter.com/s_bielefeld/with_replies" href="https://twitter.com/s_bielefeld/with_replies" rel="nofollow noopener" target="_blank">Samantha’s Twitter Feed</a>. From what I can tell, she’s understandably shocked over it. I however was not. This one comment in her feed made me smile (warning, this wanders a bit…er…LOT. Twitter timelines are not easy to put together):</p>
+ <blockquote id="3271" name="3271">I can see why you have some reservations about publishing it, but my gut feeling is that he would take it better than Nilay.</blockquote>
+ <p id="ec72" name="ec72">Oh honey, bless your sweet, ignorant heart. Marco is one of the biggest pushers of The Big Lie, and one of the reasons it is <em>such</em> a lie.</p>
+ <p id="5cc4" name="5cc4">But it gets better. First, you have the “hey, Marco <em>earned</em> his status!” lot. A valid point, and one Bielefeld explicitly acknowledges, here:</p>
+ <blockquote id="4e5f" name="4e5f">From his ground floor involvement in Tumblr (for which he is now a millionaire), to the creation and sale of a wildly successful app called Instapaper, he has become a household name in technology minded circles. It is this extensive time spent in the spotlight, the huge following on Twitter, and dedicated listeners of his weekly aired Accidental Tech Podcast, that has granted him the freedom to break from seeking revenue in more traditional manners.</blockquote>
+ <p id="cee9" name="cee9">and here:</p>
+ <blockquote id="3f1b" name="3f1b">I’m not knocking his success, he has put effort into his line of work, and has built his own life.</blockquote>
+ <p id="e527" name="e527">and here:</p>
+ <blockquote id="3e4f" name="3e4f">He has earned his time in the spotlight, and it’s only natural for him to take advantage of it.</blockquote>
+ <p id="8a01" name="8a01">But still, you get the people telling her something she already acknowledge:</p>
+ <blockquote id="7685" name="7685">I don’t think he’s blind. he’s worked to where he has gotten and has had failures like everyone else.</blockquote>
+ <p id="b151" name="b151">Thank you for restating something in the article. To the person who wrote it.</p>
+ <p id="87bc" name="87bc">In the original article, Samantha talked about the money Marco makes from his podcast. She based that on the numbers <a data-href="http://atp.fm/sponsor/" href="http://atp.fm/sponsor/" rel="nofollow noopener" target="_blank">provided by ATP in terms of sponsorship rates</a> and the number of current sponsors the podcast has. Is this going to yield perfect numbers? No. But the numbers you get from it will at least be reasonable, or should be unless the published sponsorship rates are just fantasy, and you’re stupid for taking them seriously.</p>
+ <p id="dbda" name="dbda">At first, she went with a simple formula:</p>
+ <blockquote id="1b4e" name="1b4e">$4K x 3 per episode = $12K x 52 weeks / 3 hosts splitting it.</blockquote>
+ <p id="0b33" name="0b33">That’s not someone making shit up, right? Rather quickly, someone pointed out that she’d made an error in how she calculated it:</p>
+ <blockquote id="76d7" name="76d7">That’s $4k per ad, no? So more like $12–16k per episode.</blockquote>
+ <p id="a089" name="a089">She’d already realized her mistake and fixed it.</p>
+ <blockquote id="b369" name="b369">which is actually wrong, and I’m correcting now. $4,000 per sponsor, per episode! So, $210,000 per year.</blockquote>
+ <p id="8b3b" name="8b3b">Again, this is based on <em>publicly available data</em> the only kind someone not part of ATP or a close friend of Arment has access to. So while her numbers may be wrong, if they are, there’s no way for her to know that. She’s basing her opinion on actual available data. Which is sadly rare.</p>
+ <p id="135a" name="135a">This becomes a huge flashpoint. You name a reason to attack her over this, people do. No really. For example, she’s not calculating his <em>income taxes correctly</em>:</p>
+ <blockquote id="5e7e" name="5e7e">especially since it isn’t his only source of income thus, not an indicator of his marginal inc. tax bracket.</blockquote>
+ <blockquote id="6036" name="6036">thus, guessing net income is more haphazard than stating approx. gross income.</blockquote>
+ <p id="aac1" name="aac1">Ye Gods. She’s not doing his taxes for him, her point is invalid?</p>
+ <p id="600f" name="600f">Then there’s the people who seem to have not read anything past what other people are telling them:</p>
+ <blockquote id="9b62" name="9b62">Not sure what to make of your Marco piece, to be honest. You mention his fame, whatever, but what’s the main idea here?</blockquote>
+ <p id="c18a" name="c18a">Just how spoon-fed do you have to be? Have you no teeth?</p>
+ <p id="c445" name="c445">Of course, Marco jumps in, and predictably, he’s snippy:</p>
+ <blockquote id="0c21" name="0c21">If you’re going to speak in precise absolutes, it’s best to first ensure that you’re correct.</blockquote>
+ <p id="8f8d" name="8f8d">If you’re going to be like that, it’s best to provide better data. Don’t get snippy when someone is going off the only data available, and is clearly open to revising based on better data.</p>
+ <p id="cc97" name="cc97">Then Marco’s friends/fans get into it:</p>
+ <blockquote id="f9da" name="f9da">I really don’t understand why it’s anyone’s business</blockquote>
+ <p id="0094" name="0094">Samantha is trying to qualify for sainthood at this point:</p>
+ <blockquote id="0105" name="0105">It isn’t really, it was a way of putting his income in context in regards to his ability to gamble with Overcast.</blockquote>
+ <p id="cdd1" name="cdd1">Again, she’s trying to drag people back to her actual point, but no one is going to play. The storm has begun. Then we get people who are just spouting nonsense:</p>
+ <blockquote id="f56c" name="f56c">Why is that only relevant for him? It’s a pretty weird metric,especially since his apps aren’t free.</blockquote>
+ <p id="4fef" name="4fef">Wha?? Overcast 2 is absolutely free. Samantha points this out:</p>
+ <blockquote id="0f36" name="0f36">His app is free, that’s what sparked the article to begin with.</blockquote>
+ <p id="40d2" name="40d2">The response is literally a parallel to “How can there be global warming if it snowed today in my town?”</p>
+ <blockquote id="6760" name="6760">If it’s free, how have I paid for it? Twice?</blockquote>
+ <p id="7b13" name="7b13">She is still trying:</p>
+ <blockquote id="44ba" name="44ba">You paid $4.99 to unlock functionality in Overcast 1.0 and you chose to support him with no additional functionality in 2.0</blockquote>
+ <p id="2152" name="2152">He is having none of it. IT SNOWED! SNOWWWWWWW!</p>
+ <blockquote id="99a6" name="99a6">Yes. That’s not free. Free is when you choose not to make money. And that can be weaponized. But that’s not what Overcast does.</blockquote>
+ <p id="5e6f" name="5e6f">She however, is relentless:</p>
+ <blockquote id="1b0f" name="1b0f">No, it’s still free. You can choose to support it, you are required to pay $4.99 for Pocket Casts. Totally different model.</blockquote>
+ <p id="d24f" name="d24f">Dude seems to give up. (Note: allllll the people bagging on her are men. All of them. Mansplaining like hell. And I’d bet every one of them considers themselves a feminist.)</p>
+ <p id="10e1" name="10e1">We get another guy trying to push the narrative she’s punishing him for his success, which is just…it’s stupid, okay? Stupid.</p>
+ <blockquote id="9b01" name="9b01">It also wasn’t my point in writing my piece today, but it seems to be everyone’s focus.</blockquote>
+ <p id="340c" name="340c">(UNDERSTATEMENT OF THE YEAR)</p>
+ <blockquote id="7244" name="7244">I think the focus should be more on that fact that while it’s difficult, Marco spent years building his audience.</blockquote>
+ <blockquote id="ffb1" name="ffb1">It doesn’t matter what he makes it how he charges. If the audience be earned is willing to pay for it, awesome.</blockquote>
+ <p id="e44e" name="e44e">She tries, oh lord, she tries:</p>
+ <blockquote id="a502" name="a502">To assert that he isn’t doing anything any other dev couldn’t, is wrong. It’s successful because it’s Marco.</blockquote>
+ <p id="7dcd" name="7dcd">But no, HE KNOWS HER POINT BETTER THAN SHE DOES:</p>
+ <blockquote id="a62a" name="a62a">No, it’s successful because he busted his ass to make it so. It’s like any other business. He grew it.</blockquote>
+ <p id="df8c" name="df8c">Christ. This is like a field of strawmen. Stupid ones. Very stupid ones.</p>
+ <p id="521a" name="521a">One guy tries to blame it all on Apple, another in a string of Wha??? moments:</p>
+ <blockquote id="d80d" name="d80d">the appropriate context is Apple’s App Store policies. Other devs aren’t Marco’s responsibility</blockquote>
+ <p id="db0b" name="db0b">Seriously? Dude, are you even trying to talk about what Samantha actually wrote? At this point, Samantha is clearly mystified at the entire thing:</p>
+ <blockquote id="7a78" name="7a78">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
+ <p id="6e09" name="6e09">Because it’s a nit they can pick and allows them to ignore everything you wrote. That’s the only reason.</p>
+ <p id="b7db" name="b7db">One guy is “confused”:</p>
+ <blockquote id="3626" name="3626">I see. He does have clout, so are you saying he’s too modest in how he sees himself as a dev?</blockquote>
+ <blockquote id="9daa" name="9daa">Yes. He can’t be equated to the vast majority of other developers. Like calling Gruber, “just another blogger”.</blockquote>
+ <blockquote id="f6da" name="f6da">Alright, that’s fair. I was just confused by the $ and fame angle at first.</blockquote>
+ <p id="d5b1" name="d5b1">Samantha’s point centers on the benefits Marco gains via his fame and background. <em>HOW DO YOU NOT MENTION THAT? HOW IS THAT CONFUSING?</em></p>
+ <p id="58d0" name="58d0">People of course are telling her it’s her fault for mentioning a salient fact at all:</p>
+ <blockquote id="30d2" name="30d2">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
+ <blockquote id="765b" name="765b">Maybe because you went there with your article?</blockquote>
+ <blockquote id="61fe" name="61fe">As a way of rationalizing his ability to gamble with the potential for Overcast to generate income…not the norm at all.</blockquote>
+ <p id="f17c" name="f17c">Of course, had she not brought up those important points, she’d have been bagged on for “not providing proof”. Lose some, lose more. By now, she’s had enough and she just deletes all mention of it. Understandable, but sad she was bullied into doing that.</p>
+ <p id="0b60" name="0b60">Yes, bullied. That’s all this is. Bullying. She didn’t lie, cheat, or exaagerate. If her numbers were wrong, they weren’t wrong in a way she had any ability to do anything about. But there’s blood in the water, and the comments and attacks get worse:</p>
+ <blockquote id="65ab" name="65ab">Because you decided to start a conversation about someone else’s personal shit. You started this war.</blockquote>
+ <p id="1adb" name="1adb">War. THIS. IS. WAR.</p>
+ <p id="de94" name="de94">This is a bunch of nerds attacking someone for reasoned, calm, <em>polite</em> criticism of their friend/idol. Samantha is politely pushing back a bit:</p>
+ <blockquote id="4458" name="4458">That doesn’t explain why every other part of my article is being pushed aside.</blockquote>
+ <p id="aeac" name="aeac">She’s right. This is all nonsense. This is people ignoring her article completely, just looking for things to attack so it can be dismissed. It’s tribalism at its purest.</p>
+ <p id="0078" name="0078">Then some of the other annointed get into it, including Jason Snell in one of the most spectactular displays of “I have special knowledge you can’t be expected to have, therefore you are totally off base and wrong, even though there’s no way for you to know this” I’ve seen in a while. Jason:</p>
+ <blockquote id="c4c9" name="c4c9">You should never use an ad rate card to estimate ad revenue from any media product ever.</blockquote>
+ <blockquote id="b66b" name="b66b">I learned this when I started working for a magazine — rate cards are mostly fiction, like prices on new cars</blockquote>
+ <p id="6907" name="6907">How…exactly…in the name of whatever deity Jason may believe in…is Samantha or anyone not “in the biz” supposed to know this. Also, what exactly does a magazine on paper like Macworld have to do with sponsorships for a podcast? I have done podcasts that were sponsored, and I can retaliate with “we charged what the rate card said we did. <em>Checkmate Elitests!</em>”</p>
+ <p id="41ec" name="41ec">Samantha basically abases herself at his feet:</p>
+ <blockquote id="0b14" name="0b14">I understand my mistake, and it’s unfortunate that it has completely diluted the point of my article.</blockquote>
+ <p id="590f" name="590f">I think she should have told him where and how to stuff that nonsense, but she’s a nicer person than I am. Also, it’s appropriate that Jason’s twitter avatar has its nose in the air. This is some rank snobbery. It’s disgusting and if anyone pulled that on him, Jason would be very upset. But hey, one cannot criticize The Marco without getting pushback. By “pushback”, I mean “an unrelenting fecal flood”.</p>
+ <p id="69dc" name="69dc">Her only mistake was criticizing one of the Kool Kids. Folks, if you criticize anyone in The Deck Clique, or their friends, expect the same thing, regardless of tone or point.</p>
+ <p id="5ab4" name="5ab4">Another App Dev, seemingly unable to parse Samantha’s words, needs <em>more</em> explanation:</p>
+ <blockquote id="957b" name="957b">so just looking over your mentions, I’m curious what exactly was your main point? Ignoring the podcast income bits.</blockquote>
+ <p id="0a7e" name="0a7e">Oh wait, he didn’t even read the article. Good on you, Dev Guy, good. on. you. Still, she plays nice <em>with someone who didn’t even read her article</em>:</p>
+ <blockquote id="f7db" name="f7db">That a typical unknown developer can’t depend on patronage to generate revenue, and charging for apps will become a negative.</blockquote>
+ <p id="937f" name="937f">Marco comes back of course, and now basically accuses her of lying about other devs talking to her and supporting her point:</p>
+ <blockquote id="c9dd" name="c9dd">How many actual developers did you hear from, really? Funny how almost nobody wants to give a (real) name on these accusations.</blockquote>
+ <p id="c522" name="c522">Really? You’re going to do that? “There’s no name, so I don’t think it’s a real person.” Just…what’s the Joe Welch quote from the McCarthy hearings?</p>
+ <blockquote id="907e" name="907e">Let us not assassinate this lad further, Senator. You’ve done enough. Have you no sense of decency, sir? At long last, have you left no sense of decency?</blockquote>
+ <p id="2158" name="2158">That is what this is at this point: character assasination because she said something critical of A Popular Person. It’s disgusting. Depressing and disgusting. No one, none of these people have seriously discussed her point, heck, it looks like they barely bothered to read it, if they did at all.</p>
+ <p id="13f8" name="13f8">Marco starts getting really petty with her (no big shock) and Samantha finally starts pushing back:</p>
+ <blockquote id="96c6" name="96c6">Glad to see you be the bigger person and ignore the mindset of so many developers not relating to you, good for you!</blockquote>
+ <p id="5d3f" name="5d3f">That of course, is what caused Marco to question the validity, if not the existence of her sources. (Funny how anonymous sources are totes okay when they convenience Marco et al, and work for oh, <em>Apple</em>, but when they are inconvenient? Ha! PROVIDE ME PROOF YOU INTEMPERATE WOMAN!)</p>
+ <p id="c07c" name="c07c">Make no mistake, there’s some sexist shit going on here. Every tweet I’ve quoted was authored by a guy.</p>
+ <p id="8b32" name="8b32">Of course, Marco has to play the “I’ve been around longer than you” card with this bon mot:</p>
+ <blockquote id="de26" name="de26">Yup, before you existed!</blockquote>
+ <p id="a3bd" name="a3bd">Really dude? I mean, I’m sorry about the penis, but really?</p>
+ <p id="1c51" name="1c51">Mind you, when the criticism isn’t just bizarrely stupid, Samantha reacts the way Marco and his ilk claim they would to (if they ever got any <em>valid</em> criticism. Which clearly is impossible):</p>
+ <blockquote id="9848" name="9848">Not to get into the middle of this, but “income” is not the term you’re looking for. “Revenue” is.</blockquote>
+ <blockquote id="f2a6" name="f2a6">lol. Noted.</blockquote>
+ <blockquote id="aed9" name="aed9">And I wasn’t intending to be a dick, just a lot of people hear/say “income” when they intend “revenue”, and then discussion …</blockquote>
+ <blockquote id="f9d8" name="f9d8">… gets derailed by a jedi handwave of “Expenses”. But outside of charitable donation, it is all directly related.</blockquote>
+ <blockquote id="f61c" name="f61c">haha. Thank you for the clarification.</blockquote>
+ <p id="5dd9" name="5dd9">Note to Marco and the other…whatever they are…that is how one reacts to that kind of criticism. With a bit of humor and self-deprecation. You should try it sometime. For real, not just in your heads or conversations in Irish Pubs in S.F.</p>
+ <p id="dc44" name="dc44">But now, the door has been cracked, and the cheap shots come out:</p>
+ <blockquote id="0c94" name="0c94">@testflight_app: Don’t worry guys, we process <a data-href="https://twitter.com/marcoarment" href="https://twitter.com/marcoarment" rel="nofollow noopener" target="_blank">@marcoarment</a>’s apps in direct proportion to his megabucks earnings. <a data-href="https://twitter.com/hashtag/fairelephant?src=hash" href="https://twitter.com/hashtag/fairelephant?src=hash" rel="nofollow noopener" target="_blank">#fairelephant</a></blockquote>
+ <p id="343b" name="343b">(Note: testflight_app is a parody account. Please do not mess with the actual testflight folks. They are still cool.)</p>
+ <p id="09bf" name="09bf">Or this…conversation:</p>
+ <figure id="4d63" name="4d63"><div>
</div>
- </figure><p class="graf graf--p graf-after--figure" id="f2a3" name="f2a3">Good job guys. Good job. Defend the tribe. Attack the other. Frederico attempts to recover from his stunning display of demeaning douchery: <a class="markup--anchor markup--p-anchor" data-href="https://twitter.com/viticci" href="https://twitter.com/viticci" rel="nofollow noopener" target="_blank">‏@viticci</a>: <a class="markup--anchor markup--p-anchor" data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld</a> I don’t know if it’s an Italian thing, but counting other people’s money is especially weird for me. IMO, bad move in the post.</p>
- <p class="graf graf--p graf-after--p" id="ae0c" name="ae0c">Samantha is clearly sick of his crap: <a class="markup--anchor markup--p-anchor" data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">‏@s_bielefeld</a>: <a class="markup--anchor markup--p-anchor" data-href="https://twitter.com/viticci" href="https://twitter.com/viticci" rel="nofollow noopener" target="_blank">@viticci</a> That’s what I’m referring to, the mistake of ever having mentioned it. So, now, Marco can ignore the bigger issue and go on living.</p>
- <p class="graf graf--p graf-after--p" id="2047" name="2047">Good for her. There’s being patient and being roadkill.</p>
- <p class="graf graf--p graf-after--p" id="4139" name="4139">Samantha does put the call out for her sources to maybe let her use their names:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="6626" name="6626">From all of you I heard from earlier, anyone care to go on record?</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="8a7d" name="8a7d">My good friend, The Angry Drunk points out the obvious problem:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="68c9" name="68c9">Nobody’s going to go on record when they count on Marco’s friends for their PR.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="317d" name="317d">This is true. Again, the sites that are Friends of Marco:</p>
- <p class="graf graf--p graf-after--p" id="9523" name="9523">Daring Fireball</p>
- <p class="graf graf--p graf-after--p" id="dbc7" name="dbc7">The Loop</p>
- <p class="graf graf--p graf-after--p" id="c706" name="c706">SixColors</p>
- <p class="graf graf--p graf-after--p" id="0acb" name="0acb">iMore</p>
- <p class="graf graf--p graf-after--p" id="8c8c" name="8c8c">MacStories</p>
- <p class="graf graf--p graf-after--p" id="643e" name="643e">A few others, but I want this post to end one day.</p>
- <p class="graf graf--p graf-after--p" id="6b76" name="6b76">You piss that crew off, and given how petty rather a few of them have demonstrated they are, good luck on getting any kind of notice from them.</p>
- <p class="graf graf--p graf-after--p" id="f7d1" name="f7d1">Of course, the idea this could happen is just craycray:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="de59" name="de59"><a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/KevinColeman" href="https://twitter.com/KevinColeman" rel="nofollow noopener" target="_blank">@KevinColeman </a><a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/Angry_Drunk" href="https://twitter.com/Angry_Drunk" rel="nofollow noopener" target="_blank">.@Angry_Drunk</a> <a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld</a> <a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/marcoarment" href="https://twitter.com/marcoarment" rel="nofollow noopener" target="_blank">@marcoarment</a> Wow, you guys are veering right into crazy conspiracy theory territory. <a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" rel="nofollow noopener" target="_blank">#JetFuelCantMeltSteelBeams</a></blockquote>
- <p class="graf graf--p graf-after--blockquote" id="f01b" name="f01b">Yeah. Because a mature person like Marco would never do anything like that.</p>
- <p class="graf graf--p graf-after--p" id="7e30" name="7e30">Of course, the real point on this is starting to happen:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="5d93" name="5d93">you’re getting a lot of heat now but happy you are writing things that stir up the community. Hope you continue to be a voice!</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="436b" name="436b">I doubt I will.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="ac25" name="ac25">See, they’ve done their job. Mess with the bull, you get the horns. Maybe you should find another thing to write about, this isn’t a good place for you. <em class="markup--em markup--p-em">Great</em> job y’all.</p>
- <p class="graf graf--p graf-after--p" id="07ba" name="07ba">Some people aren’t even pretending. They’re just in full strawman mode:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="3d60" name="3d60"><a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/timkeller" href="https://twitter.com/timkeller" rel="nofollow noopener" target="_blank">@timkeller: </a>Unfair to begrudge a person for leveraging past success, especially when that success is earned. No ‘luck’ involved.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="87f5" name="87f5"><a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld: </a><a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/timkeller" href="https://twitter.com/timkeller" rel="nofollow noopener" target="_blank">@timkeller</a> I plainly stated that I don’t hold his doing this against him. Way to twist words.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="3720" name="3720">I think she’s earned her anger at this point.</p>
- <p class="graf graf--p graf-after--p" id="7341" name="7341">Don’t worry, Marco knows what the real problem is: most devs just suck —</p>
- <figure class="graf graf--figure graf-after--p" id="babe" name="babe"><div class="aspectRatioPlaceholder is-locked">
+ </figure><p id="f2a3" name="f2a3">Good job guys. Good job. Defend the tribe. Attack the other. Frederico attempts to recover from his stunning display of demeaning douchery: <a data-href="https://twitter.com/viticci" href="https://twitter.com/viticci" rel="nofollow noopener" target="_blank">‏@viticci</a>: <a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld</a> I don’t know if it’s an Italian thing, but counting other people’s money is especially weird for me. IMO, bad move in the post.</p>
+ <p id="ae0c" name="ae0c">Samantha is clearly sick of his crap: <a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">‏@s_bielefeld</a>: <a data-href="https://twitter.com/viticci" href="https://twitter.com/viticci" rel="nofollow noopener" target="_blank">@viticci</a> That’s what I’m referring to, the mistake of ever having mentioned it. So, now, Marco can ignore the bigger issue and go on living.</p>
+ <p id="2047" name="2047">Good for her. There’s being patient and being roadkill.</p>
+ <p id="4139" name="4139">Samantha does put the call out for her sources to maybe let her use their names:</p>
+ <blockquote id="6626" name="6626">From all of you I heard from earlier, anyone care to go on record?</blockquote>
+ <p id="8a7d" name="8a7d">My good friend, The Angry Drunk points out the obvious problem:</p>
+ <blockquote id="68c9" name="68c9">Nobody’s going to go on record when they count on Marco’s friends for their PR.</blockquote>
+ <p id="317d" name="317d">This is true. Again, the sites that are Friends of Marco:</p>
+ <p id="9523" name="9523">Daring Fireball</p>
+ <p id="dbc7" name="dbc7">The Loop</p>
+ <p id="c706" name="c706">SixColors</p>
+ <p id="0acb" name="0acb">iMore</p>
+ <p id="8c8c" name="8c8c">MacStories</p>
+ <p id="643e" name="643e">A few others, but I want this post to end one day.</p>
+ <p id="6b76" name="6b76">You piss that crew off, and given how petty rather a few of them have demonstrated they are, good luck on getting any kind of notice from them.</p>
+ <p id="f7d1" name="f7d1">Of course, the idea this could happen is just craycray:</p>
+ <blockquote id="de59" name="de59"><a data-href="https://twitter.com/KevinColeman" href="https://twitter.com/KevinColeman" rel="nofollow noopener" target="_blank">@KevinColeman </a><a data-href="https://twitter.com/Angry_Drunk" href="https://twitter.com/Angry_Drunk" rel="nofollow noopener" target="_blank">.@Angry_Drunk</a> <a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld</a> <a data-href="https://twitter.com/marcoarment" href="https://twitter.com/marcoarment" rel="nofollow noopener" target="_blank">@marcoarment</a> Wow, you guys are veering right into crazy conspiracy theory territory. <a data-href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" rel="nofollow noopener" target="_blank">#JetFuelCantMeltSteelBeams</a></blockquote>
+ <p id="f01b" name="f01b">Yeah. Because a mature person like Marco would never do anything like that.</p>
+ <p id="7e30" name="7e30">Of course, the real point on this is starting to happen:</p>
+ <blockquote id="5d93" name="5d93">you’re getting a lot of heat now but happy you are writing things that stir up the community. Hope you continue to be a voice!</blockquote>
+ <blockquote id="436b" name="436b">I doubt I will.</blockquote>
+ <p id="ac25" name="ac25">See, they’ve done their job. Mess with the bull, you get the horns. Maybe you should find another thing to write about, this isn’t a good place for you. <em>Great</em> job y’all.</p>
+ <p id="07ba" name="07ba">Some people aren’t even pretending. They’re just in full strawman mode:</p>
+ <blockquote id="3d60" name="3d60"><a data-href="https://twitter.com/timkeller" href="https://twitter.com/timkeller" rel="nofollow noopener" target="_blank">@timkeller: </a>Unfair to begrudge a person for leveraging past success, especially when that success is earned. No ‘luck’ involved.</blockquote>
+ <blockquote id="87f5" name="87f5"><a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld: </a><a data-href="https://twitter.com/timkeller" href="https://twitter.com/timkeller" rel="nofollow noopener" target="_blank">@timkeller</a> I plainly stated that I don’t hold his doing this against him. Way to twist words.</blockquote>
+ <p id="3720" name="3720">I think she’s earned her anger at this point.</p>
+ <p id="7341" name="7341">Don’t worry, Marco knows what the real problem is: most devs just suck —</p>
+ <figure id="babe" name="babe"><div>
</div>
- </figure><p class="graf graf--p graf-after--figure" id="503d" name="503d">I have a saying that applies in this case: don’t place your head so far up your nethers that you go full Klein Bottle. Marco has gone full Klein Bottle. (To be correct, he went FKB some years ago.)</p>
- <p class="graf graf--p graf-after--p" id="b8c0" name="b8c0">There are some bright spots. My favorite is when Building Twenty points out the <em class="markup--em markup--p-em">real</em> elephant in the room:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="36f4" name="36f4"><a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/BuildingTwenty" href="https://twitter.com/BuildingTwenty" rel="nofollow noopener" target="_blank">@BuildingTwenty</a>: Both <a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld</a> &amp; I wrote similar critiques of <a class="markup--anchor markup--blockquote-anchor" data-href="https://twitter.com/marcoarment" href="https://twitter.com/marcoarment" rel="nofollow noopener" target="_blank">@marcoarment</a>’s pricing model yet the Internet pilloried only the woman. Who’d have guessed?</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="06b9" name="06b9">Yup.</p>
- <p class="graf graf--p graf-after--p" id="eff9" name="eff9">Another bright spot are these comments from Ian Betteridge, who has been doing this <em class="markup--em markup--p-em">even longer than Marco</em>:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="18f1" name="18f1">You know, any writer who has never made a single factual error in a piece hasn’t ever written anything worth reading.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="9776" name="9776">I learned my job with the support of people who helped me. Had I suffered an Internet pile on for every error I wouldn’t have bothered.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="8d44" name="8d44">To which Samantha understandably replies:</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="7147" name="7147">and it’s honestly something I’m contemplating right now, whether to continue…</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="e0cd" name="e0cd">Gee, I can’t imagine why. Why with comments like this from Chris Breen that completely misrepresent Samantha’s point, (who until today, I would have absolutely defended as being better than this, something I am genuinely saddened to be wrong about), why wouldn’t she want to continue doing this?</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="a379" name="a379">If I have this right, some people are outraged that a creator has decided to give away his work.</blockquote>
- <p class="graf graf--p graf-after--blockquote" id="f026" name="f026">No Chris, you don’t have this right. But hey, who has time to find out the real issue and read an article. I’m sure your friends told you everything you need to know.</p>
- <p class="graf graf--p graf-after--p" id="e1c2" name="e1c2">Noted Feminist Glenn Fleishman gets a piece of the action too:</p>
- <figure class="graf graf--figure graf-after--p" id="067c" name="067c"><div class="aspectRatioPlaceholder is-locked">
+ </figure><p id="503d" name="503d">I have a saying that applies in this case: don’t place your head so far up your nethers that you go full Klein Bottle. Marco has gone full Klein Bottle. (To be correct, he went FKB some years ago.)</p>
+ <p id="b8c0" name="b8c0">There are some bright spots. My favorite is when Building Twenty points out the <em>real</em> elephant in the room:</p>
+ <blockquote id="36f4" name="36f4"><a data-href="https://twitter.com/BuildingTwenty" href="https://twitter.com/BuildingTwenty" rel="nofollow noopener" target="_blank">@BuildingTwenty</a>: Both <a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld</a> &amp; I wrote similar critiques of <a data-href="https://twitter.com/marcoarment" href="https://twitter.com/marcoarment" rel="nofollow noopener" target="_blank">@marcoarment</a>’s pricing model yet the Internet pilloried only the woman. Who’d have guessed?</blockquote>
+ <p id="06b9" name="06b9">Yup.</p>
+ <p id="eff9" name="eff9">Another bright spot are these comments from Ian Betteridge, who has been doing this <em>even longer than Marco</em>:</p>
+ <blockquote id="18f1" name="18f1">You know, any writer who has never made a single factual error in a piece hasn’t ever written anything worth reading.</blockquote>
+ <blockquote id="9776" name="9776">I learned my job with the support of people who helped me. Had I suffered an Internet pile on for every error I wouldn’t have bothered.</blockquote>
+ <p id="8d44" name="8d44">To which Samantha understandably replies:</p>
+ <blockquote id="7147" name="7147">and it’s honestly something I’m contemplating right now, whether to continue…</blockquote>
+ <p id="e0cd" name="e0cd">Gee, I can’t imagine why. Why with comments like this from Chris Breen that completely misrepresent Samantha’s point, (who until today, I would have absolutely defended as being better than this, something I am genuinely saddened to be wrong about), why wouldn’t she want to continue doing this?</p>
+ <blockquote id="a379" name="a379">If I have this right, some people are outraged that a creator has decided to give away his work.</blockquote>
+ <p id="f026" name="f026">No Chris, you don’t have this right. But hey, who has time to find out the real issue and read an article. I’m sure your friends told you everything you need to know.</p>
+ <p id="e1c2" name="e1c2">Noted Feminist Glenn Fleishman gets a piece of the action too:</p>
+ <figure id="067c" name="067c"><div>
</div>
- </figure><p class="graf graf--p graf-after--figure" id="4df8" name="4df8">I’m not actually surprised here. I watched Fleishman berate a friend of mine who has been an engineer for…heck, waaaaay too long on major software products in the most condescending way because she tried to point out that as a <em class="markup--em markup--p-em">very</em> technical woman, “The Magazine” literally had nothing to say to her and maybe he should fix that. “Impertinent” was I believe what he called her, but I may have the specific word wrong. Not the attitude mind you. Great Feminists like Glenn do not like uppity women criticizing Great Feminists who are their Great Allies.</p>
- <p class="graf graf--p graf-after--p graf--trailing" id="bf45" name="bf45">Great Feminists are often tools.</p>
+ </figure><p id="4df8" name="4df8">I’m not actually surprised here. I watched Fleishman berate a friend of mine who has been an engineer for…heck, waaaaay too long on major software products in the most condescending way because she tried to point out that as a <em>very</em> technical woman, “The Magazine” literally had nothing to say to her and maybe he should fix that. “Impertinent” was I believe what he called her, but I may have the specific word wrong. Not the attitude mind you. Great Feminists like Glenn do not like uppity women criticizing Great Feminists who are their Great Allies.</p>
+ <p id="bf45" name="bf45">Great Feminists are often tools.</p>
</div>
</div>
- </section><section class="section section--body" name="c883">
- <div class="section-content">
- <div class="section-inner sectionLayout--insetColumn">
- <p class="graf graf--p graf--leading" id="45bb" name="45bb">Luckily, I hope, the people who get Samantha’s point also started chiming in (and you get 100% of the women commenting here that I’ve seen):</p>
- <blockquote class="graf graf--blockquote graf-after--p" id="c053" name="c053">I don’t think he’s wrong for doing it, he just discusses it as if the market’s a level playing field — it isn’t</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="7b5e" name="7b5e">This is a great article with lots of great points about the sustainability of iOS development. Thank you for publishing it.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="a321" name="a321">Regardless of the numbers and your view of MA, fair points here about confirmation bias in app marketing feasibility <a class="markup--anchor markup--blockquote-anchor" data-href="http://t.co/u79ZLsnhdM" href="http://t.co/u79ZLsnhdM" rel="nofollow noopener" target="_blank" title="http://samanthabielefeld.com/the-elephant-in-the-room">http://samanthabielefeld.com/the-elephant-in-the-room …</a></blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="76fe" name="76fe">thank you for posting this, it covers a lot of things people don’t like to talk about.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote" id="bf90" name="bf90">I’m sure you have caught untold amounts of flak over posting this because Marco is blind to his privilege as a developer.</blockquote>
- <blockquote class="graf graf--blockquote graf-after--blockquote graf--trailing" id="0f66" name="0f66">Catching up on the debate, and agreeing with Harry’s remark. (Enjoyed your article, Samantha, and ‘got’ your point.)</blockquote>
+ </section><section name="c883">
+ <div>
+ <div>
+ <p id="45bb" name="45bb">Luckily, I hope, the people who get Samantha’s point also started chiming in (and you get 100% of the women commenting here that I’ve seen):</p>
+ <blockquote id="c053" name="c053">I don’t think he’s wrong for doing it, he just discusses it as if the market’s a level playing field — it isn’t</blockquote>
+ <blockquote id="7b5e" name="7b5e">This is a great article with lots of great points about the sustainability of iOS development. Thank you for publishing it.</blockquote>
+ <blockquote id="a321" name="a321">Regardless of the numbers and your view of MA, fair points here about confirmation bias in app marketing feasibility <a data-href="http://t.co/u79ZLsnhdM" href="http://t.co/u79ZLsnhdM" rel="nofollow noopener" target="_blank" title="http://samanthabielefeld.com/the-elephant-in-the-room">http://samanthabielefeld.com/the-elephant-in-the-room …</a></blockquote>
+ <blockquote id="76fe" name="76fe">thank you for posting this, it covers a lot of things people don’t like to talk about.</blockquote>
+ <blockquote id="bf90" name="bf90">I’m sure you have caught untold amounts of flak over posting this because Marco is blind to his privilege as a developer.</blockquote>
+ <blockquote id="0f66" name="0f66">Catching up on the debate, and agreeing with Harry’s remark. (Enjoyed your article, Samantha, and ‘got’ your point.)</blockquote>
</div>
</div>
- </section><section class="section section--body section--last" name="8ab2">
- <div class="section-content">
- <div class="section-inner sectionLayout--insetColumn">
- <p class="graf graf--p graf--leading" id="6134" name="6134">I would like to say I’m surprised at the reaction to Samantha’s article, but I’m not. In spite of his loud declarations of support for The Big Lie, Marco Arment is as bad at any form of criticism that he hasn’t already approved as a very insecure tween. An example from 2011: <a class="markup--anchor markup--p-anchor" data-href="http://www.businessinsider.com/marco-arment-2011-9" href="http://www.businessinsider.com/marco-arment-2011-9" rel="nofollow noopener" target="_blank">http://www.businessinsider.com/marco-arment-2011-9</a></p>
- <p class="graf graf--p graf-after--p" id="ba3c" name="ba3c">Marco is great with criticism as long as it never actually criticizes him. If it does, be prepared a flood of petty, petulant whining that a room full of bored preschoolers on a hot day would be hard-pressed to match.</p>
- <p class="graf graf--p graf-after--p" id="a5a0" name="a5a0">Today has been…well, it sucks. It sucks because someone doing what all the Arments of the world claim to want was naive enough to believe what they were told, and found out the hard way just how big a lie The Big Lie is, and how vicious people are when you’re silly enough to believe anything they say about criticism.</p>
- <p class="graf graf--p graf-after--p" id="2a25" name="2a25">And note again, every single condescending crack, misrepresentation, and strawman had an exclusively male source. Most of them have, at one point or another, loudly trumpted themselves as Feminist Allies, as a friend to women struggling with the sexism and misogyny in tech. Congratulations y’all on being just as bad as the people you claim to oppose.</p>
- <p class="graf graf--p graf-after--p" id="a47a" name="a47a">Samantha has handled this better than anyone else could have. My respect for her as a person and a writer is off the charts. If she choses to walk away from blogging in the Apple space, <em class="markup--em markup--p-em">believe me</em> I understand. As bad as today was for her, I’ve seen worse. Much worse.</p>
- <p class="graf graf--p graf-after--p" id="aa8e" name="aa8e">But I hope she doesn’t. I hope she stays, because she is Doing This Right, and in a corner of the internet that has become naught but an endless circle jerk, a cliquish collection, a churlish, childish cohort interested not in writing or the truth, but in making sure The Right People are elevated, and The Others put down, she is someone worth reading and listening to. The number people who owe her apologies goes around the block, and I don’t think she’ll ever see a one. I’m sure as heck not apologizing for them, I’ll not make their lives easier in the least.</p>
- <p class="graf graf--p graf-after--p" id="34c5" name="34c5">All of you, all. of. you…Marco, Breen, Snell, Vittici, had a chance to live by your words. You were faced with reasoned, polite, respectful criticism and instead of what you should have done, you all dropped trou and sprayed an epic diarrheal discharge all over someone who had done nothing to deserve it. Me, I earned most of my aggro, Samantha did not earn any of the idiocy I’ve seen today. I hope you’re all proud of yourselves. Someone should be, it won’t be me. Ever.</p>
- <p class="graf graf--p graf-after--p graf--trailing" id="9710" name="9710">So I hope she stays, but if she goes, I understand. For what it’s worth, I don’t think she’s wrong either way.</p>
+ </section><section name="8ab2">
+ <div>
+ <div>
+ <p id="6134" name="6134">I would like to say I’m surprised at the reaction to Samantha’s article, but I’m not. In spite of his loud declarations of support for The Big Lie, Marco Arment is as bad at any form of criticism that he hasn’t already approved as a very insecure tween. An example from 2011: <a data-href="http://www.businessinsider.com/marco-arment-2011-9" href="http://www.businessinsider.com/marco-arment-2011-9" rel="nofollow noopener" target="_blank">http://www.businessinsider.com/marco-arment-2011-9</a></p>
+ <p id="ba3c" name="ba3c">Marco is great with criticism as long as it never actually criticizes him. If it does, be prepared a flood of petty, petulant whining that a room full of bored preschoolers on a hot day would be hard-pressed to match.</p>
+ <p id="a5a0" name="a5a0">Today has been…well, it sucks. It sucks because someone doing what all the Arments of the world claim to want was naive enough to believe what they were told, and found out the hard way just how big a lie The Big Lie is, and how vicious people are when you’re silly enough to believe anything they say about criticism.</p>
+ <p id="2a25" name="2a25">And note again, every single condescending crack, misrepresentation, and strawman had an exclusively male source. Most of them have, at one point or another, loudly trumpted themselves as Feminist Allies, as a friend to women struggling with the sexism and misogyny in tech. Congratulations y’all on being just as bad as the people you claim to oppose.</p>
+ <p id="a47a" name="a47a">Samantha has handled this better than anyone else could have. My respect for her as a person and a writer is off the charts. If she choses to walk away from blogging in the Apple space, <em>believe me</em> I understand. As bad as today was for her, I’ve seen worse. Much worse.</p>
+ <p id="aa8e" name="aa8e">But I hope she doesn’t. I hope she stays, because she is Doing This Right, and in a corner of the internet that has become naught but an endless circle jerk, a cliquish collection, a churlish, childish cohort interested not in writing or the truth, but in making sure The Right People are elevated, and The Others put down, she is someone worth reading and listening to. The number people who owe her apologies goes around the block, and I don’t think she’ll ever see a one. I’m sure as heck not apologizing for them, I’ll not make their lives easier in the least.</p>
+ <p id="34c5" name="34c5">All of you, all. of. you…Marco, Breen, Snell, Vittici, had a chance to live by your words. You were faced with reasoned, polite, respectful criticism and instead of what you should have done, you all dropped trou and sprayed an epic diarrheal discharge all over someone who had done nothing to deserve it. Me, I earned most of my aggro, Samantha did not earn any of the idiocy I’ve seen today. I hope you’re all proud of yourselves. Someone should be, it won’t be me. Ever.</p>
+ <p id="9710" name="9710">So I hope she stays, but if she goes, I understand. For what it’s worth, I don’t think she’s wrong either way.</p>
</div>
</div>
</section> \ No newline at end of file
diff --git a/test/test-pages/mozilla-1/expected.html b/test/test-pages/mozilla-1/expected.html
index cb0aff0..495b230 100644
--- a/test/test-pages/mozilla-1/expected.html
+++ b/test/test-pages/mozilla-1/expected.html
@@ -1,76 +1,76 @@
-<div><section id="intro"><div class="container">
+<div><section id="intro"><div>
- <p class="lead">It’s easier than ever to personalize Firefox and make it work the way
+ <p>It’s easier than ever to personalize Firefox and make it work the way
you do.
- <br class="wide-br"></br>No other browser gives you so much choice and flexibility.</p>
- <div class="animation-wrapper" id="flexible-top-animation">
- <img alt="" class="fallback" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/animations/flexible-top-fallback.c960365ba781.png"></img>
+ <br></br>No other browser gives you so much choice and flexibility.</p>
+ <div id="flexible-top-animation">
+ <img alt="" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/animations/flexible-top-fallback.c960365ba781.png"></img>
</div>
</div>
- </section><section class="ga-section" data-ga-label="Designed to be redesigned" id="designed"><div class="container">
+ </section><section data-ga-label="Designed to be redesigned" id="designed"><div>
<div id="designed-copy">
- <h2>Designed to <br class="wide-br"></br>be redesigned</h2>
+ <h2>Designed to <br></br>be redesigned</h2>
<p>Get fast and easy access to the features you use most in the new menu.
Open the “Customize” panel to add, move or remove any button you want.
Keep your favorite features — add-ons, private browsing, Sync and more
— one quick click away.</p>
- <img alt="" class="js " data-high-res="true" data-high-res-src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned-high-res.6efd60766484.png" data-processed="false" data-src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned.fbd3ee9402e6.png" id="designed-mobile" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned.fbd3ee9402e6.png"></img></div>
- <div class="animation-wrapper" id="flexible-bottom-animation">
- <img alt="" class="fallback" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/animations/flexible-bottom-fallback.cafd48a3d0a4.png"></img>
+ <img alt="" data-high-res="true" data-high-res-src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned-high-res.6efd60766484.png" data-processed="false" data-src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned.fbd3ee9402e6.png" id="designed-mobile" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned.fbd3ee9402e6.png"></img></div>
+ <div id="flexible-bottom-animation">
+ <img alt="" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/animations/flexible-bottom-fallback.cafd48a3d0a4.png"></img>
</div>
</div>
- </section><section class="ga-section" data-ga-label="More ways to customize" id="customize">
+ </section><section data-ga-label="More ways to customize" id="customize">
</section><div id="customizers-wrapper">
- <section aria-labelledby="customize-themes" class="customizer active" id="themes" role="tabpanel"><div class="container">
- <div class="customizer-copy">
+ <section aria-labelledby="customize-themes" id="themes" role="tabpanel"><div>
+ <div>
<h3>Themes</h3>
- <p class="lead">Make Firefox match your style. Choose from thousands of themes and dress
+ <p>Make Firefox match your style. Choose from thousands of themes and dress
up your browser with a single click.</p>
- <a class="more" href="https://addons.mozilla.org/firefox/themes/" rel="external">Try it now</a>
+ <a href="https://addons.mozilla.org/firefox/themes/" rel="external">Try it now</a>
- <br></br><a class="more" href="https://support.mozilla.org/kb/use-themes-change-look-of-firefox" rel="external">Learn more</a>
+ <br></br><a href="https://support.mozilla.org/kb/use-themes-change-look-of-firefox" rel="external">Learn more</a>
- </div> <a class="next show-customizer" href="#add-ons" role="button">Next</a>
+ </div> <a href="#add-ons" role="button">Next</a>
- <div class="customizer-visual">
+ <div>
<img alt="Preview of the currently selected theme" id="theme-demo" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/theme-red.61611c5734ab.png"></img></div>
</div>
- </section><section aria-labelledby="customize-addons" class="customizer" id="add-ons" role="tabpanel"><div class="container">
- <div class="customizer-copy">
+ </section><section aria-labelledby="customize-addons" id="add-ons" role="tabpanel"><div>
+ <div>
<h3>Add-ons</h3>
- <a class="next show-customizer" href="#awesome-bar" role="button">Next</a>
+ <a href="#awesome-bar" role="button">Next</a>
- <p class="lead">Add-ons are like apps that you install to add features to Firefox. They
+ <p>Add-ons are like apps that you install to add features to Firefox. They
let you compare prices, check the weather, listen to music, send a tweet
and more.</p>
<ul><li>Read the latest news &amp; blogs</li>
<li>Manage your downloads</li>
<li>Watch videos &amp; view photos</li>
- </ul><a class="more" href="https://addons.mozilla.org/firefox/extensions/?sort=featured" rel="external">Here are a few of our favorites</a>
+ </ul><a href="https://addons.mozilla.org/firefox/extensions/?sort=featured" rel="external">Here are a few of our favorites</a>
- <br></br><a class="more" href="https://support.mozilla.org/kb/find-and-install-add-ons-add-features-to-firefox" rel="external">Learn more</a>
+ <br></br><a href="https://support.mozilla.org/kb/find-and-install-add-ons-add-features-to-firefox" rel="external">Learn more</a>
</div>
- <div class="customizer-visual">
+ <div>
<img alt="" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/add-ons.63a4b761f822.png"></img></div>
</div>
- </section><section aria-labelledby="customize-awesomebar" class="customizer" id="awesome-bar" role="tabpanel"><div class="container">
- <div class="customizer-copy">
+ </section><section aria-labelledby="customize-awesomebar" id="awesome-bar" role="tabpanel"><div>
+ <div>
<h3>Awesome Bar</h3>
- <a class="next show-customizer" href="#themes" role="button">Next</a>
+ <a href="#themes" role="button">Next</a>
- <p class="lead">The Awesome Bar learns as you browse to make your version of Firefox unique.
+ <p>The Awesome Bar learns as you browse to make your version of Firefox unique.
Find and return to your favorite sites without having to remember a URL.</p>
- <a class="more" href="https://support.mozilla.org/kb/awesome-bar-find-your-bookmarks-history-and-tabs" rel="external">See what it can do for you</a>
+ <a href="https://support.mozilla.org/kb/awesome-bar-find-your-bookmarks-history-and-tabs" rel="external">See what it can do for you</a>
</div>
- <div class="customizer-visual">
+ <div>
<img alt="Firefox Awesome Bar" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/awesome-bar.437df162126c.png"></img></div>
</div>
</section></div>
- <section class="ga-section" data-ga-label="Keep your Firefox in Sync" id="sync">
+ <section data-ga-label="Keep your Firefox in Sync" id="sync">
</section></div> \ No newline at end of file
diff --git a/test/test-pages/mozilla-2/expected.html b/test/test-pages/mozilla-2/expected.html
index c27cb2b..8b85894 100644
--- a/test/test-pages/mozilla-2/expected.html
+++ b/test/test-pages/mozilla-2/expected.html
@@ -1,76 +1,76 @@
-<div><section class="intro container"><header>
+<div><section><header>
<p>Get to know the features that make it the most complete browser for building the Web.</p>
- </header><ul class="features"><li class="feature">
- <a class="video-play" href="https://www.youtube.com/watch?v=1R9_WdXwUsE" rel="external">
- <img alt="Screenshot" class="screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-webide.16763db341cb.jpg"></img></a>
+ </header><ul><li>
+ <a href="https://www.youtube.com/watch?v=1R9_WdXwUsE" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-webide.16763db341cb.jpg"></img></a>
<h2>WebIDE</h2>
<p>Develop, deploy and debug Firefox OS apps directly in your browser, or on a Firefox OS device, with this tool that replaces App Manager.</p>
- <a class="more" href="https://developer.mozilla.org/docs/Tools/WebIDE" rel="external">Learn more about WebIDE</a>
+ <a href="https://developer.mozilla.org/docs/Tools/WebIDE" rel="external">Learn more about WebIDE</a>
</li>
- <li class="feature">
- <a class="video-play" href="https://www.youtube.com/watch?v=eH0R10Ga4Hs" rel="external">
- <img alt="Screenshot" class="screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-valence.251f9def4d8d.jpg"></img></a>
+ <li>
+ <a href="https://www.youtube.com/watch?v=eH0R10Ga4Hs" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-valence.251f9def4d8d.jpg"></img></a>
<h2>Valence</h2>
<p>Develop and debug your apps across multiple browsers and devices with this powerful extension that comes pre-installed with Firefox Developer Edition.</p>
- <a class="more" href="https://developer.mozilla.org/docs/Tools/Firefox_Tools_Adapter" rel="external">Learn more about Valence</a>
+ <a href="https://developer.mozilla.org/docs/Tools/Firefox_Tools_Adapter" rel="external">Learn more about Valence</a>
</li>
- </ul><div class="notice">
+ </ul><div>
<h4>Important: Sync your new profile</h4>
<p>
Developer Edition comes with a new profile so you can run it alongside other versions of Firefox. To access your bookmarks, browsing history and more, you need to sync the profile with your existing Firefox Account, or create a new one.
- <a class="more" href="https://support.mozilla.org/kb/recover-lost-bookmarks-firefox-developer-edition" rel="external">Learn more</a>
+ <a href="https://support.mozilla.org/kb/recover-lost-bookmarks-firefox-developer-edition" rel="external">Learn more</a>
</p>
</div>
- </section><section class="more-features"><div class="container">
+ </section><section><div>
<header><h2>Features and tools</h2>
- </header><ul class="features"><li class="feature">
- <a class="video-play" href="https://www.youtube.com/watch?v=eQqNfkqIJdw" rel="external">
- <img alt="Screenshot" class="screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-inspector.c791bf1f1a59.jpg"></img></a>
+ </header><ul><li>
+ <a href="https://www.youtube.com/watch?v=eQqNfkqIJdw" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-inspector.c791bf1f1a59.jpg"></img></a>
<h2>Page Inspector</h2>
<p>Examine the HTML and CSS of any Web page and easily modify the structure and layout of a page.</p>
- <a class="more" href="https://developer.mozilla.org/docs/Tools/Page_Inspector" rel="external">Learn more about Page Inspector</a>
+ <a href="https://developer.mozilla.org/docs/Tools/Page_Inspector" rel="external">Learn more about Page Inspector</a>
</li>
- <li class="feature">
- <a class="video-play" href="https://www.youtube.com/watch?v=iEDk8o9ehlw" rel="external">
- <img alt="Screenshot" class="screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-console.42666aaf6d03.jpg"></img></a>
+ <li>
+ <a href="https://www.youtube.com/watch?v=iEDk8o9ehlw" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-console.42666aaf6d03.jpg"></img></a>
<h2>Web Console</h2>
<p>See logged information associated with a Web page and use Web Console to interact with Web pages using JavaScript.</p>
- <a class="more" href="https://developer.mozilla.org/docs/Tools/Web_Console" rel="external">Learn more about Web Console</a>
+ <a href="https://developer.mozilla.org/docs/Tools/Web_Console" rel="external">Learn more about Web Console</a>
</li>
- <li class="feature">
- <a class="video-play" href="https://www.youtube.com/watch?v=OS4AxYFLCIE" rel="external">
- <img alt="Screenshot" class="screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-debugger.02ed86fb0c9f.jpg"></img></a>
+ <li>
+ <a href="https://www.youtube.com/watch?v=OS4AxYFLCIE" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-debugger.02ed86fb0c9f.jpg"></img></a>
<h2>JavaScript Debugger</h2>
<p>Step through JavaScript code and examine or modify its state to help track down bugs.</p>
- <a class="more" href="https://developer.mozilla.org/docs/Tools/Debugger" rel="external">Learn more about JavaScript Debugger</a>
+ <a href="https://developer.mozilla.org/docs/Tools/Debugger" rel="external">Learn more about JavaScript Debugger</a>
</li>
- <li class="feature">
- <a class="video-play" href="https://www.youtube.com/watch?v=w4zSG53Qlbk" rel="external">
- <img alt="Screenshot" class="screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-network.740d6082b3f6.jpg"></img></a>
+ <li>
+ <a href="https://www.youtube.com/watch?v=w4zSG53Qlbk" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-network.740d6082b3f6.jpg"></img></a>
<h2>Network Monitor</h2>
<p>See all the network requests your browser makes, how long each request takes and details of each request.</p>
- <a class="more" href="https://developer.mozilla.org/docs/Tools/Network_Monitor" rel="external">Learn more about Network Monitor</a>
+ <a href="https://developer.mozilla.org/docs/Tools/Network_Monitor" rel="external">Learn more about Network Monitor</a>
</li>
- <li class="feature">
- <a class="video-play" href="https://www.youtube.com/watch?v=R_qDaLQ8ghg" rel="external">
- <img alt="Screenshot" class="screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-webaudio.a10ebc48d017.jpg"></img></a>
+ <li>
+ <a href="https://www.youtube.com/watch?v=R_qDaLQ8ghg" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-webaudio.a10ebc48d017.jpg"></img></a>
<h2>Web Audio Editor</h2>
<p>Inspect and interact with Web Audio API in real time to ensure that all audio nodes are connected in the way you expect.</p>
- <a class="more" href="https://developer.mozilla.org/docs/Tools/Web_Audio_Editor" rel="external">Learn more about Web Audio Editor</a>
+ <a href="https://developer.mozilla.org/docs/Tools/Web_Audio_Editor" rel="external">Learn more about Web Audio Editor</a>
</li>
- <li class="feature">
- <a class="video-play" href="https://www.youtube.com/watch?v=3kdBvvIZIqU" rel="external">
- <img alt="Screenshot" class="screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-style-editor.87c5d2017506.jpg"></img></a>
+ <li>
+ <a href="https://www.youtube.com/watch?v=3kdBvvIZIqU" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-style-editor.87c5d2017506.jpg"></img></a>
<h2>Style Editor</h2>
<p>View and edit CSS styles associated with a Web page, create new ones and apply existing CSS stylesheets to any page.</p>
- <a class="more" href="https://developer.mozilla.org/docs/Tools/Style_Editor" rel="external">Learn more about Style Editor</a>
+ <a href="https://developer.mozilla.org/docs/Tools/Style_Editor" rel="external">Learn more about Style Editor</a>
</li>
</ul></div>
diff --git a/test/test-pages/msn/expected.html b/test/test-pages/msn/expected.html
index fb84113..3ed4d69 100644
--- a/test/test-pages/msn/expected.html
+++ b/test/test-pages/msn/expected.html
@@ -1,9 +1,9 @@
-<article class="articlecontent loaded" data-aop="article" itemscope="" itemtype="http://schema.org/NewsArticle"><section class="articlebody" data-aop="articlebody" itemprop="articleBody"><p>
- <span class="storyimage fullwidth inlineimage" data-aop="image">
-<span class="image" data-attrib="Provided by Business Insider Inc" data-caption="&lt;span style=&quot;font-size:13px;&quot;>Nintendo/Apple&lt;/span>" data-id="55" data-m="{&quot;i&quot;:55,&quot;p&quot;:52,&quot;n&quot;:&quot;openModal&quot;,&quot;t&quot;:&quot;articleImages&quot;,&quot;o&quot;:3}">
- <img alt="&lt;span style=&quot;font-size:13px;&quot;>Nintendo/Apple&lt;/span>" class="loaded" data-initial-set="true" data-src="{&quot;default&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;73&quot;,&quot;h&quot;:&quot;41&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=410&amp;w=728&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;},&quot;size3column&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;62&quot;,&quot;h&quot;:&quot;35&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=351&amp;w=624&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;},&quot;size2column&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;62&quot;,&quot;h&quot;:&quot;35&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=351&amp;w=624&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;}}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=820&amp;w=1456&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540"></img></span>
- <span class="caption truncate">
- <span class="attribution">© Provided by Business Insider Inc</span>
+<article data-aop="article" itemscope="" itemtype="http://schema.org/NewsArticle"><section data-aop="articlebody" itemprop="articleBody"><p>
+ <span data-aop="image">
+<span data-attrib="Provided by Business Insider Inc" data-caption="&lt;span style=&quot;font-size:13px;&quot;>Nintendo/Apple&lt;/span>" data-id="55" data-m="{&quot;i&quot;:55,&quot;p&quot;:52,&quot;n&quot;:&quot;openModal&quot;,&quot;t&quot;:&quot;articleImages&quot;,&quot;o&quot;:3}">
+ <img alt="&lt;span style=&quot;font-size:13px;&quot;>Nintendo/Apple&lt;/span>" data-initial-set="true" data-src="{&quot;default&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;73&quot;,&quot;h&quot;:&quot;41&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=410&amp;w=728&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;},&quot;size3column&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;62&quot;,&quot;h&quot;:&quot;35&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=351&amp;w=624&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;},&quot;size2column&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;62&quot;,&quot;h&quot;:&quot;35&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=351&amp;w=624&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;}}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=820&amp;w=1456&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540"></img></span>
+ <span>
+ <span>© Provided by Business Insider Inc</span>
<span>Nintendo/Apple</span>
</span>
</span>
diff --git a/test/test-pages/needs-entity-normalization/expected.html b/test/test-pages/needs-entity-normalization/expected.html
index 0b0a894..cba1a7d 100644
--- a/test/test-pages/needs-entity-normalization/expected.html
+++ b/test/test-pages/needs-entity-normalization/expected.html
@@ -1,7 +1,7 @@
-<p><strong>30/05/2017 | 11:57 |</strong> El titular del Suoem le dijo al intendente que "va a pagar caro, esta infamia y canallada"–por la publiación de sueldos–. Los municipales realizaron una ruidosa protesta en el Palacio 6 de Julio</p><div class="cuerpo"><p>Los municipales de la ciudad de Córdoba realizan este martes una ruidosa asamblea general en el Palacio 6 de Julio y todas las reparticiones como medida de presión en contra de la difusión de las lista de los empleados y los sueldos que perciben.<p>
+<p><strong>30/05/2017 | 11:57 |</strong> El titular del Suoem le dijo al intendente que "va a pagar caro, esta infamia y canallada"–por la publiación de sueldos–. Los municipales realizaron una ruidosa protesta en el Palacio 6 de Julio</p><div><p>Los municipales de la ciudad de Córdoba realizan este martes una ruidosa asamblea general en el Palacio 6 de Julio y todas las reparticiones como medida de presión en contra de la difusión de las lista de los empleados y los sueldos que perciben.<p>
"Esta infamia, esta canallada, este intento por pisotear nuestra dignidad este ataque a nuestra seguridad y la de nuestras familias le prometo que lo va a pagar caro; vamos a responder con toda la fuerza", disparó al hablar ante la multitud el titular del Suoem, Rubén Daniele.</p><p>
"En estos días señor intendente lo he visto suelto de cuerpo, diría que casi con una sonrisa burlona. Le prometo y lo juro acá: en unos meses se va a borrar la sonrisa y se va a cagar como se cagó otras veces, pidiendo que vayamos a solucionar los problemas de la ciudad", agregó.</p><p>
-Si bien la medida de fuerza arrancó a las 11 en la explanada de la Municipalidad, la atención en el municipio, los CPC y otras dependencias se vio resentida durante toda la jornada.</p></p><blockquote class="twitter-tweet" data-lang="es"><p dir="ltr" lang="und"><a href="https://twitter.com/hashtag/Asamblea?src=hash">#Asamblea</a> <a href="https://twitter.com/hashtag/municipales?src=hash">#municipales</a> <a href="https://t.co/PgA1xekg5Q">pic.twitter.com/PgA1xekg5Q</a></p>— SUOEM CÓRDOBA (@suoemcordoba) <a href="https://twitter.com/suoemcordoba/status/869480306906103808">30 de mayo de 2017</a></blockquote><p>
+Si bien la medida de fuerza arrancó a las 11 en la explanada de la Municipalidad, la atención en el municipio, los CPC y otras dependencias se vio resentida durante toda la jornada.</p></p><blockquote data-lang="es"><p dir="ltr" lang="und"><a href="https://twitter.com/hashtag/Asamblea?src=hash">#Asamblea</a> <a href="https://twitter.com/hashtag/municipales?src=hash">#municipales</a> <a href="https://t.co/PgA1xekg5Q">pic.twitter.com/PgA1xekg5Q</a></p>— SUOEM CÓRDOBA (@suoemcordoba) <a href="https://twitter.com/suoemcordoba/status/869480306906103808">30 de mayo de 2017</a></blockquote><p>
Además, las asambleas afectan el normal funcionamiento en las escuelas municipales y jardines maternales.</p><p>
Ayer, Damián Bizzi, vocero del Sindicato Unión Obreros y Empleados Municipales (Suoem) manifestó a <b>Cadena 3</b> que las asambleas “son la única forma de hacernos escuchar”: “Lo esencial sería que no hubiéramos tenido este problema. No hay otra forma que las autoridades municipales nos escuchen". </p><p>
"Estamos en una situación de conflicto y ésta es la única forma de hacernos escuchar. Es una gestión que no escucha mucho”, dijo. </p></div> \ No newline at end of file
diff --git a/test/test-pages/nytimes-1/expected.html b/test/test-pages/nytimes-1/expected.html
index c56665b..1393373 100644
--- a/test/test-pages/nytimes-1/expected.html
+++ b/test/test-pages/nytimes-1/expected.html
@@ -1,35 +1,35 @@
-<div class="story-body-supplemental">
- <div class="story-body story-body-1">
- <figure aria-label="media" class="media photo lede layout-large-horizontal" data-media-action="modal" id="media-100000004869232" itemid="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg" itemprop="associatedMedia" itemscope="" itemtype="http://schema.org/ImageObject" role="group"><span class="visually-hidden">Photo</span>
- <div class="image">
- <img alt="" class="media-viewer-candidate" data-mediaviewer-caption="United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents." data-mediaviewer-credit="Ashraf Shazly/Agence France-Presse — Getty Images" data-mediaviewer-src="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-superJumbo.jpg" itemid="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg" itemprop="url" src="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg"></img>
+<div>
+ <div>
+ <figure aria-label="media" data-media-action="modal" id="media-100000004869232" itemid="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg" itemprop="associatedMedia" itemscope="" itemtype="http://schema.org/ImageObject" role="group"><span>Photo</span>
+ <div>
+ <img alt="" data-mediaviewer-caption="United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents." data-mediaviewer-credit="Ashraf Shazly/Agence France-Presse — Getty Images" data-mediaviewer-src="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-superJumbo.jpg" itemid="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg" itemprop="url" src="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg"></img>
<meta content="512" itemprop="height"></meta><meta content="768" itemprop="width"></meta></div>
- <figcaption class="caption" itemprop="caption description"><span class="caption-text">United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents.</span>
- <span class="credit" itemprop="copyrightHolder">
- <span class="visually-hidden">Credit</span> Ashraf Shazly/Agence France-Presse — Getty Images </span>
- </figcaption></figure><p class="story-body-text story-content" data-para-count="194" data-total-count="194">LONDON — After nearly 20 years of hostile relations, the American government plans to reverse its position on <a class="meta-loc" href="http://topics.nytimes.com/top/news/international/countriesandterritories/sudan/index.html?inline=nyt-geo" title="More news and information about Sudan.">Sudan</a> and lift trade sanctions, Obama administration officials said late Thursday.</p>
- <p class="story-body-text story-content" data-para-count="250" data-total-count="444">Sudan is one of the poorest, most isolated and most violent countries in Africa, and for years the United States has imposed punitive measures against it in a largely unsuccessful attempt to get the Sudanese government to stop killing its own people.</p>
- <p class="story-body-text story-content" data-para-count="293" data-total-count="737">On Friday, the Obama administration will announce a new Sudan strategy. For the first time since the 1990s, the nation will be able to trade extensively with the United States, allowing it to buy goods like tractors and spare parts and attract much-needed investment in its collapsing economy.</p>
- <p class="story-body-text story-content" data-para-count="193" data-total-count="930">In return, Sudan will improve access for aid groups, stop supporting rebels in neighboring <a class="meta-loc" href="http://topics.nytimes.com/top/news/international/countriesandterritories/south-sudan/index.html?inline=nyt-geo" title="More articles about South Sudan.">South Sudan</a>, cease the bombing of insurgent territory and cooperate with American intelligence agents.</p>
- <p class="story-body-text story-content" data-para-count="344" data-total-count="1274">American officials said Sudan had already shown important progress on a number of these fronts. But to make sure the progress continues, the executive order that President Obama plans to sign on Friday, days before leaving office, will have a six-month review period. If Sudan fails to live up to its commitments, the embargo can be reinstated.</p>
+ <figcaption itemprop="caption description"><span>United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents.</span>
+ <span itemprop="copyrightHolder">
+ <span>Credit</span> Ashraf Shazly/Agence France-Presse — Getty Images </span>
+ </figcaption></figure><p data-para-count="194" data-total-count="194">LONDON — After nearly 20 years of hostile relations, the American government plans to reverse its position on <a href="http://topics.nytimes.com/top/news/international/countriesandterritories/sudan/index.html?inline=nyt-geo" title="More news and information about Sudan.">Sudan</a> and lift trade sanctions, Obama administration officials said late Thursday.</p>
+ <p data-para-count="250" data-total-count="444">Sudan is one of the poorest, most isolated and most violent countries in Africa, and for years the United States has imposed punitive measures against it in a largely unsuccessful attempt to get the Sudanese government to stop killing its own people.</p>
+ <p data-para-count="293" data-total-count="737">On Friday, the Obama administration will announce a new Sudan strategy. For the first time since the 1990s, the nation will be able to trade extensively with the United States, allowing it to buy goods like tractors and spare parts and attract much-needed investment in its collapsing economy.</p>
+ <p data-para-count="193" data-total-count="930">In return, Sudan will improve access for aid groups, stop supporting rebels in neighboring <a href="http://topics.nytimes.com/top/news/international/countriesandterritories/south-sudan/index.html?inline=nyt-geo" title="More articles about South Sudan.">South Sudan</a>, cease the bombing of insurgent territory and cooperate with American intelligence agents.</p>
+ <p data-para-count="344" data-total-count="1274">American officials said Sudan had already shown important progress on a number of these fronts. But to make sure the progress continues, the executive order that President Obama plans to sign on Friday, days before leaving office, will have a six-month review period. If Sudan fails to live up to its commitments, the embargo can be reinstated.</p>
- <p class="story-body-text story-content" data-para-count="204" data-total-count="1478" id="story-continues-1">Analysts said good relations with Sudan could strengthen moderate voices within the country and give the Sudanese government incentives to refrain from the brutal tactics that have defined it for decades.</p>
- <p class="story-body-text story-content" data-para-count="295" data-total-count="1773">In 1997, President Bill Clinton imposed a <a href="https://www.treasury.gov/resource-center/sanctions/Programs/Documents/sudan.pdf">comprehensive trade embargo against Sudan and blocked the assets of the Sudanese government</a>, which was suspected of sponsoring international terrorism. In the mid-1990s, Osama bin Laden lived in Khartoum, the capital, as a guest of Sudan’s government.</p>
- <p class="story-body-text story-content" data-para-count="224" data-total-count="1997">In 1998, Bin Laden’s agents blew up the United States Embassies in Kenya and Tanzania, killing more than 200 people. In retaliation, Mr. Clinton ordered a cruise missile strike against a pharmaceutical factory in Khartoum.</p>
- <p class="story-body-text story-content" data-para-count="474" data-total-count="2471">Since then, American-Sudanese relations have steadily soured. The conflict in Darfur, a vast desert region of western Sudan, was a low point. After rebels in Darfur staged an uprising in 2003, Sudanese security services and their militia allies slaughtered tens of thousands of civilians, leading to condemnation around the world, genocide charges at the International Criminal Court against Sudan’s president, Omar Hassan al-Bashir, and a new round of American sanctions.</p>
- <p class="story-body-text story-content" data-para-count="275" data-total-count="2746">American officials said Thursday that the American demand that Mr. Bashir be held accountable had not changed. Neither has Sudan’s status as one of the few countries, along with Iran and Syria, that remain on the <a href="https://www.state.gov/j/ct/list/c14151.htm">American government’s list of state sponsors of terrorism</a>.</p>
- <p class="story-body-text story-content" data-para-count="124" data-total-count="2870">Sales of military equipment will still be prohibited, and some Sudanese militia and rebel leaders will still face sanctions.</p>
- <p class="story-body-text story-content" data-para-count="264" data-total-count="3134">But the Obama administration is clearly trying to open a door to Sudan. There is intense discontent across the country, and its economy is imploding. American officials have argued for years that it was time to help Sudan dig itself out of the hole it had created.</p>
- <p class="story-body-text story-content" data-para-count="231" data-total-count="3365">Officials divulged Thursday that the Sudanese government had allowed two visits by American operatives to a restricted border area near Libya, which they cited as evidence of a new spirit of cooperation on counterterrorism efforts.</p>
+ <p data-para-count="204" data-total-count="1478" id="story-continues-1">Analysts said good relations with Sudan could strengthen moderate voices within the country and give the Sudanese government incentives to refrain from the brutal tactics that have defined it for decades.</p>
+ <p data-para-count="295" data-total-count="1773">In 1997, President Bill Clinton imposed a <a href="https://www.treasury.gov/resource-center/sanctions/Programs/Documents/sudan.pdf">comprehensive trade embargo against Sudan and blocked the assets of the Sudanese government</a>, which was suspected of sponsoring international terrorism. In the mid-1990s, Osama bin Laden lived in Khartoum, the capital, as a guest of Sudan’s government.</p>
+ <p data-para-count="224" data-total-count="1997">In 1998, Bin Laden’s agents blew up the United States Embassies in Kenya and Tanzania, killing more than 200 people. In retaliation, Mr. Clinton ordered a cruise missile strike against a pharmaceutical factory in Khartoum.</p>
+ <p data-para-count="474" data-total-count="2471">Since then, American-Sudanese relations have steadily soured. The conflict in Darfur, a vast desert region of western Sudan, was a low point. After rebels in Darfur staged an uprising in 2003, Sudanese security services and their militia allies slaughtered tens of thousands of civilians, leading to condemnation around the world, genocide charges at the International Criminal Court against Sudan’s president, Omar Hassan al-Bashir, and a new round of American sanctions.</p>
+ <p data-para-count="275" data-total-count="2746">American officials said Thursday that the American demand that Mr. Bashir be held accountable had not changed. Neither has Sudan’s status as one of the few countries, along with Iran and Syria, that remain on the <a href="https://www.state.gov/j/ct/list/c14151.htm">American government’s list of state sponsors of terrorism</a>.</p>
+ <p data-para-count="124" data-total-count="2870">Sales of military equipment will still be prohibited, and some Sudanese militia and rebel leaders will still face sanctions.</p>
+ <p data-para-count="264" data-total-count="3134">But the Obama administration is clearly trying to open a door to Sudan. There is intense discontent across the country, and its economy is imploding. American officials have argued for years that it was time to help Sudan dig itself out of the hole it had created.</p>
+ <p data-para-count="231" data-total-count="3365">Officials divulged Thursday that the Sudanese government had allowed two visits by American operatives to a restricted border area near Libya, which they cited as evidence of a new spirit of cooperation on counterterrorism efforts.</p>
- <p class="story-body-text story-content" data-para-count="248" data-total-count="3613" id="story-continues-2">In addition to continuing violence in Darfur, several other serious conflicts are raging in southern and central Sudan, along with a civil war in newly independent South Sudan, which Sudan has been suspected of inflaming with covert arms shipments.</p>
- <p class="story-body-text story-content" data-para-count="145" data-total-count="3758"><a href="http://sudanreeves.org/2016/07/04/eric-reeves-is-now-a-senior-fellow-at-harvard-universitys-francois-xavier-bagnoud-center-for-health-and-human-rights/">Eric Reeves</a>, one of the leading American academic voices on Sudan, said he was “appalled” that the American government was lifting sanctions.</p>
- <p class="story-body-text story-content" data-para-count="215" data-total-count="3973">He said that Sudan’s military-dominated government continued to commit grave human rights abuses and atrocities, and he noted that just last week Sudanese security services <a href="http://sudanreeves.org/2017/01/02/7710/">killed</a><a href="http://sudanreeves.org/2017/01/02/7710/"> more than 10 civilians in Darfur</a>.</p>
- <p class="story-body-text story-content" data-para-count="250" data-total-count="4223">“There is no reason to believe the guys in charge have changed their stripes,” said Mr. Reeves, a senior fellow at the François-Xavier Bagnoud Center for Health and Human Rights at Harvard University. “These guys are the worst of the worst.”</p>
- <p class="story-body-text story-content" data-para-count="208" data-total-count="4431">Obama administration officials said that they had briefed President-elect Donald J. Trump’s transition team, but that they did not know if Mr. Trump would stick with a policy of warmer relations with Sudan.</p>
- <p class="story-body-text story-content" data-para-count="143" data-total-count="4574">They said that Sudan had a long way to go in terms of respecting human rights, but that better relations could help increase American leverage.</p>
- <p class="story-body-text story-content" data-node-uid="1" data-para-count="149" data-total-count="4723">Mr. Reeves said he thought that the American government was being manipulated and that the Obama administration had made a “deal with the devil.”</p>
- <a class="visually-hidden skip-to-text-link" href="#whats-next">Continue reading the main story</a>
+ <p data-para-count="248" data-total-count="3613" id="story-continues-2">In addition to continuing violence in Darfur, several other serious conflicts are raging in southern and central Sudan, along with a civil war in newly independent South Sudan, which Sudan has been suspected of inflaming with covert arms shipments.</p>
+ <p data-para-count="145" data-total-count="3758"><a href="http://sudanreeves.org/2016/07/04/eric-reeves-is-now-a-senior-fellow-at-harvard-universitys-francois-xavier-bagnoud-center-for-health-and-human-rights/">Eric Reeves</a>, one of the leading American academic voices on Sudan, said he was “appalled” that the American government was lifting sanctions.</p>
+ <p data-para-count="215" data-total-count="3973">He said that Sudan’s military-dominated government continued to commit grave human rights abuses and atrocities, and he noted that just last week Sudanese security services <a href="http://sudanreeves.org/2017/01/02/7710/">killed</a><a href="http://sudanreeves.org/2017/01/02/7710/"> more than 10 civilians in Darfur</a>.</p>
+ <p data-para-count="250" data-total-count="4223">“There is no reason to believe the guys in charge have changed their stripes,” said Mr. Reeves, a senior fellow at the François-Xavier Bagnoud Center for Health and Human Rights at Harvard University. “These guys are the worst of the worst.”</p>
+ <p data-para-count="208" data-total-count="4431">Obama administration officials said that they had briefed President-elect Donald J. Trump’s transition team, but that they did not know if Mr. Trump would stick with a policy of warmer relations with Sudan.</p>
+ <p data-para-count="143" data-total-count="4574">They said that Sudan had a long way to go in terms of respecting human rights, but that better relations could help increase American leverage.</p>
+ <p data-node-uid="1" data-para-count="149" data-total-count="4723">Mr. Reeves said he thought that the American government was being manipulated and that the Obama administration had made a “deal with the devil.”</p>
+ <a href="#whats-next">Continue reading the main story</a>
</div>
diff --git a/test/test-pages/nytimes-2/expected.html b/test/test-pages/nytimes-2/expected.html
index 0ead93c..e6d2662 100644
--- a/test/test-pages/nytimes-2/expected.html
+++ b/test/test-pages/nytimes-2/expected.html
@@ -1,39 +1,39 @@
-<div class="story-body-supplemental">
- <div class="story-body story-body-1">
- <figure aria-label="media" class="media photo lede layout-small-horizontal" data-media-action="modal" id="media-100000004560166" itemid="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg" itemprop="associatedMedia" itemscope="" itemtype="http://schema.org/ImageObject" role="group"><span class="visually-hidden">Photo</span>
- <div class="image">
- <img alt="" class="media-viewer-candidate" data-mediaviewer-caption="" data-mediaviewer-credit="Harry Campbell" data-mediaviewer-src="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-superJumbo.jpg" itemid="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg" itemprop="url" src="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg"></img>
+<div>
+ <div>
+ <figure aria-label="media" data-media-action="modal" id="media-100000004560166" itemid="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg" itemprop="associatedMedia" itemscope="" itemtype="http://schema.org/ImageObject" role="group"><span>Photo</span>
+ <div>
+ <img alt="" data-mediaviewer-caption="" data-mediaviewer-credit="Harry Campbell" data-mediaviewer-src="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-superJumbo.jpg" itemid="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg" itemprop="url" src="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg"></img>
<meta content="315" itemprop="height"></meta><meta content="315" itemprop="width"></meta></div>
- <figcaption class="caption" itemprop="caption description"><span class="credit" itemprop="copyrightHolder">
- <span class="visually-hidden">Credit</span> Harry Campbell </span>
- </figcaption></figure><p class="story-body-text story-content" data-para-count="148" data-total-count="148"><a class="meta-org" href="http://www.nytimes.com/topic/company/yahoo-inc?inline=nyt-org" title="More information about Yahoo! Inc.">Yahoo</a>’s $4.8 billion sale to <a class="meta-org" href="http://www.nytimes.com/topic/company/verizon-communications-inc?inline=nyt-org" title="More information about Verizon Communications Inc.">Verizon</a> is a complicated beast, showing how different acquisition structures can affect how shareholders are treated.</p>
- <p class="story-body-text story-content" data-para-count="177" data-total-count="325">First, let’s say what the Yahoo sale is not. It is not a sale of the publicly traded company. Instead, it is a sale of the Yahoo subsidiary and some related assets to Verizon.</p>
- <p class="story-body-text story-content" data-para-count="529" data-total-count="854">The sale is being done in two steps. The <a href="https://www.sec.gov/Archives/edgar/data/1011006/000119312516656036/d178500dex22.htm">first step</a> will be the transfer of any assets related to Yahoo business to a singular subsidiary. This includes the stock in the business subsidiaries that make up Yahoo that are not already in the single subsidiary, as well as the odd assets like benefit plan rights. This is what is being sold to Verizon. A license of Yahoo’s oldest patents is being held back in the so-called Excalibur portfolio. This will stay with Yahoo, as will Yahoo’s stakes in Alibaba Group and Yahoo Japan.</p>
- <p class="story-body-text story-content" data-para-count="479" data-total-count="1333">It is hard to overestimate how complex an asset sale like this is. Some of the assets are self-contained, but they must be gathered up and transferred. Employees need to be shuffled around and compensation arrangements redone. Many contracts, like the now-infamous one struck with the search engine Mozilla, which <a href="http://www.recode.net/2016/7/7/12116296/marissa-mayer-deal-mozilla-yahoo-payment">may result in a payment of up to a $1 billion</a>, will contain change-of-control provisions that will be set off and have to be addressed. Tax issues always loom large.</p> <a class="visually-hidden skip-to-text-link" href="#story-continues-1">Continue reading the main story</a>
+ <figcaption itemprop="caption description"><span itemprop="copyrightHolder">
+ <span>Credit</span> Harry Campbell </span>
+ </figcaption></figure><p data-para-count="148" data-total-count="148"><a href="http://www.nytimes.com/topic/company/yahoo-inc?inline=nyt-org" title="More information about Yahoo! Inc.">Yahoo</a>’s $4.8 billion sale to <a href="http://www.nytimes.com/topic/company/verizon-communications-inc?inline=nyt-org" title="More information about Verizon Communications Inc.">Verizon</a> is a complicated beast, showing how different acquisition structures can affect how shareholders are treated.</p>
+ <p data-para-count="177" data-total-count="325">First, let’s say what the Yahoo sale is not. It is not a sale of the publicly traded company. Instead, it is a sale of the Yahoo subsidiary and some related assets to Verizon.</p>
+ <p data-para-count="529" data-total-count="854">The sale is being done in two steps. The <a href="https://www.sec.gov/Archives/edgar/data/1011006/000119312516656036/d178500dex22.htm">first step</a> will be the transfer of any assets related to Yahoo business to a singular subsidiary. This includes the stock in the business subsidiaries that make up Yahoo that are not already in the single subsidiary, as well as the odd assets like benefit plan rights. This is what is being sold to Verizon. A license of Yahoo’s oldest patents is being held back in the so-called Excalibur portfolio. This will stay with Yahoo, as will Yahoo’s stakes in Alibaba Group and Yahoo Japan.</p>
+ <p data-para-count="479" data-total-count="1333">It is hard to overestimate how complex an asset sale like this is. Some of the assets are self-contained, but they must be gathered up and transferred. Employees need to be shuffled around and compensation arrangements redone. Many contracts, like the now-infamous one struck with the search engine Mozilla, which <a href="http://www.recode.net/2016/7/7/12116296/marissa-mayer-deal-mozilla-yahoo-payment">may result in a payment of up to a $1 billion</a>, will contain change-of-control provisions that will be set off and have to be addressed. Tax issues always loom large.</p> <a href="#story-continues-1">Continue reading the main story</a>
</div>
- </div><div class="story-body-supplemental">
- <div class="story-body story-body-2">
- <p class="story-body-text story-content" data-para-count="602" data-total-count="1935" id="story-continues-2">In the second step, at the closing, <a href="https://www.sec.gov/Archives/edgar/data/1011006/000119312516656036/d178500dex22.htm">Yahoo will sell the stock</a> in the single subsidiary to Verizon. At that point, Yahoo will change its name to something without “Yahoo” in it. My favorite is simply Remain Co., the name Yahoo executives are using. Remain Co. will become a holding company for the Alibaba and Yahoo Japan stock. Included will also be $10 billion in cash, plus the Excalibur patent portfolio and a number of minority investments including Snapchat. Ahh, if only Yahoo had bought Snapchat instead of Tumblr (indeed, if only Yahoo had bought Google or Facebook when it had the chance).</p>
+ </div><div>
+ <div>
+ <p data-para-count="602" data-total-count="1935" id="story-continues-2">In the second step, at the closing, <a href="https://www.sec.gov/Archives/edgar/data/1011006/000119312516656036/d178500dex22.htm">Yahoo will sell the stock</a> in the single subsidiary to Verizon. At that point, Yahoo will change its name to something without “Yahoo” in it. My favorite is simply Remain Co., the name Yahoo executives are using. Remain Co. will become a holding company for the Alibaba and Yahoo Japan stock. Included will also be $10 billion in cash, plus the Excalibur patent portfolio and a number of minority investments including Snapchat. Ahh, if only Yahoo had bought Snapchat instead of Tumblr (indeed, if only Yahoo had bought Google or Facebook when it had the chance).</p>
- <p class="story-body-text story-content" data-para-count="262" data-total-count="2197" id="story-continues-3">Because it is a sale of a subsidiary, the $4.8 billion will be paid to Yahoo. Its shareholders will not receive any money unless Yahoo pays it out in a dividend (after paying taxes). Instead, Yahoo shareholders will be left holding shares in the renamed company.</p>
- <p class="story-body-text story-content" data-para-count="250" data-total-count="2447">Verizon’s Yahoo will then be run <a href="http://www.nytimes.com/2016/07/25/business/yahoo-sale.html?_r=0">under the same umbrella as AOL</a>. It is unclear whether there will be a further merger of the two businesses after the acquisition. Plans for Yahoo are still a bit in flux in part because of the abnormal sale process.</p>
- <p class="story-body-text story-content" data-para-count="497" data-total-count="2944">As for Remain Co., it will become a so-called investment company. This is a special designation for a company that holds securities for investment but does not operate a working business. Investment companies are subject to special regulation under the Investment Company Act of 1940. Remain Co. will probably just sit there, returning cash to shareholders and waiting for Alibaba to buy it in a tax-free transaction. (Alibaba says it has no plans to do this, but most people do not believe this).</p>
- <p class="story-body-text story-content" data-para-count="129" data-total-count="3073">The rights of Yahoo shareholders in this sale will be different from those in an ordinary sale, when an entire company is bought.</p>
- <p class="story-body-text story-content" data-para-count="560" data-total-count="3633">Ordinary sales are done in one of two ways: in a merger where the target is merged into a subsidiary of the buyer and the target shareholders receive the cash (or other consideration), or in a tender offer that gives the target shareholders a choice to tender into the offer or not. Then there will be a merger where the target is merged into the buyer’s subsidiary and the target shareholders are forcibly squeezed out, receiving the merger consideration. (if you want to know why you would choose one structure over another, I wrote <a href="http://dealbook.nytimes.com/2009/10/14/the-peculiarities-of-tender-offers/?_r=0">a good primer</a> in 2009.)</p>
- <p class="story-body-text story-content" data-para-count="114" data-total-count="3747">In either case, shareholders get a say. They either vote on the merger or decide whether to tender into the offer.</p>
- <p class="story-body-text story-content" data-para-count="278" data-total-count="4025">In both cases, there would be appraisal rights if the buyer pays cash. This means that shareholders can object to the deal by not voting for it or not tendering into the offer and instead asking a court to value their shares – this is what happened <a href="http://www.nytimes.com/2016/06/08/business/dealbook/ruling-on-dell-buyout-may-not-be-precedent-some-fear.html">in Dell’s buyout in 2013</a>.</p>
- <p class="story-body-text story-content" data-para-count="448" data-total-count="4473">The Yahoo deal, however, is not a sale of the public company. It is an asset sale, in which there is only a shareholder vote if there is a sale of “all” or “substantially all” of the assets of the company. Yahoo is not all of the assets or even “substantially all” – the Alibaba shares being left behind in Remain Co. are worth about $28 billion, or six times the value of the cash Verizon is paying for the Yahoo assets it is buying.</p>
+ <p data-para-count="262" data-total-count="2197" id="story-continues-3">Because it is a sale of a subsidiary, the $4.8 billion will be paid to Yahoo. Its shareholders will not receive any money unless Yahoo pays it out in a dividend (after paying taxes). Instead, Yahoo shareholders will be left holding shares in the renamed company.</p>
+ <p data-para-count="250" data-total-count="2447">Verizon’s Yahoo will then be run <a href="http://www.nytimes.com/2016/07/25/business/yahoo-sale.html?_r=0">under the same umbrella as AOL</a>. It is unclear whether there will be a further merger of the two businesses after the acquisition. Plans for Yahoo are still a bit in flux in part because of the abnormal sale process.</p>
+ <p data-para-count="497" data-total-count="2944">As for Remain Co., it will become a so-called investment company. This is a special designation for a company that holds securities for investment but does not operate a working business. Investment companies are subject to special regulation under the Investment Company Act of 1940. Remain Co. will probably just sit there, returning cash to shareholders and waiting for Alibaba to buy it in a tax-free transaction. (Alibaba says it has no plans to do this, but most people do not believe this).</p>
+ <p data-para-count="129" data-total-count="3073">The rights of Yahoo shareholders in this sale will be different from those in an ordinary sale, when an entire company is bought.</p>
+ <p data-para-count="560" data-total-count="3633">Ordinary sales are done in one of two ways: in a merger where the target is merged into a subsidiary of the buyer and the target shareholders receive the cash (or other consideration), or in a tender offer that gives the target shareholders a choice to tender into the offer or not. Then there will be a merger where the target is merged into the buyer’s subsidiary and the target shareholders are forcibly squeezed out, receiving the merger consideration. (if you want to know why you would choose one structure over another, I wrote <a href="http://dealbook.nytimes.com/2009/10/14/the-peculiarities-of-tender-offers/?_r=0">a good primer</a> in 2009.)</p>
+ <p data-para-count="114" data-total-count="3747">In either case, shareholders get a say. They either vote on the merger or decide whether to tender into the offer.</p>
+ <p data-para-count="278" data-total-count="4025">In both cases, there would be appraisal rights if the buyer pays cash. This means that shareholders can object to the deal by not voting for it or not tendering into the offer and instead asking a court to value their shares – this is what happened <a href="http://www.nytimes.com/2016/06/08/business/dealbook/ruling-on-dell-buyout-may-not-be-precedent-some-fear.html">in Dell’s buyout in 2013</a>.</p>
+ <p data-para-count="448" data-total-count="4473">The Yahoo deal, however, is not a sale of the public company. It is an asset sale, in which there is only a shareholder vote if there is a sale of “all” or “substantially all” of the assets of the company. Yahoo is not all of the assets or even “substantially all” – the Alibaba shares being left behind in Remain Co. are worth about $28 billion, or six times the value of the cash Verizon is paying for the Yahoo assets it is buying.</p>
- <p class="story-body-text story-content" data-para-count="343" data-total-count="4816" id="story-continues-4">The courts have held that the definition of “substantially all” includes a change of business in a company because of an asset sale where the assets are <a href="http://caselaw.findlaw.com/de-court-of-chancery/1306648.html">“qualitatively vital.”</a> And that certainly applies here. So there will be a vote – indeed, Yahoo has no problem with a vote – and shareholders are desperate to sell at this point.</p>
- <p class="story-body-text story-content" data-para-count="183" data-total-count="4999">There will be no appraisal rights, however. Again, in an asset sale, there are no appraisal rights. So anyone who votes against the deal and thinks this is a bum price is out of luck.</p>
- <p class="story-body-text story-content" data-para-count="260" data-total-count="5259">The different standards for voting and appraisal rights apply because the structure of the deal is a quirk of the law in Delaware, where Yahoo is incorporated, that allows lawyers to sometimes work around these issues simply by changing the way a deal is done.</p>
- <p class="story-body-text story-content" data-para-count="112" data-total-count="5371">In Yahoo’s case, this is not deliberate, though. It is simply the most expedient way to get rid of the assets.</p>
- <p class="story-body-text story-content" data-para-count="583" data-total-count="5954">Whether this is the most tax-efficient way is unclear to me as a nontax lawyer (email me if you know). Yahoo is likely to have a tax bill on the sale, possibly a substantial one. And I presume there were legal reasons for not using a <a href="http://dealbook.nytimes.com/2014/04/29/alliant-techsystems-break-up-and-the-return-of-the-morris-trust/">Morris Trust structure</a>, in which Yahoo would have been spun off and immediately sold to Verizon so that only Yahoo’s shareholders paid tax on the deal. In truth, the Yahoo assets being sold are only about 10 percent of the value of the company, so the time and logistics for such a sale when Yahoo is a melting ice cube may not have been worth it.</p>
- <p class="story-body-text story-content" data-para-count="450" data-total-count="6404">Finally, if another bidder still wants to acquire Yahoo, it has time. The agreement with Verizon allows Yahoo to terminate the deal and accept a superior offer by paying a $144 million breakup fee to Verizon. And if Yahoo shareholders change their minds and want to stick with Yahoo’s chief executive, <a class="meta-per" href="http://topics.nytimes.com/top/reference/timestopics/people/m/marissa_mayer/index.html?inline=nyt-per" title="More articles about Marissa Mayer.">Marissa Mayer</a>, and vote down the deal, there is a so-called naked no-vote termination fee of $15 million payable to Verizon to reimburse expenses.</p>
- <p class="story-body-text story-content" data-para-count="426" data-total-count="6830">All in all, this was as hairy a deal as they come. There was the procedural and logistical complications of selling a company when the chief executive wanted to stay. Then there was the fact that this was an asset sale, including all of the challenges that go with it. Throw in all of the tax issues and the fact that this is a public company, and it is likely that the lawyers involved will have nightmares for years to come.</p> <a class="visually-hidden skip-to-text-link" href="#whats-next">Continue reading the main story</a>
+ <p data-para-count="343" data-total-count="4816" id="story-continues-4">The courts have held that the definition of “substantially all” includes a change of business in a company because of an asset sale where the assets are <a href="http://caselaw.findlaw.com/de-court-of-chancery/1306648.html">“qualitatively vital.”</a> And that certainly applies here. So there will be a vote – indeed, Yahoo has no problem with a vote – and shareholders are desperate to sell at this point.</p>
+ <p data-para-count="183" data-total-count="4999">There will be no appraisal rights, however. Again, in an asset sale, there are no appraisal rights. So anyone who votes against the deal and thinks this is a bum price is out of luck.</p>
+ <p data-para-count="260" data-total-count="5259">The different standards for voting and appraisal rights apply because the structure of the deal is a quirk of the law in Delaware, where Yahoo is incorporated, that allows lawyers to sometimes work around these issues simply by changing the way a deal is done.</p>
+ <p data-para-count="112" data-total-count="5371">In Yahoo’s case, this is not deliberate, though. It is simply the most expedient way to get rid of the assets.</p>
+ <p data-para-count="583" data-total-count="5954">Whether this is the most tax-efficient way is unclear to me as a nontax lawyer (email me if you know). Yahoo is likely to have a tax bill on the sale, possibly a substantial one. And I presume there were legal reasons for not using a <a href="http://dealbook.nytimes.com/2014/04/29/alliant-techsystems-break-up-and-the-return-of-the-morris-trust/">Morris Trust structure</a>, in which Yahoo would have been spun off and immediately sold to Verizon so that only Yahoo’s shareholders paid tax on the deal. In truth, the Yahoo assets being sold are only about 10 percent of the value of the company, so the time and logistics for such a sale when Yahoo is a melting ice cube may not have been worth it.</p>
+ <p data-para-count="450" data-total-count="6404">Finally, if another bidder still wants to acquire Yahoo, it has time. The agreement with Verizon allows Yahoo to terminate the deal and accept a superior offer by paying a $144 million breakup fee to Verizon. And if Yahoo shareholders change their minds and want to stick with Yahoo’s chief executive, <a href="http://topics.nytimes.com/top/reference/timestopics/people/m/marissa_mayer/index.html?inline=nyt-per" title="More articles about Marissa Mayer.">Marissa Mayer</a>, and vote down the deal, there is a so-called naked no-vote termination fee of $15 million payable to Verizon to reimburse expenses.</p>
+ <p data-para-count="426" data-total-count="6830">All in all, this was as hairy a deal as they come. There was the procedural and logistical complications of selling a company when the chief executive wanted to stay. Then there was the fact that this was an asset sale, including all of the challenges that go with it. Throw in all of the tax issues and the fact that this is a public company, and it is likely that the lawyers involved will have nightmares for years to come.</p> <a href="#whats-next">Continue reading the main story</a>
</div>
diff --git a/test/test-pages/pixnet/expected.html b/test/test-pages/pixnet/expected.html
index 63796ca..ffa81c7 100644
--- a/test/test-pages/pixnet/expected.html
+++ b/test/test-pages/pixnet/expected.html
@@ -1,4 +1,4 @@
-<div class="article-content-inner" id="article-content-inner">
+<div id="article-content-inner">
<p>
<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>
@@ -251,25 +251,25 @@
<p><span>北橫"石磊部落" 一個從未踏入的陌生之地因為露營之故否則畢生大概也不會路過</span></p>
<p><span>三位大叔同行準備走著這段遙遠的路段 下次找機會再來重溫舊夢了.......</span></p>
- <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>
+ <p><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 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><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 class="MsoNormal"><span lang="EN-US"><span>每帳$600 兩間衛浴使用燒材鍋爐/ 兩間全天瓦斯 </span></span><span lang="EN-US"><span>廁所蹲式X 3 </span></span>
+ <p><span lang="EN-US"><span>每帳$600 兩間衛浴使用燒材鍋爐/ 兩間全天瓦斯 </span></span><span lang="EN-US"><span>廁所蹲式X 3 </span></span>
</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 lang="EN-US"><span>楓紅期間須過中午才可搭帳 </span></span><span lang="EN-US">水電便利</span></p>
+ <p><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 class="MsoNormal"><span><span><span>內文有不定期的更新旅遊、露營圖文訊息 </span></span><span><span>謝謝!</span></span>
+ <p><span><span><span>內文有不定期的更新旅遊、露營圖文訊息 </span></span><span><span>謝謝!</span></span>
</span>
</p>
diff --git a/test/test-pages/salon-1/expected.html b/test/test-pages/salon-1/expected.html
index 17b346a..d1cb60e 100644
--- a/test/test-pages/salon-1/expected.html
+++ b/test/test-pages/salon-1/expected.html
@@ -24,7 +24,7 @@
offering free rides out of the troubled area instead.</p><p>That opener suggests that Uber, as part of a community under siege, is
preparing to respond in a civic manner.<em></em>
</p><p><em>“… Fares have increased to encourage more drivers to come online &amp; pick up passengers in the area.”</em>
- </p><div class="toggle-group target hideOnInit" data-toggle-group="story-13850779">
+ </p><div data-toggle-group="story-13850779">
<p>But, despite the expression of shared concern, there is no sense of <em>civitas</em> to
be found in the statement that follows. There is only a transaction, executed
at what the corporation believes to be market value. Lesson #1 about Uber
diff --git a/test/test-pages/simplyfound-1/expected.html b/test/test-pages/simplyfound-1/expected.html
index daea62d..55b74a9 100644
--- a/test/test-pages/simplyfound-1/expected.html
+++ b/test/test-pages/simplyfound-1/expected.html
@@ -1,4 +1,4 @@
-<div class="card-box-body">
+<div>
<p>The Raspberry Pi Foundation started by a handful of volunteers in 2012 when they released the original Raspberry Pi 256MB Model B without knowing what to expect.  In a short four-year period they have grown to over sixty full-time employees and have shipped over <b>eight million</b> units to-date.  Raspberry Pi has achieved new heights by being shipped to the International Space Station for research and by being an affordable computing platforms used by teachers throughout the world.  "It has become the all-time best-selling computer in the UK".</p>
diff --git a/test/test-pages/social-buttons/expected.html b/test/test-pages/social-buttons/expected.html
index 3810cde..6d135be 100644
--- a/test/test-pages/social-buttons/expected.html
+++ b/test/test-pages/social-buttons/expected.html
@@ -1,4 +1,4 @@
-<article class="main-content">
+<article>
<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
diff --git a/test/test-pages/table-style-attributes/expected.html b/test/test-pages/table-style-attributes/expected.html
index 202c051..c1f0a1a 100644
--- a/test/test-pages/table-style-attributes/expected.html
+++ b/test/test-pages/table-style-attributes/expected.html
@@ -96,5 +96,5 @@ RPMs</a>, and it sucks about the same as mplayer, and in about the same ways, th
</blockquote>
<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>
+ <p> <a href="http://fakehost/test/../"><img alt="[ up ]" 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/telegraph/expected.html b/test/test-pages/telegraph/expected.html
index c63314c..23a2a74 100644
--- a/test/test-pages/telegraph/expected.html
+++ b/test/test-pages/telegraph/expected.html
@@ -1,7 +1,7 @@
-<div class="articleBodyText version-2 section">
- <div class="article-body-text component version-2">
- <div class="component-content">
- <p><span class="m_first-letter m_first-letter--flagged">Z</span>imbabwe President <a href="http://www.telegraph.co.uk/news/2017/11/17/zimbabwes-ruling-party-drafting-motion-fire-robert-mugabe-sunday/">Robert Mugabe</a>, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's "Blue House" compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said.</p>
+<div>
+ <div>
+ <div>
+ <p><span>Z</span>imbabwe President <a href="http://www.telegraph.co.uk/news/2017/11/17/zimbabwes-ruling-party-drafting-motion-fire-robert-mugabe-sunday/">Robert Mugabe</a>, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's "Blue House" compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said.</p>
<p>The G40 figures are cabinet ministers Jonathan Moyo and Saviour Kasukuwere, who fled to the compound after their homes were attacked by troops in Tuesday night's coup, the source, who said he had spoken to people inside the compound, told Reuters.</p>
<p>Mr Mugabe is resisting mediation by a Catholic priest to allow the former guerrilla a graceful exit after the military takeover.</p>
<p>The priest, Fidelis Mukonori, is acting as a middle-man between Mr Mugabe and the generals, <a href="http://www.telegraph.co.uk/news/2017/11/15/zimbabwe-crisis-have-spent-long-careful-really-change/">who seized power in a targeted operation against "criminals" in his entourage</a>, a senior political source told Reuters.</p>
@@ -9,30 +9,30 @@
<p>Mr Mugabe, still seen by many Africans as a liberation hero, is reviled in the West as a despot whose disastrous handling of the economy and willingness to resort to violence to maintain power destroyed one of Africa's most promising states.</p>
</div>
</div>
- </div><div class="articleBodyText section">
- <div class="article-body-text component ">
- <p><span class="m_first-letter m_first-letter--flagged">Z</span>imbabwean intelligence reports seen by Reuters suggest that former security chief Emmerson Mnangagwa, who was ousted as vice-president this month, has been mapping out a post-Mugabe vision with the military and opposition for more than a year.</p>
+ </div><div>
+ <div>
+ <p><span>Z</span>imbabwean intelligence reports seen by Reuters suggest that former security chief Emmerson Mnangagwa, who was ousted as vice-president this month, has been mapping out a post-Mugabe vision with the military and opposition for more than a year.</p>
</div>
- </div><div class="articleBodyText section">
- <div class="article-body-text component ">
- <div class="component-content">
- <p><span class="m_first-letter m_first-letter--flagged">F</span>uelling speculation that Mnangagwa's plan might be rolling into action, opposition leader Morgan Tsvangirai, who has been receiving cancer treatment in Britain and South Africa, returned to Harare late on Wednesday, his spokesman said.</p>
+ </div><div>
+ <div>
+ <div>
+ <p><span>F</span>uelling speculation that Mnangagwa's plan might be rolling into action, opposition leader Morgan Tsvangirai, who has been receiving cancer treatment in Britain and South Africa, returned to Harare late on Wednesday, his spokesman said.</p>
<p>South Africa said Mr Mugabe had told President Jacob Zuma by telephone on Wednesday that he was confined to his home but was otherwise fine and the military said it was keeping him and his family, including wife Grace, safe.</p>
</div>
</div>
- </div><div class="articleBodyText section">
- <div class="article-body-text component ">
- <div class="component-content">
- <p><span class="m_first-letter m_first-letter--flagged">D</span>espite the lingering admiration for Mr Mugabe, there is little public affection for 52-year-old Grace, a former government typist who started having an affair with Mr Mugabe in the early 1990s as his first wife, Sally, was dying of kidney disease.</p>
+ </div><div>
+ <div>
+ <div>
+ <p><span>D</span>espite the lingering admiration for Mr Mugabe, there is little public affection for 52-year-old Grace, a former government typist who started having an affair with Mr Mugabe in the early 1990s as his first wife, Sally, was dying of kidney disease.</p>
<p>Dubbed "DisGrace" or "Gucci Grace" on account of her reputed love of shopping, she enjoyed a meteoric rise through the ranks of Mugabe's ruling Zanu-PF in the last two years, culminating in Mnangagwa's removal a week ago - a move seen as clearing the way for her to succeed her husband.</p>
</div>
</div>
- </div><div class="articleBodyText section">
- <div class="article-body-text component ">
- <p><span class="m_first-letter m_first-letter--flagged">I</span>n contrast to the high political drama unfolding behind closed doors, the streets of the capital remained calm, with people going about their daily business, albeit under the watch of soldiers on armoured vehicles at strategic locations.</p>
+ </div><div>
+ <div>
+ <p><span>I</span>n contrast to the high political drama unfolding behind closed doors, the streets of the capital remained calm, with people going about their daily business, albeit under the watch of soldiers on armoured vehicles at strategic locations.</p>
</div>
- </div><div class="articleBodyText section">
- <div class="article-body-text component ">
- <p><span class="m_first-letter m_first-letter--flagged">W</span>hatever the final outcome, the events could signal a once-in-a-generation change for the former British colony, a regional breadbasket reduced to destitution by economic policies Mr Mugabe's critics have long blamed on him.</p>
+ </div><div>
+ <div>
+ <p><span>W</span>hatever the final outcome, the events could signal a once-in-a-generation change for the former British colony, a regional breadbasket reduced to destitution by economic policies Mr Mugabe's critics have long blamed on him.</p>
</div>
</div> \ No newline at end of file
diff --git a/test/test-pages/tmz-1/expected.html b/test/test-pages/tmz-1/expected.html
index 13e7aff..2c23788 100644
--- a/test/test-pages/tmz-1/expected.html
+++ b/test/test-pages/tmz-1/expected.html
@@ -1,15 +1,15 @@
-<div class="post single-post" id="post-2015_02_26_lupita-nyongo-pearl-dress-stolen-oscars">
+<div id="post-2015_02_26_lupita-nyongo-pearl-dress-stolen-oscars">
<p>
- <h2 class="hf1">Lupita Nyong'o</h2>
+ <h2>Lupita Nyong'o</h2>
- <h4 class="hf2">$150K Pearl Oscar Dress ... STOLEN!!!!</h4>
+ <h4>$150K Pearl Oscar Dress ... STOLEN!!!!</h4>
</p>
- <h5 class="article-posted-date">
+ <h5>
2/26/2015 7:11 AM PST BY TMZ STAFF
</h5>
- <div class="all-post-body group article-content" itemprop="articleBody">
+ <div itemprop="articleBody">
<p><span>EXCLUSIVE</span>
</p>
<p>
diff --git a/test/test-pages/tumblr/expected.html b/test/test-pages/tumblr/expected.html
index 4620d51..ad7a7d8 100644
--- a/test/test-pages/tumblr/expected.html
+++ b/test/test-pages/tumblr/expected.html
@@ -1,8 +1,8 @@
-<div class="container">
+<div>
<div id="posts">
- <div class="post text">
+ <div>
<h3><a href="http://mcupdate.tumblr.com/post/96439224994/minecraft-18-the-bountiful-update">Minecraft 1.8 - The Bountiful Update</a></h3>
<p>+ Added Granite, Andesite, and Diorite stone blocks, with smooth versions<br></br>+ Added Slime Block<br></br>+ Added Iron Trapdoor<br></br>+ Added Prismarine and Sea Lantern blocks<br></br>+ Added the Ocean Monument<br></br>+ Added Red Sandstone<br></br>+ Added Banners<br></br>+ Added Armor Stands<br></br>+ Added Coarse Dirt (dirt where grass won’t grow)<br></br>+ Added Guardian mobs, with item drops<br></br>+ Added Endermite mob<br></br>+ Added Rabbits, with item drops<br></br>+ Added Mutton and Cooked Mutton<br></br>+ Villagers will harvest crops and plant new ones<br></br>+ Mossy Cobblestone and Mossy Stone Bricks are now craftable<br></br>+ Chiseled Stone Bricks are now craftable<br></br>+ Doors and fences now come in all wood type variants<br></br>+ Sponge block has regained its water-absorbing ability and becomes wet<br></br>+ Added a spectator game mode (game mode 3)<br></br>+ Added one new achievement<br></br>+ Added “Customized” world type<br></br>+ Added hidden “Debug Mode” world type<br></br>+ Worlds can now have a world barrier<br></br>+ Added @e target selector for Command Blocks<br></br>+ Added /blockdata command<br></br>+ Added /clone command<br></br>+ Added /execute command<br></br>+ Added /fill command<br></br>+ Added /particle command<br></br>+ Added /testforblocks command<br></br>+ Added /title command<br></br>+ Added /trigger command<br></br>+ Added /worldborder command<br></br>+ Added /stats command<br></br>+ Containers can be locked in custom maps by using the “Lock” data tag<br></br>+ Added logAdminCommands, showDeathMessages, reducedDebugInfo, sendCommandFeedback, and randomTickSpeed game rules<br></br>+ Added three new statistics<br></br>+ Player skins can now have double layers across the whole model, and left/right arms/legs can be edited independently<br></br>+ Added a new player model with smaller arms, and a new player skin called Alex?<br></br>+ Added options for configuring what pieces of the skin that are visible<br></br>+ Blocks can now have custom visual variations in the resource packs<br></br>+ Minecraft Realms now has an activity chart, so you can see who has been online<br></br>+ Minecraft Realms now lets you upload your maps<br></br>* Difficulty setting is saved per world, and can be locked if wanted<br></br>* Enchanting has been redone, now costs lapis lazuli in addition to enchantment levels<br></br>* Villager trading has been rebalanced<br></br>* Anvil repairing has been rebalanced<br></br>* Considerable faster client-side performance<br></br>* Max render distance has been increased to 32 chunks (512 blocks)<br></br>* Adventure mode now prevents you from destroying blocks, unless your items have the CanDestroy data tag<br></br>* Resource packs can now also define the shape of blocks and items, and not just their textures<br></br>* Scoreboards have been given a lot of new features<br></br>* Tweaked the F3 debug screen<br></br>* Block ID numbers (such as 1 for stone), are being replaced by ID names (such as minecraft:stone)<br></br>* Server list has been improved<br></br>* A few minor changes to village and temple generation<br></br>* Mob heads for players now show both skin layers<br></br>* Buttons can now be placed on the ceiling<br></br>* Lots and lots of other changes<br></br>* LOTS AND LOTS of other changes<br></br>- Removed Herobrine</p>
</div>
diff --git a/test/test-pages/wapo-1/expected.html b/test/test-pages/wapo-1/expected.html
index cb3663b..1853a35 100644
--- a/test/test-pages/wapo-1/expected.html
+++ b/test/test-pages/wapo-1/expected.html
@@ -1,5 +1,5 @@
<article>
- <p> <span class="dateline">CAIRO —</span> Gunmen opened fire on visitors at
+ <p> <span>CAIRO —</span> Gunmen opened fire on visitors at
Tunisia’s most renowned museum on Wednesday, killing at least 19 people,
including 17 foreigners, in an assault that threatened to upset the fragile
stability of a country seen as the lone success of the Arab Spring.</p>
@@ -18,7 +18,7 @@
to local news reports.</p>
<p>“Our nation is in danger,” Essid declared in a televised address Wednesday
evening. He vowed that the country would be “merciless” in defending itself.</p>
- <p channel="wp.com" class="interstitial-link"> <i> <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/why-tunisia-the-arab-springs-sole-success-story-suffers-from-islamist-violence/">[Read: Why Tunisia, Arab Spring’s sole success story, suffers from Islamist violence]</a> </i>
+ <p channel="wp.com"> <i> <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/why-tunisia-the-arab-springs-sole-success-story-suffers-from-islamist-violence/">[Read: Why Tunisia, Arab Spring’s sole success story, suffers from Islamist violence]</a> </i>
</p>
<p>Tunisia, a mostly Muslim nation of about 11 million people, was governed
for decades by autocrats who imposed secularism. Its sun-drenched Mediterranean
@@ -46,9 +46,9 @@
<p>In Washington, White House press secretary Josh Earnest <a href="http://hosted2.ap.org/APDEFAULT/cae69a7523db45408eeb2b3a98c0c9c5/Article_2015-03-18-ML--Tunisia-Attack-The%20Latest/id-653822d829b24cef993c5bd6a7ce44b5">condemned the attack </a>and
said the U.S. government was willing to assist Tunisian authorities in
the investigation.</p>
- <div class="inline-content inline-video">
+ <div>
- <p> <span class="pb-caption">Gunmen in military uniforms stormed Tunisia's national museum, killing at least 19 people, most of them foreign tourists. (Reuters)</span>
+ <p> <span>Gunmen in military uniforms stormed Tunisia's national museum, killing at least 19 people, most of them foreign tourists. (Reuters)</span>
</p>
</div>
<p>“This attack today is meant to threaten authorities, to frighten tourists
@@ -59,7 +59,7 @@
Council, an industry body. The Bardo museum hosts one of the world’s most
outstanding collections of Roman mosaics and is popular with tourists and
Tunisians alike.</p>
- <p channel="wp.com" class="interstitial-link"> <i>[<a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/tunisias-bardo-museum-attacked-by-terrorists-is-home-to-amazing-roman-treasures/">Bardo museum houses amazing Roman treasures</a>]</i>
+ <p channel="wp.com"> <i>[<a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/tunisias-bardo-museum-attacked-by-terrorists-is-home-to-amazing-roman-treasures/">Bardo museum houses amazing Roman treasures</a>]</i>
</p>
<p>The attack is “also aimed at the country’s security and stability during
the transition period,” Azzouz said. “And it could have political repercussions
@@ -70,7 +70,7 @@
are drafting an anti-terrorism bill to give security forces additional
tools to fight militants.</p>
- <p channel="wp.com" class="interstitial-link"> <i> <a href="http://www.washingtonpost.com/world/national-security/tunisia-after-igniting-arab-spring-sends-the-most-fighters-to-islamic-state-in-syria/2014/10/28/b5db4faa-5971-11e4-8264-deed989ae9a2_story.html">[Read: Tunisia sends most foreign fighters to Islamic State in Syria]</a> </i>
+ <p channel="wp.com"> <i> <a href="http://www.washingtonpost.com/world/national-security/tunisia-after-igniting-arab-spring-sends-the-most-fighters-to-islamic-state-in-syria/2014/10/28/b5db4faa-5971-11e4-8264-deed989ae9a2_story.html">[Read: Tunisia sends most foreign fighters to Islamic State in Syria]</a> </i>
</p>
<p>“We must pay attention to what is written” in that law, Azzouz said. “There
is worry the government will use the attack to justify some draconian measures.”</p>
@@ -84,8 +84,8 @@
The Islamists failed to improve a slumping economy. And Ennahda came under
fire for what many Tunisians saw as a failure to crack down on Islamist
extremists.</p>
- <div class="inline-content inline-graphic-linked">
- <span class="pb-caption">Map: Flow of foreign fighters to Syria</span>
+ <div>
+ <span>Map: Flow of foreign fighters to Syria</span>
</div>
<p>After the collapse of the authoritarian system in 2011, hard-line Muslims
known as Salafists attacked bars and art galleries. Then, in 2012, hundreds
@@ -112,8 +112,8 @@
<p>In January, Libyan militants loyal to the Islamic State <a href="http://www.washingtonpost.com/world/middle_east/video-shows-purported-beheading-of-egyptian-christians-in-libya/2015/02/15/b8d0f092-b548-11e4-bc30-a4e75503948a_story.html">beheaded 21 Christians</a> —
20 of them Egyptian Copts — along the country’s coast. They later seized
the Libyan city of Sirte.</p>
- <div class="inline-content inline-graphic-embedded">
- <img class="unprocessed" data-hi-res-src="https://img.washingtonpost.com/rf/image_1484w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ" data-low-res-src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ" src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ"></img><br></br></div>
+ <div>
+ <img data-hi-res-src="https://img.washingtonpost.com/rf/image_1484w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ" data-low-res-src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ" src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ"></img><br></br></div>
<p>Officials are worried about the number of Tunisian militants who may have
joined the jihadists in Libya — with the goal of returning home to fight
the Tunis government.</p>
diff --git a/test/test-pages/wapo-2/expected.html b/test/test-pages/wapo-2/expected.html
index a42b034..2f540e2 100644
--- a/test/test-pages/wapo-2/expected.html
+++ b/test/test-pages/wapo-2/expected.html
@@ -16,9 +16,9 @@
be repaired unless both sides have an interest and desire to do so.”</p>
<p>Aside from Russian President Vladi­mir Putin, few foreign leaders so brazenly
stand up to Obama and even fewer among longtime allies.</p>
- <div class="inline-content inline-video">
+ <div>
- <p> <span class="pb-caption">Israeli Prime Minister Benjamin Netanyahu pledged to form a new governing coalition quickly after an upset election victory that was built on a shift to the right. (Reuters)</span>
+ <p> <span>Israeli Prime Minister Benjamin Netanyahu pledged to form a new governing coalition quickly after an upset election victory that was built on a shift to the right. (Reuters)</span>
</p>
</div>
<p>In the past, Israeli leaders who risked damaging the country’s most important
@@ -93,7 +93,7 @@
<p>“That could be an issue forced onto the agenda about the same time as
a potential nuclear deal.”</p>
- </article><div class="post-body-sig-line"><a href="http://www.washingtonpost.com/people/steven-mufson"><img class="post-body-headshot-left" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=http://www.washingtonpost.com/blogs/wonkblog/files/2014/07/mufson_steve.jpg&amp;h=180&amp;w=180"></img></a>
+ </article><div><a href="http://www.washingtonpost.com/people/steven-mufson"><img src="http://img.washingtonpost.com/wp-apps/imrs.php?src=http://www.washingtonpost.com/blogs/wonkblog/files/2014/07/mufson_steve.jpg&amp;h=180&amp;w=180"></img></a>
<p>Steven Mufson covers the White House. Since joining The Post, he has covered
economics, China, foreign policy and energy.</p>
diff --git a/test/test-pages/webmd-1/expected.html b/test/test-pages/webmd-1/expected.html
index 7f63a10..6f773fe 100644
--- a/test/test-pages/webmd-1/expected.html
+++ b/test/test-pages/webmd-1/expected.html
@@ -1,4 +1,4 @@
-<div class="copyNormal" id="textArea">
+<div id="textArea">
@@ -23,7 +23,7 @@
age and continuing to eat them at least three times a week until age 5
cut their chances of becoming allergic by more than 80% compared to kids
who avoided peanuts. Those at high risk were already allergic to egg, they
- had the skin condition <a class="Article" href="http://www.webmd.com/skin-problems-and-treatments/eczema/default.htm" onclick="return sl(this,'','embd-lnk');">eczema</a>, or
+ had the skin condition <a href="http://www.webmd.com/skin-problems-and-treatments/eczema/default.htm" onclick="return sl(this,'','embd-lnk');">eczema</a>, or
both.</p>
<p>Overall, about 3% of kids who ate peanut butter or peanut snacks before
their first birthday got an allergy, compared to about 17% of kids who
@@ -33,9 +33,9 @@
Allergy Research at the Murdoch Children’s Research Institute in Melbourne,
Australia. Allen was not involved in the research.</p>
<p>Experts say the research should shift thinking about how kids develop
- <a class="Article" href="http://www.webmd.com/allergies/guide/food-allergy-intolerances" onclick="return sl(this,'','embd-lnk');">food allergies</a>, and it should change the guidance doctors give to
+ <a href="http://www.webmd.com/allergies/guide/food-allergy-intolerances" onclick="return sl(this,'','embd-lnk');">food allergies</a>, and it should change the guidance doctors give to
parents.</p>
- <p>Meanwhile, for children and adults who are already <a class="Article" href="http://www.webmd.com/allergies/guide/nut-allergy" onclick="return sl(this,'','embd-lnk');">allergic to peanuts</a>,
+ <p>Meanwhile, for children and adults who are already <a href="http://www.webmd.com/allergies/guide/nut-allergy" onclick="return sl(this,'','embd-lnk');">allergic to peanuts</a>,
another study presented at the same meeting held out hope of a treatment.</p>
<p>A new skin patch called Viaskin allowed people with peanut allergies to
eat tiny amounts of peanuts after they wore it for a year.</p>
@@ -46,5 +46,5 @@
<p>Allergies to peanuts and other foods are on the rise. In the U.S., more
than 2% of people react to peanuts, a 400% increase since 1997. And reactions
to peanuts and other tree nuts can be especially severe. Nuts are the main
- reason people get a life-threatening problem called <a class="Article" href="http://www.webmd.com/allergies/guide/anaphylaxis" onclick="return sl(this,'','embd-lnk');">anaphylaxis</a>.</p>
+ reason people get a life-threatening problem called <a href="http://www.webmd.com/allergies/guide/anaphylaxis" onclick="return sl(this,'','embd-lnk');">anaphylaxis</a>.</p>
</div> \ No newline at end of file
diff --git a/test/test-pages/webmd-2/expected.html b/test/test-pages/webmd-2/expected.html
index dcf4987..6716261 100644
--- a/test/test-pages/webmd-2/expected.html
+++ b/test/test-pages/webmd-2/expected.html
@@ -1,4 +1,4 @@
-<div class="copyNormal" id="textArea">
+<div id="textArea">
diff --git a/test/test-pages/wikia/expected.html b/test/test-pages/wikia/expected.html
index d5fe7f1..de18ee3 100644
--- a/test/test-pages/wikia/expected.html
+++ b/test/test-pages/wikia/expected.html
@@ -1,23 +1,23 @@
-<div class="entry-content">
+<div>
<p>Although Lucasfilm is already planning a birthday bash for the Star Wars Saga at <a data-is="trackable" href="http://starwars.wikia.com/wiki/Celebration_Orlando" riot-tag="trackable">Celebration Orlando</a> this April, fans might get another present for the saga’s 40th anniversary. According to fan site <a data-is="trackable" href="http://makingstarwars.net/2017/02/rumor-unaltered-original-star-wars-trilogy-re-released-year/" riot-tag="trackable">MakingStarWars.net</a>, rumors abound that Lucasfilm might re-release the unaltered cuts of the saga’s original trilogy.</p>
<p>If the rumors are true, this is big news for Star Wars fans. Aside from limited VHS releases, the unaltered cuts of the original trilogy films haven’t been available since they premiered in theaters in the 1970s and ’80s. If Lucasfilm indeed re-releases the films’ original cuts, then this will be the first time in decades that fans can see the films in their original forms. Here’s what makes the unaltered cuts of the original trilogy so special.</p>
<h2>The Star Wars Special Editions Caused Controversy
- <a data-is="trackable" href="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b" riot-tag="trackable"><img alt="star wars han solo" class="size-full aligncenter" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" src="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/627" srcset="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/1200 1200w"></img></a>
+ <a data-is="trackable" href="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b" riot-tag="trackable"><img alt="star wars han solo" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" src="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/627" srcset="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/1200 1200w"></img></a>
</h2>
<p>Thanks to the commercial success of Star Wars, <a data-is="trackable" href="http://starwars.wikia.com/wiki/George_Lucas" riot-tag="trackable">George Lucas</a> has revisited and further edited his films for re-releases. The most notable — and controversial — release were the <a data-is="trackable" href="http://starwars.wikia.com/wiki/The_Star_Wars_Trilogy_Special_Edition" riot-tag="trackable">Special Editions</a> of the original trilogy. In 1997, to celebrate the saga’s 20th anniversary, Lucasfilm spent a total of $15 million to remaster <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_IV_A_New_Hope" riot-tag="trackable"><em>A New Hope</em></a>, <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_V_The_Empire_Strikes_Back" riot-tag="trackable"><em>The Empire Strikes Back</em></a>, and <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_VI_Return_of_the_Jedi" riot-tag="trackable"><em>Return of the Jedi</em></a>. The Special Editions had stints in theaters before moving to home media.</p>
<p>Although most of the Special Editions’ changes were cosmetic, others significantly affected the plot of the films. The most notable example is the “<a data-is="trackable" href="http://starwars.wikia.com/wiki/Han_shot_first" riot-tag="trackable">Han shot first</a>” scene in <em>A New Hope</em>. As a result, the Special Editions generated significant controversy among Star Wars fans. Many fans remain skeptical about George Lucas’s decision to finish each original trilogy film “the way it was meant to be.”</p>
<p>
- <a data-is="trackable" href="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9" riot-tag="trackable"><img alt="star wars" class="size-full aligncenter" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" src="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/627" srcset="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/1200 1200w"></img></a>
+ <a data-is="trackable" href="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9" riot-tag="trackable"><img alt="star wars" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" src="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/627" srcset="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/1200 1200w"></img></a>
</p>
<p>While the Special Editions represent the most significant edits to the original trilogy, the saga has undergone other changes. Following up on the saga’s first Blu-ray release in 2011, Industrial Light &amp; Magic (ILM) began remastering the entire saga in 3D, starting with the prequel trilogy. <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_I_The_Phantom_Menace" riot-tag="trackable"><em>The Phantom Menace</em></a> saw a theatrical 3D re-release in 2012, but Disney’s 2012 acquisition of Lucasfilm indefinitely postponed further 3D releases.</p>
<p>In 2015, <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_II_Attack_of_the_Clones" riot-tag="trackable"><em>Attack of the Clones</em></a> and <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_III_Revenge_of_the_Sith" riot-tag="trackable"><em>Revenge of the Sith</em></a> received limited 3D showings at <a data-is="trackable" href="http://starwars.wikia.com/wiki/Celebration_Anaheim" riot-tag="trackable">Celebration Anaheim</a>. Other than that, it seems as though Disney has decided to refocus Lucasfilm’s efforts to new films. Of course, that’s why the saga has produced new content beginning with <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_VII_The_Force_Awakens" riot-tag="trackable"><em>The Force Awakens</em></a>. However, it looks like Lucasfilm isn’t likely to generate 3D versions of the original trilogy anytime soon.</p>
<h2>Why the Original Film Cuts Matter</h2>
<p>
- <a data-is="trackable" href="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9" riot-tag="trackable"><img alt="" class="size-full aligncenter" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" src="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/627" srcset="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/1200 1200w"></img></a>
+ <a data-is="trackable" href="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9" riot-tag="trackable"><img alt="" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" src="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/627" srcset="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/1200 1200w"></img></a>
</p>
<p>Admittedly, the differences between the original trilogy’s unaltered cuts and the Special Editions appeal to more hardcore fans. Casual fans are less likely to care about whether <a data-is="trackable" href="http://starwars.wikia.com/wiki/Greedo" riot-tag="trackable">Greedo</a> or <a data-is="trackable" href="http://starwars.wikia.com/wiki/Han_Solo" riot-tag="trackable">Han Solo</a> shot first. Still, given Star Wars’ indelible impact on pop culture, there’s certainly a market for the original trilogy’s unaltered cuts. They might not be for every Star Wars fan, but many of us care about them.</p>
<p>ILM supervisor <a data-is="trackable" href="http://starwars.wikia.com/wiki/John_Knoll" riot-tag="trackable">John Knoll</a>, who first pitched the <a data-is="trackable" href="http://fandom.wikia.com/videos/john-knoll-important-rogue-one" riot-tag="trackable">story idea</a> for <a data-is="trackable" href="http://starwars.wikia.com/wiki/Rogue_One:_A_Star_Wars_Story" riot-tag="trackable"><em>Rogue One</em></a>, said <a data-is="trackable" href="http://lwlies.com/interviews/gareth-edwards-rogue-one-a-star-wars-story/" riot-tag="trackable">last year</a> that ILM finished a brand new 4K restoration print of <em>A New Hope</em>. For that reason, it seems likely that Lucasfilm will finally give diehard fans the original film cuts that they’ve clamored for. There’s no word yet whether the unaltered cuts will be released in theaters or on home media. At the very least, however, fans will likely get them after all this time. After all, the Special Editions marked the saga’s 20th anniversary. Star Wars turns 40 years old this year, so there’s no telling what’s in store.</p>
- <hr></hr><p class="cta-fandom-contributor">
+ <hr></hr><p>
<em>
Would you like to be part of the Fandom team? <a data-is="trackable" href="http://fandom.wikia.com/fan-contributor" riot-tag="trackable">Join our Fan Contributor Program</a> and share your voice on <a data-is="trackable" href="http://fandom.wikia.com" riot-tag="trackable">Fandom.com</a>! </em>
diff --git a/test/test-pages/wikipedia/expected.html b/test/test-pages/wikipedia/expected.html
index 2891528..3ae3f69 100644
--- a/test/test-pages/wikipedia/expected.html
+++ b/test/test-pages/wikipedia/expected.html
@@ -1,32 +1,32 @@
-<div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="en">
+<div dir="ltr" id="mw-content-text" lang="en">
- <p><b>Mozilla</b> is a <a href="http://fakehost/wiki/Free_software" title="Free software">free-software</a> community, created in 1998 by members of <a href="http://fakehost/wiki/Netscape" title="Netscape">Netscape</a>. The Mozilla community uses, develops, spreads and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions.<sup class="reference" id="cite_ref-1"><a href="#cite_note-1">[1]</a></sup> The community is supported institutionally by the <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a> and its tax-paying subsidiary, the <a href="http://fakehost/wiki/Mozilla_Corporation" title="Mozilla Corporation">Mozilla Corporation</a>.<sup class="reference" id="cite_ref-2"><a href="#cite_note-2">[2]</a></sup></p>
- <p><a href="http://fakehost/wiki/List_of_Mozilla_products" title="List of Mozilla products">Mozilla produces many products</a> such as the <a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a> web browser, <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> e-mail client, <a class="mw-redirect" href="http://fakehost/wiki/Firefox_Mobile" title="Firefox Mobile">Firefox Mobile</a> web browser, <a href="http://fakehost/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a> mobile operating system, <a href="http://fakehost/wiki/Bugzilla" title="Bugzilla">Bugzilla</a> bug tracking system and other projects.</p>
+ <p><b>Mozilla</b> is a <a href="http://fakehost/wiki/Free_software" title="Free software">free-software</a> community, created in 1998 by members of <a href="http://fakehost/wiki/Netscape" title="Netscape">Netscape</a>. The Mozilla community uses, develops, spreads and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions.<sup id="cite_ref-1"><a href="#cite_note-1">[1]</a></sup> The community is supported institutionally by the <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a> and its tax-paying subsidiary, the <a href="http://fakehost/wiki/Mozilla_Corporation" title="Mozilla Corporation">Mozilla Corporation</a>.<sup id="cite_ref-2"><a href="#cite_note-2">[2]</a></sup></p>
+ <p><a href="http://fakehost/wiki/List_of_Mozilla_products" title="List of Mozilla products">Mozilla produces many products</a> such as the <a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a> web browser, <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> e-mail client, <a href="http://fakehost/wiki/Firefox_Mobile" title="Firefox Mobile">Firefox Mobile</a> web browser, <a href="http://fakehost/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a> mobile operating system, <a href="http://fakehost/wiki/Bugzilla" title="Bugzilla">Bugzilla</a> bug tracking system and other projects.</p>
- <h2><span class="mw-headline" id="History">History</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=1" title="Edit section: History">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h2><span id="History">History</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=1" title="Edit section: History">edit</a><span>]</span></span>
</h2>
- <p>On January 23, 1998, Netscape made two announcements: first, that <a href="http://fakehost/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a> will be free; second, that the source code will also be free.<sup class="reference" id="cite_ref-3"><a href="#cite_note-3">[3]</a></sup> One day later, <a href="http://fakehost/wiki/Jamie_Zawinski" title="Jamie Zawinski">Jamie Zawinski</a> from Netscape registered <span>mozilla.org</span>.<sup class="reference" id="cite_ref-4"><a href="#cite_note-4">[4]</a></sup> The project was named Mozilla after the original code name of the <a href="http://fakehost/wiki/Netscape_Navigator" title="Netscape Navigator">Netscape Navigator</a> browser which is a blending of "<a href="http://fakehost/wiki/Mosaic_(web_browser)" title="Mosaic (web browser)">Mosaic</a> and <a href="http://fakehost/wiki/Godzilla" title="Godzilla">Godzilla</a>"<sup class="reference" id="cite_ref-google_5-0"><a href="#cite_note-google-5">[5]</a></sup> and used to co-ordinate the development of the <a href="http://fakehost/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Application Suite</a>, the <a class="mw-redirect" href="http://fakehost/wiki/Open_source" title="Open source">open source</a> version of Netscape's internet software, <a href="http://fakehost/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a>.<sup class="reference" id="cite_ref-Mozilla_Launch_Announcement_6-0"><a href="#cite_note-Mozilla_Launch_Announcement-6">[6]</a></sup><sup class="reference" id="cite_ref-7"><a href="#cite_note-7">[7]</a></sup> Jamie Zawinski says he came up with the name "Mozilla" at a Netscape staff meeting.<sup class="reference" id="cite_ref-8"><a href="#cite_note-8">[8]</a></sup><sup class="reference" id="cite_ref-9"><a href="#cite_note-9">[9]</a></sup> A small group of Netscape employees were tasked with coordination of the new community.</p>
- <p>Originally, Mozilla aimed to be a technology provider for companies, such as Netscape, who would commercialize their open source code.<sup class="reference" id="cite_ref-10"><a href="#cite_note-10">[10]</a></sup> When <a href="http://fakehost/wiki/AOL" title="AOL">AOL</a> (Netscape's parent company) greatly reduced its involvement with Mozilla in July 2003, the <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a> was designated the legal steward of the project.<sup class="reference" id="cite_ref-11"><a href="#cite_note-11">[11]</a></sup> Soon after, Mozilla deprecated the Mozilla Suite in favor of creating independent applications for each function, primarily the <a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a> web browser and the <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> email client, and moved to supply them directly to the public.<sup class="reference" id="cite_ref-12"><a href="#cite_note-12">[12]</a></sup></p>
- <p>Recently, Mozilla's activities have expanded to include Firefox on mobile platforms (primarily <a href="http://fakehost/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>),<sup class="reference" id="cite_ref-13"><a href="#cite_note-13">[13]</a></sup> a mobile OS called <a href="http://fakehost/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a>,<sup class="reference" id="cite_ref-14"><a href="#cite_note-14">[14]</a></sup> a web-based identity system called <a href="http://fakehost/wiki/Mozilla_Persona" title="Mozilla Persona">Mozilla Persona</a> and a marketplace for HTML5 applications.<sup class="reference" id="cite_ref-15"><a href="#cite_note-15">[15]</a></sup></p>
- <p>In a report released in November 2012, Mozilla reported that their total revenue for 2011 was $163 million, which was up 33% from $123 million in 2010. Mozilla noted that roughly 85% of their revenue comes from their contract with Google.<sup class="reference" id="cite_ref-16"><a href="#cite_note-16">[16]</a></sup></p>
- <p>At the end of 2013, Mozilla announced a deal with <a href="http://fakehost/wiki/Cisco_Systems" title="Cisco Systems">Cisco Systems</a> whereby Firefox would download and use a Cisco-provided binary build of an open source<sup class="reference" id="cite_ref-github_17-0"><a href="#cite_note-github-17">[17]</a></sup><a href="http://fakehost/wiki/Codec" title="Codec">codec</a> to play the <a href="http://fakehost/wiki/Proprietary_format" title="Proprietary format">proprietary</a> <a class="mw-redirect" href="http://fakehost/wiki/H.264" title="H.264">H.264</a> video format.<sup class="reference" id="cite_ref-gigaom_18-0"><a href="#cite_note-gigaom-18">[18]</a></sup><sup class="reference" id="cite_ref-techrepublic_19-0"><a href="#cite_note-techrepublic-19">[19]</a></sup> As part of the deal, Cisco would pay any patent licensing fees associated with the binaries that it distributes. Mozilla's CTO, <a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a>, acknowledged that this is "not a complete solution" and isn't "perfect".<sup class="reference" id="cite_ref-20"><a href="#cite_note-20">[20]</a></sup> An employee in Mozilla's video formats team, writing in an unofficial capacity, justified<sup class="reference" id="cite_ref-21"><a href="#cite_note-21">[21]</a></sup> it by the need to maintain their large user base, which would be necessary in future battles for truly free video formats.</p>
- <p>In December 2013, Mozilla announced funding for the development of non-<a href="http://fakehost/wiki/Free_software" title="Free software">free</a> games<sup class="reference" id="cite_ref-22"><a href="#cite_note-22">[22]</a></sup> through its Game Creator Challenge. However, even those games that may be released under a non-free software or open source license must be made with open web technologies and Javascript as per the work criteria outlined in the announcement.</p>
- <h3><span class="mw-headline" id="Eich_CEO_promotion_controversy">Eich CEO promotion controversy</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=2" title="Edit section: Eich CEO promotion controversy">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>On January 23, 1998, Netscape made two announcements: first, that <a href="http://fakehost/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a> will be free; second, that the source code will also be free.<sup id="cite_ref-3"><a href="#cite_note-3">[3]</a></sup> One day later, <a href="http://fakehost/wiki/Jamie_Zawinski" title="Jamie Zawinski">Jamie Zawinski</a> from Netscape registered <span>mozilla.org</span>.<sup id="cite_ref-4"><a href="#cite_note-4">[4]</a></sup> The project was named Mozilla after the original code name of the <a href="http://fakehost/wiki/Netscape_Navigator" title="Netscape Navigator">Netscape Navigator</a> browser which is a blending of "<a href="http://fakehost/wiki/Mosaic_(web_browser)" title="Mosaic (web browser)">Mosaic</a> and <a href="http://fakehost/wiki/Godzilla" title="Godzilla">Godzilla</a>"<sup id="cite_ref-google_5-0"><a href="#cite_note-google-5">[5]</a></sup> and used to co-ordinate the development of the <a href="http://fakehost/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Application Suite</a>, the <a href="http://fakehost/wiki/Open_source" title="Open source">open source</a> version of Netscape's internet software, <a href="http://fakehost/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a>.<sup id="cite_ref-Mozilla_Launch_Announcement_6-0"><a href="#cite_note-Mozilla_Launch_Announcement-6">[6]</a></sup><sup id="cite_ref-7"><a href="#cite_note-7">[7]</a></sup> Jamie Zawinski says he came up with the name "Mozilla" at a Netscape staff meeting.<sup id="cite_ref-8"><a href="#cite_note-8">[8]</a></sup><sup id="cite_ref-9"><a href="#cite_note-9">[9]</a></sup> A small group of Netscape employees were tasked with coordination of the new community.</p>
+ <p>Originally, Mozilla aimed to be a technology provider for companies, such as Netscape, who would commercialize their open source code.<sup id="cite_ref-10"><a href="#cite_note-10">[10]</a></sup> When <a href="http://fakehost/wiki/AOL" title="AOL">AOL</a> (Netscape's parent company) greatly reduced its involvement with Mozilla in July 2003, the <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a> was designated the legal steward of the project.<sup id="cite_ref-11"><a href="#cite_note-11">[11]</a></sup> Soon after, Mozilla deprecated the Mozilla Suite in favor of creating independent applications for each function, primarily the <a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a> web browser and the <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> email client, and moved to supply them directly to the public.<sup id="cite_ref-12"><a href="#cite_note-12">[12]</a></sup></p>
+ <p>Recently, Mozilla's activities have expanded to include Firefox on mobile platforms (primarily <a href="http://fakehost/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>),<sup id="cite_ref-13"><a href="#cite_note-13">[13]</a></sup> a mobile OS called <a href="http://fakehost/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a>,<sup id="cite_ref-14"><a href="#cite_note-14">[14]</a></sup> a web-based identity system called <a href="http://fakehost/wiki/Mozilla_Persona" title="Mozilla Persona">Mozilla Persona</a> and a marketplace for HTML5 applications.<sup id="cite_ref-15"><a href="#cite_note-15">[15]</a></sup></p>
+ <p>In a report released in November 2012, Mozilla reported that their total revenue for 2011 was $163 million, which was up 33% from $123 million in 2010. Mozilla noted that roughly 85% of their revenue comes from their contract with Google.<sup id="cite_ref-16"><a href="#cite_note-16">[16]</a></sup></p>
+ <p>At the end of 2013, Mozilla announced a deal with <a href="http://fakehost/wiki/Cisco_Systems" title="Cisco Systems">Cisco Systems</a> whereby Firefox would download and use a Cisco-provided binary build of an open source<sup id="cite_ref-github_17-0"><a href="#cite_note-github-17">[17]</a></sup><a href="http://fakehost/wiki/Codec" title="Codec">codec</a> to play the <a href="http://fakehost/wiki/Proprietary_format" title="Proprietary format">proprietary</a> <a href="http://fakehost/wiki/H.264" title="H.264">H.264</a> video format.<sup id="cite_ref-gigaom_18-0"><a href="#cite_note-gigaom-18">[18]</a></sup><sup id="cite_ref-techrepublic_19-0"><a href="#cite_note-techrepublic-19">[19]</a></sup> As part of the deal, Cisco would pay any patent licensing fees associated with the binaries that it distributes. Mozilla's CTO, <a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a>, acknowledged that this is "not a complete solution" and isn't "perfect".<sup id="cite_ref-20"><a href="#cite_note-20">[20]</a></sup> An employee in Mozilla's video formats team, writing in an unofficial capacity, justified<sup id="cite_ref-21"><a href="#cite_note-21">[21]</a></sup> it by the need to maintain their large user base, which would be necessary in future battles for truly free video formats.</p>
+ <p>In December 2013, Mozilla announced funding for the development of non-<a href="http://fakehost/wiki/Free_software" title="Free software">free</a> games<sup id="cite_ref-22"><a href="#cite_note-22">[22]</a></sup> through its Game Creator Challenge. However, even those games that may be released under a non-free software or open source license must be made with open web technologies and Javascript as per the work criteria outlined in the announcement.</p>
+ <h3><span id="Eich_CEO_promotion_controversy">Eich CEO promotion controversy</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=2" title="Edit section: Eich CEO promotion controversy">edit</a><span>]</span></span>
</h3>
- <p>On March 24, 2014, Mozilla promoted <a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> to the role of CEO. This led to boycotts and protests from the LGBT community and its supporters, as Eich previously donated US$1,000<sup class="reference" id="cite_ref-23"><a href="#cite_note-23">[23]</a></sup> in 2008 in support of <a href="http://fakehost/wiki/California_Proposition_8_(2008)" title="California Proposition 8 (2008)">California's Proposition 8</a>, a California ballot proposition and state constitutional amendment in opposition to same-sex marriage.<sup class="reference" id="cite_ref-arstechnica_24-0"><a href="#cite_note-arstechnica-24">[24]</a></sup> Eich's donation first became public knowledge in 2012, while he was Mozilla’s chief technical officer, leading to angry responses on Twitter—including the use of the hashtag "#wontworkwithbigots".<sup class="reference" id="cite_ref-25"><a href="#cite_note-25">[25]</a></sup></p>
- <p>Protests also emerged in 2014 following the announcement of Eich's appointment as CEO of Mozilla. U.S. companies <a href="http://fakehost/wiki/OkCupid" title="OkCupid">OkCupid</a> and <a href="http://fakehost/wiki/CREDO_Mobile" title="CREDO Mobile">CREDO Mobile</a> received media coverage for their objections, with the former asking its users to boycott the browser,<sup class="reference" id="cite_ref-26"><a href="#cite_note-26">[26]</a></sup> while Credo amassed 50,000 signatures for a petition that called for Eich's resignation</p>
- <p>Due to the controversy, Eich voluntarily stepped down on April 3, 2014<sup class="reference" id="cite_ref-27"><a href="#cite_note-27">[27]</a></sup> and <a href="http://fakehost/wiki/Mitchell_Baker" title="Mitchell Baker">Mitchell Baker</a>, executive chairwoman of Mozilla Corporation, posted a statement on the Mozilla blog: "We didn’t move fast enough to engage with people once the controversy started. Mozilla believes both in equality and freedom of speech. Equality is necessary for meaningful speech. And you need free speech to fight for equality."<sup class="reference" id="cite_ref-28"><a href="#cite_note-28">[28]</a></sup> Eich's resignation promoted a larger backlash from conservatives who felt he had been forced out of the company internally.<sup class="noprint Inline-Template Template-Fact">[<i><a href="http://fakehost/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (August 2015)">citation needed</span></a></i>]</sup></p>
- <p>OkCupid co-founder and CEO <a href="http://fakehost/wiki/Sam_Yagan" title="Sam Yagan">Sam Yagan</a> had also donated $500<sup class="reference" id="cite_ref-29"><a href="#cite_note-29">[29]</a></sup> to Republican candidate <a href="http://fakehost/wiki/Chris_Cannon" title="Chris Cannon">Chris Cannon</a> who proceeded to vote for multiple measures viewed as "anti-gay", including the banning of same-sex marriage.<sup class="reference" id="cite_ref-30"><a href="#cite_note-30">[30]</a></sup><sup class="reference" id="cite_ref-31"><a href="#cite_note-31">[31]</a></sup><sup class="reference" id="cite_ref-32"><a href="#cite_note-32">[32]</a></sup><sup class="reference" id="cite_ref-33"><a href="#cite_note-33">[33]</a></sup> Yagan claims he did not know about Cannon's stance on gay rights and that his contribution was due to the candidate being the ranking Republican participating in the House subcommittee that oversaw Internet and Intellectual Property matters.<sup class="reference" id="cite_ref-34"><a href="#cite_note-34">[34]</a></sup><sup class="reference" id="cite_ref-35"><a href="#cite_note-35">[35]</a></sup><sup class="reference" id="cite_ref-uncrunched.com_36-0"><a href="#cite_note-uncrunched.com-36">[36]</a></sup><sup class="reference" id="cite_ref-37"><a href="#cite_note-37">[37]</a></sup><sup class="reference" id="cite_ref-38"><a href="#cite_note-38">[38]</a></sup></p>
- <p>Reader comments on articles that were published close to the events were divided between support for OkCupid's actions and opposition to them. Supporters claimed the boycott was justified and saw OkCupid's actions as a firm statement of opposition to intolerance towards the gay community. Opponents saw OkCupid's actions as hypocritical, since Eich is also the inventor of <a href="http://fakehost/wiki/Brendan_Eich#Netscape_and_JavaScript" title="Brendan Eich">JavaScript</a>, which is still required to browse OkCupid's website, and felt that users should not be punished for the actions of Mozilla and suspected that OkCupid's actions were a <a href="http://fakehost/wiki/Publicity_stunt" title="Publicity stunt">publicity stunt</a>.<sup class="reference" id="cite_ref-uncrunched.com_36-1"><a href="#cite_note-uncrunched.com-36">[36]</a></sup><sup class="reference" id="cite_ref-39"><a href="#cite_note-39">[39]</a></sup></p>
- <h2><span class="mw-headline" id="Values">Values</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=3" title="Edit section: Values">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>On March 24, 2014, Mozilla promoted <a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> to the role of CEO. This led to boycotts and protests from the LGBT community and its supporters, as Eich previously donated US$1,000<sup id="cite_ref-23"><a href="#cite_note-23">[23]</a></sup> in 2008 in support of <a href="http://fakehost/wiki/California_Proposition_8_(2008)" title="California Proposition 8 (2008)">California's Proposition 8</a>, a California ballot proposition and state constitutional amendment in opposition to same-sex marriage.<sup id="cite_ref-arstechnica_24-0"><a href="#cite_note-arstechnica-24">[24]</a></sup> Eich's donation first became public knowledge in 2012, while he was Mozilla’s chief technical officer, leading to angry responses on Twitter—including the use of the hashtag "#wontworkwithbigots".<sup id="cite_ref-25"><a href="#cite_note-25">[25]</a></sup></p>
+ <p>Protests also emerged in 2014 following the announcement of Eich's appointment as CEO of Mozilla. U.S. companies <a href="http://fakehost/wiki/OkCupid" title="OkCupid">OkCupid</a> and <a href="http://fakehost/wiki/CREDO_Mobile" title="CREDO Mobile">CREDO Mobile</a> received media coverage for their objections, with the former asking its users to boycott the browser,<sup id="cite_ref-26"><a href="#cite_note-26">[26]</a></sup> while Credo amassed 50,000 signatures for a petition that called for Eich's resignation</p>
+ <p>Due to the controversy, Eich voluntarily stepped down on April 3, 2014<sup id="cite_ref-27"><a href="#cite_note-27">[27]</a></sup> and <a href="http://fakehost/wiki/Mitchell_Baker" title="Mitchell Baker">Mitchell Baker</a>, executive chairwoman of Mozilla Corporation, posted a statement on the Mozilla blog: "We didn’t move fast enough to engage with people once the controversy started. Mozilla believes both in equality and freedom of speech. Equality is necessary for meaningful speech. And you need free speech to fight for equality."<sup id="cite_ref-28"><a href="#cite_note-28">[28]</a></sup> Eich's resignation promoted a larger backlash from conservatives who felt he had been forced out of the company internally.<sup>[<i><a href="http://fakehost/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (August 2015)">citation needed</span></a></i>]</sup></p>
+ <p>OkCupid co-founder and CEO <a href="http://fakehost/wiki/Sam_Yagan" title="Sam Yagan">Sam Yagan</a> had also donated $500<sup id="cite_ref-29"><a href="#cite_note-29">[29]</a></sup> to Republican candidate <a href="http://fakehost/wiki/Chris_Cannon" title="Chris Cannon">Chris Cannon</a> who proceeded to vote for multiple measures viewed as "anti-gay", including the banning of same-sex marriage.<sup id="cite_ref-30"><a href="#cite_note-30">[30]</a></sup><sup id="cite_ref-31"><a href="#cite_note-31">[31]</a></sup><sup id="cite_ref-32"><a href="#cite_note-32">[32]</a></sup><sup id="cite_ref-33"><a href="#cite_note-33">[33]</a></sup> Yagan claims he did not know about Cannon's stance on gay rights and that his contribution was due to the candidate being the ranking Republican participating in the House subcommittee that oversaw Internet and Intellectual Property matters.<sup id="cite_ref-34"><a href="#cite_note-34">[34]</a></sup><sup id="cite_ref-35"><a href="#cite_note-35">[35]</a></sup><sup id="cite_ref-uncrunched.com_36-0"><a href="#cite_note-uncrunched.com-36">[36]</a></sup><sup id="cite_ref-37"><a href="#cite_note-37">[37]</a></sup><sup id="cite_ref-38"><a href="#cite_note-38">[38]</a></sup></p>
+ <p>Reader comments on articles that were published close to the events were divided between support for OkCupid's actions and opposition to them. Supporters claimed the boycott was justified and saw OkCupid's actions as a firm statement of opposition to intolerance towards the gay community. Opponents saw OkCupid's actions as hypocritical, since Eich is also the inventor of <a href="http://fakehost/wiki/Brendan_Eich#Netscape_and_JavaScript" title="Brendan Eich">JavaScript</a>, which is still required to browse OkCupid's website, and felt that users should not be punished for the actions of Mozilla and suspected that OkCupid's actions were a <a href="http://fakehost/wiki/Publicity_stunt" title="Publicity stunt">publicity stunt</a>.<sup id="cite_ref-uncrunched.com_36-1"><a href="#cite_note-uncrunched.com-36">[36]</a></sup><sup id="cite_ref-39"><a href="#cite_note-39">[39]</a></sup></p>
+ <h2><span id="Values">Values</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=3" title="Edit section: Values">edit</a><span>]</span></span>
</h2>
- <p>According to Mozilla's manifesto,<sup class="reference" id="cite_ref-manifesto_40-0"><a href="#cite_note-manifesto-40">[40]</a></sup> which outlines goals, principles, and a pledge, "The Mozilla project uses a community-based approach to create world-class open source software and to develop new types of collaborative activities". Mozilla's manifesto mentions only its beliefs in regards to the Internet and Internet privacy, and has no mention of any political or social viewpoints.</p>
- <h3><span class="mw-headline" id="Pledge">Pledge</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=4" title="Edit section: Pledge">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>According to Mozilla's manifesto,<sup id="cite_ref-manifesto_40-0"><a href="#cite_note-manifesto-40">[40]</a></sup> which outlines goals, principles, and a pledge, "The Mozilla project uses a community-based approach to create world-class open source software and to develop new types of collaborative activities". Mozilla's manifesto mentions only its beliefs in regards to the Internet and Internet privacy, and has no mention of any political or social viewpoints.</p>
+ <h3><span id="Pledge">Pledge</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=4" title="Edit section: Pledge">edit</a><span>]</span></span>
</h3>
- <p>According to the Mozilla Foundation:<sup class="reference" id="cite_ref-41"><a href="#cite_note-41">[41]</a></sup></p>
- <blockquote class="templatequote">
+ <p>According to the Mozilla Foundation:<sup id="cite_ref-41"><a href="#cite_note-41">[41]</a></sup></p>
+ <blockquote>
<p>The Mozilla Foundation pledges to support the Mozilla Manifesto in its activities. Specifically, we will:</p>
<ul><li>Build and enable open-source technologies and communities that support the Manifesto’s principles;</li>
<li>Build and deliver great consumer products that support the Manifesto’s principles;</li>
@@ -34,133 +34,133 @@
<li>Promote models for creating economic value for the public benefit; and</li>
<li>Promote the Mozilla Manifesto principles in public discourse and within the Internet industry.</li>
</ul></blockquote>
- <h2><span class="mw-headline" id="Software">Software</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=5" title="Edit section: Software">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h2><span id="Software">Software</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=5" title="Edit section: Software">edit</a><span>]</span></span>
</h2>
- <div class="thumb tright">
- <div class="thumbinner">
- <a class="image" href="http://fakehost/wiki/File:Mozilla_Firefox_logo_2013.svg"><img alt="" class="thumbimage" data-file-height="373" data-file-width="352" height="233" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/220px-Mozilla_Firefox_logo_2013.svg.png" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/330px-Mozilla_Firefox_logo_2013.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/440px-Mozilla_Firefox_logo_2013.svg.png 2x" width="220"></img></a>
+ <div>
+ <div>
+ <a href="http://fakehost/wiki/File:Mozilla_Firefox_logo_2013.svg"><img alt="" data-file-height="373" data-file-width="352" height="233" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/220px-Mozilla_Firefox_logo_2013.svg.png" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/330px-Mozilla_Firefox_logo_2013.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/440px-Mozilla_Firefox_logo_2013.svg.png 2x" width="220"></img></a>
</div>
</div>
- <h3><span class="mw-headline" id="Firefox">Firefox</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=6" title="Edit section: Firefox">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h3><span id="Firefox">Firefox</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=6" title="Edit section: Firefox">edit</a><span>]</span></span>
</h3>
- <p><a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a> is a <a href="http://fakehost/wiki/Web_browser" title="Web browser">web browser</a>, and is Mozilla's <a class="mw-redirect" href="http://fakehost/wiki/Flagship_product" title="Flagship product">flagship</a> software product. It is available in both desktop and mobile versions. Firefox uses the <a href="http://fakehost/wiki/Gecko_(software)" title="Gecko (software)">Gecko</a> <a href="http://fakehost/wiki/Layout_engine" title="Layout engine">layout engine</a> to render web pages, which implements current and anticipated <a href="http://fakehost/wiki/Web_standards" title="Web standards">web standards</a>.<sup class="reference" id="cite_ref-42"><a href="#cite_note-42">[42]</a></sup> As of late 2015<sup class="plainlinks noprint asof-tag update"><a class="external text" href="http://en.wikipedia.org/w/index.php?title=Mozilla&amp;action=edit">[update]</a></sup>, Firefox has approximately 10-11% of worldwide <a href="http://fakehost/wiki/Usage_share_of_web_browsers#Summary" title="Usage share of web browsers">usage share of web browsers</a>, making it the 4th most-used web browser.<sup class="reference" id="cite_ref-w3counter1_43-0"><a href="#cite_note-w3counter1-43">[43]</a></sup><sup class="reference" id="cite_ref-gs.statcounter.com_44-0"><a href="#cite_note-gs.statcounter.com-44">[44]</a></sup><sup class="reference" id="cite_ref-getclicky1_45-0"><a href="#cite_note-getclicky1-45">[45]</a></sup></p>
- <p>Firefox began as an experimental branch of the <a href="http://fakehost/wiki/Mozilla#Mozilla_Project" title="Mozilla">Mozilla codebase</a> by <a href="http://fakehost/wiki/Dave_Hyatt" title="Dave Hyatt">Dave Hyatt</a>, <a href="http://fakehost/wiki/Joe_Hewitt_(programmer)" title="Joe Hewitt (programmer)">Joe Hewitt</a> and <a href="http://fakehost/wiki/Blake_Ross" title="Blake Ross">Blake Ross</a>. They believed the commercial requirements of <a href="http://fakehost/wiki/Netscape" title="Netscape">Netscape's</a> sponsorship and developer-driven <a href="http://fakehost/wiki/Feature_creep" title="Feature creep">feature creep</a> compromised the utility of the Mozilla browser.<sup class="reference" id="cite_ref-46"><a href="#cite_note-46">[46]</a></sup> To combat what they saw as the <a href="http://fakehost/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Suite's</a> <a href="http://fakehost/wiki/Software_bloat" title="Software bloat">software bloat</a>, they created a stand-alone browser, with which they intended to replace the Mozilla Suite.</p>
- <p>Firefox was originally named <i>Phoenix</i> but the name was changed so as to avoid trademark conflicts with <a href="http://fakehost/wiki/Phoenix_Technologies" title="Phoenix Technologies">Phoenix Technologies</a>. The initially-announced replacement, <i>Firebird</i>, provoked objections from the <a href="http://fakehost/wiki/Firebird_(database_server)" title="Firebird (database server)">Firebird</a> project community.<sup class="reference" id="cite_ref-47"><a href="#cite_note-47">[47]</a></sup><sup class="reference" id="cite_ref-48"><a href="#cite_note-48">[48]</a></sup> The current name, Firefox, was chosen on February 9, 2004.<sup class="reference" id="cite_ref-49"><a href="#cite_note-49">[49]</a></sup></p>
- <h3><span class="mw-headline" id="Firefox_Mobile">Firefox Mobile</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=7" title="Edit section: Firefox Mobile">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p><a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a> is a <a href="http://fakehost/wiki/Web_browser" title="Web browser">web browser</a>, and is Mozilla's <a href="http://fakehost/wiki/Flagship_product" title="Flagship product">flagship</a> software product. It is available in both desktop and mobile versions. Firefox uses the <a href="http://fakehost/wiki/Gecko_(software)" title="Gecko (software)">Gecko</a> <a href="http://fakehost/wiki/Layout_engine" title="Layout engine">layout engine</a> to render web pages, which implements current and anticipated <a href="http://fakehost/wiki/Web_standards" title="Web standards">web standards</a>.<sup id="cite_ref-42"><a href="#cite_note-42">[42]</a></sup> As of late 2015<sup><a href="http://en.wikipedia.org/w/index.php?title=Mozilla&amp;action=edit">[update]</a></sup>, Firefox has approximately 10-11% of worldwide <a href="http://fakehost/wiki/Usage_share_of_web_browsers#Summary" title="Usage share of web browsers">usage share of web browsers</a>, making it the 4th most-used web browser.<sup id="cite_ref-w3counter1_43-0"><a href="#cite_note-w3counter1-43">[43]</a></sup><sup id="cite_ref-gs.statcounter.com_44-0"><a href="#cite_note-gs.statcounter.com-44">[44]</a></sup><sup id="cite_ref-getclicky1_45-0"><a href="#cite_note-getclicky1-45">[45]</a></sup></p>
+ <p>Firefox began as an experimental branch of the <a href="http://fakehost/wiki/Mozilla#Mozilla_Project" title="Mozilla">Mozilla codebase</a> by <a href="http://fakehost/wiki/Dave_Hyatt" title="Dave Hyatt">Dave Hyatt</a>, <a href="http://fakehost/wiki/Joe_Hewitt_(programmer)" title="Joe Hewitt (programmer)">Joe Hewitt</a> and <a href="http://fakehost/wiki/Blake_Ross" title="Blake Ross">Blake Ross</a>. They believed the commercial requirements of <a href="http://fakehost/wiki/Netscape" title="Netscape">Netscape's</a> sponsorship and developer-driven <a href="http://fakehost/wiki/Feature_creep" title="Feature creep">feature creep</a> compromised the utility of the Mozilla browser.<sup id="cite_ref-46"><a href="#cite_note-46">[46]</a></sup> To combat what they saw as the <a href="http://fakehost/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Suite's</a> <a href="http://fakehost/wiki/Software_bloat" title="Software bloat">software bloat</a>, they created a stand-alone browser, with which they intended to replace the Mozilla Suite.</p>
+ <p>Firefox was originally named <i>Phoenix</i> but the name was changed so as to avoid trademark conflicts with <a href="http://fakehost/wiki/Phoenix_Technologies" title="Phoenix Technologies">Phoenix Technologies</a>. The initially-announced replacement, <i>Firebird</i>, provoked objections from the <a href="http://fakehost/wiki/Firebird_(database_server)" title="Firebird (database server)">Firebird</a> project community.<sup id="cite_ref-47"><a href="#cite_note-47">[47]</a></sup><sup id="cite_ref-48"><a href="#cite_note-48">[48]</a></sup> The current name, Firefox, was chosen on February 9, 2004.<sup id="cite_ref-49"><a href="#cite_note-49">[49]</a></sup></p>
+ <h3><span id="Firefox_Mobile">Firefox Mobile</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=7" title="Edit section: Firefox Mobile">edit</a><span>]</span></span>
</h3>
<p>Firefox Mobile (codenamed <i>Fennec</i>) is the build of the <a href="http://fakehost/wiki/Firefox" title="Firefox">Mozilla Firefox</a> <a href="http://fakehost/wiki/Web_browser" title="Web browser">web browser</a> for devices such as <a href="http://fakehost/wiki/Smartphone" title="Smartphone">smartphones</a> and <a href="http://fakehost/wiki/Tablet_computer" title="Tablet computer">tablet computers</a>.</p>
- <p>Firefox Mobile uses the same <a class="mw-redirect" href="http://fakehost/wiki/Gecko_(layout_engine)" title="Gecko (layout engine)">Gecko</a> <a href="http://fakehost/wiki/Layout_engine" title="Layout engine">layout engine</a> as <a href="http://fakehost/wiki/Firefox" title="Firefox">Mozilla Firefox</a>. For example, version 1.0 used the same engine as Firefox 3.6, and the following release, 4.0, shared core code with Firefox 4.0. Its features include <a href="http://fakehost/wiki/HTML5" title="HTML5">HTML5</a> support, <a href="http://fakehost/wiki/Firefox_Sync" title="Firefox Sync">Firefox Sync</a>, <a href="http://fakehost/wiki/Add-on_(Mozilla)" title="Add-on (Mozilla)">add-ons</a> support and <a class="mw-redirect" href="http://fakehost/wiki/Tabbed_browsing" title="Tabbed browsing">tabbed browsing</a>.<sup class="reference" id="cite_ref-50"><a href="#cite_note-50">[50]</a></sup></p>
- <p>Firefox Mobile is currently available for <a href="http://fakehost/wiki/Android_(operating_system)" title="Android (operating system)">Android</a> 2.2 and above devices with an <a href="http://fakehost/wiki/ARM_architecture" title="ARM architecture">ARMv7</a> or <a href="http://fakehost/wiki/ARM_architecture" title="ARM architecture">ARMv6</a> CPU.<sup class="reference" id="cite_ref-51"><a href="#cite_note-51">[51]</a></sup> The x86 architecture is not officially supported.<sup class="reference" id="cite_ref-52"><a href="#cite_note-52">[52]</a></sup><a href="http://fakehost/wiki/Tristan_Nitot" title="Tristan Nitot">Tristan Nitot</a>, president of <a href="http://fakehost/wiki/Mozilla_Europe" title="Mozilla Europe">Mozilla Europe</a>, has said that it's unlikely that an <a href="http://fakehost/wiki/IPhone" title="IPhone">iPhone</a> or a <a href="http://fakehost/wiki/BlackBerry" title="BlackBerry">BlackBerry</a> version will be released, citing <a class="mw-redirect" href="http://fakehost/wiki/Apple_Inc" title="Apple Inc">Apple's</a> iTunes Store application approval policies (which forbid applications competing with Apple's own, and forbid engines which run downloaded code) and BlackBerry's limited operating system as the reasons.<sup class="reference" id="cite_ref-53"><a href="#cite_note-53">[53]</a></sup></p>
- <h3><span class="mw-headline" id="Firefox_OS">Firefox OS</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=8" title="Edit section: Firefox OS">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>Firefox Mobile uses the same <a href="http://fakehost/wiki/Gecko_(layout_engine)" title="Gecko (layout engine)">Gecko</a> <a href="http://fakehost/wiki/Layout_engine" title="Layout engine">layout engine</a> as <a href="http://fakehost/wiki/Firefox" title="Firefox">Mozilla Firefox</a>. For example, version 1.0 used the same engine as Firefox 3.6, and the following release, 4.0, shared core code with Firefox 4.0. Its features include <a href="http://fakehost/wiki/HTML5" title="HTML5">HTML5</a> support, <a href="http://fakehost/wiki/Firefox_Sync" title="Firefox Sync">Firefox Sync</a>, <a href="http://fakehost/wiki/Add-on_(Mozilla)" title="Add-on (Mozilla)">add-ons</a> support and <a href="http://fakehost/wiki/Tabbed_browsing" title="Tabbed browsing">tabbed browsing</a>.<sup id="cite_ref-50"><a href="#cite_note-50">[50]</a></sup></p>
+ <p>Firefox Mobile is currently available for <a href="http://fakehost/wiki/Android_(operating_system)" title="Android (operating system)">Android</a> 2.2 and above devices with an <a href="http://fakehost/wiki/ARM_architecture" title="ARM architecture">ARMv7</a> or <a href="http://fakehost/wiki/ARM_architecture" title="ARM architecture">ARMv6</a> CPU.<sup id="cite_ref-51"><a href="#cite_note-51">[51]</a></sup> The x86 architecture is not officially supported.<sup id="cite_ref-52"><a href="#cite_note-52">[52]</a></sup><a href="http://fakehost/wiki/Tristan_Nitot" title="Tristan Nitot">Tristan Nitot</a>, president of <a href="http://fakehost/wiki/Mozilla_Europe" title="Mozilla Europe">Mozilla Europe</a>, has said that it's unlikely that an <a href="http://fakehost/wiki/IPhone" title="IPhone">iPhone</a> or a <a href="http://fakehost/wiki/BlackBerry" title="BlackBerry">BlackBerry</a> version will be released, citing <a href="http://fakehost/wiki/Apple_Inc" title="Apple Inc">Apple's</a> iTunes Store application approval policies (which forbid applications competing with Apple's own, and forbid engines which run downloaded code) and BlackBerry's limited operating system as the reasons.<sup id="cite_ref-53"><a href="#cite_note-53">[53]</a></sup></p>
+ <h3><span id="Firefox_OS">Firefox OS</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=8" title="Edit section: Firefox OS">edit</a><span>]</span></span>
</h3>
- <p>Firefox OS (project name: <i>Boot to Gecko</i> also known as <i>B2G</i>) is an <a class="mw-redirect" href="http://fakehost/wiki/Open_source" title="Open source">open source</a> <a href="http://fakehost/wiki/Operating_system" title="Operating system">operating system</a> in development by Mozilla that aims to support <a href="http://fakehost/wiki/HTML5" title="HTML5">HTML5</a> apps written using "<a href="http://fakehost/wiki/Open_Web" title="Open Web">open Web</a>" technologies rather than platform-specific native <a href="http://fakehost/wiki/Application_programming_interface" title="Application programming interface">APIs</a>. The concept behind Firefox OS is that all user-accessible software will be HTML5 applications, that use Open Web APIs to access the phone's hardware directly via <a href="http://fakehost/wiki/JavaScript" title="JavaScript">JavaScript</a>.<sup class="reference" id="cite_ref-54"><a href="#cite_note-54">[54]</a></sup></p>
- <p>Some devices using this OS include<sup class="reference" id="cite_ref-55"><a href="#cite_note-55">[55]</a></sup> Alcatel One Touch Fire, ZTE Open, LG Fireweb.</p>
- <h3><span class="mw-headline" id="Thunderbird">Thunderbird</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=9" title="Edit section: Thunderbird">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>Firefox OS (project name: <i>Boot to Gecko</i> also known as <i>B2G</i>) is an <a href="http://fakehost/wiki/Open_source" title="Open source">open source</a> <a href="http://fakehost/wiki/Operating_system" title="Operating system">operating system</a> in development by Mozilla that aims to support <a href="http://fakehost/wiki/HTML5" title="HTML5">HTML5</a> apps written using "<a href="http://fakehost/wiki/Open_Web" title="Open Web">open Web</a>" technologies rather than platform-specific native <a href="http://fakehost/wiki/Application_programming_interface" title="Application programming interface">APIs</a>. The concept behind Firefox OS is that all user-accessible software will be HTML5 applications, that use Open Web APIs to access the phone's hardware directly via <a href="http://fakehost/wiki/JavaScript" title="JavaScript">JavaScript</a>.<sup id="cite_ref-54"><a href="#cite_note-54">[54]</a></sup></p>
+ <p>Some devices using this OS include<sup id="cite_ref-55"><a href="#cite_note-55">[55]</a></sup> Alcatel One Touch Fire, ZTE Open, LG Fireweb.</p>
+ <h3><span id="Thunderbird">Thunderbird</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=9" title="Edit section: Thunderbird">edit</a><span>]</span></span>
</h3>
<p><a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> is a free, open source, cross-platform email and news client developed by the volunteers of the Mozilla Community.</p>
- <p>On July 16, 2012, Mitchell Baker announced that Mozilla's leadership had come to the conclusion that on-going stability was the most important thing for Thunderbird and that innovation in Thunderbird was no longer a priority for Mozilla. In that update Baker also suggested that Mozilla had provided a pathway for community to innovate around Thunderbird if the community chooses.<sup class="reference" id="cite_ref-56"><a href="#cite_note-56">[56]</a></sup></p>
- <h3><span class="mw-headline" id="SeaMonkey">SeaMonkey</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=10" title="Edit section: SeaMonkey">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>On July 16, 2012, Mitchell Baker announced that Mozilla's leadership had come to the conclusion that on-going stability was the most important thing for Thunderbird and that innovation in Thunderbird was no longer a priority for Mozilla. In that update Baker also suggested that Mozilla had provided a pathway for community to innovate around Thunderbird if the community chooses.<sup id="cite_ref-56"><a href="#cite_note-56">[56]</a></sup></p>
+ <h3><span id="SeaMonkey">SeaMonkey</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=10" title="Edit section: SeaMonkey">edit</a><span>]</span></span>
</h3>
- <div class="thumb tleft">
- <div class="thumbinner">
- <a class="image" href="http://fakehost/wiki/File:SeaMonkey.png"><img alt="" class="thumbimage" data-file-height="128" data-file-width="128" height="128" src="http://upload.wikimedia.org/wikipedia/commons/0/0d/SeaMonkey.png" width="128"></img></a>
+ <div>
+ <div>
+ <a href="http://fakehost/wiki/File:SeaMonkey.png"><img alt="" data-file-height="128" data-file-width="128" height="128" src="http://upload.wikimedia.org/wikipedia/commons/0/0d/SeaMonkey.png" width="128"></img></a>
</div>
</div>
- <p><a href="http://fakehost/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a> (formerly the Mozilla Application Suite) is a free and open source cross platform suite of Internet software components including a web browser component, a client for sending and receiving email and <a class="mw-redirect" href="http://fakehost/wiki/USENET" title="USENET">USENET</a> newsgroup messages, an HTML editor (<a href="http://fakehost/wiki/Mozilla_Composer" title="Mozilla Composer">Mozilla Composer</a>) and the <a href="http://fakehost/wiki/ChatZilla" title="ChatZilla">ChatZilla</a> IRC client.</p>
- <p>On March 10, 2005, <a class="mw-redirect" href="http://fakehost/wiki/The_Mozilla_Foundation" title="The Mozilla Foundation">the Mozilla Foundation</a> announced that it would not release any official versions of Mozilla Application Suite beyond 1.7.x, since it had now focused on the standalone applications <a class="mw-redirect" href="http://fakehost/wiki/Mozilla_Firefox" title="Mozilla Firefox">Firefox</a> and <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a>.<sup class="reference" id="cite_ref-57"><a href="#cite_note-57">[57]</a></sup> SeaMonkey is now maintained by the SeaMonkey Council, which has <a href="http://fakehost/wiki/Trademark" title="Trademark">trademarked</a> the SeaMonkey name with help from the Mozilla Foundation.<sup class="reference" id="cite_ref-58"><a href="#cite_note-58">[58]</a></sup> The Mozilla Foundation provides project hosting for the SeaMonkey developers.</p>
+ <p><a href="http://fakehost/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a> (formerly the Mozilla Application Suite) is a free and open source cross platform suite of Internet software components including a web browser component, a client for sending and receiving email and <a href="http://fakehost/wiki/USENET" title="USENET">USENET</a> newsgroup messages, an HTML editor (<a href="http://fakehost/wiki/Mozilla_Composer" title="Mozilla Composer">Mozilla Composer</a>) and the <a href="http://fakehost/wiki/ChatZilla" title="ChatZilla">ChatZilla</a> IRC client.</p>
+ <p>On March 10, 2005, <a href="http://fakehost/wiki/The_Mozilla_Foundation" title="The Mozilla Foundation">the Mozilla Foundation</a> announced that it would not release any official versions of Mozilla Application Suite beyond 1.7.x, since it had now focused on the standalone applications <a href="http://fakehost/wiki/Mozilla_Firefox" title="Mozilla Firefox">Firefox</a> and <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a>.<sup id="cite_ref-57"><a href="#cite_note-57">[57]</a></sup> SeaMonkey is now maintained by the SeaMonkey Council, which has <a href="http://fakehost/wiki/Trademark" title="Trademark">trademarked</a> the SeaMonkey name with help from the Mozilla Foundation.<sup id="cite_ref-58"><a href="#cite_note-58">[58]</a></sup> The Mozilla Foundation provides project hosting for the SeaMonkey developers.</p>
- <h3><span class="mw-headline" id="Bugzilla">Bugzilla</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=11" title="Edit section: Bugzilla">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h3><span id="Bugzilla">Bugzilla</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=11" title="Edit section: Bugzilla">edit</a><span>]</span></span>
</h3>
- <div class="thumb tright">
- <div class="thumbinner">
- <a class="image" href="http://fakehost/wiki/File:Buggie.svg"><img alt="" class="thumbimage" data-file-height="125" data-file-width="95" height="289" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/220px-Buggie.svg.png" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/330px-Buggie.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/440px-Buggie.svg.png 2x" width="220"></img></a>
+ <div>
+ <div>
+ <a href="http://fakehost/wiki/File:Buggie.svg"><img alt="" data-file-height="125" data-file-width="95" height="289" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/220px-Buggie.svg.png" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/330px-Buggie.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/440px-Buggie.svg.png 2x" width="220"></img></a>
</div>
</div>
- <p><a href="http://fakehost/wiki/Bugzilla" title="Bugzilla">Bugzilla</a> is a <a href="http://fakehost/wiki/World_Wide_Web" title="World Wide Web">web</a>-based general-purpose <a href="http://fakehost/wiki/Bug_tracking_system" title="Bug tracking system">bug tracking system</a>, which was released as <a class="mw-redirect" href="http://fakehost/wiki/Open_source_software" title="Open source software">open source software</a> by <a class="mw-redirect" href="http://fakehost/wiki/Netscape_Communications" title="Netscape Communications">Netscape Communications</a> in 1998 along with the rest of the Mozilla codebase, and is currently stewarded by Mozilla. It has been adopted by a variety of organizations for use as a <a href="http://fakehost/wiki/Bug_tracking_system" title="Bug tracking system">bug tracking system</a> for both <a class="mw-redirect" href="http://fakehost/wiki/Free_and_open_source_software" title="Free and open source software">free and open source software</a> and <a href="http://fakehost/wiki/Proprietary_software" title="Proprietary software">proprietary</a> projects and products, including the <a class="mw-redirect" href="http://fakehost/wiki/The_Mozilla_Foundation" title="The Mozilla Foundation">Mozilla Foundation</a>, the <a href="http://fakehost/wiki/Linux_kernel" title="Linux kernel">Linux kernel</a>, <a href="http://fakehost/wiki/GNOME" title="GNOME">GNOME</a>, <a href="http://fakehost/wiki/KDE" title="KDE">KDE</a>, <a href="http://fakehost/wiki/Red_Hat" title="Red Hat">Red Hat</a>, <a href="http://fakehost/wiki/Novell" title="Novell">Novell</a>, <a href="http://fakehost/wiki/Eclipse_(software)" title="Eclipse (software)">Eclipse</a> and <a href="http://fakehost/wiki/LibreOffice" title="LibreOffice">LibreOffice</a>.<sup class="reference" id="cite_ref-59"><a href="#cite_note-59">[59]</a></sup></p>
- <h3><span class="mw-headline" id="Components">Components</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=12" title="Edit section: Components">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p><a href="http://fakehost/wiki/Bugzilla" title="Bugzilla">Bugzilla</a> is a <a href="http://fakehost/wiki/World_Wide_Web" title="World Wide Web">web</a>-based general-purpose <a href="http://fakehost/wiki/Bug_tracking_system" title="Bug tracking system">bug tracking system</a>, which was released as <a href="http://fakehost/wiki/Open_source_software" title="Open source software">open source software</a> by <a href="http://fakehost/wiki/Netscape_Communications" title="Netscape Communications">Netscape Communications</a> in 1998 along with the rest of the Mozilla codebase, and is currently stewarded by Mozilla. It has been adopted by a variety of organizations for use as a <a href="http://fakehost/wiki/Bug_tracking_system" title="Bug tracking system">bug tracking system</a> for both <a href="http://fakehost/wiki/Free_and_open_source_software" title="Free and open source software">free and open source software</a> and <a href="http://fakehost/wiki/Proprietary_software" title="Proprietary software">proprietary</a> projects and products, including the <a href="http://fakehost/wiki/The_Mozilla_Foundation" title="The Mozilla Foundation">Mozilla Foundation</a>, the <a href="http://fakehost/wiki/Linux_kernel" title="Linux kernel">Linux kernel</a>, <a href="http://fakehost/wiki/GNOME" title="GNOME">GNOME</a>, <a href="http://fakehost/wiki/KDE" title="KDE">KDE</a>, <a href="http://fakehost/wiki/Red_Hat" title="Red Hat">Red Hat</a>, <a href="http://fakehost/wiki/Novell" title="Novell">Novell</a>, <a href="http://fakehost/wiki/Eclipse_(software)" title="Eclipse (software)">Eclipse</a> and <a href="http://fakehost/wiki/LibreOffice" title="LibreOffice">LibreOffice</a>.<sup id="cite_ref-59"><a href="#cite_note-59">[59]</a></sup></p>
+ <h3><span id="Components">Components</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=12" title="Edit section: Components">edit</a><span>]</span></span>
</h3>
- <h4><span class="mw-headline" id="NSS">NSS</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=13" title="Edit section: NSS">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h4><span id="NSS">NSS</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=13" title="Edit section: NSS">edit</a><span>]</span></span>
</h4>
- <p><a href="http://fakehost/wiki/Network_Security_Services" title="Network Security Services">Network Security Services</a> (NSS) comprises a set of <a href="http://fakehost/wiki/Library_(computing)" title="Library (computing)">libraries</a> designed to support <a href="http://fakehost/wiki/Cross-platform" title="Cross-platform">cross-platform</a> development of security-enabled client and server applications. NSS provides a complete open-source implementation of crypto libraries supporting <a class="mw-redirect" href="http://fakehost/wiki/Secure_Sockets_Layer" title="Secure Sockets Layer">SSL</a> and <a href="http://fakehost/wiki/S/MIME" title="S/MIME">S/MIME</a>. NSS was previously <a href="http://fakehost/wiki/Multi-licensing" title="Multi-licensing">tri-licensed</a> under the <a href="http://fakehost/wiki/Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a> 1.1, the <a href="http://fakehost/wiki/GNU_General_Public_License" title="GNU General Public License">GNU General Public License</a>, and the <a class="mw-redirect" href="http://fakehost/wiki/LGPL" title="LGPL">GNU Lesser General Public License</a>, but upgraded to GPL-compatible MPL 2.0.</p>
+ <p><a href="http://fakehost/wiki/Network_Security_Services" title="Network Security Services">Network Security Services</a> (NSS) comprises a set of <a href="http://fakehost/wiki/Library_(computing)" title="Library (computing)">libraries</a> designed to support <a href="http://fakehost/wiki/Cross-platform" title="Cross-platform">cross-platform</a> development of security-enabled client and server applications. NSS provides a complete open-source implementation of crypto libraries supporting <a href="http://fakehost/wiki/Secure_Sockets_Layer" title="Secure Sockets Layer">SSL</a> and <a href="http://fakehost/wiki/S/MIME" title="S/MIME">S/MIME</a>. NSS was previously <a href="http://fakehost/wiki/Multi-licensing" title="Multi-licensing">tri-licensed</a> under the <a href="http://fakehost/wiki/Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a> 1.1, the <a href="http://fakehost/wiki/GNU_General_Public_License" title="GNU General Public License">GNU General Public License</a>, and the <a href="http://fakehost/wiki/LGPL" title="LGPL">GNU Lesser General Public License</a>, but upgraded to GPL-compatible MPL 2.0.</p>
<p><a href="http://fakehost/wiki/AOL" title="AOL">AOL</a>, <a href="http://fakehost/wiki/Red_Hat" title="Red Hat">Red Hat</a>, <a href="http://fakehost/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>/<a href="http://fakehost/wiki/Oracle_Corporation" title="Oracle Corporation">Oracle Corporation</a>, <a href="http://fakehost/wiki/Google" title="Google">Google</a> and other companies and individual contributors have co-developed NSS and it is used in a wide range of non-Mozilla products including <a href="http://fakehost/wiki/Evolution_(software)" title="Evolution (software)">Evolution</a>, <a href="http://fakehost/wiki/Pidgin_(software)" title="Pidgin (software)">Pidgin</a>, and <a href="http://fakehost/wiki/Apache_OpenOffice" title="Apache OpenOffice">Apache OpenOffice</a>.</p>
- <h4><span class="mw-headline" id="SpiderMonkey">SpiderMonkey</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=14" title="Edit section: SpiderMonkey">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h4><span id="SpiderMonkey">SpiderMonkey</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=14" title="Edit section: SpiderMonkey">edit</a><span>]</span></span>
</h4>
- <p><a class="mw-redirect" href="http://fakehost/wiki/SpiderMonkey_(software)" title="SpiderMonkey (software)">SpiderMonkey</a> is the original <a href="http://fakehost/wiki/JavaScript_engine" title="JavaScript engine">JavaScript engine</a> developed by <a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> when he invented <a href="http://fakehost/wiki/JavaScript" title="JavaScript">JavaScript</a> in 1995 as a developer at <a href="http://fakehost/wiki/Netscape" title="Netscape">Netscape</a>. It became part of the Mozilla product family when Mozilla inherited Netscape's code-base in 1998. In 2011, Eich transferred the nominal ownership of the SpiderMonkey code and project to Dave Mandelin.<sup class="reference" id="cite_ref-BE201106_60-0"><a href="#cite_note-BE201106-60">[60]</a></sup></p>
- <p>SpiderMonkey is a <a href="http://fakehost/wiki/Cross-platform" title="Cross-platform">cross-platform</a> engine written in <a href="http://fakehost/wiki/C%2B%2B" title="C++">C++</a> which implements <a href="http://fakehost/wiki/ECMAScript" title="ECMAScript">ECMAScript</a>, a standard developed from JavaScript.<sup class="reference" id="cite_ref-BE201106_60-1"><a href="#cite_note-BE201106-60">[60]</a></sup><sup class="reference" id="cite_ref-61"><a href="#cite_note-61">[61]</a></sup> It comprises an <a href="http://fakehost/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreter</a>, several <a href="http://fakehost/wiki/Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilers</a>, a <a href="http://fakehost/wiki/Decompiler" title="Decompiler">decompiler</a> and a <a href="http://fakehost/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collector</a>. Products which embed SpiderMonkey include <a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a>, <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a>, <a href="http://fakehost/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a>, and many non-Mozilla applications.<sup class="reference" id="cite_ref-62"><a href="#cite_note-62">[62]</a></sup></p>
- <h4><span class="mw-headline" id="Rhino">Rhino</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=15" title="Edit section: Rhino">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p><a href="http://fakehost/wiki/SpiderMonkey_(software)" title="SpiderMonkey (software)">SpiderMonkey</a> is the original <a href="http://fakehost/wiki/JavaScript_engine" title="JavaScript engine">JavaScript engine</a> developed by <a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> when he invented <a href="http://fakehost/wiki/JavaScript" title="JavaScript">JavaScript</a> in 1995 as a developer at <a href="http://fakehost/wiki/Netscape" title="Netscape">Netscape</a>. It became part of the Mozilla product family when Mozilla inherited Netscape's code-base in 1998. In 2011, Eich transferred the nominal ownership of the SpiderMonkey code and project to Dave Mandelin.<sup id="cite_ref-BE201106_60-0"><a href="#cite_note-BE201106-60">[60]</a></sup></p>
+ <p>SpiderMonkey is a <a href="http://fakehost/wiki/Cross-platform" title="Cross-platform">cross-platform</a> engine written in <a href="http://fakehost/wiki/C%2B%2B" title="C++">C++</a> which implements <a href="http://fakehost/wiki/ECMAScript" title="ECMAScript">ECMAScript</a>, a standard developed from JavaScript.<sup id="cite_ref-BE201106_60-1"><a href="#cite_note-BE201106-60">[60]</a></sup><sup id="cite_ref-61"><a href="#cite_note-61">[61]</a></sup> It comprises an <a href="http://fakehost/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreter</a>, several <a href="http://fakehost/wiki/Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilers</a>, a <a href="http://fakehost/wiki/Decompiler" title="Decompiler">decompiler</a> and a <a href="http://fakehost/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collector</a>. Products which embed SpiderMonkey include <a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a>, <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a>, <a href="http://fakehost/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a>, and many non-Mozilla applications.<sup id="cite_ref-62"><a href="#cite_note-62">[62]</a></sup></p>
+ <h4><span id="Rhino">Rhino</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=15" title="Edit section: Rhino">edit</a><span>]</span></span>
</h4>
- <p>Rhino is an <a class="mw-redirect" href="http://fakehost/wiki/Open_source" title="Open source">open source</a> <a href="http://fakehost/wiki/JavaScript_engine" title="JavaScript engine">JavaScript engine</a> managed by the <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a>. It is developed entirely in <a href="http://fakehost/wiki/Java_(programming_language)" title="Java (programming language)">Java</a>. Rhino converts JavaScript scripts into Java <a href="http://fakehost/wiki/Class_(computer_programming)" title="Class (computer programming)">classes</a>. Rhino works in both <a href="http://fakehost/wiki/Compiler" title="Compiler">compiled</a> and <a href="http://fakehost/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreted</a> mode.<sup class="reference" id="cite_ref-63"><a href="#cite_note-63">[63]</a></sup></p>
- <h4><span class="mw-headline" id="Gecko">Gecko</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=16" title="Edit section: Gecko">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>Rhino is an <a href="http://fakehost/wiki/Open_source" title="Open source">open source</a> <a href="http://fakehost/wiki/JavaScript_engine" title="JavaScript engine">JavaScript engine</a> managed by the <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a>. It is developed entirely in <a href="http://fakehost/wiki/Java_(programming_language)" title="Java (programming language)">Java</a>. Rhino converts JavaScript scripts into Java <a href="http://fakehost/wiki/Class_(computer_programming)" title="Class (computer programming)">classes</a>. Rhino works in both <a href="http://fakehost/wiki/Compiler" title="Compiler">compiled</a> and <a href="http://fakehost/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreted</a> mode.<sup id="cite_ref-63"><a href="#cite_note-63">[63]</a></sup></p>
+ <h4><span id="Gecko">Gecko</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=16" title="Edit section: Gecko">edit</a><span>]</span></span>
</h4>
- <p><a class="mw-redirect" href="http://fakehost/wiki/Gecko_(layout_engine)" title="Gecko (layout engine)">Gecko</a> is a <a href="http://fakehost/wiki/Web_browser_engine" title="Web browser engine">layout engine</a> that supports web pages written using <a href="http://fakehost/wiki/HTML" title="HTML">HTML</a>, <a href="http://fakehost/wiki/Scalable_Vector_Graphics" title="Scalable Vector Graphics">SVG</a>, and <a href="http://fakehost/wiki/MathML" title="MathML">MathML</a>. Gecko is written in <a href="http://fakehost/wiki/C%2B%2B" title="C++">C++</a> and uses <a class="mw-redirect" href="http://fakehost/wiki/NSPR" title="NSPR">NSPR</a> for <a class="mw-redirect" href="http://fakehost/wiki/Platform_independence" title="Platform independence">platform independence</a>. Its source code is licensed under the <a href="http://fakehost/wiki/Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a>.</p>
+ <p><a href="http://fakehost/wiki/Gecko_(layout_engine)" title="Gecko (layout engine)">Gecko</a> is a <a href="http://fakehost/wiki/Web_browser_engine" title="Web browser engine">layout engine</a> that supports web pages written using <a href="http://fakehost/wiki/HTML" title="HTML">HTML</a>, <a href="http://fakehost/wiki/Scalable_Vector_Graphics" title="Scalable Vector Graphics">SVG</a>, and <a href="http://fakehost/wiki/MathML" title="MathML">MathML</a>. Gecko is written in <a href="http://fakehost/wiki/C%2B%2B" title="C++">C++</a> and uses <a href="http://fakehost/wiki/NSPR" title="NSPR">NSPR</a> for <a href="http://fakehost/wiki/Platform_independence" title="Platform independence">platform independence</a>. Its source code is licensed under the <a href="http://fakehost/wiki/Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a>.</p>
<p>Firefox uses Gecko both for rendering web pages and for rendering its <a href="http://fakehost/wiki/User_interface" title="User interface">user interface</a>. Gecko is also used by Thunderbird, SeaMonkey, and many non-Mozilla applications.</p>
- <h4><span class="mw-headline" id="Rust">Rust</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=17" title="Edit section: Rust">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h4><span id="Rust">Rust</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=17" title="Edit section: Rust">edit</a><span>]</span></span>
</h4>
<p><a href="http://fakehost/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a> is a compiled <a href="http://fakehost/wiki/Programming_language" title="Programming language">programming language</a> being developed by Mozilla Research. It is designed for safety, concurrency, and performance. Rust is intended for creating large and complex software which needs to be both safe against exploits and fast.</p>
- <p>Rust is being used in an experimental layout engine, <a href="http://fakehost/wiki/Servo_(layout_engine)" title="Servo (layout engine)">Servo</a>, which is developed by Mozilla and Samsung. Servo is not used in any consumer-oriented browsers yet. However, the Servo project developers plan for parts of the Servo source code to be merged into Gecko, and Firefox, incrementally.<sup class="reference" id="cite_ref-64"><a href="#cite_note-64">[64]</a></sup><sup class="reference" id="cite_ref-65"><a href="#cite_note-65">[65]</a></sup></p>
- <h4><span class="mw-headline" id="XULRunner">XULRunner</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=18" title="Edit section: XULRunner">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>Rust is being used in an experimental layout engine, <a href="http://fakehost/wiki/Servo_(layout_engine)" title="Servo (layout engine)">Servo</a>, which is developed by Mozilla and Samsung. Servo is not used in any consumer-oriented browsers yet. However, the Servo project developers plan for parts of the Servo source code to be merged into Gecko, and Firefox, incrementally.<sup id="cite_ref-64"><a href="#cite_note-64">[64]</a></sup><sup id="cite_ref-65"><a href="#cite_note-65">[65]</a></sup></p>
+ <h4><span id="XULRunner">XULRunner</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=18" title="Edit section: XULRunner">edit</a><span>]</span></span>
</h4>
<p><a href="http://fakehost/wiki/XULRunner" title="XULRunner">XULRunner</a> is a software platform and technology experiment by Mozilla, that allows applications built with the same technologies used by Firefox extensions (XPCOM, Javascript, HTML, CSS, XUL) to be run natively as desktop applications, without requiring Firefox to be installed on the user's machine. XULRunner binaries are available for the Windows, GNU/Linux and OS X operating systems, allowing such applications to be effectively cross platform.</p>
- <h4><span class="mw-headline" id="pdf.js">pdf.js</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=19" title="Edit section: pdf.js">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h4><span id="pdf.js">pdf.js</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=19" title="Edit section: pdf.js">edit</a><span>]</span></span>
</h4>
- <p><a class="mw-redirect" href="http://fakehost/wiki/Pdf.js" title="Pdf.js">Pdf.js</a> is a library developed by Mozilla that allows in-browser rendering of pdf documents using the HTML5 Canvas and Javascript. It is included by default in recent versions of Firefox, allowing the browser to render pdf documents without requiring an external plugin; and it is available separately as an extension named "PDF Viewer" for Firefox for Android, SeaMonkey, and the Firefox versions which don't include it built-in. It can also be included as part of a website's scripts, to allow pdf rendering for any browser that implements the required HTML5 features and can run Javascript.</p>
- <h4><span class="mw-headline" id="Shumway">Shumway</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=20" title="Edit section: Shumway">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p><a href="http://fakehost/wiki/Pdf.js" title="Pdf.js">Pdf.js</a> is a library developed by Mozilla that allows in-browser rendering of pdf documents using the HTML5 Canvas and Javascript. It is included by default in recent versions of Firefox, allowing the browser to render pdf documents without requiring an external plugin; and it is available separately as an extension named "PDF Viewer" for Firefox for Android, SeaMonkey, and the Firefox versions which don't include it built-in. It can also be included as part of a website's scripts, to allow pdf rendering for any browser that implements the required HTML5 features and can run Javascript.</p>
+ <h4><span id="Shumway">Shumway</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=20" title="Edit section: Shumway">edit</a><span>]</span></span>
</h4>
<p><a href="http://fakehost/wiki/Shumway_(software)" title="Shumway (software)">Shumway</a> is an open source replacement for the Adobe Flash Player, developed by Mozilla since 2012, using open web technologies as a replacement for Flash technologies. It uses Javascript and HTML5 Canvas elements to render Flash and execute Actionscript. It is included by default in Firefox Nightly and can be installed as an extension for any recent version of Firefox. The current implementation is limited in its capabilities to render Flash content outside simple projects.</p>
- <h2><span class="mw-headline" id="Other_activities">Other activities</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=21" title="Edit section: Other activities">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h2><span id="Other_activities">Other activities</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=21" title="Edit section: Other activities">edit</a><span>]</span></span>
</h2>
- <h3><span class="mw-headline" id="Mozilla_VR">Mozilla VR</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=22" title="Edit section: Mozilla VR">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h3><span id="Mozilla_VR">Mozilla VR</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=22" title="Edit section: Mozilla VR">edit</a><span>]</span></span>
</h3>
- <p>Mozilla VR is a team focused on bringing <a href="http://fakehost/wiki/Virtual_reality" title="Virtual reality">Virtual reality</a> tools, specifications, and standards to the open Web.<sup class="reference" id="cite_ref-66"><a href="#cite_note-66">[66]</a></sup> Mozilla VR maintains <a href="http://fakehost/wiki/A-Frame_(VR)" title="A-Frame (VR)">A-Frame (VR)</a>, a web framework for building VR experiences, and works on advancing <a href="http://fakehost/wiki/WebVR" title="WebVR">WebVR</a> support within web browsers.</p>
- <h3><span class="mw-headline" id="Mozilla_Persona">Mozilla Persona</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=23" title="Edit section: Mozilla Persona">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>Mozilla VR is a team focused on bringing <a href="http://fakehost/wiki/Virtual_reality" title="Virtual reality">Virtual reality</a> tools, specifications, and standards to the open Web.<sup id="cite_ref-66"><a href="#cite_note-66">[66]</a></sup> Mozilla VR maintains <a href="http://fakehost/wiki/A-Frame_(VR)" title="A-Frame (VR)">A-Frame (VR)</a>, a web framework for building VR experiences, and works on advancing <a href="http://fakehost/wiki/WebVR" title="WebVR">WebVR</a> support within web browsers.</p>
+ <h3><span id="Mozilla_Persona">Mozilla Persona</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=23" title="Edit section: Mozilla Persona">edit</a><span>]</span></span>
</h3>
- <p><a href="http://fakehost/wiki/Mozilla_Persona" title="Mozilla Persona">Mozilla Persona</a> is a secure, cross-browser website <a href="http://fakehost/wiki/Authentication" title="Authentication">authentication</a> mechanism which allows a user to use a single username and password (or other authentication method) to log in to multiple sites.<sup class="reference" id="cite_ref-67"><a href="#cite_note-67">[67]</a></sup> Mozilla Persona will be shutting down on November 30, 2016.<sup class="reference" id="cite_ref-68"><a href="#cite_note-68">[68]</a></sup></p>
- <h3><span class="mw-headline" id="Mozilla_Location_Service">Mozilla Location Service</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=24" title="Edit section: Mozilla Location Service">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p><a href="http://fakehost/wiki/Mozilla_Persona" title="Mozilla Persona">Mozilla Persona</a> is a secure, cross-browser website <a href="http://fakehost/wiki/Authentication" title="Authentication">authentication</a> mechanism which allows a user to use a single username and password (or other authentication method) to log in to multiple sites.<sup id="cite_ref-67"><a href="#cite_note-67">[67]</a></sup> Mozilla Persona will be shutting down on November 30, 2016.<sup id="cite_ref-68"><a href="#cite_note-68">[68]</a></sup></p>
+ <h3><span id="Mozilla_Location_Service">Mozilla Location Service</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=24" title="Edit section: Mozilla Location Service">edit</a><span>]</span></span>
</h3>
<p>This open source crowdsourced geolocation service was started by Mozilla in 2013 and offers a free <a href="http://fakehost/wiki/Application_programming_interface" title="Application programming interface">API</a>.</p>
- <h3><span class="mw-headline" id="Webmaker">Webmaker</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=25" title="Edit section: Webmaker">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h3><span id="Webmaker">Webmaker</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=25" title="Edit section: Webmaker">edit</a><span>]</span></span>
</h3>
- <p>Mozilla Webmaker is Mozilla's educational initiative, Webmaker's goal is to "help millions of people move from using the web to making the web." As part of Mozilla’s non-profit mission, Webmaker aims "to help the world increase their understanding of the web, take greater control of their online lives, and create a more web literate planet."<sup class="reference" id="cite_ref-69"><a href="#cite_note-69">[69]</a></sup><sup class="reference" id="cite_ref-lifehacker.com_70-0"><a href="#cite_note-lifehacker.com-70">[70]</a></sup><sup class="reference" id="cite_ref-lifehacker.com_70-1"><a href="#cite_note-lifehacker.com-70">[70]</a></sup></p>
- <h3><span class="mw-headline" id="Mozilla_Developer_Network">Mozilla Developer Network</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=26" title="Edit section: Mozilla Developer Network">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>Mozilla Webmaker is Mozilla's educational initiative, Webmaker's goal is to "help millions of people move from using the web to making the web." As part of Mozilla’s non-profit mission, Webmaker aims "to help the world increase their understanding of the web, take greater control of their online lives, and create a more web literate planet."<sup id="cite_ref-69"><a href="#cite_note-69">[69]</a></sup><sup id="cite_ref-lifehacker.com_70-0"><a href="#cite_note-lifehacker.com-70">[70]</a></sup><sup id="cite_ref-lifehacker.com_70-1"><a href="#cite_note-lifehacker.com-70">[70]</a></sup></p>
+ <h3><span id="Mozilla_Developer_Network">Mozilla Developer Network</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=26" title="Edit section: Mozilla Developer Network">edit</a><span>]</span></span>
</h3>
- <p>Mozilla maintains a comprehensive developer documentation website called the <a href="http://fakehost/wiki/Mozilla_Developer_Network" title="Mozilla Developer Network">Mozilla Developer Network</a> which contains information about web technologies including <a href="http://fakehost/wiki/HTML" title="HTML">HTML</a>, <a class="mw-redirect" href="http://fakehost/wiki/CSS" title="CSS">CSS</a>, <a class="mw-redirect" href="http://fakehost/wiki/SVG" title="SVG">SVG</a>, <a href="http://fakehost/wiki/JavaScript" title="JavaScript">JavaScript</a>, as well Mozilla-specific information. In addition, Mozilla publishes a large number of videos about web technologies and the development of Mozilla projects on the Air Mozilla website.<sup class="reference" id="cite_ref-71"><a href="#cite_note-71">[71]</a></sup><sup class="reference" id="cite_ref-72"><a href="#cite_note-72">[72]</a></sup></p>
- <h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=27" title="Edit section: Community">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>Mozilla maintains a comprehensive developer documentation website called the <a href="http://fakehost/wiki/Mozilla_Developer_Network" title="Mozilla Developer Network">Mozilla Developer Network</a> which contains information about web technologies including <a href="http://fakehost/wiki/HTML" title="HTML">HTML</a>, <a href="http://fakehost/wiki/CSS" title="CSS">CSS</a>, <a href="http://fakehost/wiki/SVG" title="SVG">SVG</a>, <a href="http://fakehost/wiki/JavaScript" title="JavaScript">JavaScript</a>, as well Mozilla-specific information. In addition, Mozilla publishes a large number of videos about web technologies and the development of Mozilla projects on the Air Mozilla website.<sup id="cite_ref-71"><a href="#cite_note-71">[71]</a></sup><sup id="cite_ref-72"><a href="#cite_note-72">[72]</a></sup></p>
+ <h2><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=27" title="Edit section: Community">edit</a><span>]</span></span>
</h2>
- <p>The Mozilla Community consists of over 40,000 active contributors from across the globe<sup class="noprint Inline-Template Template-Fact">[<i><a href="http://fakehost/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (July 2015)">citation needed</span></a></i>]</sup>. It includes both paid employees and volunteers who work towards the goals set forth<sup class="reference" id="cite_ref-manifesto_40-1"><a href="#cite_note-manifesto-40">[40]</a></sup> in the Mozilla Manifesto. Many of the sub-communities in Mozilla have formed around localization efforts for Mozilla Firefox, and the Mozilla web properties.</p>
- <h3><span class="mw-headline" id="Local_communities">Local communities</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=28" title="Edit section: Local communities">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p>The Mozilla Community consists of over 40,000 active contributors from across the globe<sup>[<i><a href="http://fakehost/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (July 2015)">citation needed</span></a></i>]</sup>. It includes both paid employees and volunteers who work towards the goals set forth<sup id="cite_ref-manifesto_40-1"><a href="#cite_note-manifesto-40">[40]</a></sup> in the Mozilla Manifesto. Many of the sub-communities in Mozilla have formed around localization efforts for Mozilla Firefox, and the Mozilla web properties.</p>
+ <h3><span id="Local_communities">Local communities</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=28" title="Edit section: Local communities">edit</a><span>]</span></span>
</h3>
- <div class="thumb tright">
- <div class="thumbinner">
- <a class="image" href="http://fakehost/wiki/File:London_Mozilla_Workspace.jpg"><img alt="" class="thumbimage" data-file-height="1656" data-file-width="2500" height="146" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/220px-London_Mozilla_Workspace.jpg" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/330px-London_Mozilla_Workspace.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/440px-London_Mozilla_Workspace.jpg 2x" width="220"></img></a>
+ <div>
+ <div>
+ <a href="http://fakehost/wiki/File:London_Mozilla_Workspace.jpg"><img alt="" data-file-height="1656" data-file-width="2500" height="146" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/220px-London_Mozilla_Workspace.jpg" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/330px-London_Mozilla_Workspace.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/440px-London_Mozilla_Workspace.jpg 2x" width="220"></img></a>
</div>
</div>
<p>There are a number of sub-communities that exist based on their geographical locations, where contributors near each other work together on particular activities, such as localization, marketing, PR and user support.</p>
- <h3><span class="mw-headline" id="Mozilla_Reps">Mozilla Reps</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=29" title="Edit section: Mozilla Reps">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h3><span id="Mozilla_Reps">Mozilla Reps</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=29" title="Edit section: Mozilla Reps">edit</a><span>]</span></span>
</h3>
- <div class="thumb tright">
- <div class="thumbinner">
- <a class="image" href="http://fakehost/wiki/File:Mozilla_Reps.png"><img alt="" class="thumbimage" data-file-height="183" data-file-width="400" height="101" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Mozilla_Reps.png/220px-Mozilla_Reps.png" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Mozilla_Reps.png/330px-Mozilla_Reps.png 1.5x, //upload.wikimedia.org/wikipedia/commons/0/0b/Mozilla_Reps.png 2x" width="220"></img></a>
+ <div>
+ <div>
+ <a href="http://fakehost/wiki/File:Mozilla_Reps.png"><img alt="" data-file-height="183" data-file-width="400" height="101" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Mozilla_Reps.png/220px-Mozilla_Reps.png" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Mozilla_Reps.png/330px-Mozilla_Reps.png 1.5x, //upload.wikimedia.org/wikipedia/commons/0/0b/Mozilla_Reps.png 2x" width="220"></img></a>
</div>
</div>
@@ -173,258 +173,258 @@
<li>Inspire, recruit and support new contributors</li>
<li>Support and mentor future Mozilla Reps</li>
<li>Document clearly all their activities</li>
- </ul><h3><span class="mw-headline" id="Conferences_and_events">Conferences and events</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=30" title="Edit section: Conferences and events">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </ul><h3><span id="Conferences_and_events">Conferences and events</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=30" title="Edit section: Conferences and events">edit</a><span>]</span></span>
</h3>
- <h4><span class="mw-headline" id="Mozilla_Festival">Mozilla Festival</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=31" title="Edit section: Mozilla Festival">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h4><span id="Mozilla_Festival">Mozilla Festival</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=31" title="Edit section: Mozilla Festival">edit</a><span>]</span></span>
</h4>
- <div class="thumb tright">
- <div class="thumbinner">
- <a class="image" href="http://fakehost/wiki/File:Fireside_Chat,_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg"><img alt="" class="thumbimage" data-file-height="854" data-file-width="1280" height="147" src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/220px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/330px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/440px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg 2x" width="220"></img></a>
- <div class="thumbcaption">
+ <div>
+ <div>
+ <a href="http://fakehost/wiki/File:Fireside_Chat,_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg"><img alt="" data-file-height="854" data-file-width="1280" height="147" src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/220px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/330px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/440px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg 2x" width="220"></img></a>
+ <div>
<p>
- Speakers from the </p><a class="mw-redirect" href="http://fakehost/wiki/Knight_Foundation" title="Knight Foundation">Knight Foundation</a><p> discuss the future of news at the 2011 Mozilla Festival in London.</p></div>
+ Speakers from the </p><a href="http://fakehost/wiki/Knight_Foundation" title="Knight Foundation">Knight Foundation</a><p> discuss the future of news at the 2011 Mozilla Festival in London.</p></div>
</div>
</div>
<p>The Mozilla Festival is an annual event where hundreds of passionate people explore the Web, learn together and make things that can change the world. With the emphasis on <i>making</i>—the mantra of the Festival is "less yack, more hack." Journalists, coders, filmmakers, designers, educators, gamers, makers, youth and anyone else, from all over the world, are encouraged to attend, with attendees from more than 40 countries, working together at the intersection between freedom, the Web, and that years theme.</p>
<p>The event revolves around design challenges which address key issues based on the chosen theme for that years festival. In previous years the Mozilla Festival has focused on Learning, and Media, with the 2012 festival being based around making. The titles of the festival revolve around the main theme, freedom (as in freedom of speech not free beer), and the Web.</p>
- <h4><span class="mw-headline" id="MozCamps">MozCamps</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=32" title="Edit section: MozCamps">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h4><span id="MozCamps">MozCamps</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=32" title="Edit section: MozCamps">edit</a><span>]</span></span>
</h4>
<p>MozCamps are the critical part of the Grow Mozilla initiative which aims to grow the Mozilla Community. These camps aim to bring core contributors from around the world together. They are intensive multi-day summits that include keynote speeches by Mozilla leadership, workshops and breakout sessions (led by paid and unpaid staff), and fun social outings. All of these activities combine to reward contributors for their hard work, engage them with new products and initiatives, and align all attendees on Mozilla's mission.</p>
- <h4><span class="mw-headline" id="Mozilla_Summit">Mozilla Summit</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=33" title="Edit section: Mozilla Summit">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h4><span id="Mozilla_Summit">Mozilla Summit</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=33" title="Edit section: Mozilla Summit">edit</a><span>]</span></span>
</h4>
<p>Mozilla Summit are the global event with active contributors and Mozilla employees to develop a shared understanding of Mozilla's mission together. Over 2,000 people representing 90 countries and 114 languages gathered in Santa Clara, Toronto and Brussels in 2013. Mozilla has since its last summit in 2013 replaced summits with all-hands where both employees and volunteers come together to collaborate the event is a scaled down version of Mozilla Summit.</p>
- <h2><span class="mw-headline" id="See_also">See also</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=34" title="Edit section: See also">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <h2><span id="See_also">See also</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=34" title="Edit section: See also">edit</a><span>]</span></span>
</h2>
- <ul><li><a class="mw-redirect" href="http://fakehost/wiki/-zilla_(suffix)" title="-zilla (suffix)">-zilla (suffix)</a></li>
+ <ul><li><a href="http://fakehost/wiki/-zilla_(suffix)" title="-zilla (suffix)">-zilla (suffix)</a></li>
<li><a href="http://fakehost/wiki/Mozilla_(mascot)" title="Mozilla (mascot)">Mozilla (mascot)</a></li>
<li><i><a href="http://fakehost/wiki/The_Book_of_Mozilla" title="The Book of Mozilla">The Book of Mozilla</a></i></li>
<li><a href="http://fakehost/wiki/Timeline_of_web_browsers" title="Timeline of web browsers">Timeline of web browsers</a></li>
- </ul><h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=35" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </ul><h2><span id="References">References</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=35" title="Edit section: References">edit</a><span>]</span></span>
</h2>
- <div class="reflist references-column-width">
- <ol class="references"><li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text">For exceptions, see "Values" section below</span></li>
- <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://www.mozilla.org/foundation/moco/" rel="nofollow">"About the Mozilla Corporation"</a>. Mozilla Foundation.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=About+the+Mozilla+Corporation&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Ffoundation%2Fmoco%2F&amp;rft.pub=Mozilla+Foundation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <div>
+ <ol><li id="cite_note-1"><span><b><a href="#cite_ref-1">^</a></b></span> <span>For exceptions, see "Values" section below</span></li>
+ <li id="cite_note-2"><span><b><a href="#cite_ref-2">^</a></b></span> <span><cite><a href="https://www.mozilla.org/foundation/moco/" rel="nofollow">"About the Mozilla Corporation"</a>. Mozilla Foundation.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=About+the+Mozilla+Corporation&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Ffoundation%2Fmoco%2F&amp;rft.pub=Mozilla+Foundation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.oreilly.com/openbook/opensources/book/netrev.html" rel="nofollow">"Freeing the Source: The Story of Mozilla"</a>. <i>Open Sources: Voices from the Open Source Revolution</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-05-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Freeing+the+Source%3A+The+Story+of+Mozilla&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.oreilly.com%2Fopenbook%2Fopensources%2Fbook%2Fnetrev.html&amp;rft.jtitle=Open+Sources%3A+Voices+from+the+Open+Source+Revolution&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-3"><span><b><a href="#cite_ref-3">^</a></b></span> <span><cite><a href="http://www.oreilly.com/openbook/opensources/book/netrev.html" rel="nofollow">"Freeing the Source: The Story of Mozilla"</a>. <i>Open Sources: Voices from the Open Source Revolution</i><span>. Retrieved <span>2016-05-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Freeing+the+Source%3A+The+Story+of+Mozilla&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.oreilly.com%2Fopenbook%2Fopensources%2Fbook%2Fnetrev.html&amp;rft.jtitle=Open+Sources%3A+Voices+from+the+Open+Source+Revolution&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://whois.domaintools.com/mozilla.org" rel="nofollow">"Mozilla.org WHOIS, DNS, &amp; Domain Info"</a>. <i>DomainTools</i><span class="reference-accessdate">. Retrieved <span class="nowrap">1 May</span> 2016</span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla.org+WHOIS%2C+DNS%2C+%26+Domain+Info&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwhois.domaintools.com%2Fmozilla.org&amp;rft.jtitle=DomainTools&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-4"><span><b><a href="#cite_ref-4">^</a></b></span> <span><cite><a href="https://whois.domaintools.com/mozilla.org" rel="nofollow">"Mozilla.org WHOIS, DNS, &amp; Domain Info"</a>. <i>DomainTools</i><span>. Retrieved <span>1 May</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla.org+WHOIS%2C+DNS%2C+%26+Domain+Info&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwhois.domaintools.com%2Fmozilla.org&amp;rft.jtitle=DomainTools&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-google-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-google_5-0">^</a></b></span> <span class="reference-text"><cite class="citation book">Payment, S. (2007). <a class="external text" href="http://books.google.co.uk/books?id=zyIvOn7sKCsC" rel="nofollow"><i>Marc Andreessen and Jim Clark: The Founders of Netscape</i></a>. Rosen Publishing Group. <a href="http://fakehost/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="http://fakehost/wiki/Special:BookSources/9781404207196" title="Special:BookSources/9781404207196">9781404207196</a>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=Payment%2C+S.&amp;rft.btitle=Marc+Andreessen+and+Jim+Clark%3A+The+Founders+of+Netscape&amp;rft.date=2007&amp;rft.genre=book&amp;rft_id=%2F%2Fbooks.google.co.uk%2Fbooks%3Fid%3DzyIvOn7sKCsC&amp;rft.isbn=9781404207196&amp;rft.pub=Rosen+Publishing+Group&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-google-5"><span><b><a href="#cite_ref-google_5-0">^</a></b></span> <span><cite>Payment, S. (2007). <a href="http://books.google.co.uk/books?id=zyIvOn7sKCsC" rel="nofollow"><i>Marc Andreessen and Jim Clark: The Founders of Netscape</i></a>. Rosen Publishing Group. <a href="http://fakehost/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="http://fakehost/wiki/Special:BookSources/9781404207196" title="Special:BookSources/9781404207196">9781404207196</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=Payment%2C+S.&amp;rft.btitle=Marc+Andreessen+and+Jim+Clark%3A+The+Founders+of+Netscape&amp;rft.date=2007&amp;rft.genre=book&amp;rft_id=%2F%2Fbooks.google.co.uk%2Fbooks%3Fid%3DzyIvOn7sKCsC&amp;rft.isbn=9781404207196&amp;rft.pub=Rosen+Publishing+Group&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-Mozilla_Launch_Announcement-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-Mozilla_Launch_Announcement_6-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://web.archive.org/web/20021004080737/wp.netscape.com/newsref/pr/newsrelease577.html" rel="nofollow">"Netscape Announces mozilla.org, a Dedicated Team and Web Site Supporting Development of Free Client Source Code"</a>. Netscape. Archived from the original on October 4, 2002<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-21</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Netscape+Announces+mozilla.org%2C+a+Dedicated+Team+and+Web+Site+Supporting+Development+of+Free+Client+Source+Code&amp;rft.genre=unknown&amp;rft_id=%2F%2Fwp.netscape.com%2Fnewsref%2Fpr%2Fnewsrelease577.html&amp;rft.pub=Netscape&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span> </span>
+ <li id="cite_note-Mozilla_Launch_Announcement-6"><span><b><a href="#cite_ref-Mozilla_Launch_Announcement_6-0">^</a></b></span> <span><cite><a href="https://web.archive.org/web/20021004080737/wp.netscape.com/newsref/pr/newsrelease577.html" rel="nofollow">"Netscape Announces mozilla.org, a Dedicated Team and Web Site Supporting Development of Free Client Source Code"</a>. Netscape. Archived from the original on October 4, 2002<span>. Retrieved <span>2012-08-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Netscape+Announces+mozilla.org%2C+a+Dedicated+Team+and+Web+Site+Supporting+Development+of+Free+Client+Source+Code&amp;rft.genre=unknown&amp;rft_id=%2F%2Fwp.netscape.com%2Fnewsref%2Fpr%2Fnewsrelease577.html&amp;rft.pub=Netscape&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span> </span>
</li>
- <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation news"><a class="external text" href="http://www.highbeam.com/doc/1G1-20453744.html" rel="nofollow">"Mac vendors ponder Netscape gambit."</a>. <i>Macworld</i>. 1 May 1998<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-19</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mac+vendors+ponder+Netscape+gambit.&amp;rft.date=1998-05-01&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.highbeam.com%2Fdoc%2F1G1-20453744.html&amp;rft.jtitle=Macworld&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-7"><span><b><a href="#cite_ref-7">^</a></b></span> <span><cite><a href="http://www.highbeam.com/doc/1G1-20453744.html" rel="nofollow">"Mac vendors ponder Netscape gambit."</a>. <i>Macworld</i>. 1 May 1998<span>. Retrieved <span>2012-08-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mac+vendors+ponder+Netscape+gambit.&amp;rft.date=1998-05-01&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.highbeam.com%2Fdoc%2F1G1-20453744.html&amp;rft.jtitle=Macworld&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web">Zawinski, Jamie (1996). <a class="external text" href="http://www.jwz.org/gruntle/nscpdorm.html" rel="nofollow">"nscp dorm"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-10-12</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Jamie&amp;rft.aulast=Zawinski&amp;rft.btitle=nscp+dorm&amp;rft.date=1996&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.jwz.org%2Fgruntle%2Fnscpdorm.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-8"><span><b><a href="#cite_ref-8">^</a></b></span> <span><cite>Zawinski, Jamie (1996). <a href="http://www.jwz.org/gruntle/nscpdorm.html" rel="nofollow">"nscp dorm"</a><span>. Retrieved <span>2007-10-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Jamie&amp;rft.aulast=Zawinski&amp;rft.btitle=nscp+dorm&amp;rft.date=1996&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.jwz.org%2Fgruntle%2Fnscpdorm.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web">Dave Titus with assistance from Andrew Wong. <a class="external text" href="http://www.davetitus.com/mozilla/" rel="nofollow">"How was Mozilla born"</a>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=Dave+Titus+with+assistance+from+Andrew+Wong&amp;rft.btitle=How+was+Mozilla+born&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.davetitus.com%2Fmozilla%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-9"><span><b><a href="#cite_ref-9">^</a></b></span> <span><cite>Dave Titus with assistance from Andrew Wong. <a href="http://www.davetitus.com/mozilla/" rel="nofollow">"How was Mozilla born"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=Dave+Titus+with+assistance+from+Andrew+Wong&amp;rft.btitle=How+was+Mozilla+born&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.davetitus.com%2Fmozilla%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www-archive.mozilla.org/hacking/coding-introduction.html" rel="nofollow">"Introduction to Mozilla Source Code"</a>. Mozilla<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>. <q>However, mozilla.org wants to emphasize that these milestones are being produced for testing purposes only.</q></cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Introduction+to+Mozilla+Source+Code&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww-archive.mozilla.org%2Fhacking%2Fcoding-introduction.html&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-10"><span><b><a href="#cite_ref-10">^</a></b></span> <span><cite><a href="http://www-archive.mozilla.org/hacking/coding-introduction.html" rel="nofollow">"Introduction to Mozilla Source Code"</a>. Mozilla<span>. Retrieved <span>2012-08-18</span></span>. <q>However, mozilla.org wants to emphasize that these milestones are being produced for testing purposes only.</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Introduction+to+Mozilla+Source+Code&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww-archive.mozilla.org%2Fhacking%2Fcoding-introduction.html&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.mozilla.org/en-US/press/mozilla-foundation.html" rel="nofollow">"mozilla.org Announces Launch of the Mozilla Foundation to Lead Open-Source Browser Efforts"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=mozilla.org+Announces+Launch+of+the+Mozilla+Foundation+to+Lead+Open-Source+Browser+Efforts&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fen-US%2Fpress%2Fmozilla-foundation.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-11"><span><b><a href="#cite_ref-11">^</a></b></span> <span><cite><a href="http://www.mozilla.org/en-US/press/mozilla-foundation.html" rel="nofollow">"mozilla.org Announces Launch of the Mozilla Foundation to Lead Open-Source Browser Efforts"</a><span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=mozilla.org+Announces+Launch+of+the+Mozilla+Foundation+to+Lead+Open-Source+Browser+Efforts&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fen-US%2Fpress%2Fmozilla-foundation.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web"><a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Eich, Brendan</a>; <a href="http://fakehost/wiki/Dave_Hyatt" title="Dave Hyatt">David Hyatt</a> (April 2, 2003). <a class="external text" href="http://www-archive.mozilla.org/roadmap/roadmap-02-Apr-2003.html" rel="nofollow">"mozilla development roadmap"</a>. Mozilla<span class="reference-accessdate">. Retrieved <span class="nowrap">2009-08-02</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=David+Hyatt&amp;rft.aufirst=Brendan&amp;rft.aulast=Eich&amp;rft.btitle=mozilla+development+roadmap&amp;rft.date=2003-04-02&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww-archive.mozilla.org%2Froadmap%2Froadmap-02-Apr-2003.html&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-12"><span><b><a href="#cite_ref-12">^</a></b></span> <span><cite><a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Eich, Brendan</a>; <a href="http://fakehost/wiki/Dave_Hyatt" title="Dave Hyatt">David Hyatt</a> (April 2, 2003). <a href="http://www-archive.mozilla.org/roadmap/roadmap-02-Apr-2003.html" rel="nofollow">"mozilla development roadmap"</a>. Mozilla<span>. Retrieved <span>2009-08-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=David+Hyatt&amp;rft.aufirst=Brendan&amp;rft.aulast=Eich&amp;rft.btitle=mozilla+development+roadmap&amp;rft.date=2003-04-02&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww-archive.mozilla.org%2Froadmap%2Froadmap-02-Apr-2003.html&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://allthingsd.com/20120816/better-browsing-on-your-android-smartphone/" rel="nofollow">"Better Browsing on Your Android Smartphone"</a>. AllThingsD<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Better+Browsing+on+Your+Android+Smartphone&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fallthingsd.com%2F20120816%2Fbetter-browsing-on-your-android-smartphone%2F&amp;rft.pub=AllThingsD&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-13"><span><b><a href="#cite_ref-13">^</a></b></span> <span><cite><a href="http://allthingsd.com/20120816/better-browsing-on-your-android-smartphone/" rel="nofollow">"Better Browsing on Your Android Smartphone"</a>. AllThingsD<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Better+Browsing+on+Your+Android+Smartphone&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fallthingsd.com%2F20120816%2Fbetter-browsing-on-your-android-smartphone%2F&amp;rft.pub=AllThingsD&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.pcmag.com/article2/0,2817,2407468,00.asp" rel="nofollow">"Mozilla Releases Test Version of Firefox OS"</a>. PC Magazine<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Releases+Test+Version+of+Firefox+OS&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.pcmag.com%2Farticle2%2F0%2C2817%2C2407468%2C00.asp&amp;rft.pub=PC+Magazine&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-14"><span><b><a href="#cite_ref-14">^</a></b></span> <span><cite><a href="http://www.pcmag.com/article2/0,2817,2407468,00.asp" rel="nofollow">"Mozilla Releases Test Version of Firefox OS"</a>. PC Magazine<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Releases+Test+Version+of+Firefox+OS&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.pcmag.com%2Farticle2%2F0%2C2817%2C2407468%2C00.asp&amp;rft.pub=PC+Magazine&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.engadget.com/2012/06/12/mozilla-marketplace-live-web-apps-like-desktop/" rel="nofollow">"Mozilla Marketplace is live, lets you run web apps like desktop programs"</a>. Engadget<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Marketplace+is+live%2C+lets+you+run+web+apps+like+desktop+programs&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.engadget.com%2F2012%2F06%2F12%2Fmozilla-marketplace-live-web-apps-like-desktop%2F&amp;rft.pub=Engadget&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-15"><span><b><a href="#cite_ref-15">^</a></b></span> <span><cite><a href="http://www.engadget.com/2012/06/12/mozilla-marketplace-live-web-apps-like-desktop/" rel="nofollow">"Mozilla Marketplace is live, lets you run web apps like desktop programs"</a>. Engadget<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Marketplace+is+live%2C+lets+you+run+web+apps+like+desktop+programs&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.engadget.com%2F2012%2F06%2F12%2Fmozilla-marketplace-live-web-apps-like-desktop%2F&amp;rft.pub=Engadget&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web">Lardinois, Frederic (November 15, 2012). <a class="external text" href="http://techcrunch.com/2012/11/15/mozilla-releases-annual-report-for-2011-revenue-up-33-to-163m-majority-from-google/" rel="nofollow">"Mozilla Releases Annual Report For 2011: Revenue Up 33% To $163M, Majority From Google"</a>. <i>techcrunch.com</i>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+Releases+Annual+Report+For+2011%3A+Revenue+Up+33%25+To+%24163M%2C+Majority+From+Google&amp;rft.aufirst=Frederic&amp;rft.aulast=Lardinois&amp;rft.date=2012-11-15&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Ftechcrunch.com%2F2012%2F11%2F15%2Fmozilla-releases-annual-report-for-2011-revenue-up-33-to-163m-majority-from-google%2F&amp;rft.jtitle=techcrunch.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-16"><span><b><a href="#cite_ref-16">^</a></b></span> <span><cite>Lardinois, Frederic (November 15, 2012). <a href="http://techcrunch.com/2012/11/15/mozilla-releases-annual-report-for-2011-revenue-up-33-to-163m-majority-from-google/" rel="nofollow">"Mozilla Releases Annual Report For 2011: Revenue Up 33% To $163M, Majority From Google"</a>. <i>techcrunch.com</i>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+Releases+Annual+Report+For+2011%3A+Revenue+Up+33%25+To+%24163M%2C+Majority+From+Google&amp;rft.aufirst=Frederic&amp;rft.aulast=Lardinois&amp;rft.date=2012-11-15&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Ftechcrunch.com%2F2012%2F11%2F15%2Fmozilla-releases-annual-report-for-2011-revenue-up-33-to-163m-majority-from-google%2F&amp;rft.jtitle=techcrunch.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-github-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-github_17-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://github.com/cisco/openh264" rel="nofollow">"cisco/openh264 · GitHub"</a>. github.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-05</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=cisco%2Fopenh264+%B7+GitHub&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fgithub.com%2Fcisco%2Fopenh264&amp;rft.pub=github.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-github-17"><span><b><a href="#cite_ref-github_17-0">^</a></b></span> <span><cite><a href="https://github.com/cisco/openh264" rel="nofollow">"cisco/openh264 · GitHub"</a>. github.com<span>. Retrieved <span>2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=cisco%2Fopenh264+%B7+GitHub&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fgithub.com%2Fcisco%2Fopenh264&amp;rft.pub=github.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-gigaom-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-gigaom_18-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://gigaom.com/2013/10/30/mozilla-will-add-h-264-to-firefox-as-cisco-makes-eleventh-hour-push-for-webrtcs-future/" rel="nofollow">"Mozilla will add H.264 to Firefox as Cisco makes eleventh-hour push for WebRTC's future — Tech News and Analysis"</a>. gigaom.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-05</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+will+add+H.264+to+Firefox+as+Cisco+makes+eleventh-hour+push+for+WebRTC%99s+future+%26mdash%3B+Tech+News+and+Analysis&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fgigaom.com%2F2013%2F10%2F30%2Fmozilla-will-add-h-264-to-firefox-as-cisco-makes-eleventh-hour-push-for-webrtcs-future%2F&amp;rft.pub=gigaom.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-gigaom-18"><span><b><a href="#cite_ref-gigaom_18-0">^</a></b></span> <span><cite><a href="http://gigaom.com/2013/10/30/mozilla-will-add-h-264-to-firefox-as-cisco-makes-eleventh-hour-push-for-webrtcs-future/" rel="nofollow">"Mozilla will add H.264 to Firefox as Cisco makes eleventh-hour push for WebRTC's future — Tech News and Analysis"</a>. gigaom.com<span>. Retrieved <span>2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+will+add+H.264+to+Firefox+as+Cisco+makes+eleventh-hour+push+for+WebRTC%99s+future+%26mdash%3B+Tech+News+and+Analysis&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fgigaom.com%2F2013%2F10%2F30%2Fmozilla-will-add-h-264-to-firefox-as-cisco-makes-eleventh-hour-push-for-webrtcs-future%2F&amp;rft.pub=gigaom.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-techrepublic-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-techrepublic_19-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.techrepublic.com/blog/australian-technology/cisco-to-release-open-source-h264-codec-mozilla-makes-tactical-retreat/" rel="nofollow">"Cisco to release open-source H.264 codec, Mozilla makes tactical retreat - TechRepublic"</a>. techrepublic.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-05</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Cisco+to+release+open-source+H.264+codec%2C+Mozilla+makes+tactical+retreat+-+TechRepublic&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.techrepublic.com%2Fblog%2Faustralian-technology%2Fcisco-to-release-open-source-h264-codec-mozilla-makes-tactical-retreat%2F&amp;rft.pub=techrepublic.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-techrepublic-19"><span><b><a href="#cite_ref-techrepublic_19-0">^</a></b></span> <span><cite><a href="http://www.techrepublic.com/blog/australian-technology/cisco-to-release-open-source-h264-codec-mozilla-makes-tactical-retreat/" rel="nofollow">"Cisco to release open-source H.264 codec, Mozilla makes tactical retreat - TechRepublic"</a>. techrepublic.com<span>. Retrieved <span>2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Cisco+to+release+open-source+H.264+codec%2C+Mozilla+makes+tactical+retreat+-+TechRepublic&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.techrepublic.com%2Fblog%2Faustralian-technology%2Fcisco-to-release-open-source-h264-codec-mozilla-makes-tactical-retreat%2F&amp;rft.pub=techrepublic.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://blog.mozilla.org/blog/2013/10/30/video-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec/" rel="nofollow">"Video Interoperability on the Web Gets a Boost From Cisco's H.264 Codec"</a>. <q>Of course, this is not a not a complete solution. In a perfect world, codecs, like other basic Internet technologies such as TCP/IP, HTTP, and HTML, would be fully open and free</q></cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Video+Interoperability+on+the+Web+Gets+a+Boost+From+Cisco%99s+H.264+Codec&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2013%2F10%2F30%2Fvideo-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-20"><span><b><a href="#cite_ref-20">^</a></b></span> <span><cite><a href="https://blog.mozilla.org/blog/2013/10/30/video-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec/" rel="nofollow">"Video Interoperability on the Web Gets a Boost From Cisco's H.264 Codec"</a>. <q>Of course, this is not a not a complete solution. In a perfect world, codecs, like other basic Internet technologies such as TCP/IP, HTTP, and HTML, would be fully open and free</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Video+Interoperability+on+the+Web+Gets+a+Boost+From+Cisco%99s+H.264+Codec&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2013%2F10%2F30%2Fvideo-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://xiphmont.livejournal.com/61927.html" rel="nofollow">"Comments on Cisco, Mozilla, and H.264"</a>. <q>By endorsing Cisco's plan, there's no getting around the fact that we've caved on our principles. That said, principles can't replace being in a practical position to make a difference in the future.</q></cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Comments+on+Cisco%2C+Mozilla%2C+and+H.264&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fxiphmont.livejournal.com%2F61927.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span> - Christopher Montgomery wrote in a personal capacity but works for Mozilla in their codecs team</span>
+ <li id="cite_note-21"><span><b><a href="#cite_ref-21">^</a></b></span> <span><cite><a href="http://xiphmont.livejournal.com/61927.html" rel="nofollow">"Comments on Cisco, Mozilla, and H.264"</a>. <q>By endorsing Cisco's plan, there's no getting around the fact that we've caved on our principles. That said, principles can't replace being in a practical position to make a difference in the future.</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Comments+on+Cisco%2C+Mozilla%2C+and+H.264&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fxiphmont.livejournal.com%2F61927.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span> - Christopher Montgomery wrote in a personal capacity but works for Mozilla in their codecs team</span>
</li>
- <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://wiki.mozilla.org/Game_Creator_Challenge_-Contest_Terms_and_Conditions" rel="nofollow">"Game Creator Challenge -Contest Terms and Conditions"</a>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Game+Creator+Challenge+-Contest+Terms+and+Conditions&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FGame_Creator_Challenge_-Contest_Terms_and_Conditions&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span> - submissions to the "amateur" category have to be released as free software, but not for the other two categories</span>
+ <li id="cite_note-22"><span><b><a href="#cite_ref-22">^</a></b></span> <span><cite><a href="https://wiki.mozilla.org/Game_Creator_Challenge_-Contest_Terms_and_Conditions" rel="nofollow">"Game Creator Challenge -Contest Terms and Conditions"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Game+Creator+Challenge+-Contest+Terms+and+Conditions&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FGame_Creator_Challenge_-Contest_Terms_and_Conditions&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span> - submissions to the "amateur" category have to be released as free software, but not for the other two categories</span>
</li>
- <li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://projects.latimes.com/prop8/donation/8930/" rel="nofollow">"Los Angeles Times - Brendan Eich contribution to Proposition 8"</a>. latimes.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Los+Angeles+Times+-+Brendan+Eich+contribution+to+Proposition+8&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fprojects.latimes.com%2Fprop8%2Fdonation%2F8930%2F&amp;rft.pub=latimes.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-23"><span><b><a href="#cite_ref-23">^</a></b></span> <span><cite><a href="http://projects.latimes.com/prop8/donation/8930/" rel="nofollow">"Los Angeles Times - Brendan Eich contribution to Proposition 8"</a>. latimes.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Los+Angeles+Times+-+Brendan+Eich+contribution+to+Proposition+8&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fprojects.latimes.com%2Fprop8%2Fdonation%2F8930%2F&amp;rft.pub=latimes.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-arstechnica-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-arstechnica_24-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://arstechnica.com/business/2014/03/gay-firefox-developers-boycott-mozilla-to-protest-ceo-hire/" rel="nofollow">"Gay Firefox developers boycott Mozilla to protest CEO hire [Updated] | Ars Technica"</a>. arstechnica.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-05</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Gay+Firefox+developers+boycott+Mozilla+to+protest+CEO+hire+%26%2391%3BUpdated%26%2393%3B+%26%23124%3B+Ars+Technica&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Farstechnica.com%2Fbusiness%2F2014%2F03%2Fgay-firefox-developers-boycott-mozilla-to-protest-ceo-hire%2F&amp;rft.pub=arstechnica.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-arstechnica-24"><span><b><a href="#cite_ref-arstechnica_24-0">^</a></b></span> <span><cite><a href="http://arstechnica.com/business/2014/03/gay-firefox-developers-boycott-mozilla-to-protest-ceo-hire/" rel="nofollow">"Gay Firefox developers boycott Mozilla to protest CEO hire [Updated] | Ars Technica"</a>. arstechnica.com<span>. Retrieved <span>2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Gay+Firefox+developers+boycott+Mozilla+to+protest+CEO+hire+%26%2391%3BUpdated%26%2393%3B+%26%23124%3B+Ars+Technica&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Farstechnica.com%2Fbusiness%2F2014%2F03%2Fgay-firefox-developers-boycott-mozilla-to-protest-ceo-hire%2F&amp;rft.pub=arstechnica.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite class="citation web">Kelly Faircloth (9 April 2012). <a class="external text" href="http://betabeat.com/2012/04/tech-celeb-makes-prop-8-donation-internet-goes-berserk/" rel="nofollow">"Tech Celeb Makes Prop-8 Donation; Internet Goes Berserk"</a>. <i>BetaBeat</i>. BetaBeat<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-28</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Tech+Celeb+Makes+Prop-8+Donation%3B+Internet+Goes+Berserk&amp;rft.au=Kelly+Faircloth&amp;rft.date=2012-04-09&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fbetabeat.com%2F2012%2F04%2Ftech-celeb-makes-prop-8-donation-internet-goes-berserk%2F&amp;rft.jtitle=BetaBeat&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-25"><span><b><a href="#cite_ref-25">^</a></b></span> <span><cite>Kelly Faircloth (9 April 2012). <a href="http://betabeat.com/2012/04/tech-celeb-makes-prop-8-donation-internet-goes-berserk/" rel="nofollow">"Tech Celeb Makes Prop-8 Donation; Internet Goes Berserk"</a>. <i>BetaBeat</i>. BetaBeat<span>. Retrieved <span>2014-04-28</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Tech+Celeb+Makes+Prop-8+Donation%3B+Internet+Goes+Berserk&amp;rft.au=Kelly+Faircloth&amp;rft.date=2012-04-09&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fbetabeat.com%2F2012%2F04%2Ftech-celeb-makes-prop-8-donation-internet-goes-berserk%2F&amp;rft.jtitle=BetaBeat&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://i.huffpost.com/gen/1710681/thumbs/o-OKC-900.jpg" rel="nofollow">"Screenshot of OkCupid's statement towards Firefox users"</a>. huffingtonpost.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Screenshot+of+OkCupid%27s+statement+towards+Firefox+users&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fi.huffpost.com%2Fgen%2F1710681%2Fthumbs%2Fo-OKC-900.jpg&amp;rft.pub=huffingtonpost.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-26"><span><b><a href="#cite_ref-26">^</a></b></span> <span><cite><a href="http://i.huffpost.com/gen/1710681/thumbs/o-OKC-900.jpg" rel="nofollow">"Screenshot of OkCupid's statement towards Firefox users"</a>. huffingtonpost.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Screenshot+of+OkCupid%27s+statement+towards+Firefox+users&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fi.huffpost.com%2Fgen%2F1710681%2Fthumbs%2Fo-OKC-900.jpg&amp;rft.pub=huffingtonpost.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://blog.mozilla.org/blog/2014/04/05/faq-on-ceo-resignation/" rel="nofollow">"FAQ on CEO Resignation"</a>. <i>The Mozilla Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2015-04-20</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=FAQ+on+CEO+Resignation&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2014%2F04%2F05%2Ffaq-on-ceo-resignation%2F&amp;rft.jtitle=The+Mozilla+Blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-27"><span><b><a href="#cite_ref-27">^</a></b></span> <span><cite><a href="https://blog.mozilla.org/blog/2014/04/05/faq-on-ceo-resignation/" rel="nofollow">"FAQ on CEO Resignation"</a>. <i>The Mozilla Blog</i><span>. Retrieved <span>2015-04-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=FAQ+on+CEO+Resignation&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2014%2F04%2F05%2Ffaq-on-ceo-resignation%2F&amp;rft.jtitle=The+Mozilla+Blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><cite class="citation web">Baker, Mitchell (3 April 2014). <a class="external text" href="https://blog.mozilla.org/blog/2014/04/03/brendan-eich-steps-down-as-mozilla-ceo/" rel="nofollow">"Brendan Eich Steps Down as Mozilla CEO"</a>. <i>mozilla blog</i>. Mozilla<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-04</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Brendan+Eich+Steps+Down+as+Mozilla+CEO&amp;rft.aufirst=Mitchell&amp;rft.aulast=Baker&amp;rft.date=2014-04-03&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2014%2F04%2F03%2Fbrendan-eich-steps-down-as-mozilla-ceo%2F&amp;rft.jtitle=mozilla+blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-28"><span><b><a href="#cite_ref-28">^</a></b></span> <span><cite>Baker, Mitchell (3 April 2014). <a href="https://blog.mozilla.org/blog/2014/04/03/brendan-eich-steps-down-as-mozilla-ceo/" rel="nofollow">"Brendan Eich Steps Down as Mozilla CEO"</a>. <i>mozilla blog</i>. Mozilla<span>. Retrieved <span>2014-04-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Brendan+Eich+Steps+Down+as+Mozilla+CEO&amp;rft.aufirst=Mitchell&amp;rft.aulast=Baker&amp;rft.date=2014-04-03&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2014%2F04%2F03%2Fbrendan-eich-steps-down-as-mozilla-ceo%2F&amp;rft.jtitle=mozilla+blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.opensecrets.org/indivs/search.php?name=Sam+Yagan&amp;cycle=All&amp;sort=R&amp;state=&amp;zip=&amp;employ=&amp;cand=&amp;submit=Submit+Query" rel="nofollow">"opensecrets.org listing of Sam Yagan's contributions to political candidates"</a>. opensecrets.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=opensecrets.org+listing+of+Sam+Yagan%27s+contributions+to+political+candidates&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.opensecrets.org%2Findivs%2Fsearch.php%3Fname%3DSam%2BYagan%26cycle%3DAll%26sort%3DR%26state%3D%26zip%3D%26employ%3D%26cand%3D%26submit%3DSubmit%2BQuery&amp;rft.pub=opensecrets.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-29"><span><b><a href="#cite_ref-29">^</a></b></span> <span><cite><a href="http://www.opensecrets.org/indivs/search.php?name=Sam+Yagan&amp;cycle=All&amp;sort=R&amp;state=&amp;zip=&amp;employ=&amp;cand=&amp;submit=Submit+Query" rel="nofollow">"opensecrets.org listing of Sam Yagan's contributions to political candidates"</a>. opensecrets.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=opensecrets.org+listing+of+Sam+Yagan%27s+contributions+to+political+candidates&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.opensecrets.org%2Findivs%2Fsearch.php%3Fname%3DSam%2BYagan%26cycle%3DAll%26sort%3DR%26state%3D%26zip%3D%26employ%3D%26cand%3D%26submit%3DSubmit%2BQuery&amp;rft.pub=opensecrets.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.ontheissues.org/house/Chris_Cannon.htm#Civil_Rights" rel="nofollow">"ontheissues.org listing of votes cast by Chris Cannon"</a>. ontheissues.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org+listing+of+votes+cast+by+Chris+Cannon&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon.htm%23Civil_Rights&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-30"><span><b><a href="#cite_ref-30">^</a></b></span> <span><cite><a href="http://www.ontheissues.org/house/Chris_Cannon.htm#Civil_Rights" rel="nofollow">"ontheissues.org listing of votes cast by Chris Cannon"</a>. ontheissues.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org+listing+of+votes+cast+by+Chris+Cannon&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon.htm%23Civil_Rights&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.ontheissues.org/HouseVote/Party_2005-627.htm" rel="nofollow">"ontheissues.org listing of votes cast on the permanency of the Patriot Act"</a>. ontheissues.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org+listing+of+votes+cast+on+the+permanency+of+the+Patriot+Act&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2FHouseVote%2FParty_2005-627.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-31"><span><b><a href="#cite_ref-31">^</a></b></span> <span><cite><a href="http://www.ontheissues.org/HouseVote/Party_2005-627.htm" rel="nofollow">"ontheissues.org listing of votes cast on the permanency of the Patriot Act"</a>. ontheissues.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org+listing+of+votes+cast+on+the+permanency+of+the+Patriot+Act&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2FHouseVote%2FParty_2005-627.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.ontheissues.org/house/Chris_Cannon_Homeland_Security.htm" rel="nofollow">"ontheissues.org: Chris Cannon on Homeland Security"</a>. ontheissues.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org%3A+Chris+Cannon+on+Homeland+Security&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon_Homeland_Security.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-32"><span><b><a href="#cite_ref-32">^</a></b></span> <span><cite><a href="http://www.ontheissues.org/house/Chris_Cannon_Homeland_Security.htm" rel="nofollow">"ontheissues.org: Chris Cannon on Homeland Security"</a>. ontheissues.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org%3A+Chris+Cannon+on+Homeland+Security&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon_Homeland_Security.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.ontheissues.org/house/Chris_Cannon_Abortion.htm" rel="nofollow">"ontheissues.org: Chris Cannon on Abortion"</a>. ontheissues.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org%3A+Chris+Cannon+on+Abortion&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon_Abortion.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-33"><span><b><a href="#cite_ref-33">^</a></b></span> <span><cite><a href="http://www.ontheissues.org/house/Chris_Cannon_Abortion.htm" rel="nofollow">"ontheissues.org: Chris Cannon on Abortion"</a>. ontheissues.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org%3A+Chris+Cannon+on+Abortion&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon_Abortion.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><cite class="citation web">Levintova, Hannah (7 April 2014). <a class="external text" href="http://www.motherjones.com/mojo/2014/04/okcupid-ceo-donate-anti-gay-firefox" rel="nofollow">"OkCupid's CEO Donated to an Anti-Gay Campaign Once, Too"</a>. <i>Hanna Levintova article on motherjones.com</i>. motherjones.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OkCupid%27s+CEO+Donated+to+an+Anti-Gay+Campaign+Once%2C+Too&amp;rft.aufirst=Hannah&amp;rft.aulast=Levintova&amp;rft.date=2014-04-07&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.motherjones.com%2Fmojo%2F2014%2F04%2Fokcupid-ceo-donate-anti-gay-firefox&amp;rft.jtitle=Hanna+Levintova+article+on+motherjones.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-34"><span><b><a href="#cite_ref-34">^</a></b></span> <span><cite>Levintova, Hannah (7 April 2014). <a href="http://www.motherjones.com/mojo/2014/04/okcupid-ceo-donate-anti-gay-firefox" rel="nofollow">"OkCupid's CEO Donated to an Anti-Gay Campaign Once, Too"</a>. <i>Hanna Levintova article on motherjones.com</i>. motherjones.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OkCupid%27s+CEO+Donated+to+an+Anti-Gay+Campaign+Once%2C+Too&amp;rft.aufirst=Hannah&amp;rft.aulast=Levintova&amp;rft.date=2014-04-07&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.motherjones.com%2Fmojo%2F2014%2F04%2Fokcupid-ceo-donate-anti-gay-firefox&amp;rft.jtitle=Hanna+Levintova+article+on+motherjones.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><cite class="citation web">Lee, Stephanie M. (8 April 2014). <a class="external text" href="http://blog.sfgate.com/techchron/2014/04/08/okcupid-ceo-once-donated-to-anti-gay-politician/" rel="nofollow">"OKCupid CEO once donated to anti-gay politician"</a>. <i>Stephanie M. Lee's blog on sfgate.com</i>. sfgate.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OKCupid+CEO+once+donated+to+anti-gay+politician&amp;rft.aufirst=Stephanie+M.&amp;rft.aulast=Lee&amp;rft.date=2014-04-08&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fblog.sfgate.com%2Ftechchron%2F2014%2F04%2F08%2Fokcupid-ceo-once-donated-to-anti-gay-politician%2F&amp;rft.jtitle=Stephanie+M.+Lee%27s+blog+on+sfgate.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-35"><span><b><a href="#cite_ref-35">^</a></b></span> <span><cite>Lee, Stephanie M. (8 April 2014). <a href="http://blog.sfgate.com/techchron/2014/04/08/okcupid-ceo-once-donated-to-anti-gay-politician/" rel="nofollow">"OKCupid CEO once donated to anti-gay politician"</a>. <i>Stephanie M. Lee's blog on sfgate.com</i>. sfgate.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OKCupid+CEO+once+donated+to+anti-gay+politician&amp;rft.aufirst=Stephanie+M.&amp;rft.aulast=Lee&amp;rft.date=2014-04-08&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fblog.sfgate.com%2Ftechchron%2F2014%2F04%2F08%2Fokcupid-ceo-once-donated-to-anti-gay-politician%2F&amp;rft.jtitle=Stephanie+M.+Lee%27s+blog+on+sfgate.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-uncrunched.com-36"><span class="mw-cite-backlink">^ <a href="#cite_ref-uncrunched.com_36-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-uncrunched.com_36-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://uncrunched.com/2014/04/06/the-hypocrisy-of-sam-yagan-okcupid/" rel="nofollow">"The Hypocrisy Of Sam Yagan &amp; OkCupid"</a>. <i>uncrunched.com blog</i>. uncrunched.com. 6 April 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=The+Hypocrisy+Of+Sam+Yagan+%26+OkCupid&amp;rft.date=2014-04-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Funcrunched.com%2F2014%2F04%2F06%2Fthe-hypocrisy-of-sam-yagan-okcupid%2F&amp;rft.jtitle=uncrunched.com+blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-uncrunched.com-36"><span>^ <a href="#cite_ref-uncrunched.com_36-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-uncrunched.com_36-1"><sup><i><b>b</b></i></sup></a></span> <span><cite><a href="http://uncrunched.com/2014/04/06/the-hypocrisy-of-sam-yagan-okcupid/" rel="nofollow">"The Hypocrisy Of Sam Yagan &amp; OkCupid"</a>. <i>uncrunched.com blog</i>. uncrunched.com. 6 April 2014<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=The+Hypocrisy+Of+Sam+Yagan+%26+OkCupid&amp;rft.date=2014-04-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Funcrunched.com%2F2014%2F04%2F06%2Fthe-hypocrisy-of-sam-yagan-okcupid%2F&amp;rft.jtitle=uncrunched.com+blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text"><cite class="citation web">Bellware, Kim (31 March 2014). <a class="external text" href="http://www.huffingtonpost.com/2014/03/31/okcupid-mozilla_n_5065743.html" rel="nofollow">"OKCupid Publicly Rips Mozilla: 'We Wish Them Nothing But Failure<span>'</span>"</a>. <i>Kim Bellware article on huffingtonpost.com</i>. huffingtonpost.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OKCupid+Publicly+Rips+Mozilla%3A+%27We+Wish+Them+Nothing+But+Failure%27&amp;rft.aufirst=Kim&amp;rft.aulast=Bellware&amp;rft.date=2014-03-31&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.huffingtonpost.com%2F2014%2F03%2F31%2Fokcupid-mozilla_n_5065743.html&amp;rft.jtitle=Kim+Bellware+article+on+huffingtonpost.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-37"><span><b><a href="#cite_ref-37">^</a></b></span> <span><cite>Bellware, Kim (31 March 2014). <a href="http://www.huffingtonpost.com/2014/03/31/okcupid-mozilla_n_5065743.html" rel="nofollow">"OKCupid Publicly Rips Mozilla: 'We Wish Them Nothing But Failure<span>'</span>"</a>. <i>Kim Bellware article on huffingtonpost.com</i>. huffingtonpost.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OKCupid+Publicly+Rips+Mozilla%3A+%27We+Wish+Them+Nothing+But+Failure%27&amp;rft.aufirst=Kim&amp;rft.aulast=Bellware&amp;rft.date=2014-03-31&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.huffingtonpost.com%2F2014%2F03%2F31%2Fokcupid-mozilla_n_5065743.html&amp;rft.jtitle=Kim+Bellware+article+on+huffingtonpost.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.huffingtonpost.com/2014/03/27/mozilla-ceo-prop-8-_n_5042660.html" rel="nofollow">"Mozilla's Appointment Of Brendan Eich As CEO Sparks Controversy After Prop 8 Donation News Re-Emerges"</a>. <i>huffingtonpost.com article</i>. huffingtonpost.com. 27 March 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla%27s+Appointment+Of+Brendan+Eich+As+CEO+Sparks+Controversy+After+Prop+8+Donation+News+Re-Emerges&amp;rft.date=2014-03-27&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.huffingtonpost.com%2F2014%2F03%2F27%2Fmozilla-ceo-prop-8-_n_5042660.html&amp;rft.jtitle=huffingtonpost.com+article&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-38"><span><b><a href="#cite_ref-38">^</a></b></span> <span><cite><a href="http://www.huffingtonpost.com/2014/03/27/mozilla-ceo-prop-8-_n_5042660.html" rel="nofollow">"Mozilla's Appointment Of Brendan Eich As CEO Sparks Controversy After Prop 8 Donation News Re-Emerges"</a>. <i>huffingtonpost.com article</i>. huffingtonpost.com. 27 March 2014<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla%27s+Appointment+Of+Brendan+Eich+As+CEO+Sparks+Controversy+After+Prop+8+Donation+News+Re-Emerges&amp;rft.date=2014-03-27&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.huffingtonpost.com%2F2014%2F03%2F27%2Fmozilla-ceo-prop-8-_n_5042660.html&amp;rft.jtitle=huffingtonpost.com+article&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><cite class="citation web">Eidelson, Josh (4 April 2014). <a class="external text" href="http://www.salon.com/2014/04/04/okcupids_gay_rights_stunt_has_its_limits_taking_a_deeper_look_at_the_savvy_ploy/" rel="nofollow">"OkCupid's gay rights stunt has its limits: Taking a deeper look at the savvy ploy"</a>. <i>Josh Eidelson article on salon.com</i>. salon.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OkCupid%99s+gay+rights+stunt+has+its+limits%3A+Taking+a+deeper+look+at+the+savvy+ploy&amp;rft.aufirst=Josh&amp;rft.aulast=Eidelson&amp;rft.date=2014-04-04&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.salon.com%2F2014%2F04%2F04%2Fokcupids_gay_rights_stunt_has_its_limits_taking_a_deeper_look_at_the_savvy_ploy%2F&amp;rft.jtitle=Josh+Eidelson+article+on+salon.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-39"><span><b><a href="#cite_ref-39">^</a></b></span> <span><cite>Eidelson, Josh (4 April 2014). <a href="http://www.salon.com/2014/04/04/okcupids_gay_rights_stunt_has_its_limits_taking_a_deeper_look_at_the_savvy_ploy/" rel="nofollow">"OkCupid's gay rights stunt has its limits: Taking a deeper look at the savvy ploy"</a>. <i>Josh Eidelson article on salon.com</i>. salon.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OkCupid%99s+gay+rights+stunt+has+its+limits%3A+Taking+a+deeper+look+at+the+savvy+ploy&amp;rft.aufirst=Josh&amp;rft.aulast=Eidelson&amp;rft.date=2014-04-04&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.salon.com%2F2014%2F04%2F04%2Fokcupids_gay_rights_stunt_has_its_limits_taking_a_deeper_look_at_the_savvy_ploy%2F&amp;rft.jtitle=Josh+Eidelson+article+on+salon.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-manifesto-40"><span class="mw-cite-backlink">^ <a href="#cite_ref-manifesto_40-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-manifesto_40-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.mozilla.org/about/manifesto/" rel="nofollow">"Mozilla Manifesto"</a>. Mozilla.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-03-21</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Manifesto&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fabout%2Fmanifesto%2F&amp;rft.pub=Mozilla.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-manifesto-40"><span>^ <a href="#cite_ref-manifesto_40-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-manifesto_40-1"><sup><i><b>b</b></i></sup></a></span> <span><cite><a href="http://www.mozilla.org/about/manifesto/" rel="nofollow">"Mozilla Manifesto"</a>. Mozilla.org<span>. Retrieved <span>2012-03-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Manifesto&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fabout%2Fmanifesto%2F&amp;rft.pub=Mozilla.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://www.mozilla.org/en-US/about/manifesto/details/" rel="nofollow">"The Mozilla Manifesto"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">24 July</span> 2015</span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=The+Mozilla+Manifesto&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Fen-US%2Fabout%2Fmanifesto%2Fdetails%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-41"><span><b><a href="#cite_ref-41">^</a></b></span> <span><cite><a href="https://www.mozilla.org/en-US/about/manifesto/details/" rel="nofollow">"The Mozilla Manifesto"</a><span>. Retrieved <span>24 July</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=The+Mozilla+Manifesto&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Fen-US%2Fabout%2Fmanifesto%2Fdetails%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://web.archive.org/web/20101128150117/http://download-firefox.org/spread-firefox/gecko-layout-engine-and-mozilla-firefox/" rel="nofollow">"Gecko Layout Engine"</a>. download-firefox.org. July 17, 2008. Archived from <a class="external text" href="http://download-firefox.org/spread-firefox/gecko-layout-engine-and-mozilla-firefox/" rel="nofollow">the original</a> on 2010-11-28<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-05-10</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Gecko+Layout+Engine&amp;rft.date=2008-07-17&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fdownload-firefox.org%2Fspread-firefox%2Fgecko-layout-engine-and-mozilla-firefox%2F&amp;rft.pub=download-firefox.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-42"><span><b><a href="#cite_ref-42">^</a></b></span> <span><cite><a href="https://web.archive.org/web/20101128150117/http://download-firefox.org/spread-firefox/gecko-layout-engine-and-mozilla-firefox/" rel="nofollow">"Gecko Layout Engine"</a>. download-firefox.org. July 17, 2008. Archived from <a href="http://download-firefox.org/spread-firefox/gecko-layout-engine-and-mozilla-firefox/" rel="nofollow">the original</a> on 2010-11-28<span>. Retrieved <span>2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Gecko+Layout+Engine&amp;rft.date=2008-07-17&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fdownload-firefox.org%2Fspread-firefox%2Fgecko-layout-engine-and-mozilla-firefox%2F&amp;rft.pub=download-firefox.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-w3counter1-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-w3counter1_43-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.w3counter.com/trends" rel="nofollow">"Web Browser Market Share Trends"</a>. <i>W3Counter</i>. Awio Web Services LLC<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-05-10</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Web+Browser+Market+Share+Trends&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.w3counter.com%2Ftrends&amp;rft.jtitle=W3Counter&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-w3counter1-43"><span><b><a href="#cite_ref-w3counter1_43-0">^</a></b></span> <span><cite><a href="http://www.w3counter.com/trends" rel="nofollow">"Web Browser Market Share Trends"</a>. <i>W3Counter</i>. Awio Web Services LLC<span>. Retrieved <span>2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Web+Browser+Market+Share+Trends&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.w3counter.com%2Ftrends&amp;rft.jtitle=W3Counter&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-gs.statcounter.com-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-gs.statcounter.com_44-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://gs.statcounter.com" rel="nofollow">"Top 5 Browsers"</a>. <i>StatCounter Global Stats</i>. StatCounter<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-05-10</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Top+5+Browsers&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fgs.statcounter.com&amp;rft.jtitle=StatCounter+Global+Stats&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-gs.statcounter.com-44"><span><b><a href="#cite_ref-gs.statcounter.com_44-0">^</a></b></span> <span><cite><a href="http://gs.statcounter.com" rel="nofollow">"Top 5 Browsers"</a>. <i>StatCounter Global Stats</i>. StatCounter<span>. Retrieved <span>2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Top+5+Browsers&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fgs.statcounter.com&amp;rft.jtitle=StatCounter+Global+Stats&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-getclicky1-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-getclicky1_45-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.getclicky.com/marketshare/global/web-browsers/" rel="nofollow">"Web browsers (Global marketshare)"</a>. <i>Clicky</i>. Roxr Software Ltd<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-05-10</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Web+browsers+%28Global+marketshare%29&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.getclicky.com%2Fmarketshare%2Fglobal%2Fweb-browsers%2F&amp;rft.jtitle=Clicky&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-getclicky1-45"><span><b><a href="#cite_ref-getclicky1_45-0">^</a></b></span> <span><cite><a href="http://www.getclicky.com/marketshare/global/web-browsers/" rel="nofollow">"Web browsers (Global marketshare)"</a>. <i>Clicky</i>. Roxr Software Ltd<span>. Retrieved <span>2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Web+browsers+%28Global+marketshare%29&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.getclicky.com%2Fmarketshare%2Fglobal%2Fweb-browsers%2F&amp;rft.jtitle=Clicky&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</a></b></span> <span class="reference-text"><cite class="citation web"><a href="http://fakehost/wiki/Ben_Goodger" title="Ben Goodger">Goodger, Ben</a> (February 6, 2006). <a class="external text" href="https://web.archive.org/web/20110623034401/http://weblogs.mozillazine.org/ben/archives/009698.html" rel="nofollow">"Where Did Firefox Come From?"</a>. Inside Firefox. Archived from <a class="external text" href="http://weblogs.mozillazine.org/ben/archives/009698.html" rel="nofollow">the original</a> on 2011-06-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-01-07</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Ben&amp;rft.aulast=Goodger&amp;rft.btitle=Where+Did+Firefox+Come+From%3F&amp;rft.date=2006-02-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fweblogs.mozillazine.org%2Fben%2Farchives%2F009698.html&amp;rft.pub=Inside+Firefox&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-46"><span><b><a href="#cite_ref-46">^</a></b></span> <span><cite><a href="http://fakehost/wiki/Ben_Goodger" title="Ben Goodger">Goodger, Ben</a> (February 6, 2006). <a href="https://web.archive.org/web/20110623034401/http://weblogs.mozillazine.org/ben/archives/009698.html" rel="nofollow">"Where Did Firefox Come From?"</a>. Inside Firefox. Archived from <a href="http://weblogs.mozillazine.org/ben/archives/009698.html" rel="nofollow">the original</a> on 2011-06-23<span>. Retrieved <span>2012-01-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Ben&amp;rft.aulast=Goodger&amp;rft.btitle=Where+Did+Firefox+Come+From%3F&amp;rft.date=2006-02-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fweblogs.mozillazine.org%2Fben%2Farchives%2F009698.html&amp;rft.pub=Inside+Firefox&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-47">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://web.archive.org/web/20070914035447/http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_Mozilla0" rel="nofollow">"Mozilla browser becomes Firebird"</a>. IBPhoenix. Archived from <a class="external text" href="http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_Mozilla0" rel="nofollow">the original</a> on 2007-09-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-06-10</span></span>. <q>We at IBPhoenix think that having a browser and a database with the same name in the same space will confuse the market, especially as browsers and databases are often used in the same applications</q></cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+browser+becomes+Firebird&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ibphoenix.com%2Fmain.nfs%3Fa%3Dibphoenix%26page%3Dibp_Mozilla0&amp;rft.pub=IBPhoenix&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-47"><span><b><a href="#cite_ref-47">^</a></b></span> <span><cite><a href="https://web.archive.org/web/20070914035447/http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_Mozilla0" rel="nofollow">"Mozilla browser becomes Firebird"</a>. IBPhoenix. Archived from <a href="http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_Mozilla0" rel="nofollow">the original</a> on 2007-09-14<span>. Retrieved <span>2013-06-10</span></span>. <q>We at IBPhoenix think that having a browser and a database with the same name in the same space will confuse the market, especially as browsers and databases are often used in the same applications</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+browser+becomes+Firebird&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ibphoenix.com%2Fmain.nfs%3Fa%3Dibphoenix%26page%3Dibp_Mozilla0&amp;rft.pub=IBPhoenix&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"><cite class="citation web">Festa, Paul (May 6, 2003). <a class="external text" href="http://news.cnet.com/2100-1032_3-1000146.html" rel="nofollow">"Mozilla's Firebird gets wings clipped"</a>. <a class="mw-redirect" href="http://fakehost/wiki/CNET_Networks" title="CNET Networks">CNET</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-01-30</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Paul&amp;rft.aulast=Festa&amp;rft.btitle=Mozilla%27s+Firebird+gets+wings+clipped&amp;rft.date=2003-05-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fnews.cnet.com%2F2100-1032_3-1000146.html&amp;rft.pub=CNET&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-48"><span><b><a href="#cite_ref-48">^</a></b></span> <span><cite>Festa, Paul (May 6, 2003). <a href="http://news.cnet.com/2100-1032_3-1000146.html" rel="nofollow">"Mozilla's Firebird gets wings clipped"</a>. <a href="http://fakehost/wiki/CNET_Networks" title="CNET Networks">CNET</a><span>. Retrieved <span>2007-01-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Paul&amp;rft.aulast=Festa&amp;rft.btitle=Mozilla%27s+Firebird+gets+wings+clipped&amp;rft.date=2003-05-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fnews.cnet.com%2F2100-1032_3-1000146.html&amp;rft.pub=CNET&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-49">^</a></b></span> <span class="reference-text"><cite class="citation web">Festa, Paul (February 9, 2004). <a class="external text" href="http://news.cnet.com/2100-7344-5156101.html" rel="nofollow">"Mozilla holds 'fire' in naming fight"</a>. CNET News<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-01-24</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Paul&amp;rft.aulast=Festa&amp;rft.btitle=Mozilla+holds+%27fire%27+in+naming+fight&amp;rft.date=2004-02-09&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fnews.cnet.com%2F2100-7344-5156101.html&amp;rft.pub=CNET+News&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-49"><span><b><a href="#cite_ref-49">^</a></b></span> <span><cite>Festa, Paul (February 9, 2004). <a href="http://news.cnet.com/2100-7344-5156101.html" rel="nofollow">"Mozilla holds 'fire' in naming fight"</a>. CNET News<span>. Retrieved <span>2007-01-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Paul&amp;rft.aulast=Festa&amp;rft.btitle=Mozilla+holds+%27fire%27+in+naming+fight&amp;rft.date=2004-02-09&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fnews.cnet.com%2F2100-7344-5156101.html&amp;rft.pub=CNET+News&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-50">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.mozilla.org/en-US/firefox/mobile/features/" rel="nofollow">"Mobile features"</a>. Mozilla<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-06-26</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mobile+features&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fen-US%2Ffirefox%2Fmobile%2Ffeatures%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-50"><span><b><a href="#cite_ref-50">^</a></b></span> <span><cite><a href="http://www.mozilla.org/en-US/firefox/mobile/features/" rel="nofollow">"Mobile features"</a>. Mozilla<span>. Retrieved <span>2012-06-26</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mobile+features&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fen-US%2Ffirefox%2Fmobile%2Ffeatures%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://wiki.mozilla.org/Mobile/Platforms/Android#System_Requirements" rel="nofollow">"Mobile System Requirements"</a>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mobile+System+Requirements&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FMobile%2FPlatforms%2FAndroid%23System_Requirements&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-51"><span><b><a href="#cite_ref-51">^</a></b></span> <span><cite><a href="https://wiki.mozilla.org/Mobile/Platforms/Android#System_Requirements" rel="nofollow">"Mobile System Requirements"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mobile+System+Requirements&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FMobile%2FPlatforms%2FAndroid%23System_Requirements&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-52">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://support.mozilla.org/en-US/kb/will-firefox-work-my-mobile-device" rel="nofollow">"Firefox Mobile supported devices"</a>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Firefox+Mobile+supported+devices&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fsupport.mozilla.org%2Fen-US%2Fkb%2Fwill-firefox-work-my-mobile-device&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-52"><span><b><a href="#cite_ref-52">^</a></b></span> <span><cite><a href="https://support.mozilla.org/en-US/kb/will-firefox-work-my-mobile-device" rel="nofollow">"Firefox Mobile supported devices"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Firefox+Mobile+supported+devices&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fsupport.mozilla.org%2Fen-US%2Fkb%2Fwill-firefox-work-my-mobile-device&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-53">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.mirror.co.uk/news/technology/2009/11/09/mozilla-rules-out-firefox-for-iphone-and-blackberry-115875-21809563/" rel="nofollow">"Mozilla rules out Firefox for iPhone and BlackBerry"</a>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+rules+out+Firefox+for+iPhone+and+BlackBerry&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mirror.co.uk%2Fnews%2Ftechnology%2F2009%2F11%2F09%2Fmozilla-rules-out-firefox-for-iphone-and-blackberry-115875-21809563%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-53"><span><b><a href="#cite_ref-53">^</a></b></span> <span><cite><a href="http://www.mirror.co.uk/news/technology/2009/11/09/mozilla-rules-out-firefox-for-iphone-and-blackberry-115875-21809563/" rel="nofollow">"Mozilla rules out Firefox for iPhone and BlackBerry"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+rules+out+Firefox+for+iPhone+and+BlackBerry&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mirror.co.uk%2Fnews%2Ftechnology%2F2009%2F11%2F09%2Fmozilla-rules-out-firefox-for-iphone-and-blackberry-115875-21809563%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-54">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.mozilla.org/firefox/os/" rel="nofollow">"Boot to Gecko Project"</a>. Mozilla. March 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-03-30</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Boot+to+Gecko+Project&amp;rft.date=2012-03&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Ffirefox%2Fos%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-54"><span><b><a href="#cite_ref-54">^</a></b></span> <span><cite><a href="http://www.mozilla.org/firefox/os/" rel="nofollow">"Boot to Gecko Project"</a>. Mozilla. March 2012<span>. Retrieved <span>2012-03-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Boot+to+Gecko+Project&amp;rft.date=2012-03&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Ffirefox%2Fos%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-55">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://www.mozilla.org/en-US/firefox/os/devices/" rel="nofollow">"Firefox OS - Devices &amp; Availability"</a>. <i>Mozilla</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2015-12-30</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Firefox+OS+-+Devices+%26+Availability&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Fen-US%2Ffirefox%2Fos%2Fdevices%2F&amp;rft.jtitle=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-55"><span><b><a href="#cite_ref-55">^</a></b></span> <span><cite><a href="https://www.mozilla.org/en-US/firefox/os/devices/" rel="nofollow">"Firefox OS - Devices &amp; Availability"</a>. <i>Mozilla</i><span>. Retrieved <span>2015-12-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Firefox+OS+-+Devices+%26+Availability&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Fen-US%2Ffirefox%2Fos%2Fdevices%2F&amp;rft.jtitle=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-56">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://blog.lizardwrangler.com/2012/07/06/thunderbird-stability-and-community-innovation/" rel="nofollow">"Thunderbird: Stability and Community Innovation | Mitchell's Blog"</a>. <i>blog.lizardwrangler.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2015-04-20</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Thunderbird%3A+Stability+and+Community+Innovation+%7C+Mitchell%27s+Blog&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.lizardwrangler.com%2F2012%2F07%2F06%2Fthunderbird-stability-and-community-innovation%2F&amp;rft.jtitle=blog.lizardwrangler.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-56"><span><b><a href="#cite_ref-56">^</a></b></span> <span><cite><a href="https://blog.lizardwrangler.com/2012/07/06/thunderbird-stability-and-community-innovation/" rel="nofollow">"Thunderbird: Stability and Community Innovation | Mitchell's Blog"</a>. <i>blog.lizardwrangler.com</i><span>. Retrieved <span>2015-04-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Thunderbird%3A+Stability+and+Community+Innovation+%7C+Mitchell%27s+Blog&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.lizardwrangler.com%2F2012%2F07%2F06%2Fthunderbird-stability-and-community-innovation%2F&amp;rft.jtitle=blog.lizardwrangler.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-57">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://lwn.net/Articles/165080/" rel="nofollow">"Two discontinued browsers"</a>. LWN.net. 21 December 2005<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-19</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Two+discontinued+browsers&amp;rft.date=2005-12-21&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Flwn.net%2FArticles%2F165080%2F&amp;rft.pub=LWN.net&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-57"><span><b><a href="#cite_ref-57">^</a></b></span> <span><cite><a href="https://lwn.net/Articles/165080/" rel="nofollow">"Two discontinued browsers"</a>. LWN.net. 21 December 2005<span>. Retrieved <span>2012-08-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Two+discontinued+browsers&amp;rft.date=2005-12-21&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Flwn.net%2FArticles%2F165080%2F&amp;rft.pub=LWN.net&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-58"><span class="mw-cite-backlink"><b><a href="#cite_ref-58">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://home.kairo.at/blog/2007-06/seamonkey_r_trademarks_registered" rel="nofollow">"SeaMonkey trademarks registered!"</a>. kairo.at. 2007-05-22<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-06-10</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=SeaMonkey+trademarks+registered%21&amp;rft.date=2007-05-22&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fhome.kairo.at%2Fblog%2F2007-06%2Fseamonkey_r_trademarks_registered&amp;rft.pub=kairo.at&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-58"><span><b><a href="#cite_ref-58">^</a></b></span> <span><cite><a href="http://home.kairo.at/blog/2007-06/seamonkey_r_trademarks_registered" rel="nofollow">"SeaMonkey trademarks registered!"</a>. kairo.at. 2007-05-22<span>. Retrieved <span>2013-06-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=SeaMonkey+trademarks+registered%21&amp;rft.date=2007-05-22&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fhome.kairo.at%2Fblog%2F2007-06%2Fseamonkey_r_trademarks_registered&amp;rft.pub=kairo.at&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-59">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.bugzilla.org/installation-list/" rel="nofollow">"Bugzilla Installation List"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-09-18</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Bugzilla+Installation+List&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.bugzilla.org%2Finstallation-list%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-59"><span><b><a href="#cite_ref-59">^</a></b></span> <span><cite><a href="http://www.bugzilla.org/installation-list/" rel="nofollow">"Bugzilla Installation List"</a><span>. Retrieved <span>2014-09-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Bugzilla+Installation+List&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.bugzilla.org%2Finstallation-list%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-BE201106-60"><span class="mw-cite-backlink">^ <a href="#cite_ref-BE201106_60-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-BE201106_60-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web"><a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Eich, Brendan</a> (21 June 2011). <a class="external text" href="http://brendaneich.com/2011/06/new-javascript-engine-module-owner/" rel="nofollow">"New JavaScript Engine Module Owner"</a>. BrendanEich.com.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Brendan&amp;rft.aulast=Eich&amp;rft.btitle=New+JavaScript+Engine+Module+Owner&amp;rft.date=2011-06-21&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fbrendaneich.com%2F2011%2F06%2Fnew-javascript-engine-module-owner%2F&amp;rft.pub=BrendanEich.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-BE201106-60"><span>^ <a href="#cite_ref-BE201106_60-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-BE201106_60-1"><sup><i><b>b</b></i></sup></a></span> <span><cite><a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Eich, Brendan</a> (21 June 2011). <a href="http://brendaneich.com/2011/06/new-javascript-engine-module-owner/" rel="nofollow">"New JavaScript Engine Module Owner"</a>. BrendanEich.com.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Brendan&amp;rft.aulast=Eich&amp;rft.btitle=New+JavaScript+Engine+Module+Owner&amp;rft.date=2011-06-21&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fbrendaneich.com%2F2011%2F06%2Fnew-javascript-engine-module-owner%2F&amp;rft.pub=BrendanEich.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-61">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=759422#c0" rel="nofollow">"Bug 759422 - Remove use of e4x in account creation"</a>. Bugzilla@Mozilla. 2012-08-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Bug+759422+-+Remove+use+of+e4x+in+account+creation&amp;rft.date=2012-08-17&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D759422%23c0&amp;rft.pub=Bugzilla%40Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-61"><span><b><a href="#cite_ref-61">^</a></b></span> <span><cite><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=759422#c0" rel="nofollow">"Bug 759422 - Remove use of e4x in account creation"</a>. Bugzilla@Mozilla. 2012-08-17<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Bug+759422+-+Remove+use+of+e4x+in+account+creation&amp;rft.date=2012-08-17&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D759422%23c0&amp;rft.pub=Bugzilla%40Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-62">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://developer.mozilla.org/en-US/docs/SpiderMonkey" rel="nofollow">"SpiderMonkey"</a>. Mozilla Developer Network. 2012-08-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=SpiderMonkey&amp;rft.date=2012-08-15&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FSpiderMonkey&amp;rft.pub=Mozilla+Developer+Network&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-62"><span><b><a href="#cite_ref-62">^</a></b></span> <span><cite><a href="https://developer.mozilla.org/en-US/docs/SpiderMonkey" rel="nofollow">"SpiderMonkey"</a>. Mozilla Developer Network. 2012-08-15<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=SpiderMonkey&amp;rft.date=2012-08-15&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FSpiderMonkey&amp;rft.pub=Mozilla+Developer+Network&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-63">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="http://www.mozilla.org/rhino/history.html" rel="nofollow">"Rhino History"</a>. <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2008-03-20</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Rhino+History&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Frhino%2Fhistory.html&amp;rft.pub=Mozilla+Foundation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-63"><span><b><a href="#cite_ref-63">^</a></b></span> <span><cite><a href="http://www.mozilla.org/rhino/history.html" rel="nofollow">"Rhino History"</a>. <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a><span>. Retrieved <span>2008-03-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Rhino+History&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Frhino%2Fhistory.html&amp;rft.pub=Mozilla+Foundation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-64">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://github.com/servo/servo/wiki/Roadmap" rel="nofollow">"Roadmap"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">10 May</span> 2016</span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Roadmap&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fgithub.com%2Fservo%2Fservo%2Fwiki%2FRoadmap&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-64"><span><b><a href="#cite_ref-64">^</a></b></span> <span><cite><a href="https://github.com/servo/servo/wiki/Roadmap" rel="nofollow">"Roadmap"</a><span>. Retrieved <span>10 May</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Roadmap&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fgithub.com%2Fservo%2Fservo%2Fwiki%2FRoadmap&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-65">^</a></b></span> <span class="reference-text"><cite class="citation web">Larabel, Michael. <a class="external text" href="https://www.phoronix.com/scan.php?page=news_item&amp;px=Servo-9-May-2016" rel="nofollow">"Servo Continues Making Progress For Shipping Components In Gecko, Browser.html"</a>. <i>Phoronix.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">10 May</span> 2016</span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Servo+Continues+Making+Progress+For+Shipping+Components+In+Gecko%2C+Browser.html&amp;rft.aufirst=Michael&amp;rft.aulast=Larabel&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.phoronix.com%2Fscan.php%3Fpage%3Dnews_item%26px%3DServo-9-May-2016&amp;rft.jtitle=Phoronix.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-65"><span><b><a href="#cite_ref-65">^</a></b></span> <span><cite>Larabel, Michael. <a href="https://www.phoronix.com/scan.php?page=news_item&amp;px=Servo-9-May-2016" rel="nofollow">"Servo Continues Making Progress For Shipping Components In Gecko, Browser.html"</a>. <i>Phoronix.com</i><span>. Retrieved <span>10 May</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Servo+Continues+Making+Progress+For+Shipping+Components+In+Gecko%2C+Browser.html&amp;rft.aufirst=Michael&amp;rft.aulast=Larabel&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.phoronix.com%2Fscan.php%3Fpage%3Dnews_item%26px%3DServo-9-May-2016&amp;rft.jtitle=Phoronix.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-66">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://mozvr.com" rel="nofollow">"Mozilla VR"</a>. <i>Mozilla VR</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-10-27</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+VR&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fmozvr.com&amp;rft.jtitle=Mozilla+VR&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-66"><span><b><a href="#cite_ref-66">^</a></b></span> <span><cite><a href="https://mozvr.com" rel="nofollow">"Mozilla VR"</a>. <i>Mozilla VR</i><span>. Retrieved <span>2016-10-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+VR&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fmozvr.com&amp;rft.jtitle=Mozilla+VR&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-67">^</a></b></span> <span class="reference-text"><cite class="citation"><a class="external text" href="https://login.persona.org/" rel="nofollow"><i>Persona</i></a>, Mozilla</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Persona&amp;rft.genre=book&amp;rft_id=https%3A%2F%2Flogin.persona.org%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-67"><span><b><a href="#cite_ref-67">^</a></b></span> <span><cite><a href="https://login.persona.org/" rel="nofollow"><i>Persona</i></a>, Mozilla</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Persona&amp;rft.genre=book&amp;rft_id=https%3A%2F%2Flogin.persona.org%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-68">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://developer.mozilla.org/en-US/Persona" rel="nofollow">"Persona"</a>. <i>Mozilla Developer Network</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-10-27</span></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Persona&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2FPersona&amp;rft.jtitle=Mozilla+Developer+Network&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-68"><span><b><a href="#cite_ref-68">^</a></b></span> <span><cite><a href="https://developer.mozilla.org/en-US/Persona" rel="nofollow">"Persona"</a>. <i>Mozilla Developer Network</i><span>. Retrieved <span>2016-10-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Persona&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2FPersona&amp;rft.jtitle=Mozilla+Developer+Network&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-69">^</a></b></span> <span class="reference-text"><cite class="citation"><a class="external text" href="https://webmaker.org/en-US/about/" rel="nofollow"><i>About Mozilla Webmaker</i></a>, Mozilla</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=About+Mozilla+Webmaker&amp;rft.genre=book&amp;rft_id=https%3A%2F%2Fwebmaker.org%2Fen-US%2Fabout%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-69"><span><b><a href="#cite_ref-69">^</a></b></span> <span><cite><a href="https://webmaker.org/en-US/about/" rel="nofollow"><i>About Mozilla Webmaker</i></a>, Mozilla</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=About+Mozilla+Webmaker&amp;rft.genre=book&amp;rft_id=https%3A%2F%2Fwebmaker.org%2Fen-US%2Fabout%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-lifehacker.com-70"><span class="mw-cite-backlink">^ <a href="#cite_ref-lifehacker.com_70-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lifehacker.com_70-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web">Alan Henry. <a class="external text" href="http://lifehacker.com/mozilla-webmaker-teaches-you-how-to-build-web-sites-ap-1553277374" rel="nofollow">"Mozilla Webmaker Teaches You to Build Web Sites, Apps, and More"</a>. <i>Lifehacker</i>. Gawker Media.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+Webmaker+Teaches+You+to+Build+Web+Sites%2C+Apps%2C+and+More&amp;rft.au=Alan+Henry&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Flifehacker.com%2Fmozilla-webmaker-teaches-you-how-to-build-web-sites-ap-1553277374&amp;rft.jtitle=Lifehacker&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
+ <li id="cite_note-lifehacker.com-70"><span>^ <a href="#cite_ref-lifehacker.com_70-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lifehacker.com_70-1"><sup><i><b>b</b></i></sup></a></span> <span><cite>Alan Henry. <a href="http://lifehacker.com/mozilla-webmaker-teaches-you-how-to-build-web-sites-ap-1553277374" rel="nofollow">"Mozilla Webmaker Teaches You to Build Web Sites, Apps, and More"</a>. <i>Lifehacker</i>. Gawker Media.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+Webmaker+Teaches+You+to+Build+Web+Sites%2C+Apps%2C+and+More&amp;rft.au=Alan+Henry&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Flifehacker.com%2Fmozilla-webmaker-teaches-you-how-to-build-web-sites-ap-1553277374&amp;rft.jtitle=Lifehacker&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>
</span>
</li>
- <li id="cite_note-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-71">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://wiki.mozilla.org/Air_Mozilla" rel="nofollow">"Air Mozilla"</a>. Mozilla Wiki.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Air+Mozilla&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FAir_Mozilla&amp;rft.pub=Mozilla+Wiki&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-71"><span><b><a href="#cite_ref-71">^</a></b></span> <span><cite><a href="https://wiki.mozilla.org/Air_Mozilla" rel="nofollow">"Air Mozilla"</a>. Mozilla Wiki.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Air+Mozilla&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FAir_Mozilla&amp;rft.pub=Mozilla+Wiki&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
- <li id="cite_note-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-72">^</a></b></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://blog.mozilla.org/mrz/2012/04/17/air-mozilla-reboot-phase-i/" rel="nofollow">"Air Mozilla Reboot, Phase I"</a>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Air+Mozilla+Reboot%2C+Phase+I&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fmrz%2F2012%2F04%2F17%2Fair-mozilla-reboot-phase-i%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
+ <li id="cite_note-72"><span><b><a href="#cite_ref-72">^</a></b></span> <span><cite><a href="https://blog.mozilla.org/mrz/2012/04/17/air-mozilla-reboot-phase-i/" rel="nofollow">"Air Mozilla Reboot, Phase I"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Air+Mozilla+Reboot%2C+Phase+I&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fmrz%2F2012%2F04%2F17%2Fair-mozilla-reboot-phase-i%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"><span> </span></span>
</span>
</li>
</ol></div>
- <p><a class="external text" href="http://www.techsive.com/2014/09/how-to-resume-failed-downloads-in.html" rel="nofollow">Constant downloads failure in firefox</a></p>
- <h2><span class="mw-headline" id="External_links">External links</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=36" title="Edit section: External links">edit</a><span class="mw-editsection-bracket">]</span></span>
+ <p><a href="http://www.techsive.com/2014/09/how-to-resume-failed-downloads-in.html" rel="nofollow">Constant downloads failure in firefox</a></p>
+ <h2><span id="External_links">External links</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=36" title="Edit section: External links">edit</a><span>]</span></span>
</h2>
- <table class="mbox-small plainlinks sistersitebox" role="presentation"><tr><td class="mbox-image">
- <a class="image" href="http://fakehost/wiki/File:Commons-logo.svg"><img alt="" class="noviewer" data-file-height="1376" data-file-width="1024" height="40" src="http://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/45px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/59px-Commons-logo.svg.png 2x" width="30"></img></a>
+ <table role="presentation"><tr><td>
+ <a href="http://fakehost/wiki/File:Commons-logo.svg"><img alt="" data-file-height="1376" data-file-width="1024" height="40" src="http://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/45px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/59px-Commons-logo.svg.png 2x" width="30"></img></a>
</td>
- <td class="mbox-text plainlist">Wikimedia Commons has media related to <i><b><a class="extiw" href="https://commons.wikimedia.org/wiki/Category:Mozilla" title="commons:Category:Mozilla">Mozilla</a></b></i>.</td>
- </tr></table><ul><li><span class="official-website"><span class="url"><a class="external text" href="http://mozilla.org/" rel="nofollow">Official website</a></span></span>, including <a class="external text" href="https://www.mozilla.org/en-US/about/manifesto/" rel="nofollow">the Mozilla Manifesto</a></li>
- <li><a class="external text" href="https://wiki.mozilla.org/" rel="nofollow">Mozilla Wiki</a>(<a class="extiw" href="https://wiki.mozilla.org/Timeline" title="mozillawiki:Timeline">Major time line of community development</a>)</li>
- <li><a class="external text" href="http://hg.mozilla.org/" rel="nofollow">Mozilla Mercurial Repository</a></li>
+ <td>Wikimedia Commons has media related to <i><b><a href="https://commons.wikimedia.org/wiki/Category:Mozilla" title="commons:Category:Mozilla">Mozilla</a></b></i>.</td>
+ </tr></table><ul><li><span><span><a href="http://mozilla.org/" rel="nofollow">Official website</a></span></span>, including <a href="https://www.mozilla.org/en-US/about/manifesto/" rel="nofollow">the Mozilla Manifesto</a></li>
+ <li><a href="https://wiki.mozilla.org/" rel="nofollow">Mozilla Wiki</a>(<a href="https://wiki.mozilla.org/Timeline" title="mozillawiki:Timeline">Major time line of community development</a>)</li>
+ <li><a href="http://hg.mozilla.org/" rel="nofollow">Mozilla Mercurial Repository</a></li>
</ul>
diff --git a/test/test-pages/wordpress/expected.html b/test/test-pages/wordpress/expected.html
index 42606df..1f47d8f 100644
--- a/test/test-pages/wordpress/expected.html
+++ b/test/test-pages/wordpress/expected.html
@@ -1,14 +1,14 @@
-<article class="entry author-sarah post-67202 post type-post status-publish format-standard has-post-thumbnail category-news tag-jobs tag-stack-overflow" id="post-67202" itemprop="blogPost" itemscope="itemscope" itemtype="http://schema.org/BlogPosting"><div class="entry-content" itemprop="articleBody">
+<article id="post-67202" itemprop="blogPost" itemscope="itemscope" itemtype="http://schema.org/BlogPosting"><div itemprop="articleBody">
<p>
- <a class="img-hyperlink" href="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?ssl=1"><img alt="" class="aligncenter size-full wp-image-57913" data-attachment-id="57913" data-comments-opened="0" data-image-description="" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="stack-overflow" data-large-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=500%2C196&amp;ssl=1" data-medium-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=300%2C117&amp;ssl=1" data-orig-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=1650%2C646&amp;ssl=1" data-orig-size="1650,646" data-permalink="https://wptavern.com/stack-overflow-documentation-is-now-in-beta/stack-overflow" height="252" sizes="(max-width: 1025px) 100vw, 1025px" src="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=1025%2C401&amp;ssl=1" srcset="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?w=1650&amp;ssl=1 1650w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=300%2C117&amp;ssl=1 300w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=768%2C301&amp;ssl=1 768w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=500%2C196&amp;ssl=1 500w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=1025%2C401&amp;ssl=1 1025w" width="644"></img></a>
+ <a href="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?ssl=1"><img alt="" data-attachment-id="57913" data-comments-opened="0" data-image-description="" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="stack-overflow" data-large-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=500%2C196&amp;ssl=1" data-medium-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=300%2C117&amp;ssl=1" data-orig-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=1650%2C646&amp;ssl=1" data-orig-size="1650,646" data-permalink="https://wptavern.com/stack-overflow-documentation-is-now-in-beta/stack-overflow" height="252" sizes="(max-width: 1025px) 100vw, 1025px" src="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=1025%2C401&amp;ssl=1" srcset="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?w=1650&amp;ssl=1 1650w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=300%2C117&amp;ssl=1 300w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=768%2C301&amp;ssl=1 768w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=500%2C196&amp;ssl=1 500w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=1025%2C401&amp;ssl=1 1025w" width="644"></img></a>
</p>
<p>Stack Overflow published its analysis of <a href="https://stackoverflow.blog/2017/03/09/developer-hiring-trends-2017/" target="_blank">2017 hiring trends</a> based on the targeting options employers selected when posting to <a href="http://stackoverflow.com/jobs" target="_blank">Stack Overflow Jobs</a>. The report, which compares data from 200 companies since 2015, ranks ReactJS, Docker, and Ansible at the top of the fastest growing skills in demand. When comparing the percentage change from 2015 to 2016, technologies like AJAX, Backbone.js, jQuery, and WordPress are less in demand.</p>
<p>
- <a class="img-hyperlink" href="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?ssl=1"><img alt="" class="aligncenter size-full wp-image-67214" data-attachment-id="67214" data-comments-opened="0" data-image-description="" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ChangesinDemand" data-large-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=437%2C500&amp;ssl=1" data-medium-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=262%2C300&amp;ssl=1" data-orig-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=975%2C1115&amp;ssl=1" data-orig-size="975,1115" data-permalink="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/changesindemand" height="736" sizes="(max-width: 975px) 100vw, 975px" src="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=975%2C1115&amp;ssl=1" srcset="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?w=975&amp;ssl=1 975w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=262%2C300&amp;ssl=1 262w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=768%2C878&amp;ssl=1 768w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=437%2C500&amp;ssl=1 437w" width="644"></img></a>
+ <a href="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?ssl=1"><img alt="" data-attachment-id="67214" data-comments-opened="0" data-image-description="" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ChangesinDemand" data-large-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=437%2C500&amp;ssl=1" data-medium-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=262%2C300&amp;ssl=1" data-orig-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=975%2C1115&amp;ssl=1" data-orig-size="975,1115" data-permalink="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/changesindemand" height="736" sizes="(max-width: 975px) 100vw, 975px" src="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=975%2C1115&amp;ssl=1" srcset="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?w=975&amp;ssl=1 975w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=262%2C300&amp;ssl=1 262w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=768%2C878&amp;ssl=1 768w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=437%2C500&amp;ssl=1 437w" width="644"></img></a>
</p>
<p>Stack Overflow also measured the demand relative to the available developers in different tech skills. The demand for backend, mobile, and database engineers is higher than the number of qualified candidates available. WordPress is last among the oversaturated fields with a surplus of developers relative to available positions.</p>
<p>
- <a class="img-hyperlink" href="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?ssl=1"><img alt="" class="aligncenter size-full wp-image-67216" data-attachment-id="67216" data-comments-opened="0" data-image-description="" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="HighDemand" data-large-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=500%2C438&amp;ssl=1" data-medium-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=300%2C263&amp;ssl=1" data-orig-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=975%2C854&amp;ssl=1" data-orig-size="975,854" data-permalink="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/highdemand" height="564" sizes="(max-width: 975px) 100vw, 975px" src="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=975%2C854&amp;ssl=1" srcset="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?w=975&amp;ssl=1 975w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=300%2C263&amp;ssl=1 300w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=768%2C673&amp;ssl=1 768w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=500%2C438&amp;ssl=1 500w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=571%2C500&amp;ssl=1 571w" width="644"></img></a>
+ <a href="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?ssl=1"><img alt="" data-attachment-id="67216" data-comments-opened="0" data-image-description="" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="HighDemand" data-large-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=500%2C438&amp;ssl=1" data-medium-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=300%2C263&amp;ssl=1" data-orig-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=975%2C854&amp;ssl=1" data-orig-size="975,854" data-permalink="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/highdemand" height="564" sizes="(max-width: 975px) 100vw, 975px" src="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=975%2C854&amp;ssl=1" srcset="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?w=975&amp;ssl=1 975w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=300%2C263&amp;ssl=1 300w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=768%2C673&amp;ssl=1 768w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=500%2C438&amp;ssl=1 500w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=571%2C500&amp;ssl=1 571w" width="644"></img></a>
</p>
<p>In looking at these results, it’s important to consider the inherent biases within the Stack Overflow ecosystem. In 2016, the site surveyed more than 56,000 developers but noted that the survey was “biased against devs who don’t speak English.” The average age of respondents was 29.6 years old and 92.8% of them were male. </p>
<p>For two years running, Stack Overflow survey respondents have <a href="https://wptavern.com/stack-overflow-survey-results-show-wordpress-is-trending-up-despite-being-ranked-among-most-dreaded-technologies" target="_blank">ranked WordPress among the most dreaded technologies</a> that they would prefer not to use. This may be one reason why employers wouldn’t be looking to advertise positions on the site’s job board, which is the primary source of the data for this report.</p>
diff --git a/test/test-pages/yahoo-1/expected.html b/test/test-pages/yahoo-1/expected.html
index 4ba92e9..1736b04 100644
--- a/test/test-pages/yahoo-1/expected.html
+++ b/test/test-pages/yahoo-1/expected.html
@@ -1,45 +1,45 @@
<div data-reactid="406" id="Col1-0-ContentCanvas-Proxy">
- <div class="content-canvas Bgc(#fff) Pos(r) P(20px)--sm Pt(17px)--sm" data-reactid="407" id="Col1-0-ContentCanvas">
- <article data-reactid="408" data-type="story" data-uuid="80b35014-fba3-377e-adc5-47fb44f61fa7"><figure class="canvas-image Mx(a) canvas-atom Mt(0px) Mt(20px)--sm Mb(24px) Mb(22px)--sm" data-reactid="409" data-type="image"><div class="Maw(100%) Pos(r) H(0)" data-reactid="410"><img alt="The PlayStation VR" class="Trsdu(.42s) StretchedBox W(100%) H(100%) ie-7_H(a)" data-reactid="411" src="http://l1.yimg.com/ny/api/res/1.2/589noY9BZNdmsUUQf6L1AQ--/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9NzQ0O2g9NjY5/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/4406ef57dcb40376c513903b03bef048"></img></div>
- <div class="Ov(h) Pos(r) Mah(80px)" data-reactid="413">
- <figcaption class="C(#787d82) Fz(13px) Py(5px) Lh(1.5)" data-reactid="414" title="Sony’s PlayStation VR."><p>Sony’s PlayStation VR.</p>
+ <div data-reactid="407" id="Col1-0-ContentCanvas">
+ <article data-reactid="408" data-type="story" data-uuid="80b35014-fba3-377e-adc5-47fb44f61fa7"><figure data-reactid="409" data-type="image"><div data-reactid="410"><img alt="The PlayStation VR" data-reactid="411" src="http://l1.yimg.com/ny/api/res/1.2/589noY9BZNdmsUUQf6L1AQ--/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9NzQ0O2g9NjY5/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/4406ef57dcb40376c513903b03bef048"></img></div>
+ <div data-reactid="413">
+ <figcaption data-reactid="414" title="Sony’s PlayStation VR."><p>Sony’s PlayStation VR.</p>
</figcaption></div>
- </figure><div class="canvas-body C(#26282a) Wow(bw) Cl(start) Mb(20px) Fz(15px) Lh(1.6) Ff($ff-secondary)" data-reactid="418">
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="419" data-type="text">Virtual reality has officially reached the consoles. And it’s pretty good! <a href="http://finance.yahoo.com/news/review-playstation-vr-is-comfortable-and-affordable-but-lacks-must-have-games-165053851.html">Sony’s PlayStation VR</a> is extremely comfortable and reasonably priced, and while it’s lacking killer apps, it’s loaded with lots of interesting ones.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="420" data-type="text">But which ones should you buy? I’ve played just about every launch game, and while some are worth your time, others you might want to skip. To help you decide what’s what, I’ve put together this list of the eight PSVR games worth considering.</p>
- <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="421" data-type="text"><a href="https://www.playstation.com/en-us/games/rez-infinite-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Rez Infinite” ($30)</a></h3>
- <p><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-reactid="423" data-type="videoIframe" src="https://www.youtube.com/embed/YlDxEOwj5j8"></iframe></p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="424" data-type="text">Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. It includes a fully remastered take on the original “Rez” – you zoom through a Matrix-like computer system, shooting down enemies to the steady beat of thumping electronica – but the VR setting makes it incredibly immersive. It gets better the more you play it, too; unlock the amazing Area X mode and you’ll find yourself flying, shooting and bobbing your head to some of the trippiest visuals yet seen in VR.</p>
- <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="425" data-type="text"><a href="https://www.playstation.com/en-us/games/thumper-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Thumper” ($20)</a></h3>
- <p><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-reactid="427" data-type="videoIframe" src="https://www.youtube.com/embed/gtPGX8i1Eaw"></iframe></p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="428" data-type="text">What would happen if Tron, the board game Simon, a Clown beetle, Cthulhu and a noise band met in VR? Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well, a violent rhythm game that’s also a gorgeous, unsettling and totally captivating assault on the senses. With simple controls and a straightforward premise – click the X button and the analog stick in time with the music as you barrel down a neon highway — it’s one of the rare games that works equally well both in and out of VR. But since you have PSVR, play it there. It’s marvelous.</p>
- <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="429" data-type="text"><a href="https://www.playstation.com/en-us/games/until-dawn-rush-of-blood-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Until Dawn: Rush of Blood” ($20)</a></h3>
- <p><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-reactid="431" data-type="videoIframe" src="https://www.youtube.com/embed/EL3svUfC8Ds"></iframe></p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="432" data-type="text">Cheeky horror game “Until Dawn” was a breakout hit for the PS4 last year, channeling the classic “dumb teens in the woods” horror trope into an effective interactive drama. Well, forget all that if you fire up “Rush of Blood,” because this one sticks you front and center on a rollercoaster ride from Hell. Literally. You ride through a dimly-lit carnival of terror, dual-wielding pistols as you take down targets, hideous pig monsters and, naturally, maniac clowns. Be warned: If the bad guys don’t get you, the jump scares will.</p>
- <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="433" data-type="text"><a href="https://www.playstation.com/en-us/games/headmaster-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Headmaster” ($20)</a></h3>
- <p><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-reactid="435" data-type="videoIframe" src="https://www.youtube.com/embed/a7CSMKw1E7g"></iframe></p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="436" data-type="text">Soccer meets “Portal” in the weird (and weirdly fun) “Headmaster,” a game about heading soccer balls into nets, targets and a variety of other things while stuck in some diabolical training facility. While at first it seems a little basic, increasingly challenging shots and a consistently entertaining narrative keep it from running off the pitch. Funny, ridiculous and as easy as literally moving your head back and forth, it’s a pleasant PSVR surprise.</p>
- <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="437" data-type="text"><a href="https://www.playstation.com/en-us/games/rigs-mechanized-combat-league-ps4/" rel="nofollow noopener noreferrer" target="_blank">“RIGS: Mechanized Combat League” ($50)</a></h3>
- <p><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-reactid="439" data-type="videoIframe" src="https://www.youtube.com/embed/Rnqlf9EQ2zA"></iframe></p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="440" data-type="text">Giant mechs + sports? That’s the gist of this robotic blast-a-thon, which pits two teams of three against one another in gorgeous, explosive and downright fun VR combat. At its best, “RIGS” marries the thrill of fast-paced competitive shooters with the insanity of piloting a giant mech in VR. It can, however, be one of the barfier PSVR games. So pack your Dramamine, you’re going to have to ease yourself into this one.</p>
- <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="441" data-type="text"><a href="https://www.playstation.com/en-us/games/batman-arkham-vr-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Batman Arkham VR” ($20)</a></h3>
- <p><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-reactid="443" data-type="videoIframe" src="https://www.youtube.com/embed/eS4g0py16N8"></iframe></p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="444" data-type="text">“I’m Batman,” you will say. And you’ll actually be right this time, because you are Batman in this detective yarn, and you know this because you actually grab the famous cowl and mask, stick it on your head, and stare into the mirrored reflection of Rocksteady Games’ impressive Dark Knight character model. It lacks the action of its fellow “Arkham” games and runs disappointingly short, but it’s a high-quality experience that really shows off how powerfully immersive VR can be.</p>
- <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="445" data-type="text"><a href="https://www.playstation.com/en-us/games/job-simulator-the-2050-archives-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Job Simulator” ($30)</a></h3>
- <p><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-reactid="447" data-type="videoIframe" src="https://www.youtube.com/embed/3-iMlQIGH8Y"></iframe></p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="448" data-type="text">There are a number of good VR ports in the PSVR launch lineup, but the HTC Vive launch game “Job Simulator” might be the best. Your task? Lots of tasks, actually, from cooking food to fixing cars to working in an office, all for robots, because did I mention you were in the future? Infinitely charming and surprisingly challenging, it’s a great showpiece for VR.</p>
- <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="449" data-type="text"><a href="https://www.playstation.com/en-us/games/eve-valkyrie-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Eve Valkyrie” ($60)</a></h3>
- <p><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-reactid="451" data-type="videoIframe" src="https://www.youtube.com/embed/0KFHw12CTbo"></iframe></p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="452" data-type="text">Already a hit on the Oculus Rift, this space dogfighting game was one of the first to really show off how VR can turn a traditional game experience into something special. It’s pricey and not quite as hi-res as the Rift version, but “Eve Valkyrie” does an admirable job filling the void left since “Battlestar Galactica” ended. Too bad there aren’t any Cylons in it (or are there?)</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="453" data-type="text"><em><strong>More games news:</strong></em></p>
- <ul class="canvas-list Pstart(40px) Mt(1.5em) Mb(1.5em) List(d)" data-reactid="454" data-type="list"><li data-reactid="455"><a href="https://www.yahoo.com/tech/skylanders-imaginators-will-let-you-create-and-3d-print-your-own-action-figure-143838550.html">‘Skylanders Imaginators’ will let you create and 3D print your own action figures</a></li>
+ </figure><div data-reactid="418">
+ <p data-reactid="419" data-type="text">Virtual reality has officially reached the consoles. And it’s pretty good! <a href="http://finance.yahoo.com/news/review-playstation-vr-is-comfortable-and-affordable-but-lacks-must-have-games-165053851.html">Sony’s PlayStation VR</a> is extremely comfortable and reasonably priced, and while it’s lacking killer apps, it’s loaded with lots of interesting ones.</p>
+ <p data-reactid="420" data-type="text">But which ones should you buy? I’ve played just about every launch game, and while some are worth your time, others you might want to skip. To help you decide what’s what, I’ve put together this list of the eight PSVR games worth considering.</p>
+ <h3 data-reactid="421" data-type="text"><a href="https://www.playstation.com/en-us/games/rez-infinite-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Rez Infinite” ($30)</a></h3>
+ <p><iframe data-reactid="423" data-type="videoIframe" src="https://www.youtube.com/embed/YlDxEOwj5j8"></iframe></p>
+ <p data-reactid="424" data-type="text">Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. It includes a fully remastered take on the original “Rez” – you zoom through a Matrix-like computer system, shooting down enemies to the steady beat of thumping electronica – but the VR setting makes it incredibly immersive. It gets better the more you play it, too; unlock the amazing Area X mode and you’ll find yourself flying, shooting and bobbing your head to some of the trippiest visuals yet seen in VR.</p>
+ <h3 data-reactid="425" data-type="text"><a href="https://www.playstation.com/en-us/games/thumper-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Thumper” ($20)</a></h3>
+ <p><iframe data-reactid="427" data-type="videoIframe" src="https://www.youtube.com/embed/gtPGX8i1Eaw"></iframe></p>
+ <p data-reactid="428" data-type="text">What would happen if Tron, the board game Simon, a Clown beetle, Cthulhu and a noise band met in VR? Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well, a violent rhythm game that’s also a gorgeous, unsettling and totally captivating assault on the senses. With simple controls and a straightforward premise – click the X button and the analog stick in time with the music as you barrel down a neon highway — it’s one of the rare games that works equally well both in and out of VR. But since you have PSVR, play it there. It’s marvelous.</p>
+ <h3 data-reactid="429" data-type="text"><a href="https://www.playstation.com/en-us/games/until-dawn-rush-of-blood-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Until Dawn: Rush of Blood” ($20)</a></h3>
+ <p><iframe data-reactid="431" data-type="videoIframe" src="https://www.youtube.com/embed/EL3svUfC8Ds"></iframe></p>
+ <p data-reactid="432" data-type="text">Cheeky horror game “Until Dawn” was a breakout hit for the PS4 last year, channeling the classic “dumb teens in the woods” horror trope into an effective interactive drama. Well, forget all that if you fire up “Rush of Blood,” because this one sticks you front and center on a rollercoaster ride from Hell. Literally. You ride through a dimly-lit carnival of terror, dual-wielding pistols as you take down targets, hideous pig monsters and, naturally, maniac clowns. Be warned: If the bad guys don’t get you, the jump scares will.</p>
+ <h3 data-reactid="433" data-type="text"><a href="https://www.playstation.com/en-us/games/headmaster-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Headmaster” ($20)</a></h3>
+ <p><iframe data-reactid="435" data-type="videoIframe" src="https://www.youtube.com/embed/a7CSMKw1E7g"></iframe></p>
+ <p data-reactid="436" data-type="text">Soccer meets “Portal” in the weird (and weirdly fun) “Headmaster,” a game about heading soccer balls into nets, targets and a variety of other things while stuck in some diabolical training facility. While at first it seems a little basic, increasingly challenging shots and a consistently entertaining narrative keep it from running off the pitch. Funny, ridiculous and as easy as literally moving your head back and forth, it’s a pleasant PSVR surprise.</p>
+ <h3 data-reactid="437" data-type="text"><a href="https://www.playstation.com/en-us/games/rigs-mechanized-combat-league-ps4/" rel="nofollow noopener noreferrer" target="_blank">“RIGS: Mechanized Combat League” ($50)</a></h3>
+ <p><iframe data-reactid="439" data-type="videoIframe" src="https://www.youtube.com/embed/Rnqlf9EQ2zA"></iframe></p>
+ <p data-reactid="440" data-type="text">Giant mechs + sports? That’s the gist of this robotic blast-a-thon, which pits two teams of three against one another in gorgeous, explosive and downright fun VR combat. At its best, “RIGS” marries the thrill of fast-paced competitive shooters with the insanity of piloting a giant mech in VR. It can, however, be one of the barfier PSVR games. So pack your Dramamine, you’re going to have to ease yourself into this one.</p>
+ <h3 data-reactid="441" data-type="text"><a href="https://www.playstation.com/en-us/games/batman-arkham-vr-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Batman Arkham VR” ($20)</a></h3>
+ <p><iframe data-reactid="443" data-type="videoIframe" src="https://www.youtube.com/embed/eS4g0py16N8"></iframe></p>
+ <p data-reactid="444" data-type="text">“I’m Batman,” you will say. And you’ll actually be right this time, because you are Batman in this detective yarn, and you know this because you actually grab the famous cowl and mask, stick it on your head, and stare into the mirrored reflection of Rocksteady Games’ impressive Dark Knight character model. It lacks the action of its fellow “Arkham” games and runs disappointingly short, but it’s a high-quality experience that really shows off how powerfully immersive VR can be.</p>
+ <h3 data-reactid="445" data-type="text"><a href="https://www.playstation.com/en-us/games/job-simulator-the-2050-archives-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Job Simulator” ($30)</a></h3>
+ <p><iframe data-reactid="447" data-type="videoIframe" src="https://www.youtube.com/embed/3-iMlQIGH8Y"></iframe></p>
+ <p data-reactid="448" data-type="text">There are a number of good VR ports in the PSVR launch lineup, but the HTC Vive launch game “Job Simulator” might be the best. Your task? Lots of tasks, actually, from cooking food to fixing cars to working in an office, all for robots, because did I mention you were in the future? Infinitely charming and surprisingly challenging, it’s a great showpiece for VR.</p>
+ <h3 data-reactid="449" data-type="text"><a href="https://www.playstation.com/en-us/games/eve-valkyrie-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Eve Valkyrie” ($60)</a></h3>
+ <p><iframe data-reactid="451" data-type="videoIframe" src="https://www.youtube.com/embed/0KFHw12CTbo"></iframe></p>
+ <p data-reactid="452" data-type="text">Already a hit on the Oculus Rift, this space dogfighting game was one of the first to really show off how VR can turn a traditional game experience into something special. It’s pricey and not quite as hi-res as the Rift version, but “Eve Valkyrie” does an admirable job filling the void left since “Battlestar Galactica” ended. Too bad there aren’t any Cylons in it (or are there?)</p>
+ <p data-reactid="453" data-type="text"><em><strong>More games news:</strong></em></p>
+ <ul data-reactid="454" data-type="list"><li data-reactid="455"><a href="https://www.yahoo.com/tech/skylanders-imaginators-will-let-you-create-and-3d-print-your-own-action-figure-143838550.html">‘Skylanders Imaginators’ will let you create and 3D print your own action figures</a></li>
<li data-reactid="456"><a href="https://www.yahoo.com/tech/review-high-flying-nba-2k17-has-a-career-year-184135248.html">Review: High-flying ‘NBA 2K17’ has a career year</a></li>
<li data-reactid="457"><a href="https://www.yahoo.com/tech/review-race-at-your-own-speed-in-big-beautiful-forza-horizon-3-195337170.html">Review: Race at your own speed in big, beautiful ‘Forza Horizon 3’</a></li>
<li data-reactid="458"><a href="https://www.yahoo.com/tech/sonys-playstation-4-pro-shows-promise-potential-161304037.html">Sony’s PlayStation 4 Pro shows promise, potential and plenty of pretty lighting</a></li>
<li data-reactid="459"><a href="https://www.yahoo.com/tech/review-madden-nfl-17-runs-000000394.html">Review: ‘Madden NFL 17’ runs hard, plays it safe</a></li>
- </ul><p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-reactid="460" data-type="text"><i>Ben Silverman is on Twitter at</i>
+ </ul><p data-reactid="460" data-type="text"><i>Ben Silverman is on Twitter at</i>
<a href="https://twitter.com/ben_silverman" rel="nofollow noopener noreferrer" target="_blank"> <i>ben_silverman</i></a><i>.</i></p>
</div>
- </article><span aria-hidden="true" class="canvas-bottom-anchor-80b35014-fba3-377e-adc5-47fb44f61fa7" data-reactid="462"></span></div>
+ </article><span aria-hidden="true" data-reactid="462"></span></div>
</div> \ No newline at end of file
diff --git a/test/test-pages/yahoo-2/expected.html b/test/test-pages/yahoo-2/expected.html
index 669af7a..f603205 100644
--- a/test/test-pages/yahoo-2/expected.html
+++ b/test/test-pages/yahoo-2/expected.html
@@ -1,11 +1,11 @@
<div id="tgt1-Col1-2-ContentCanvas-Proxy">
- <div class="content-canvas Bgc(#fff) Pos(r) P(20px)--sm Pt(17px)--sm" id="tgt1-Col1-2-ContentCanvas">
- <article data-type="story" data-uuid="8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb"><div class="canvas-atom Mb(24px) Mb(22px)--sm">
+ <div id="tgt1-Col1-2-ContentCanvas">
+ <article data-type="story" data-uuid="8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb"><div>
- <div class="Bdbc(#e8e8e8) Bdbs(s) Bdbw(1px)">
- <div class="Pos(r) Lh(1.4) Fz(13px) Pb(10px) Pt(6px)">
+ <div>
+ <div>
<p><span>1 / 5</span></p>
- <div class="Pos(r) Ovy(h)">
+ <div>
<div>
<p>In this photo dated Tuesday, Nov, 29, 2016 the Soyuz-FG rocket booster with the Progress MS-04 cargo ship is installed on a launch pad in Baikonur, Kazakhstan. The unmanned Russian cargo space ship Progress MS-04 broke up in the atmosphere over Siberia on Thursday Dec. 1, 2016, just minutes after the launch en route to the International Space Station due to an unspecified malfunction, the Russian space agency said.(Oleg Urusov/ Roscosmos Space Agency Press Service photo via AP)</p>
@@ -14,21 +14,21 @@
</div></div>
</div>
</div>
- <div class="canvas-body C(#26282a) Wow(bw) Cl(start) Mb(20px) Fz(15px) Lh(1.6) Ff($ff-secondary)">
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">MOSCOW (AP) — An unmanned Russian cargo spaceship heading to the International Space Station broke up in the atmosphere over Siberia on Thursday due to an unspecified malfunction, the Russian space agency said.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">The Progress MS-04 cargo craft broke up at an altitude of 190 kilometers (118 miles) over the remote Russian Tuva region in Siberia that borders Mongolia, Roscosmos said in a statement. It said most of spaceship's debris burnt up as it entered the atmosphere but some fell to Earth over what it called an uninhabited area.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">Local people reported seeing a flash of light and hearing a loud thud west of the regional capital of Kyzyl, more than 3,600 kilometers (2,200 miles) east of Moscow, the Tuva government was quoted as saying late Thursday by the Interfax news agency.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">The Progress cargo ship had lifted off as scheduled at 8:51 p.m. (1451 GMT) from Russia's space launch complex in Baikonur, Kazakhstan, to deliver 2.5 metric tons of fuel, water, food and other supplies. It was set to dock with the space station on Saturday.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">Roscosmos said the craft was operating normally before it stopped transmitting data 6 ½ minutes after the launch. The Russian space agency would not immediately describe the malfunction, saying its experts were looking into it.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">This is the third botched launch of a Russian spacecraft in two years. A Progress cargo ship plunged into the Pacific Ocean in May 2015, and a Proton-M rocket carrying an advanced satellite broke up in the atmosphere in May 2014.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">But both Roscosmos and NASA said the crash of the ship would have no impact on the operations of the orbiting space lab that is currently home to a six-member crew, including three cosmonauts from Russia, two NASA astronauts and one from the European Union.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">Orbital ATK, NASA's other shipper, successfully sent up supplies to the space station in October, and a Japanese cargo spaceship is scheduled to launch a full load in mid-December.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">NASA supplier SpaceX, meanwhile, has been grounded since a rocket explosion in September on the launch pad at Cape Canaveral, Florida. The company hopes to resume launches in December to deliver communication satellites.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">___</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">This version corrects the spelling of the region to Tuva, not Tyva.</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">__</p>
- <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text">Aerospace Writer Marcia Dunn in Cape Canaveral, Florida, and Vladimir Isachenkov in Moscow contributed to this report.</p>
+ <div>
+ <p data-type="text">MOSCOW (AP) — An unmanned Russian cargo spaceship heading to the International Space Station broke up in the atmosphere over Siberia on Thursday due to an unspecified malfunction, the Russian space agency said.</p>
+ <p data-type="text">The Progress MS-04 cargo craft broke up at an altitude of 190 kilometers (118 miles) over the remote Russian Tuva region in Siberia that borders Mongolia, Roscosmos said in a statement. It said most of spaceship's debris burnt up as it entered the atmosphere but some fell to Earth over what it called an uninhabited area.</p>
+ <p data-type="text">Local people reported seeing a flash of light and hearing a loud thud west of the regional capital of Kyzyl, more than 3,600 kilometers (2,200 miles) east of Moscow, the Tuva government was quoted as saying late Thursday by the Interfax news agency.</p>
+ <p data-type="text">The Progress cargo ship had lifted off as scheduled at 8:51 p.m. (1451 GMT) from Russia's space launch complex in Baikonur, Kazakhstan, to deliver 2.5 metric tons of fuel, water, food and other supplies. It was set to dock with the space station on Saturday.</p>
+ <p data-type="text">Roscosmos said the craft was operating normally before it stopped transmitting data 6 ½ minutes after the launch. The Russian space agency would not immediately describe the malfunction, saying its experts were looking into it.</p>
+ <p data-type="text">This is the third botched launch of a Russian spacecraft in two years. A Progress cargo ship plunged into the Pacific Ocean in May 2015, and a Proton-M rocket carrying an advanced satellite broke up in the atmosphere in May 2014.</p>
+ <p data-type="text">But both Roscosmos and NASA said the crash of the ship would have no impact on the operations of the orbiting space lab that is currently home to a six-member crew, including three cosmonauts from Russia, two NASA astronauts and one from the European Union.</p>
+ <p data-type="text">Orbital ATK, NASA's other shipper, successfully sent up supplies to the space station in October, and a Japanese cargo spaceship is scheduled to launch a full load in mid-December.</p>
+ <p data-type="text">NASA supplier SpaceX, meanwhile, has been grounded since a rocket explosion in September on the launch pad at Cape Canaveral, Florida. The company hopes to resume launches in December to deliver communication satellites.</p>
+ <p data-type="text">___</p>
+ <p data-type="text">This version corrects the spelling of the region to Tuva, not Tyva.</p>
+ <p data-type="text">__</p>
+ <p data-type="text">Aerospace Writer Marcia Dunn in Cape Canaveral, Florida, and Vladimir Isachenkov in Moscow contributed to this report.</p>
</div>
- </article><span aria-hidden="true" class="canvas-bottom-anchor-8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb"></span></div>
+ </article><span aria-hidden="true"></span></div>
</div> \ No newline at end of file
diff --git a/test/test-pages/yahoo-3/expected.html b/test/test-pages/yahoo-3/expected.html
index ad3f023..f3113b6 100644
--- a/test/test-pages/yahoo-3/expected.html
+++ b/test/test-pages/yahoo-3/expected.html
@@ -1,14 +1,14 @@
-<div class="Col2 yog-cp Pos-a Bxz-bb">
- <div class="Pos-r Z-3 Stack yog-card yog-content" id="Main" role="main" tabindex="0">
- <section class="yom-mod yom-breaking-news level2" data-ylk="mid:mediacontentbreakingnews;mpos:1;t1:a3;t2:mod-bkn;sec:mod-bkn;" id="mediacontentbreakingnews"><p> <span>'GMA' Cookie Search:</span> </p>
+<div>
+ <div id="Main" role="main" tabindex="0">
+ <section data-ylk="mid:mediacontentbreakingnews;mpos:1;t1:a3;t2:mod-bkn;sec:mod-bkn;" id="mediacontentbreakingnews"><p> <span>'GMA' Cookie Search:</span> </p>
</section>
- <section class="yom-mod yom-card-main yom-article" data-type="story" data-uuid="4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c" data-ylk="t1:a3;t2:ct-mod;sec:ct-mod;itc:0;rspns:nav;" id="mediacontentstory"><div class="book clearfix">
+ <section data-type="story" data-uuid="4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c" data-ylk="t1:a3;t2:ct-mod;sec:ct-mod;itc:0;rspns:nav;" id="mediacontentstory"><div>
- <div class="body yom-art-content clearfix" itemscope="" itemtype="https://schema.org/Article">
+ <div itemscope="" itemtype="https://schema.org/Article">
<meta content="2015-03-11T19:46:14Z" itemprop="datePublished"></meta><meta content="Veteran Wraps Baby in American Flag, Photo Sparks Controversy" itemprop="headline"></meta><meta content="" itemprop="alternativeHeadline"></meta><meta content="https://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975" itemprop="image"></meta><meta content="A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot." itemprop="description"></meta><p>A photographer and Navy veteran is fighting back after a photo she posted to <a data-rapid_p="13" href="http://abcnews.go.com/topics/business/companies/facebook-inc.htm" id="ramplink_Facebook_" target="_blank">Facebook</a> started an online backlash.</p>
<p>Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform.</p>
@@ -19,8 +19,8 @@
<p>“This is what he was fighting for, his son wrapped in an American flag,” Hicks told ABC News. However, when she posted the image on her page, she started to get comments accusing her of desecrating the flag.</p>
<p>On one Facebook page an unidentified poster put up her picture writing and wrote they found it was “disrespectful, rude, tacky, disgusting, and against the U.S. Flag Code.”</p>
- <div class="yom-fig-frame"><span id="schemaorg"><div class="yom-figure yom-fig-middle"><figure class="cover get-lbdata-from-dom go-to-slideshow-lightbox" data-orig-index="2"><a class="cover-anchor" data-rapid_p="17" id="cover-c9b69c1a26e19ae9fe744763dc31e9ac" name="cover-c9b69c1a26e19ae9fe744763dc31e9ac"></a><div class="cta-overlay"><span class="clearfix title cta-text medium"></span>
- <p class="cta-text large">View photo</p><span class="icon-slideshow icon-white-slideshow">.</span></div><img alt="Vanessa Hicks" class="editorial lzbg" data-preembed="image" src="https://s3.yimg.com/bt/api/res/1.2/GNtA09EDJWzWfpBzGYJS0Q--/YXBwaWQ9eW5ld3NfbGVnbztxPTg1O3c9NjMw/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_flag_baby_jtm_150311_16x9_992.jpg" title="Vanessa Hicks" width="630"></img></figure><p class="legend">Vanessa Hicks</p>
+ <div><span id="schemaorg"><div><figure data-orig-index="2"><a data-rapid_p="17" id="cover-c9b69c1a26e19ae9fe744763dc31e9ac" name="cover-c9b69c1a26e19ae9fe744763dc31e9ac"></a><div><span></span>
+ <p>View photo</p><span>.</span></div><img alt="Vanessa Hicks" data-preembed="image" src="https://s3.yimg.com/bt/api/res/1.2/GNtA09EDJWzWfpBzGYJS0Q--/YXBwaWQ9eW5ld3NfbGVnbztxPTg1O3c9NjMw/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_flag_baby_jtm_150311_16x9_992.jpg" title="Vanessa Hicks" width="630"></img></figure><p>Vanessa Hicks</p>
</div>
</span>
</div><p>The Federal Flag Code has guidelines for the proper treatment of the U.S. Flag but there are no rules for punishment related to violations. In the past, the </p><a data-rapid_p="18" href="http://abcnews.go.com/topics/news/us/supreme-court.htm" target="_blank">Supreme Court</a><p> has found that people are protected from punishment under the First Amendment for manipulating or even burning the flag.
diff --git a/test/test-pages/yahoo-4/expected.html b/test/test-pages/yahoo-4/expected.html
index c817177..4a50c77 100644
--- a/test/test-pages/yahoo-4/expected.html
+++ b/test/test-pages/yahoo-4/expected.html
@@ -1,4 +1,4 @@
-<p class="ynDetailText">
+<p>
トレンドマイクロは3月9日、Wi-Fi利用時の通信を暗号化し保護するスマホ・タブレット向けのセキュリティアプリ「フリーWi-Fiプロテクション」(iOS/Android)の発売を開始すると発表した。1年版ライセンスは2900円(税込)で、2年版ライセンスは5000円(税込)。<p>  フリーWi-Fiプロテクションは、App Storeおよび、Google Playにて販売され、既に提供しているスマホ・タブレット向け総合セキュリティ対策アプリ「ウイルスバスター モバイル」と併用することで、不正アプリや危険なウェブサイトからの保護に加え、通信の盗み見を防ぐことができる。</p><p>  2020年の東京オリンピック・パラリンピックの開催などを見据え、フリーWi-Fi(公衆無線LAN)の設置が促進され、フリーWi-Fiの利用者も増加している。
</p><p>  一方で、脆弱な設定のフリーWi-Fiや攻撃者が設置した偽のフリーWi-Fiへの接続などによる情報漏えい、通信の盗み見などのセキュリティリスクが危惧されているという。
</p><p>  正規事業者が提供する安全性の高いフリーWi-Fiのほかにも、通信を暗号化していない安全性の低いフリーWi-Fi、さらにはサイバー犯罪者が設置したフリーWi-Fiなどさまざまなものが混在している。また、利用者は、接続する前にひとつひとつ安全性を確認するのは難しい状況だとしている。
diff --git a/test/test-pages/youth/expected.html b/test/test-pages/youth/expected.html
index 8d2ba23..f4ae9da 100644
--- a/test/test-pages/youth/expected.html
+++ b/test/test-pages/youth/expected.html
@@ -1,7 +1,7 @@
-<div class="article">
+<div>
<div id="content">
- <div class="article-content" id="container">
- <div class="TRS_Editor">
+ <div id="container">
+ <div>
<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>