Merge pull request #193 from mozilla/score-great-grandparent-nodes

Fixes #113 - Score great grandparent nodes.
pull/197/head
Nicolas Perriault 9 years ago
commit 4721837e27

@ -591,6 +591,18 @@ Readability.prototype = {
return false;
},
_getNodeAncestors: function(node, maxDepth) {
maxDepth = maxDepth || 0;
var i = 0, ancestors = [];
while (node.parentNode) {
ancestors.push(node.parentNode)
if (maxDepth && ++i === maxDepth)
break;
node = node.parentNode;
}
return ancestors;
},
/***
* grabArticle - Using a variety of metrics (content score, classname, element types), find the content that is
* most likely to be the stuff a user wants to read. Then return it wrapped up in a div.
@ -645,8 +657,9 @@ Readability.prototype = {
}
}
if (this.DEFAULT_TAGS_TO_SCORE.indexOf(node.tagName) !== -1)
if (this.DEFAULT_TAGS_TO_SCORE.indexOf(node.tagName) !== -1) {
elementsToScore.push(node);
}
// Turn all divs that don't have children block level elements into p's
if (node.tagName === "DIV") {
@ -685,30 +698,18 @@ Readability.prototype = {
**/
var candidates = [];
this._forEachNode(elementsToScore, function(elementToScore) {
var parentNode = elementToScore.parentNode;
var grandParentNode = parentNode ? parentNode.parentNode : null;
var innerText = this._getInnerText(elementToScore);
if (!parentNode || typeof(parentNode.tagName) === 'undefined')
if (!elementToScore.parentNode || typeof(elementToScore.parentNode.tagName) === 'undefined')
return;
// If this paragraph is less than 25 characters, don't even count it.
var innerText = this._getInnerText(elementToScore);
if (innerText.length < 25)
return;
// Initialize readability data for the parent.
if (typeof parentNode.readability === 'undefined') {
this._initializeNode(parentNode);
candidates.push(parentNode);
}
// Initialize readability data for the grandparent.
if (grandParentNode &&
typeof(grandParentNode.readability) === 'undefined' &&
typeof(grandParentNode.tagName) !== 'undefined') {
this._initializeNode(grandParentNode);
candidates.push(grandParentNode);
}
// Exclude nodes with no ancestor.
var ancestors = this._getNodeAncestors(elementToScore, 3);
if (ancestors.length === 0)
return;
var contentScore = 0;
@ -721,11 +722,18 @@ Readability.prototype = {
// For every 100 characters in this paragraph, add another point. Up to 3 points.
contentScore += Math.min(Math.floor(innerText.length / 100), 3);
// Add the score to the parent. The grandparent gets half.
parentNode.readability.contentScore += contentScore;
// Initialize and score ancestors.
this._forEachNode(ancestors, function(ancestor, level) {
if (!ancestor.tagName)
return;
if (typeof(ancestor.readability) === 'undefined') {
this._initializeNode(ancestor);
candidates.push(ancestor);
}
if (grandParentNode)
grandParentNode.readability.contentScore += contentScore / 2;
ancestor.readability.contentScore += contentScore / (level === 0 ? 1 : level * 2);
});
});
// After we've calculated scores, loop through all of the possible

@ -0,0 +1,6 @@
{
"title": "How to Build a Terrarium | eHow",
"byline": "Lucy Akins",
"excerpt": "How to Build a Terrarium. 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...",
"readerable": true
}

@ -0,0 +1,142 @@
<div id="readability-page-1" class="page">
<div class="col-main">
<header class="page-head bordered"> </header>
<div class="mod step">
<div class="stepContent mod">
<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 wont have to water the terrariums unless you see that the walls are not misting up. Small growing plants that dont require a lot of light work best such as succulents, ferns, moss, even orchids.</p>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" alt="Glass cloche terrariums" title="Glass cloche terrariums" class="photo" data-credit="Lucy Akins " longdesc="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg"> </figure>
<figcaption class="small caption"> 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>
<li>Planter saucer, small shallow dish or desired platform</li>
<li>Floral foam oasis</li>
<li>Ruler </li>
<li>Spoon</li>
<li>Floral wire pins or paper clips</li>
<li>Small plants (from a florist or nursery)</li>
<li>Moss</li>
<li>Tweezers</li>
<li>Other small decorative items (optional)</li>
</ul>
</div>
</div>
</div>
<div class="mod step">
<div class="stepContent">
<div class="content"><span class="headline2 head mg-1 block">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 src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/fc249ef6-4d27-41b4-8c21-15f7a8512b50.jpg" alt="Dig a hole in the oasis." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>Insert your plant into the hole.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/aae11d4d-a4aa-4251-a4d9-41023ebf6d84.jpg" alt="Orchid in foam oasis" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>You can add various plants if you wish.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/7afdfa1e-da74-44b5-b89c-ca8123516272.jpg" alt="Various foliage" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>Using floral pins, attach enough moss around the oasis to cover it.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/4f6612c0-316a-4c74-bb03-cb4e778f6d72.jpg" alt="Attach moss." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<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 src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/eeb1e0b4-e573-40a3-8db1-2c76f0b13b84.jpg" alt="Place cloche over oasis." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>Simply pull down the moss with tweezers or insert more moss to fill in the empty spaces.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/812d4649-4152-4363-97c0-f181d02e709a.jpg" alt="Rearrange moss." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>You can use any platform you wish. In this case, a small saucer was used.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/0cb3988c-9318-47d6-bc9c-c798da1ede72.jpg" alt="Place cloche on a platform to sit on." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>This particular terrarium rests on a planter saucer and features a small white pumpkin.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/e3e18f0b-ab2c-4ffb-9988-a1ea63faef8b.jpg" alt="Cloche placed on a terracotta saucer" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<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 src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/2cd79f8d-0d16-4573-8861-e47fb74b0638.jpg" alt="Placed on a wooden slice" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<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 src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/78670312-8636-4c42-a75c-3029f7aa6c73.jpg" alt="Cloche terrarium" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> Cloche terrarium (Lucy Akins) </figcaption>
</div>
</div>
<aside class="mod related clearfix" data-module="rcp_bottom">
<h3 class="head headline2 mg-2">More Like This</h3>
<ul class="unstyled">
<li class="item fl ">
<a href="http://www.ehow.com/how_4431062_convert-aquarium-terrarium.html"> <img src="http://img-aws.ehowcdn.com/200x133/cme/photography.prod.demandstudios.com/90f9f3d7-6e4f-4be8-b379-3d994ccbf69c.jpg" class="img" alt="">
<p class="headline6 mg-0">How to Convert an Aquarium to a Terrarium</p>
</a>
</li>
<li class="item fl even">
<a href="http://www.ehow.com/video_12263138_plant-terrarium-ideas.html"> <img src="http://img-aws.ehowcdn.com/200x133/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/a7edbb0f-86a7-4c73-9c2d-f85f87b49efa_0.jpg" class="img" alt="">
<p class="headline6 mg-0">Plant Terrarium Ideas</p>
</a>
</li>
<li class="item fl ">
<a href="http://www.ehow.com/video_9374_make-terrarium.html"> <img src="http://img-aws.ehowcdn.com/200x133/ehow/images/a00/09/4u/make-terrarium-800x800.jpg" class="img" alt="">
<p class="headline6 mg-0">How to Make a Terrarium</p>
</a>
</li>
</ul>
</aside>
<figure id="Comments" class="mod FLC" data-module="comments"> </figure>
<section id="FeaturedTombstone" class="mod" data-module="rcp_tombstone"> </section>
</div>
</div>

@ -0,0 +1,934 @@
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html class="Crafts en-US" lang="en-US" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#" data-channel="crafts" itemscope="" itemtype="http://schema.org/Article">
<head>
<meta charset="utf-8">
<meta name="description" content="How to Build a Terrarium. 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...">
<meta name="format-detection" content="telephone=no">
<meta name="y_key" content="4d4cb4ef1ad334cb">
<meta name="alexaVerifyID" content="xlJch1oUHrXNtOQBpiuUCV0-rlc">
<meta name="cachetime" content="201504281431">
<meta name="p:domain_verify" content="4d1387210be25228f0c4692cc47db05b">
<meta name="cme_last_updated" content="2015-04-28T11:54:11.401000">
<meta name="publishdate" content="05/29/2007 09:49:00">
<meta name="last_rcp_import" content="2015-04-27T19:34:40.179876">
<meta name="articleimage" content="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg">
<link href="http://www.ehow.com/how_2042752_build-terrarium.html" rel="canonical">
<link type="application/rss+xml" href="http://www.ehow.com/feed/ehow-crafts.rss" rel="alternate" title="Subscribe to our RSS Feed">
<meta name="studioid" scheme="DMINSTR2" content="f941e4cd-a49e-4948-b244-677c15ff8b7f">
<meta name="contentid" scheme="DMINSTR2" content="2042752">
<meta name="category" scheme="DMINSTR2" content="Crafts">
<meta name="subcategory" scheme="DMINSTR2" content="Other DIY Crafts">
<meta name="subsubcat" scheme="DMINSTR2" content="Other DIY Projects">
<meta name="subpagetype" scheme="DMINSTR2" content="topic_view">
<meta name="exp_page" scheme="DMINSTR2" content="">
<meta name="wa_pchn" scheme="DMINSTR2" content="Crafts">
<meta name="pagetype" scheme="DMINSTR2" content="inline">
<meta name="wa_lr" scheme="DMINSTR2" content="en-US">
<meta name="siteid" scheme="DMINSTR2" content="EHWC">
<meta name="exp_name" scheme="DMINSTR2" content="desktop:default">
<meta name="wa_un" scheme="DMINSTR2" content="">
<meta name="wa_isreg" scheme="DMINSTR2" content="">
<meta name="wa_lgdin" scheme="DMINSTR2" content="">
<meta name="wa_clvl" scheme="DMINSTR2" content="1">
<meta name="wa_lgsrc" scheme="DMINSTR2" content="1">
<meta name="author" scheme="DMINSTR2" content="Lucy Akins">
<meta name="author_image" content="">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@ehow">
<meta property="og:image" content="http://img-aws.ehowcdn.com/200x200/cme/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg">
<meta property="og:url" content="http://www.ehow.com/how_2042752_build-terrarium.html">
<meta property="og:type" content="article">
<meta property="og:title" content="How to Build a Terrarium | eHow">
<meta property="og:description" content="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 wont have to water the...">
<meta property="fb:app_id" content="63203377906">
<meta property="fb:ttl" content="604800">
<meta property="og:site_name" content="eHow">
<title>How to Build a Terrarium (with Pictures) | eHow</title>
<link type="image/x-icon" href="http://v5-static.ehowcdn.com/favicon.ico" rel="shortcut icon apple-touch-icon">
<link rel="stylesheet" type="text/css" href="http://dynamic02.ehowcdn.com/services/modules/css/common_header,corporate-skin,inline/fa923205/">
<!--[if lt IE 9]><link href="http://v5-static.ehowcdn.com/ui/stylesheets/layout/ie.css" rel="stylesheet" /><script src="http://v5-static.ehowcdn.com/ui/scripts/ie_hacks/header.js"></script><![endif]-->
<!--[if IE 9]><link href="http://v5-static.ehowcdn.com/ui/stylesheets/layout/ie9.css" rel="stylesheet" /><![endif]-->
<script>
window._omnitureLinkSetDomain = 'extended.dmtracker.com';
</script>
<script>
var dmjs = dmjs || {};
dmjs.global = dmjs.global || {};
dmjs.global.glbBaseUrl = "http:\/\/www.ehow.com";
dmjs.global.facebook = {
"app_id": "63203377906",
"api_version": "v2.0",
"login_service": "http:\/\/www.ehow.com\/services\/fb\/login\/",
"comment_service": "http:\/\/www.ehow.com\/services\/comment\/refresh\/"
};
dmjs.urls = {
"cdn": "http:\/\/v5-static.ehowcdn.com",
"sitelife": "http:\/\/sitelife.ehow.com\/ver1.0\/",
"dmtracker": "vs.dmtracker.com"
};
dmjs.global.IN_PRODUCTION = true;
dmjs.global.darkhorse = true;
dmjs.global.pool = "default";
dmjs.global.channel = "crafts";
dmjs.global.skin = "crafts";
dmjs.global.facebook.xid = "aG93XzIwNDI3NTJfYnVpbGQtdGVycmFyaXVtLmh0bWw";
dmjs.global.facebook.associate_on_comment = false;
dmjs.global._adChannel = "craft_other_diy,text,suggested7";
dmjs.global.IsSlideStep = false;
dmjs.global.fixed_category = [{
"id": 5352,
"title": "Crafts",
"url": "\/crafts\/"
}, {
"id": 5426,
"title": "Other DIY Crafts",
"url": "\/diy-crafts\/"
}, {
"id": 5429,
"title": "Other DIY Projects",
"url": "\/diy-projects\/"
}];
dmjs.global.SlideShowTest = {
"_id": "www.ehow.com\/how_16357_make-paper-sunflowers.html",
"dimensions": "none",
"image": {
"url": "http:\/\/s3.amazonaws.com\/uploadedimages.demandmedia\/sunflowers-1.jpg"
},
"subtitle": "",
"title": "How to Make Paper Sunflowers",
"type": "Article",
"url": "\/how_16357_make-paper-sunflowers.html"
};
dmjs.global.contributor = "www.demandstudios.com\/contributor\/3959b24c-24bb-447f-a676-55ce0b6e5519";
dmjs.global.articleType = "Article";
dmjs.global.articleID = 2042752;
/* Add xdomain first event helper to be added before ad event listeners are added */
dmjs.xdomainFirstEventListener = true;
if (window.addEventListener) {
window.addEventListener("message", function(event) {
if (typeof xdomain != 'undefined' && typeof xdomain.dmjsFirstEventListener != 'undefined') {
xdomain.dmjsFirstEventListener(event);
}
}, false);
} else {
window.attachEvent("message", function(event) {
if (typeof xdomain != 'undefined' && typeof xdomain.dmjsFirstEventListener != 'undefined') {
xdomain.dmjsFirstEventListener(event);
}
});
}
</script>
<!--[if lt IE 9]>
<script src="http://v5-static.ehowcdn.com/content/compressed/common_header-646656f9.js" ></script>
<![endif]-->
<script src="http://dynamic01.ehowcdn.com/services/modules/js/gpt,common_header_slim/4eb05a96/"></script>
<script class="kxct" data-id="JWC_M4Hq" data-timing="async" data-version="1.9" type="text/javascript">
window.Krux || ((Krux = function() {
Krux.q.push(arguments)
}).q = []);
(function() {
var k = document.createElement('script');
k.type = 'text/javascript';
k.async = true;
var m, src = (m = location.href.match(/\bkxsrc=([^&]+)/)) && decodeURIComponent(m[1]);
k.src = /^https?:\/\/([a-z0-9_\-\.]+\.)?krxd\.net(:\d{1,5})?\//i.test(src) ? src : src === "disable" ? "" : (location.protocol === "https:" ? "https:" : "http:") + "//cdn.krxd.net/controltag?confid=JWC_M4Hq";
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(k, s);
}());
</script>
<script>
window.Krux || ((Krux = function() {
Krux.q.push(arguments);
}).q = []);
(function() {
function retrieve(n) {
var m, k = 'kx' + n;
if (window.localStorage) {
return window.localStorage[k] || "";
} else if (navigator.cookieEnabled) {
m = document.cookie.match(k + '=([^;]*)');
return (m && unescape(m[1])) || "";
} else {
return '';
}
}
Krux.user = retrieve('user');
Krux.segments = retrieve('segs') && retrieve('segs').split(',') || [];
})();
</script>
<script type="text/javascript">
var GPT = [];
googletag.cmd.push(function() {
window.slot_define_string = "6117/dmd.ehow/crafts/otherdiycrafts/otherdiyprojects";
GPT['300x250_300x600'] = googletag.defineSlot('/6117/dmd.ehow/crafts/otherdiycrafts/otherdiyprojects', [
[300, 250],
[300, 600]
], '300x250_300x600').addService(googletag.pubads());
GPT['728x90_990x90_970x250'] = googletag.defineSlot('/6117/dmd.ehow/crafts/otherdiycrafts/otherdiyprojects', [
[728, 90],
[990, 90],
[970, 250]
], '728x90_990x90_970x250').addService(googletag.pubads());
GPT['outofpage'] = googletag.defineOutOfPageSlot('/6117/dmd.ehow/crafts/otherdiycrafts/otherdiyprojects', 'outofpage').addService(googletag.pubads()).setCollapseEmptyDiv(true, true);
googletag.pubads().setTargeting('cat', 'crafts');
googletag.pubads().setTargeting('scat', 'otherdiycrafts');
googletag.pubads().setTargeting('sscat', 'otherdiyprojects');
googletag.pubads().setTargeting('x', '7');
googletag.pubads().setTargeting('art', '2042752');
googletag.pubads().setTargeting('ctype', 'step_articles');
googletag.pubads().setTargeting('vid', '0');
googletag.pubads().setTargeting('blog', '0');
googletag.pubads().setTargeting('ad_chan', 'craft_other_diy');
window.gpt_targeting_vars = {
"cat": "crafts",
"scat": "otherdiycrafts",
"sscat": "otherdiyprojects",
"x": "7",
"art": 2042752,
"ctype": "step_articles",
"vid": 0,
"blog": 0,
"ad_chan": "craft_other_diy"
};
googletag.pubads().setTargeting('dc_ref', top.window.location.href.replace('#', '-'));
googletag.pubads().setTargeting("envr", ""); //for production. set envr to empty string
googletag.pubads().setTargeting("ksg", Krux.segments);
googletag.pubads().setTargeting("kuid", Krux.user);
googletag.pubads().collapseEmptyDivs();
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
<script>
dataLayer = [{
'content_category': 'Crafts',
'content_subCategory': 'Other DIY Crafts',
'content_subSubCategory': 'Other DIY Projects',
'content_pageType': 'inline',
'content_subPageType': 'topic_view',
'content_channel': 'crafts',
'content_author': 'Lucy Akins',
'content_publishDate': '05/29/2007 09:49:00',
'content_name': 'How to Build a Terrarium (with Pictures) | eHow',
'content_hasImages': 'True',
'content_experience': 'desktop:default',
'httpStatusCode': '200'
}];
</script>
<!--
<PageMap>
<DataObject type="meta">
<Attribute name="articlethumbnail"><![CDATA[]]></Attribute>
<Attribute name="articletype"><![CDATA[professional]]></Attribute>
</DataObject>
</PageMap>
-->
</head>
<body class="Crafts TopicView " data-skin="crafts">
<!--[if IE 7]>
<script src="http://v5-static.ehowcdn.com/ui/scripts/ie7_notification.js" ></script> <![endif]-->
<noscript>
<iframe src="//www.googletagmanager.com/ns.html?id=GTM-K7RB82" height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<script>
(function(w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(),
event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-K7RB82');
</script>
<header id="Header" data-section="header">
<section class="topContainer inner-container page-header clearfix">
<a href="http://www.ehow.com/" class="image corp-logo fl"><img src="http://v5-static.ehowcdn.com/media/images/logos/logo-stamp.png" width="134" height="38" alt="eHow Logo"></a>
<form method="get" action="http://www.ehow.com/search.html" id="searchHeader" class="Search ">
<input type="text" name="s" data-type="searchinput" class="input fl headline4">
<input name="skin" type="hidden" value="corporate">
<input name="t" type="hidden" value="all">
<input type="submit" value="Search" class="bttn submit headline5 head"> </form>
</section>
<nav id="primaryNav" role="navigation">
<ul class="inner-container channelListing clearfix skin-crafts">
<li class="list js-list"><a href="http://www.ehow.com/ehow-mom/" class="mom head title channel gtm_headerNavmom" data-channel="mom">mom</a></li>
<li class="list js-list"><a href="http://www.ehow.com/ehow-style/" class="style head title channel gtm_headerNavstyle" data-channel="style">style</a></li>
<li class="list js-list"><a href="http://www.ehow.com/ehow-food/" class="food head title channel gtm_headerNavfood" data-channel="food">food</a></li>
<li class="list js-list"><a href="http://www.ehow.com/ehow-tech/" class="tech head title channel gtm_headerNavtech" data-channel="tech">tech</a></li>
<li class="list js-list"><a href="http://www.ehow.com/ehow-home/" class="home head title channel gtm_headerNavhome" data-channel="home">home</a></li>
<li class="list js-list"><a href="http://www.ehow.com/ehow-money/" class="money head title channel gtm_headerNavmoney" data-channel="money">money</a></li>
<li class="list js-list"><a href="http://www.ehow.com/ehow-crafts/" class="crafts head title channel gtm_headerNavcrafts" data-channel="crafts">crafts</a></li>
<li class="list js-list more"><a class="head title more js-more" data-channel="more" href="#">More<span class="js-icon more-icon elegant-icons">3</span></a>
<div class="more_dropdown">
<div class="moreLinks">
<div class="headline2 head mg-4">Browse Articles &amp; Videos By Category</div>
<ul class="list list-0">
<li class="item"><a href="http://www.ehow.com/arts/" class="headline5 title target">Arts &amp; Entertainment</a></li>
<li class="item"><a href="http://www.ehow.com/business/" class="headline5 title target">Business</a></li>
<li class="item"><a href="http://www.ehow.com/careers/" class="headline5 title target">Careers &amp; Work</a></li>
<li class="item"><a href="http://www.ehow.com/cars/" class="headline5 title target">Cars</a></li>
<li class="item"><a href="http://www.ehow.com/computers/" class="headline5 title target">Computers</a></li>
<li class="item"><a href="http://www.ehow.com/crafts/" class="headline5 title target">Crafts</a></li>
<li class="item"><a href="http://www.ehow.com/cultures/" class="headline5 title target">Culture &amp; Society</a></li>
</ul>
<ul class="list list-1">
<li class="item"><a href="http://www.ehow.com/education/" class="headline5 title target">Education</a></li>
<li class="item"><a href="http://www.ehow.com/electronics/" class="headline5 title target">Electronics</a></li>
<li class="item"><a href="http://www.ehow.com/fashion/" class="headline5 title target">Fashion, Style &amp; Personal Care</a></li>
<li class="item"><a href="http://www.ehow.com/food/" class="headline5 title target">Food &amp; Drink</a></li>
<li class="item"><a href="http://www.ehow.com/health/" class="headline5 title target">Health</a></li>
<li class="item"><a href="http://www.ehow.com/hobbies-games/" class="headline5 title target">Hobbies, Games &amp; Toys</a></li>
<li class="item"><a href="http://www.ehow.com/holidays/" class="headline5 title target">Holidays &amp; Celebrations</a></li>
</ul>
<ul class="list list-2">
<li class="item"><a href="http://www.ehow.com/home/" class="headline5 title target">Home &amp; Garden</a></li>
<li class="item"><a href="http://www.ehow.com/internet/" class="headline5 title target">Internet</a></li>
<li class="item"><a href="http://www.ehow.com/legal/" class="headline5 title target">Legal</a></li>
<li class="item"><a href="http://www.ehow.com/parenting/" class="headline5 title target">Parenting</a></li>
<li class="item"><a href="http://www.ehow.com/parties/" class="headline5 title target">Parties &amp; Entertaining</a></li>
<li class="item"><a href="http://www.ehow.com/personal-finance/" class="headline5 title target">Personal Finance</a></li>
<li class="item"><a href="http://www.ehow.com/pets/" class="headline5 title target">Pets</a></li>
</ul>
<ul class="list list-3">
<li class="item"><a href="http://www.ehow.com/relationships/" class="headline5 title target">Relationships &amp; Family</a></li>
<li class="item"><a href="http://www.ehow.com/sports/" class="headline5 title target">Sports &amp; Fitness</a></li>
<li class="item"><a href="http://www.ehow.com/travel/" class="headline5 title target">Travel</a></li>
<li class="item"><a href="http://www.ehow.com/weddings/" class="headline5 title target">Weddings</a></li>
</ul>
</div>
<div class="sponsored_programs">
<ul class="unstyled">
<li class="item">
<a href="http://www.ehow.com/ehow-indoor/" class="diyhome"></a>
</li>
<li class="item">
<a href="http://www.ehow.com/ehow-outdoor/" class="diyoutdoor"></a>
</li>
</ul>
</div>
</div>
</li>
</ul>
</nav>
</header>
<div class="inner-container">
<!-- gpt slot 728x90_990x90_970x250 -->
<div class="bannerAd mod" data-module="gpt-ad-728x90_990x90_970x250" id="728x90_990x90_970x250">
<script type="text/javascript">
googletag.cmd.push(function() {
googletag.display('728x90_990x90_970x250');
});
</script>
</div>
<!-- gpt slot outofpage -->
<div class="AdUnitOutOfPage mod" data-module="gpt-ad-outofpage" id="outofpage">
<script type="text/javascript">
googletag.cmd.push(function() {
googletag.display('outofpage');
});
</script>
</div>
</div>
<section id="Body" class="InlineTemplate FLC" data-page-id="inlinetemplate" data-section="body">
<script id="_ehow-com-hnh"></script>
<ol class="breadcrumbs unstyled inline" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb" data-module="breadcrumb">
<li class="list">
<a href="http://www.ehow.com/" rel="home" itemprop="url" class="title"> <span itemprop="title">eHow</span> </a>
</li>
<li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="http://www.ehow.com/crafts/" rel="directory" itemprop="url" class="title"> <span itemprop="title">Crafts</span> </a>
</li>
<li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="http://www.ehow.com/crafts/diy-crafts/" rel="directory" itemprop="url" class="title"> <span itemprop="title">Other DIY Crafts</span> </a>
</li>
<li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="http://www.ehow.com/crafts/diy-crafts/diy-projects/" rel="directory" itemprop="url" class="title"> <span itemprop="title">Other DIY Projects</span> </a>
</li>
<li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="http://www.ehow.com/how_2042752_build-terrarium.html" rel="directory" itemprop="url" class="title"> <span itemprop="title">How to Build a Terrarium</span> </a>
</li>
</ol>
<!-- gpt slot 990x50 -->
<div class="col-main">
<header class="page-head bordered">
<h1 class="headline1 head mg-2" itemprop="headline">
How to Build a Terrarium </h1>
<div data-type="AuthorProfile" itemprop="author" itemscope="" itemtype="http://www.schema.org/Person">
<script type="text/html" data-element="template">
<footer class="AuthorProfileWrap footer">
<div class="AuthorProfileModal" data-element="modal">
<div class="wrapper">
<div class="ModalClose close" data-action="hideModal" data-element="closeButton">X</div> <img src="http://img-aws.ehowcdn.com/100x100/studio-image/ver1.0/Content/images/store/3/11/a3407c7f-fdf9-4ae6-8bac-48007b0109ea.Medium.jpg" onerror="this.className = &#039;hide&#039;" />
<div class="headline3 head mg-2" itemprop="name"> Lucy Akins </div>
<p class="bio"> Lucy Akins is an artist/photographer/blogger living in Toronto, Ontario. Her blog, Craftberry Bush, has blossomed into a business, having gained domestic and international recognition. Her work has been published in several magazines, including: Cottages and Bungalows, American Farmlife Style, National Geographic Kids, Artful Blogger, Somerset Life, and most recently graced the cover of Somerset Home. </p>
<p class="portfolio"> <a class="profile" itemprop="url" rel="author" href="http://www.demandstudios.com/profile-3959b24c-Lucy-Akins/" target="_blank">View my portfolio</a> </p>
</div>
</div>
</footer>
</script>
<div class="post-meta clearfix headline6 mg-2 ">
<div class="meta">
<a class="byline trigger gtm_contributorByline head-alt nb-name" rel="author" itemprop="author" href="/contributor/lucy_akins/" target="_top"> <span itemprop="name">By Lucy Akins</span> </a>
<div class="nb-byline">eHow Contributor</div>
</div>
</div>
<div class="article-meta"> </div>
<div data-element="container"></div>
</div>
<div class="clearfix">
<ul class="social-icons js-social-icons inline flcb" data-url="http://www.ehow.com/how_2042752_build-terrarium.html">
<li class="item btnPinterest">
<a class="js-btn btn gtm_socialShare" data-social="pinterest" data-url="http://www.ehow.com/how_2042752_build-terrarium.html?p=d" data-title="How to Build a Terrarium" data-media="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg"> <span class="social-icon elegant-icons"></span> <span class="action js-pins">Pin</span> </a>
</li>
<li class="item btnFacebook">
<a class="js-btn btn gtm_socialShare" data-social="facebook" data-url="http://www.ehow.com/how_2042752_build-terrarium.html" data-title="How to Build a Terrarium" data-media="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" data-description="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 wont have to water the..."> <span class="social-icon elegant-icons"></span> <span class="action js-facebook_shares">Share</span> </a>
</li>
<li class="item btnTwitter">
<a class="js-btn btn gtm_socialShare" data-social="twitter" data-url="http://www.ehow.com/how_2042752_build-terrarium.html" data-title="How to Build a Terrarium" data-media="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg"> <span class="social-icon elegant-icons"></span> <span class="action js-tweets">Tweet</span> </a>
</li>
<li class="item btnGoogle">
<a class="js-btn btn gtm_socialShare" data-social="google" data-url="http://www.ehow.com/how_2042752_build-terrarium.html" data-title="How to Build a Terrarium"> <span class="social-icon elegant-icons"></span> <span class="action js-plusones">Share</span> </a>
</li>
</ul>
<div class="pagescore js-pagescore page-heading" data-score="true" data-url="http://www.ehow.com/how_2042752_build-terrarium.html"> <span class="headline3 num js-num"></span> <span class="icon"></span> <span class="msg">Found This Helpful</span> </div>
</div>
</header>
<div class="mod step">
<div class="stepContent mod">
<div class="content lead">
<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 wont have to water the terrariums unless you see that the walls are not misting up. Small growing plants that dont require a lot of light work best such as succulents, ferns, moss, even orchids.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" alt="Glass cloche terrariums" title="Glass cloche terrariums" class="photo" data-credit="Lucy Akins " longdesc="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg"> </figure>
<figcaption class="small caption"> Glass cloche terrariums (Lucy Akins) </figcaption>
</div>
</div>
<div id="relatedContentUpper" class="RelatedContent Module" data-module="rcp_top">
<header class="">
<h3 class="head headline2 mg-2">Other People Are Reading</h3> </header>
<ul class="unstyled inline box box-inner people-reading mod FLC" data-type="more-relatedArticles">
<li class="fl item headline5 first">
<a class="gtm_otherPeopleReading" href="http://www.ehow.com/video_12263138_plant-terrarium-ideas.html"> <img src="http://img-aws.ehowcdn.com/105x70/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/a7edbb0f-86a7-4c73-9c2d-f85f87b49efa_0.jpg" class="thumb fl"> </a> <a class="title gtm_otherPeopleReading headline5" href="http://www.ehow.com/video_12263138_plant-terrarium-ideas.html">Plant Terrarium Ideas</a> </li>
<li class="fl item headline5 mid">
<a class="gtm_otherPeopleReading" href="http://www.ehow.com/how_4885344_build-terrarium-succulent-plants.html"> <img src="http://img-aws.ehowcdn.com/105x70/cme/photography.prod.demandstudios.com/619daaaa-7991-4fc6-9b62-dfeab8a285b4.jpg" class="thumb fl"> </a> <a class="title gtm_otherPeopleReading headline5" href="http://www.ehow.com/how_4885344_build-terrarium-succulent-plants.html">How to Build a Terrarium With Succulent Plants</a> </li>
</ul>
</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>
<li>Planter saucer, small shallow dish or desired platform</li>
<li>Floral foam oasis</li>
<li>Ruler </li>
<li>Spoon</li>
<li>Floral wire pins or paper clips</li>
<li>Small plants (from a florist or nursery)</li>
<li>Moss</li>
<li>Tweezers</li>
<li>Other small decorative items (optional)</li>
</ul>
</div>
</div>
</div>
<div class="mod step">
<div class="stepContent">
<div class="content"> <span class="headline2 head mg-1 block">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 src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/fc249ef6-4d27-41b4-8c21-15f7a8512b50.jpg" alt="Dig a hole in the oasis." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> Dig a hole in the oasis. (Lucy Akins) </figcaption>
</div>
</div>
<div id="m1"></div>
<div class="mod Inline">
<div id="DMINSTR" type="adimpression" data-type="adTracking" name="&amp;adunit_id=ca-ehow_300x250&amp;ad_unit_type=CNT&amp;ad_unit_network=GAP&amp;revenue_basis=CPC&amp;ad_position=-&amp;revenue_tag=craft_other_diy">
<div id="GoogleAdsense300x250"></div>
<script>
dmjs.revenueTags.push('ca-ehow_300x250;craft_other_diy,text,suggested7');
googleAds.addAdUnit({
priority: 3,
adUnitId: 'GoogleAdsense300x250',
google_ad_channel: 'craft_other_diy,text,suggested7',
google_ad_client: 'ca-ehow_300x250',
google_page_url: 'http://www.ehow.com/how_2042752_build-terrarium.html',
google_max_num_ads: '1',
google_ad_type: 'text',
templates: {
text: '<div class="GoogleTextAd GoogleAd300x250 ad-300"> \
<p><a class="header" href="{!= google_info.feedback_url !}">Sponsored Links</a></p> \
<ul> \
{! for (var i = 0; i < ads.length; i++) { !} \
<li class="Ad"> \
<a rel="nofollow" href="{!= ads[i].url !}" target="_blank" title="go to {!= clean(ads[i].visible_url) !}" class="title"> \
{!= ads[i].line1 !} \
</a> \
<p class="copy">{!= ads[i].line2 !} {!= ads[i].line3 !}</p> \
<a rel="nofollow" href="{!= ads[i].url !}" target="_blank" title="go to {!= clean(ads[i].visible_url) !}" class="baseurl url"> \
{!= ads[i].visible_url !} \
</a> \
</li> \
{! } !} \
</ul> \
</div>',
image: '<div class="GoogleImageAd GoogleImageAdNew"> \
<a class="header" href="{!= google_info.feedback_url !}">Sponsored Links</a> \
<a href="{!= ads[0].url !}" title="go to {!= clean(ads[0].visible_url) !}" target="_blank" class="Ad" >\
<img src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" border="0" alt="" />\
</a> \
</div>',
flash: '<div class="GoogleFlashAd GoogleFlashAdNew">\
<a class="header" href="{!= google_info.feedback_url !}">Sponsored Links</a> \
<div class="Ad">\
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}"><param name="movie" value="{!= ads[0].image_url !}"><param name="quality" value="high"><param name="AllowScriptAccess" value="never"><embed src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" type="application/x-shockwave-flash" AllowScriptAccess="never" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>\
</div>\
</div>'
},
google_image_size: '300x250'
});
</script>
</div>
</div>
<div class="mod step">
<div class="stepContent">
<div class="content"> <span class="headline2 head mg-1 block">Step 2</span>
<p>Insert your plant into the hole.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/aae11d4d-a4aa-4251-a4d9-41023ebf6d84.jpg" alt="Orchid in foam oasis" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>You can add various plants if you wish.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/7afdfa1e-da74-44b5-b89c-ca8123516272.jpg" alt="Various foliage" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>Using floral pins, attach enough moss around the oasis to cover it.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/4f6612c0-316a-4c74-bb03-cb4e778f6d72.jpg" alt="Attach moss." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<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 src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/eeb1e0b4-e573-40a3-8db1-2c76f0b13b84.jpg" alt="Place cloche over oasis." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>Simply pull down the moss with tweezers or insert more moss to fill in the empty spaces.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/812d4649-4152-4363-97c0-f181d02e709a.jpg" alt="Rearrange moss." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>You can use any platform you wish. In this case, a small saucer was used.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/0cb3988c-9318-47d6-bc9c-c798da1ede72.jpg" alt="Place cloche on a platform to sit on." class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<p>This particular terrarium rests on a planter saucer and features a small white pumpkin.</p>
</div>
<figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/e3e18f0b-ab2c-4ffb-9988-a1ea63faef8b.jpg" alt="Cloche placed on a terracotta saucer" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<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 src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/2cd79f8d-0d16-4573-8861-e47fb74b0638.jpg" alt="Placed on a wooden slice" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> 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>
<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 src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/78670312-8636-4c42-a75c-3029f7aa6c73.jpg" alt="Cloche terrarium" class="photo" data-credit="Lucy Akins"> </figure>
<figcaption class="small caption"> Cloche terrarium (Lucy Akins) </figcaption>
</div>
</div>
<div id="m2"></div>
<div id="DMINSTR" type="adimpression" data-type="adTracking" name="&amp;adunit_id=ca-ehow_336x280&amp;ad_unit_type=CNT&amp;ad_unit_network=GAP&amp;revenue_basis=CPC&amp;ad_position=-&amp;revenue_tag=craft_other_diy" data-module="google-ad-336x280">
<div id="GoogleAdsense336x280" class="mod"></div>
<script>
dmjs.revenueTags.push('ca-ehow_336x280;craft_other_diy,text,suggested7');
googleAds.addAdUnit({
priority: 2,
adUnitId: 'GoogleAdsense336x280',
google_ad_channel: 'craft_other_diy,text,suggested7',
google_ad_client: 'ca-ehow_336x280',
google_page_url: 'http://www.ehow.com/how_2042752_build-terrarium.html',
google_max_num_ads: '4',
google_ad_type: 'text',
google_hints: '',
templates: {
text: '<div class="GoogleTextAd GoogleTextAdNew">\
<a class="header" href="{!= google_info.feedback_url !}">Sponsored Links</a>\
<ul class="opNew336 evenColorItems">\
{! for (var i = 0; i < ads.length; i++) { !}\
<li class="item">\
<div class="term">\
<a rel="nofollow" target="_blank" href="{!= ads[i].url !}" title="go to {!= clean(ads[i].visible_url) !}" class="title">\
<span>{!= ads[i].line1 !}</span>\
</a>\
</div>\
<div class="Ad">\
<p class="copy">{!= ads[i].line2 !}</p>\
<p class="copy">{!= ads[i].line3 !}</p>\
<a rel="nofollow" target="_blank" href="{!= ads[i].url !}" title="go to {!= clean(ads[i].visible_url) !}" class="baseurl url">\
{!= ads[i].visible_url !}\
</a>\
</div>\
</li>\
{! } !}\
</ul>\
</div>',
image: '<div class="GoogleImageAd GoogleImageAdNew"> \
<a class="header" href="{!= google_info.feedback_url !}">Sponsored Links</a> \
<a href="{!= ads[0].url !}" title="go to {!= clean(ads[0].visible_url) !}" target="_blank" class="Ad" >\
<img src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" border="0" alt="" />\
</a> \
</div>',
flash: '<div class="GoogleFlashAd GoogleFlashAdNew">\
<a class="header" href="{!= google_info.feedback_url !}">Sponsored Links</a> \
<div class="Ad">\
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}"><param name="movie" value="{!= ads[0].image_url !}"><param name="quality" value="high"><param name="AllowScriptAccess" value="never"><embed src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" type="application/x-shockwave-flash" AllowScriptAccess="never" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>\
</div>\
</div>'
},
google_image_size: '336x280'
});
AdblockPlus.detect(function(usesABP) {
if (usesABP) {
googleAds.overrideAd('GoogleAdsense336x280', {
google_ad_channel: 'craft_other_diy,text,suggested7,Art6'
});
}
});
</script>
</div>
<div class="RelatedSearches FLC mod" id="RelatedSearches" data-module="related-searches">
<div class="headline2 head heading">Related Searches</div>
</div>
<div class="community mod" style="float:left;width: 610px;">
<div id="_ehow-com-injection" data-article-id="2042752" data-cat-id="5352" data-scat-id="5426" data-sscat-id="5429"></div>
<script id="_ehow-com-article" type="text/javascript">
dmjs.domready(function() {
if (!(dmjs.platform.isTablet())) {
var ehowCom = document.createElement('script');
ehowCom.type = 'text/javascript';
ehowCom.async = true;
ehowCom.src = 'https://community.ehow.com/widget/ehow/community.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ehowCom, s);
}
});
</script>
</div>
<aside class="mod related clearfix" data-module="rcp_bottom">
<h3 class="head headline2 mg-2">More Like This</h3>
<ul class="unstyled">
<li class="item fl ">
<a href="http://www.ehow.com/how_4431062_convert-aquarium-terrarium.html"> <img src="http://img-aws.ehowcdn.com/200x133/cme/photography.prod.demandstudios.com/90f9f3d7-6e4f-4be8-b379-3d994ccbf69c.jpg" class="img" alt="">
<p class="headline6 mg-0">How to Convert an Aquarium to a Terrarium</p>
</a>
</li>
<li class="item fl even">
<a href="http://www.ehow.com/video_12263138_plant-terrarium-ideas.html"> <img src="http://img-aws.ehowcdn.com/200x133/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/a7edbb0f-86a7-4c73-9c2d-f85f87b49efa_0.jpg" class="img" alt="">
<p class="headline6 mg-0">Plant Terrarium Ideas</p>
</a>
</li>
<li class="item fl ">
<a href="http://www.ehow.com/video_9374_make-terrarium.html"> <img src="http://img-aws.ehowcdn.com/200x133/ehow/images/a00/09/4u/make-terrarium-800x800.jpg" class="img" alt="">
<p class="headline6 mg-0">How to Make a Terrarium</p>
</a>
</li>
</ul>
</aside>
<figure id="Comments" class="mod FLC" data-module="comments">
<div data-id="fb_comments"></div>
</figure>
<section id="FeaturedTombstone" class="mod" data-module="rcp_tombstone">
<h2 class="headline2 head mg-2">Featured</h2>
<div class="featured FLC">
<section class="Alpha item" data-cme-module="0">
<a class="target link-accent gtm_featuredArticles" href="http://www.ehow.com/how_2056495_make-ballet-tutu.html"> <img src="http://img-aws.ehowcdn.com/200x133/cme/photography.prod.demandstudios.com/7f06be69-3650-4e94-88d4-2289c1a5c6a2.jpg" class="photo" alt=""> <span class="subtitle">Read Article</span>
<div class="title headline6">How to Make a Ballet Tutu</div>
</a>
</section>
<section class=" item" data-cme-module="1">
<a class="target link-accent gtm_featuredArticles" href="http://www.ehow.com/how_7687715_paint-tulip-watercolor.html"> <img src="http://img-aws.ehowcdn.com/200x133/cme/uploadedimages.demandmedia/tulips-1.jpg" class="photo" alt=""> <span class="subtitle">Read Article</span>
<div class="title headline6">How to Paint a Tulip in Watercolor</div>
</a>
</section>
<section class="Omega item" data-cme-module="2">
<a class="target link-accent gtm_featuredArticles" href="http://www.ehow.com/info_12340422_kids-kitchen-slipcover.html"> <img src="http://img-aws.ehowcdn.com/200x133/cme/uploadedimages.demandmedia/kitchen-1.jpg" class="photo" alt=""> <span class="subtitle">Read Article</span>
<div class="title headline6">Kids Kitchen Slipcover</div>
</a>
</section>
</div>
</section>
</div>
<div class="col-rail">
<!-- gpt slot 300x250_300x600 -->
<div class="AdUnit mod" data-module="gpt-ad-300x250_300x600" id="300x250_300x600">
<script type="text/javascript">
googletag.cmd.push(function() {
googletag.display('300x250_300x600');
});
</script>
</div>
<!-- gpt slot 300x100 -->
<div class="mod hide" data-module="radlinks">
<h3 class="headline3 head mg-2">Related Ads</h3>
<div id="DMINSTR" type="rlimpression" data-type="adTracking" name="&amp;adunit_id=ca-ehow-radlinks_js&amp;ad_unit_type=LNK&amp;ad_unit_network=GAP&amp;revenue_basis=CPC&amp;ad_position=-&amp;revenue_tag=craft_other_diy">
<div id="GoogleRelatedAds"></div>
<script>
dmjs.revenueTags.push('ca-ehow-radlinks_js;craft_other_diy,text,suggested7');
googleAds.addAdUnit({
priority: 1,
adUnitId: 'GoogleRelatedAds',
google_ad_channel: 'craft_other_diy,text,suggested7',
google_ad_client: 'ca-ehow-radlinks_js',
google_page_url: 'http://www.ehow.com/how_2042752_build-terrarium.html',
google_max_num_ads: '0',
google_num_radlinks: '6',
google_max_radlink_len: '27',
metaData: {
"contentid": "2042752",
"studioid": "f941e4cd-a49e-4948-b244-677c15ff8b7f",
"category": "Crafts",
"subcategory": "Other DIY Crafts",
"skin": "crafts"
}
});
</script>
</div>
</div>
<div class="RelatedSearches FLC mod" id="RelatedSearches" data-module="related-searches-right">
<div class="headline3 head mg-2">Related Searches</div>
</div>
<section class="mod box slideshow" data-module="rcp_slideshow_module">
<a href="http://www.ehow.com/how_16357_make-paper-sunflowers.html"> <img src="http://img-aws.ehowcdn.com/300x200/cme/uploadedimages.demandmedia/sunflowers-1.jpg" alt="" title="" class="photo" longdesc="http://s3.amazonaws.com/uploadedimages.demandmedia/sunflowers-1.jpg"> <span class="arrow arrow-left" data-icon="4"></span> <span class="arrow arrow-right" data-icon="5"></span> <span class="subtitle">
Read Article </span> </a>
<a href="http://www.ehow.com/how_16357_make-paper-sunflowers.html">
<h3 class="headline4 title">
How to Make Paper Sunflowers </h3> </a>
</section>
<ul class="media-list mod unstyled " data-module="rcp_right_rail">
<h2 class="headline3 head mg-2 title">You May Like</h2>
<li class="media headline6">
<a href="http://www.ehow.com/how_4431062_convert-aquarium-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/cme/photography.prod.demandstudios.com/90f9f3d7-6e4f-4be8-b379-3d994ccbf69c.jpg" alt="" class="media-object">
<div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/how_4431062_convert-aquarium-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
</a>
<div class="media-body"> <a href="http://www.ehow.com/how_4431062_convert-aquarium-terrarium.html" class="gtm_youMayLike">How to Convert an Aquarium to a Terrarium</a> </div>
</li>
<li class="media headline6">
<a href="http://www.ehow.com/video_12263137_build-orchid-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/47b02568-2cde-44f4-a39c-494294e50ccd_1.jpg" alt="" class="media-object">
<div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/video_12263137_build-orchid-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
</a>
<div class="media-body"> <a href="http://www.ehow.com/video_12263137_build-orchid-terrarium.html" class="gtm_youMayLike">How to Build an Orchid Terrarium</a> </div>
</li>
<li class="media headline6">
<a href="http://www.ehow.com/video_9374_make-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/ehow/images/a00/09/4u/make-terrarium-800x800.jpg" alt="" class="media-object">
<div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/video_9374_make-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
</a>
<div class="media-body"> <a href="http://www.ehow.com/video_9374_make-terrarium.html" class="gtm_youMayLike">How to Make a Terrarium</a> </div>
</li>
<li class="media headline6">
<a href="http://www.ehow.com/video_12263133_group-plants-together-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/dc66dd37-78b6-4494-a8db-7bbe697cedda_0.jpg" alt="" class="media-object">
<div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/video_12263133_group-plants-together-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
</a>
<div class="media-body"> <a href="http://www.ehow.com/video_12263133_group-plants-together-terrarium.html" class="gtm_youMayLike">How to Group Plants Together in a Terrarium</a> </div>
</li>
<li class="media headline6">
<a href="http://www.ehow.com/video_12263135_build-tropical-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/70ebb809-634d-41df-9fff-9b183f81e9e0_1.jpg" alt="" class="media-object">
<div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/video_12263135_build-tropical-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
</a>
<div class="media-body"> <a href="http://www.ehow.com/video_12263135_build-tropical-terrarium.html" class="gtm_youMayLike">How to Build a Tropical Terrarium</a> </div>
</li>
<li class="media headline6">
<a href="http://www.ehow.com/how_7853040_diy-own-living-room-furniture.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/cme/photography.prod.demandstudios.com/2ecfca5a-1c35-4fbe-9ff5-8f5bd8129d97.jpg" alt="" class="media-object">
<div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/how_7853040_diy-own-living-room-furniture.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
</a>
<div class="media-body"> <a href="http://www.ehow.com/how_7853040_diy-own-living-room-furniture.html" class="gtm_youMayLike">DIY Build Your Own Living Room Furniture</a> </div>
</li>
<li class="media headline6">
<a href="http://www.ehow.com/slideshow_12333243_edible-arrangements-make-own-easter-candy-terrariums.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/ds-cdn-write/upload/image/39/4D/34B73D38-EC9F-4415-A740-23DCF2F94D39/34B73D38-EC9F-4415-A740-23DCF2F94D39.jpg" alt="" class="media-object">
<div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/slideshow_12333243_edible-arrangements-make-own-easter-candy-terrariums.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
</a>
<div class="media-body"> <a href="http://www.ehow.com/slideshow_12333243_edible-arrangements-make-own-easter-candy-terrariums.html" class="gtm_youMayLike">Edible Arrangements: Make Your Own Easter Candy Terrariums</a> </div>
</li>
<li class="media headline6">
<a href="http://www.ehow.com/ehow-mom/blog/3-ingredient-easter-bark/" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/ehow-mom-blog-us/files/2015/03/easterbark0.jpg" alt="" class="media-object">
<div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/ehow-mom/blog/3-ingredient-easter-bark/"> <span class=" num js-num"></span> <span class="icon"></span> </div>
</a>
<div class="media-body"> <a href="http://www.ehow.com/ehow-mom/blog/3-ingredient-easter-bark/" class="gtm_youMayLike">3-Ingredient Easter Bark</a> </div>
</li>
</ul>
</div>
</section>
<script src="http://v5-static.ehowcdn.com/content/compressed/module-jquery-764eded0.js"></script>
<footer id="Footer" data-section="footer">
<div class="inner-container">
<div class="details clearfix">
<div class="identity"> <a href="http://www.demandmedia.com/" class="logo">demandmedia.com</a>
<p class="copyright">© 1999-2015 Demand Media, Inc.</p>
</div>
<nav xmlns="http://www.w3.org/1999/html">
<ul class="listing">
<li>
<ul>
<li class="item row1"> <a href="http://www.ehow.com/about-us.html" class="title">About eHow</a> </li>
<li class="item row1"> <a href="http://www.ehow.co.uk/" class="title">eHow UK</a> </li>
<li class="item row1"> <a href="http://www.ehowenespanol.com/" class="title">eHow en Español</a> </li>
<li class="item row1"> <a href="http://www.ehow.com.br/" class="title">eHow Brasil</a> </li>
<li class="item row1"> <a href="http://www.ehow.de/" class="title">eHow Deutschland</a> </li>
<li class="item row1"> <a href="http://www.ehowhelp.com/hc/en-us" class="title">Contact Us</a> </li>
</ul>
</li>
<li>
<ul>
<li class="item row2"> <a href="http://www.ehow.com/blog/" class="title">eHow Blog</a> </li>
<li class="item row2"> <a href="http://www.ehow.com/how-to.html" class="title">How to by Topic</a> </li>
<li class="item row2"> <a href="http://www.ehow.com/videos.html" class="title">How to Videos</a> </li>
</ul>
</li>
<li>
<ul>
<li class="item row3"> <a href="http://www.ehow.com/terms-of-use.html" class="title">Terms of Use</a> </li>
<li class="item row3"> <a href="http://www.ehow.com/privacy.html" class="title">Privacy Policy</a> </li>
<li class="item row3"> <a href="http://www.ehow.com/terms-of-use.html#copyright/" class="title">Report Copyright</a> </li>
<li class="item row3">
<a id="_bapw-link" class="ad-choice" style="cursor:pointer !important"><img id="_bapw-icon" style="display:inline !important;vertical-align:middle !important"> <span style="vertical-align:middle !important">Ad Choices</span></a> <abbr>en-US</abbr> </li>
</ul>
</li>
</ul>
</nav>
<div class="socialConnect fr">
<p class="headline4 heading head">Connect with us:</p>
<ul>
<li class="source"><a class="icon elegant-icons gtm_social" href="http://www.pinterest.com/ehow/" target="_blank"></a></li>
<li class="source"><a class="icon elegant-icons gtm_social" href="https://www.facebook.com/eHow" target="_blank"></a></li>
<li class="source"><a class="icon elegant-icons gtm_social" href="https://twitter.com/ehow" target="_blank"></a></li>
<li class="source"><a class="icon elegant-icons gtm_social" href="https://plus.google.com/+howto/posts" target="_blank"></a></li>
<li class="source last"><a class="icon elegant-icons gtm_social" href="http://instagram.com/ehow_team" target="_blank"></a></li>
</ul>
</div>
</div>
</div>
<div class="extras">
<div class="comscore comscore-eh">
<div class="category5352 eh-cat"></div>
</div>
</div>
</footer>
<!-- BEGIN dmtracker -->
<noscript><img src="http://vs.dmtracker.com/images/zig.gif?Log=1" alt="zig" /></noscript>
<div id="dmOmni"></div>
<!-- END dmtracker -->
<noscript><img src="http://b.scorecardresearch.com/b?c1=2&c2=6036385&c3=&c7=http%3A%2F%2Fwww.ehow.com%2Fhow_2042752_build-terrarium.html%3Fcomscorekw%3DeHow_Hobbies_Games_and_Toys&cv=2.0&cj=1" /></noscript>
<script>
var dmjs = dmjs || {};
dmjs.global = dmjs.global || {};
dmjs.global.comscore = {
"c1": "2",
"c2": "6036385",
"c3": "",
"options": {
"url_append": "comscorekw=eHow_Hobbies_Games_and_Toys"
}
};
dmjs.global.dm_tracker = {
"domain": "vs.dmtracker.com",
"url": "bit.ehow.com",
"bit": "bit"
};
dmjs.global.fb_comment = {
"num_posts": 5,
"width": 620,
"mobile": false,
"href": "http:\/\/www.ehow.com\/how_2042752_build-terrarium.html",
"selector": "[data-id=\"fb_comments\"]"
};
dmjs.global.hnh = {
"url": "http:\/\/services.ehowcdn.com\/widgets\/generated\/hnh.min.js"
};
</script>
<script src="http://dynamic01.ehowcdn.com/services/modules/js/hnh,evidon,rev_tag,dm_track,comscore,common_deferred,cache_buster/ba9c0085/" defer="defer"></script>
<!--[if lt IE 9]>
<script src="http://v5-static.ehowcdn.com/content/compressed/common_footer-266c5d77.js" ></script>
<![endif]-->
<script src="http://v5-static.ehowcdn.com/content/compressed/inline-81314781.js" defer="defer"></script>
<script>
dmjs.domready(function() {
new OmnitureLinkSet($('[data-module="rcp_top"]'), "TLS101", "default_IL");
});
</script>
<script>
dmjs.domready(function() {
new OmnitureLinkSet($('[data-module="rcp_bottom"]'), "TLS103", "default_B");
});
</script>
<script>
dmjs.domready(function() {
new OmnitureLinkSet($('[data-module="rcp_tombstone"]'), "LS103", "default_TOMB");
});
</script>
<script>
dmjs.domready(function() {
new OmnitureLinkSet($('[data-module="rcp_slideshow_module"]'), "TLS106", "default_SS");
});
</script>
<script>
dmjs.domready(function() {
new OmnitureLinkSet($('[data-module="rcp_right_rail"]'), "TLS102", "default_R3");
});
</script>
<script>
googleAds.defaults.google_adtest = 'off';
googleAds.defaults.google_page_url = 'http://www.ehow.com/how_2042752_build-terrarium.html';
googleAds.render();
</script>
<script defer="" src="//cdn.optimizely.com/js/9718688.js"></script>
<script>
dmjs.addEvent(window, 'load', function() {
dmjs.fireEvents();
});
</script>
<script defer="" src="http://static.ehownowcdn.com/widget/ehow/auth.js"></script>
<div id="fb-root"></div>
<div class="view-mobile"></div>
</body>
</html>

File diff suppressed because it is too large Load Diff

@ -10,6 +10,12 @@ var JSDOMParser = readability.JSDOMParser;
var testPages = require("./utils").getTestPages();
function reformatError(err) {
var formattedError = new Error(err.message);
formattedError.stack = err.stack;
return formattedError;
}
function runTestsWithItems(label, beforeFn, expectedContent, expectedMetadata) {
describe(label, function() {
this.timeout(5000);
@ -17,7 +23,11 @@ function runTestsWithItems(label, beforeFn, expectedContent, expectedMetadata) {
var result;
before(function() {
result = beforeFn();
try {
result = beforeFn();
} catch(err) {
throw reformatError(err);
}
});
it("should return a result object", function() {

Loading…
Cancel
Save