distillery 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -1
- data/Rakefile +7 -2
- data/lib/distillery/document.rb +23 -20
- data/lib/distillery/version.rb +1 -1
- data/spec/acceptance_spec.rb +7 -0
- data/spec/fixtures/cheese_spread.html +441 -0
- data/spec/lib/distillery/document_spec.rb +1 -1
- metadata +20 -18
data/README.md
CHANGED
@@ -35,7 +35,7 @@ Both the `Distillery::Document#distill!` and `Distillery.distill` methods by def
|
|
35
35
|
doc.distill!(:clean => false)
|
36
36
|
> "raw distilled content"
|
37
37
|
|
38
|
-
In its cleaning, Distillery will also remove all `<img>` tags from the content element. If you would like to preserve `<img>` tags, pass the `:images => true` option to the `Distillery::Document#distill!` and `Distillery.distill` methods. Please note that
|
38
|
+
In its cleaning, Distillery will also remove all `<img>` tags from the content element. If you would like to preserve `<img>` tags, pass the `:images => true` option to the `Distillery::Document#distill!` and `Distillery.distill` methods. Please note that Distillery *attempts* to only preserve elements from cleaning that contain "content images," but it is possible images that are part of the content will still be removed.
|
39
39
|
|
40
40
|
doc.distill!(:images => true)
|
41
41
|
> "raw distilled content with <img src=\"info.png\">"
|
data/Rakefile
CHANGED
@@ -8,16 +8,21 @@ RSpec::Core::RakeTask.new(:spec) do |t|
|
|
8
8
|
end
|
9
9
|
|
10
10
|
require "distillery"
|
11
|
+
require "iconv"
|
11
12
|
|
12
13
|
def doc_for_fixture(fixture)
|
13
14
|
file = File.join(File.dirname(__FILE__), 'spec', 'fixtures', fixture)
|
14
|
-
|
15
|
+
raw_page = File.open(file).read
|
16
|
+
fixed_str = Iconv.new('UTF-8//IGNORE', 'UTF-8').iconv(raw_page + ' ')[0..-2]
|
17
|
+
Distillery::Document.new(fixed_str)
|
15
18
|
end
|
16
19
|
|
17
20
|
namespace :fixture do
|
18
21
|
desc 'Open the fixture with data-score elements added showing an elements score'
|
19
22
|
task :score, :filename do |t, args|
|
20
23
|
doc = doc_for_fixture(args[:filename])
|
24
|
+
doc.remove_irrelevant_elements!
|
25
|
+
doc.remove_unlikely_elements!
|
21
26
|
|
22
27
|
doc.score!
|
23
28
|
doc.scores.each do |xpath, score|
|
@@ -32,7 +37,7 @@ namespace :fixture do
|
|
32
37
|
desc 'Distill a fixture and open it'
|
33
38
|
task :distill, :filename do |t, args|
|
34
39
|
outfile = File.open("/tmp/distilled.#{args[:filename]}", 'w')
|
35
|
-
outfile << doc_for_fixture(args[:filename]).distill!
|
40
|
+
outfile << doc_for_fixture(args[:filename]).distill!(:images => true)
|
36
41
|
sh "open #{outfile.path}"
|
37
42
|
end
|
38
43
|
end
|
data/lib/distillery/document.rb
CHANGED
@@ -11,7 +11,7 @@ module Distillery
|
|
11
11
|
UNLIKELY_TAGS = %w[head script link meta]
|
12
12
|
|
13
13
|
# HTML ids and classes that are unlikely to contain the content element.
|
14
|
-
UNLIKELY_IDENTIFIERS = /combx|comment|community|disqus|
|
14
|
+
UNLIKELY_IDENTIFIERS = /combx|comment|community|disqus|foot|header|remark|rss|shoutbox|sidebar|sponsor|ad-break|agegate|pagination|pager|popup/i
|
15
15
|
|
16
16
|
# Elements that are whitelisted from being removed as unlikely elements
|
17
17
|
REMOVAL_WHITELIST = %w[a body]
|
@@ -23,7 +23,7 @@ module Distillery
|
|
23
23
|
POSITIVE_IDENTIFIERS = /article|body|content|entry|hentry|page|pagination|post|text/i
|
24
24
|
|
25
25
|
# HTML ids and classes that are negative signals of the content element.
|
26
|
-
NEGATIVE_IDENTIFIERS = /combx|comment|contact|foot|footer|footnote|link|media|promo|related|scroll|shoutbox|sponsor|tags|widget/i
|
26
|
+
NEGATIVE_IDENTIFIERS = /combx|comment|contact|foot|footer|footnote|link|media|promo|related|scroll|shoutbox|sponsor|tags|widget|related/i
|
27
27
|
|
28
28
|
# HTML elements that are unrelated to the content in the content element.
|
29
29
|
UNRELATED_ELEMENTS = %w[iframe form object]
|
@@ -119,16 +119,9 @@ module Distillery
|
|
119
119
|
keep_images = !!options[:images]
|
120
120
|
|
121
121
|
top_scoring_elements.each do |element|
|
122
|
-
|
123
|
-
element.search("*").each do |node|
|
124
|
-
next if contains_content_image?(node) && keep_images
|
125
|
-
node.remove if has_empty_text?(node)
|
126
|
-
end
|
127
|
-
|
128
122
|
element.search("*").each do |node|
|
129
|
-
|
130
|
-
|
131
|
-
(node.text.count(',') < 2 && unlikely_to_be_content?(node))
|
123
|
+
if cleanable?(node, keep_images)
|
124
|
+
debugger if node.to_s =~ /maximum flavor/
|
132
125
|
node.remove
|
133
126
|
end
|
134
127
|
end
|
@@ -137,8 +130,18 @@ module Distillery
|
|
137
130
|
|
138
131
|
private
|
139
132
|
|
133
|
+
def cleanable?(node, keep_images)
|
134
|
+
return false if contains_content_image?(node) && keep_images
|
135
|
+
|
136
|
+
UNRELATED_ELEMENTS.include?(node.name) ||
|
137
|
+
(node.text.count(',') < 2 && unlikely_to_be_content?(node))
|
138
|
+
end
|
139
|
+
|
140
140
|
def contains_content_image?(node)
|
141
|
-
node.name == 'img' || node.children.css('img').length > 0
|
141
|
+
has_images = (node.name == 'img' || node.children.css('img').length > 0)
|
142
|
+
idclass = node['id'].to_s + node['class'].to_s
|
143
|
+
|
144
|
+
!idclass.match(NEGATIVE_IDENTIFIERS) && has_images
|
142
145
|
end
|
143
146
|
|
144
147
|
def scorable_elements
|
@@ -240,14 +243,14 @@ module Distillery
|
|
240
243
|
link_density = link_density(elem)
|
241
244
|
is_anchor = elem.name == 'a'
|
242
245
|
|
243
|
-
weight < 0 ||
|
244
|
-
elem.text.empty? ||
|
245
|
-
(!is_anchor && elem.text.length < 15) ||
|
246
|
-
img > p ||
|
247
|
-
li > p && link_density > 0.2 ||
|
248
|
-
input > p / 3 ||
|
249
|
-
weight < 25 && link_density > 0.2 ||
|
250
|
-
weight >= 25 && link_density > 0.5
|
246
|
+
weight < 0 || # Terrible weight
|
247
|
+
elem.text.empty? || # Empty text
|
248
|
+
(!is_anchor && elem.text.length < 15) || # Short text and not a link
|
249
|
+
img > p || # More images than paragraphs
|
250
|
+
li > p && link_density > 0.2 || # Has lots of list items and moderate link density
|
251
|
+
input > p / 3 || # Has a high % of inputs
|
252
|
+
weight < 25 && link_density > 0.2 || # Weak content signal and moderate link density
|
253
|
+
weight >= 25 && link_density > 0.5 # Strong content signal and high link density
|
251
254
|
end
|
252
255
|
|
253
256
|
end
|
data/lib/distillery/version.rb
CHANGED
data/spec/acceptance_spec.rb
CHANGED
@@ -193,4 +193,11 @@ distillation_of 'oyako.html' do
|
|
193
193
|
subject.should =~ /Ingredients:/
|
194
194
|
subject.should =~ /4 servings/
|
195
195
|
subject.should =~ /Goes well with a clear soup/
|
196
|
+
end
|
197
|
+
|
198
|
+
distillation_of 'cheese_spread.html', images: true do
|
199
|
+
subject.should =~ /Yield/
|
200
|
+
subject.should =~ /maximum flavor/
|
201
|
+
subject.should_not =~ /You May Also Enjoy.../ # Related
|
202
|
+
subject.should_not =~ /recipe developer/ # Sidebar
|
196
203
|
end
|
@@ -0,0 +1,441 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
|
2
|
+
<head profile="http://gmpg.org/xfn/11">
|
3
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
4
|
+
<title>Apple Cheese Spread Recipe | RecipeGirl.com</title>
|
5
|
+
<link rel="stylesheet" href="http://www.recipegirl.com/wp-content/themes/recipegirl/style.css" type="text/css" media="screen" />
|
6
|
+
<!--[if lte IE 6]>
|
7
|
+
<link rel="stylesheet" href="http://www.recipegirl.com/wp-content/themes/recipegirl/ie6.css" type="text/css" />
|
8
|
+
<![endif]-->
|
9
|
+
|
10
|
+
<link rel="alternate" type="application/rss+xml" title="RecipeGirl.com RSS Feed" href="http://www.recipegirl.com/feed/" />
|
11
|
+
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
|
12
|
+
<link rel="pingback" href="http://www.recipegirl.com/xmlrpc.php" />
|
13
|
+
<script type='text/javascript' src='http://recipegirl.ziplist.com/javascripts/pt_include.js'></script>
|
14
|
+
<link rel="alternate" type="application/rss+xml" title="RecipeGirl.com » Apple Cheese Spread Comments Feed" href="http://www.recipegirl.com/2007/05/26/apple-cheese-spread/feed/" />
|
15
|
+
<link rel='stylesheet' id='contact-form-7-css' href='http://www.recipegirl.com/wp-content/plugins/contact-form-7/styles.css?ver=2.4.6' type='text/css' media='all' />
|
16
|
+
<script type='text/javascript' src='http://www.recipegirl.com/wp-includes/js/l10n.js?ver=20101110'></script>
|
17
|
+
<script type='text/javascript' src='http://www.recipegirl.com/wp-includes/js/jquery/jquery.js?ver=1.6.1'></script>
|
18
|
+
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://www.recipegirl.com/xmlrpc.php?rsd" />
|
19
|
+
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://www.recipegirl.com/wp-includes/wlwmanifest.xml" />
|
20
|
+
<link rel='index' title='RecipeGirl.com' href='http://www.recipegirl.com/' />
|
21
|
+
<link rel='start' title='Farfalle with Spinach, Garlic and Ricotta' href='http://www.recipegirl.com/0006/09/23/farfalle-with-spinach-garlic-and-ricotta/' />
|
22
|
+
<link rel='prev' title='Fried Calamari with Spicy Mayonnaise' href='http://www.recipegirl.com/2007/05/25/fried-calamari-with-spicy-mayonnaise/' />
|
23
|
+
<link rel='next' title='Asiago Cheese Dip' href='http://www.recipegirl.com/2007/05/26/asiago-cheese-dip/' />
|
24
|
+
<link rel='shortlink' href='http://www.recipegirl.com/?p=65' />
|
25
|
+
|
26
|
+
<!-- All in One SEO Pack 1.6.13.4 by Michael Torbert of Semper Fi Web Design[300,350] -->
|
27
|
+
<meta name="description" content="An easy to make cheese spread with a combination of cream cheese, sharp cheddar, grated apple & herbs- mix, refrigerate and eat." />
|
28
|
+
<meta name="keywords" content="apple cheese spread, cheese crock recipes,apple,cheddar cheese" />
|
29
|
+
<link rel="canonical" href="http://www.recipegirl.com/2007/05/26/apple-cheese-spread/" />
|
30
|
+
<!-- /all in one seo pack -->
|
31
|
+
<script type="text/javascript">
|
32
|
+
//<![CDATA[
|
33
|
+
var _wpcf7 = { cached: 1 };
|
34
|
+
//]]>
|
35
|
+
</script>
|
36
|
+
<style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
|
37
|
+
<style type="text/css">.broken_link, a.broken_link {
|
38
|
+
text-decoration: line-through;
|
39
|
+
}</style><!-- wp thread comment 1.4.9.4.002 -->
|
40
|
+
|
41
|
+
|
42
|
+
</head>
|
43
|
+
<body>
|
44
|
+
|
45
|
+
<div class="sociallinks">
|
46
|
+
|
47
|
+
<div style="width:130px"><a href="http://recipegirl.ziplist.com/recipes/box"><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/recipebox.png" width="27" height="27" alt=" " border="0" /><strong>recipe box</strong><br/>view</a> / <a href="http://recipegirl.ziplist.com/mylist/">shopping list</a></div>
|
48
|
+
|
49
|
+
<div style="width:80px"><a href="http://www.twitter.com/recipegirl" target="_blank"><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/twitter.png" width="27" height="27" alt=" " border="0" /><strong>twitter</strong><br/>follow me</a></div>
|
50
|
+
|
51
|
+
<div style="width:100px"><a href="https://www.facebook.com/pages/RecipeGirl/107332655959579" target="_blank"><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/facebook.png" width="27" height="27" alt=" " border="0" /><strong>facebook</strong><br/>become a fan</a></div>
|
52
|
+
|
53
|
+
<div style="width:90px"><a href="http://feeds.feedburner.com/TheRecipeGirl"><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/rss.png" width="27" height="27" alt=" " border="0" /><strong>subscribe</strong><br/>rss</a> / <a href="http://www.feedblitz.com/f/f.fbz?sub=340510" target="_blank">email</a></div>
|
54
|
+
|
55
|
+
</div>
|
56
|
+
|
57
|
+
|
58
|
+
<div id="header">
|
59
|
+
<img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/girl.png" width="115" height="137" alt="" border="0" class="girl" />
|
60
|
+
<h1><a href="/"><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/recipegirl_logo.png" width="245" height="100" alt="RecipeGirl.com" border="0" class="logo" /></a></h1>
|
61
|
+
<img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/tagline.png" width="522" height="47" alt="" border="0" class="tagline" />
|
62
|
+
|
63
|
+
|
64
|
+
<form method="get" id="headsearch" action="http://www.recipegirl.com/">
|
65
|
+
<input type="text" name="s" id="s" value="" class="searchinput"/>
|
66
|
+
<input type="submit" class="searchsubmit" value="Search" />
|
67
|
+
</form>
|
68
|
+
</div>
|
69
|
+
|
70
|
+
<div id="topnav" class="menu-top-container"><ul id="topmenu" class="menu"><li id="menu-item-18368" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18368"><a href="/">Home</a></li>
|
71
|
+
<li id="menu-item-11503" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11503"><a href="http://www.recipegirl.com/about/">about</a></li>
|
72
|
+
<li id="menu-item-11505" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11505"><a href="http://www.recipegirl.com/recipes/">Recipe Index</a></li>
|
73
|
+
<li id="menu-item-18279" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18279"><a href="http://www.recipegirl.com/category/beyondfood/">Beyond Food</a></li>
|
74
|
+
<li id="menu-item-11738" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11738"><a href="http://www.recipegirl.com/category/entertaining/theme-party-menus/">Theme Menus</a></li>
|
75
|
+
<li id="menu-item-13318" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-13318"><a href="http://www.herchannel.com/recipegirl">Videos</a></li>
|
76
|
+
<li id="menu-item-11504" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11504"><a href="http://www.recipegirl.com/contact/">Contact</a></li>
|
77
|
+
</ul></div>
|
78
|
+
|
79
|
+
|
80
|
+
<div id="wrapper">
|
81
|
+
|
82
|
+
<div id="content">
|
83
|
+
|
84
|
+
|
85
|
+
|
86
|
+
<div class="post">
|
87
|
+
<div class="postmeta">
|
88
|
+
<a href="http://www.recipegirl.com/2007/05/26/apple-cheese-spread/#respond" title="Comment on Apple Cheese Spread">0 Comments</a> / <a href="#respond">Leave a Comment »</a>
|
89
|
+
</div>
|
90
|
+
<h2 class="posttitle"><a href="http://www.recipegirl.com/2007/05/26/apple-cheese-spread/" rel="bookmark">Apple Cheese Spread</a></h2>
|
91
|
+
|
92
|
+
<p><img src="http://staging.recipegirl.com/wp-content/uploads/2006/05/Apple-Cheese-Spread.jpg" alt="" title="Apple Cheese Spread" width="600" height="579" class="aligncenter size-full wp-image-12004" /></p>
|
93
|
+
<blockquote class="recipe hrecipe">
|
94
|
+
<p class="printbutton" style="float:right">
|
95
|
+
<a href="http://www.recipegirl.com/2007/05/26/apple-cheese-spread/print/" title="Print Recipe"><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/print.png" alt="Print" width="16" height="16" class="printimg" /> Print Recipe</a><br/>
|
96
|
+
<a href='javascript:void(0);' onmouseup='getZRecipe(this, "recipegirl", "");
|
97
|
+
return false;' title='Save to ZipList'><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/ziplist.png" alt="Save" width="16" height="16" class="printimg" /> Save Recipe</a>
|
98
|
+
<br/><img src="http://www.recipegirl.com/wp-content/uploads/2006/05/Apple-Cheese-Spread-130x130.jpg" class="photo" align="right" height="100" width="100" style="margin-top:10px;" />
|
99
|
+
</p>
|
100
|
+
|
101
|
+
<span class="item">
|
102
|
+
<h2 class="fn">Apple Cheese Spread</h2>
|
103
|
+
</span>
|
104
|
+
|
105
|
+
|
106
|
+
<p class="yield"><strong>Yield:</strong> <span class="yield">2 1/2 cups of dip</span></p>
|
107
|
+
<p class="time" style="margin-right: 10px; float: left; clear:left"><strong>Prep Time:</strong> <span class="preptime">10 minutes + chill time</span></p>
|
108
|
+
|
109
|
+
<div class="summary" style="clear:left"><p>This recipe takes only about 10 minutes to prepare- just blend all of the ingredients together and let the refrigerator do its magic for about an hour. While chilling, the flavors will meld and come together wonderfully.</p>
|
110
|
+
</div>
|
111
|
+
|
112
|
+
<h3 style="clear:left">Ingredients:</h3>
|
113
|
+
<div class="ingredient"><p>8 ounces reduced-fat cream cheese, softened<br />
|
114
|
+
1 cup grated sharp Cheddar cheese, at room temperature<br />
|
115
|
+
2 Tablespoons brandy or sherry<br />
|
116
|
+
1 medium Granny Smith apple (peeled, cored & grated)<br />
|
117
|
+
1 teaspoon dried basil<br />
|
118
|
+
1 teaspoon dried oregano<br />
|
119
|
+
1 teaspoon dried thyme<br />
|
120
|
+
1/4 teaspoon freshly ground black pepper</p>
|
121
|
+
</div>
|
122
|
+
<h3>Directions:</h3>
|
123
|
+
<div class="instructions"><p>1. Combine cream cheese, Cheddar, and brandy in a bowl. Beat with an electric mixer until smooth. Stir in the apple. Add basil, oregano, thyme, and pepper; stir until thoroughly combined.</p>
|
124
|
+
<p>2. Spoon the mixture into a serving dish; cover and chill for approximately 1 hour. Serve with crackers.</p>
|
125
|
+
</div>
|
126
|
+
|
127
|
+
<h3>Tips:</h3>
|
128
|
+
<div class="extra"><p>*It's ok to use reduced-fat cream cheese, but do use regular sharp cheddar for maximum flavor.</p>
|
129
|
+
</div>
|
130
|
+
|
131
|
+
|
132
|
+
<div class="source"><p><strong>Source:</strong>: RecipeGirl.com (Adapted from <em><a href="http://www.amazon.com/dp/1580173896?tag=reciandente-20&camp=0&creative=0&linkCode=as1&creativeASIN=1580173896&adid=0K7FDR2V9DJ737WJJ5ZA">Apple Cookbook)</a></em></p>
|
133
|
+
</div>
|
134
|
+
</blockquote>
|
135
|
+
|
136
|
+
|
137
|
+
<div class="addthis">
|
138
|
+
<div class="addthis_toolbox addthis_default_style">
|
139
|
+
<a class="addthis_button_email"></a>
|
140
|
+
<a class="addthis_button_facebook"></a>
|
141
|
+
<a class="addthis_button_twitter"></a>
|
142
|
+
<a class="addthis_button_stumbleupon"></a>
|
143
|
+
<a class="addthis_button_favorites"></a>
|
144
|
+
<a href="http://addthis.com/bookmark.php?v=250" class="addthis_button_compact"></a>
|
145
|
+
<span class="addthis_separator"> </span>
|
146
|
+
<a class="addthis_button_tweet" tw:count="horizontal" tw:via="recipegirl"></a>
|
147
|
+
<a class="addthis_button_facebook_like"></a>
|
148
|
+
<a href="javascript:void((function(){var%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('charset','UTF-8');e.setAttribute('src','http://assets.pinterest.com/js/pinmarklet.js?r='+Math.random()*99999999);document.body.appendChild(e)})());"><img style="margin: 0 0 0 0px;" onclick="doPinIt();" src="/images/pinit.png" alt="Pin It" class="noborder" /></a>
|
149
|
+
</div>
|
150
|
+
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=recipegirl"></script>
|
151
|
+
</div>
|
152
|
+
|
153
|
+
|
154
|
+
<div class="postmeta metabottom">
|
155
|
+
<div class="left">
|
156
|
+
<a href="http://www.recipegirl.com/2007/05/26/apple-cheese-spread/#respond" title="Comment on Apple Cheese Spread">0 Comments</a> / <a href="#respond">Leave a Comment »</a>
|
157
|
+
</div>
|
158
|
+
|
159
|
+
<div class="right">
|
160
|
+
Posted by Lori Lange on May 26, 2007 </div>
|
161
|
+
|
162
|
+
<div class="clear"></div>
|
163
|
+
</div><!-- end .postmeta -->
|
164
|
+
|
165
|
+
|
166
|
+
</div> <!-- end .post -->
|
167
|
+
|
168
|
+
<div id="text-448953177" class="postad widget_text "> <div class="textwidget"><!-- Begin supplemental 300 ad -->
|
169
|
+
<script src="http://ads.blogherads.com/80/8053/300b.js" type="text/javascript"></script>
|
170
|
+
<!-- End supplemental 300 ad --></div>
|
171
|
+
</div>
|
172
|
+
|
173
|
+
<div class="relatedposts"><h4 id="related">You May Also Enjoy...</h4><ul class="archives"> <li class="archivepost">
|
174
|
+
<a href="http://www.recipegirl.com/2008/06/16/easy-apple-cinnamon-muffins/" rel="bookmark" title="Easy Apple Cinnamon Muffins">
|
175
|
+
<img width="130" height="130" src="http://www.recipegirl.com/wp-content/uploads/2008/06/Easy-Apple-Cinnamon-Muffins-130x130.jpg" class="attachment-thumbnail wp-post-image" alt="Easy Apple Cinnamon Muffins" title="" />
|
176
|
+
<span class="title">Easy Apple Cinnamon Muffins</span></a>
|
177
|
+
</li>
|
178
|
+
<li class="archivepost">
|
179
|
+
<a href="http://www.recipegirl.com/2006/05/28/prosciutto-apple-wedges/" rel="bookmark" title="Prosciutto- Apple Wedges">
|
180
|
+
<img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/default.png" alt="Prosciutto- Apple Wedges"/>
|
181
|
+
|
182
|
+
<span class="title">Prosciutto- Apple Wedges</span></a>
|
183
|
+
</li>
|
184
|
+
<li class="archivepost">
|
185
|
+
<a href="http://www.recipegirl.com/2008/08/12/whole-grainapple-cake/" rel="bookmark" title="Whole Grain Apple Cake">
|
186
|
+
<img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/default.png" alt="Whole Grain Apple Cake"/>
|
187
|
+
|
188
|
+
<span class="title">Whole Grain Apple Cake</span></a>
|
189
|
+
</li>
|
190
|
+
<li class="archivepost">
|
191
|
+
<a href="http://www.recipegirl.com/2008/06/20/buffet-breakfast-casserole/" rel="bookmark" title="Buffet Breakfast Casserole">
|
192
|
+
<img width="130" height="130" src="http://www.recipegirl.com/wp-content/uploads/2008/06/Buffet-Breakfast-Casserole-130x130.jpg" class="attachment-thumbnail wp-post-image" alt="Buffet Breakfast Casserole" title="" />
|
193
|
+
<span class="title">Buffet Breakfast Casserole</span></a>
|
194
|
+
</li>
|
195
|
+
</ul></div>
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
<!-- You can start editing here. -->
|
202
|
+
|
203
|
+
|
204
|
+
<!-- If comments are open, but there are no comments. -->
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
<h4 id="respond">Leave a Comment</h4>
|
211
|
+
|
212
|
+
<div class="cancel-comment-reply">
|
213
|
+
<small><a rel="nofollow" id="cancel-comment-reply-link" href="/2007/05/26/apple-cheese-spread/#respond" style="display:none;">Click here to cancel reply.</a></small>
|
214
|
+
</div>
|
215
|
+
|
216
|
+
|
217
|
+
<form action="http://www.recipegirl.com/wp-comments-post.php" method="post" id="commentform">
|
218
|
+
|
219
|
+
|
220
|
+
<p><label for="author">Name (required)</label><br/><input type="text" name="author" id="author" class="commentinput" value="" size="22" tabindex="1" aria-required='true' /></p>
|
221
|
+
|
222
|
+
<p><label for="email">Mail (required - will not be published)</label><br/><input type="text" name="email" id="email" class="commentinput" value="" size="22" tabindex="2" aria-required='true' /></p>
|
223
|
+
|
224
|
+
<p><label for="url">Website URL</label><br/>
|
225
|
+
<input type="text" name="url" id="url" class="commentinput" value="" size="22" tabindex="3" /></p>
|
226
|
+
|
227
|
+
|
228
|
+
<p><label for="comment">Comment</label>
|
229
|
+
<textarea name="comment" id="comment" class="commentinput" cols="70" rows="10" tabindex="4"></textarea></p>
|
230
|
+
|
231
|
+
<p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
|
232
|
+
<input type='hidden' name='comment_post_ID' value='65' id='comment_post_ID' />
|
233
|
+
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
|
234
|
+
</p>
|
235
|
+
<p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="ebad455de7" /></p><p><input type="hidden" id="comment_reply_ID" name="comment_reply_ID" value="0" /><input type="hidden" id="comment_reply_dp" name="comment_reply_dp" value="0" /></p><div id="cancel_reply" style="display:none;"><a href="javascript:void(0)" onclick="movecfm(null,0,1,null);" style="color:red;">Click to cancel reply</a></div><script type="text/javascript">
|
236
|
+
/* <![CDATA[ */
|
237
|
+
var commentformid = "commentform";
|
238
|
+
var USERINFO = false;
|
239
|
+
var atreply = "none";
|
240
|
+
/* ]]> */
|
241
|
+
</script>
|
242
|
+
<script type="text/javascript" src="http://www.recipegirl.com/wp-content/plugins/wordpress-thread-comment/wp-thread-comment.js.php?jsver=common"></script>
|
243
|
+
|
244
|
+
</form>
|
245
|
+
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
</div> <!-- end #content -->
|
250
|
+
|
251
|
+
<div id="sidebar">
|
252
|
+
|
253
|
+
<ul id="topsidebar">
|
254
|
+
<li id="text-448953162" class="widget widget_text aboutbox"><h3 class="widgettitle">Welcome to Recipe Girl!</h3> <div class="textwidget"><p><img src="/images/about.jpg" width="75" height="94" alt="About Lori" align="right" />I'm Lori Lange, recipe developer, food writer and Mom. I'm sharing over 2,500 of my favorite recipes and theme menus with you. </div>
|
255
|
+
</li> </ul>
|
256
|
+
|
257
|
+
<ul id="topsidebar-ad">
|
258
|
+
<li id="text-352500501" class="widget widget_text "> <div class="textwidget"><!-- BEGIN 300x250 MAIN AD-->
|
259
|
+
<script src="http://ads.blogherads.com/80/8053/300a.js" type="text/javascript"></script>
|
260
|
+
<!-- END 300x250 MAIN AD--></div>
|
261
|
+
</li><li id="text-448953167" class="widget widget_text "> <div class="textwidget"></div>
|
262
|
+
</li><li id="text-448953163" class="widget widget_text subscribe"><h3 class="widgettitle"> Stay Connected</h3> <div class="textwidget"><p>get free email updates</p>
|
263
|
+
<form class="emailform" action="http://www.feedblitz.com/feedblitz.exe?BurnUser" method="post" >
|
264
|
+
<input name="email" maxlength="255" type="text" id="email" class="emailinput"/><input name="uri" type="hidden" value="http://feeds.feedburner.com/TheRecipeGirl" /><input type="submit" value="Subscribe »" class="emailsubmit" /></form></div>
|
265
|
+
</li> </ul>
|
266
|
+
|
267
|
+
<ul id="leftsidebar">
|
268
|
+
|
269
|
+
<li class="widget bfwidget">
|
270
|
+
<h3 class="widgettitle"><a href="/category/beyondfood">Beyond Food</a></h3>
|
271
|
+
<ul>
|
272
|
+
|
273
|
+
<li><a href="http://www.recipegirl.com/2011/12/13/what-do-teachers-want-for-christmas/">
|
274
|
+
<img width="130" height="130" src="http://www.recipegirl.com/wp-content/uploads/2011/12/Teacher-1-130x130.jpg" class="attachment-thumbnail wp-post-image" alt="Teacher 1" title="Teacher 1" /> <span class="title">What Do Teachers Want for Christmas?</span></a> <span class="date">(12/13/11)</span>
|
275
|
+
</li>
|
276
|
+
|
277
|
+
<li><a href="http://www.recipegirl.com/2011/12/08/gift-ideas-for-girls-of-all-ages/">
|
278
|
+
<img width="130" height="130" src="http://www.recipegirl.com/wp-content/uploads/2011/12/Gift-Ideas-for-Girls-ages-18-to-infinity-130x130.jpg" class="attachment-thumbnail wp-post-image" alt="Gift Ideas for Girls ages 18 to infinity" title="Gift Ideas for Girls ages 18 to infinity" /> <span class="title">Gift Ideas for Girls of All Ages</span></a> <span class="date">(12/8/11)</span>
|
279
|
+
</li>
|
280
|
+
|
281
|
+
<li><a href="http://www.recipegirl.com/2011/11/29/gift-ideas-for-boys-of-all-ages/">
|
282
|
+
<img width="130" height="130" src="http://www.recipegirl.com/wp-content/uploads/2011/11/Gift-Recommendations-for-Boys-5-130x130.jpg" class="attachment-thumbnail wp-post-image" alt="Gift Recommendations for Boys 5" title="Gift Recommendations for Boys 5" /> <span class="title">Gift Ideas for Boys of All Ages</span></a> <span class="date">(11/29/11)</span>
|
283
|
+
</li>
|
284
|
+
|
285
|
+
</ul>
|
286
|
+
<div class="readmore"><a href="/category/beyondfood">More Beyond Food »</a></div>
|
287
|
+
</li>
|
288
|
+
|
289
|
+
|
290
|
+
<li id="recent-posts-3" class="widget widget_recent_entries "> <h3 class="widgettitle">Recent Posts</h3> <ul>
|
291
|
+
<li><a href="http://www.recipegirl.com/2011/12/19/butterfinger-truffles/" title="Butterfinger Truffles">Butterfinger Truffles</a></li>
|
292
|
+
<li><a href="http://www.recipegirl.com/2011/12/17/salted-caramel-sauce-printable-labels/" title="Salted Caramel Sauce + Printable Labels">Salted Caramel Sauce + Printable Labels</a></li>
|
293
|
+
<li><a href="http://www.recipegirl.com/2011/12/15/gluten-free-molasses-crinkles/" title="Gluten Free Molasses Crinkles">Gluten Free Molasses Crinkles</a></li>
|
294
|
+
<li><a href="http://www.recipegirl.com/2011/12/14/how-to-make-norwegian-salmon-gravlax/" title="How to Make Norwegian Salmon Gravlax">How to Make Norwegian Salmon Gravlax</a></li>
|
295
|
+
<li><a href="http://www.recipegirl.com/2011/12/13/what-do-teachers-want-for-christmas/" title="What Do Teachers Want for Christmas?">What Do Teachers Want for Christmas?</a></li>
|
296
|
+
<li><a href="http://www.recipegirl.com/2011/12/12/almond-roca-2/" title="Almond Roca">Almond Roca</a></li>
|
297
|
+
<li><a href="http://www.recipegirl.com/2011/12/08/gift-ideas-for-girls-of-all-ages/" title="Gift Ideas for Girls of All Ages">Gift Ideas for Girls of All Ages</a></li>
|
298
|
+
<li><a href="http://www.recipegirl.com/2011/12/08/slow-cooker-garlic-chicken/" title="Slow Cooker Garlic Chicken">Slow Cooker Garlic Chicken</a></li>
|
299
|
+
</ul>
|
300
|
+
</li><li id="text-448953171" class="widget widget_text "> <div class="textwidget"><img class="aligncenter size-full wp-image-15837" title="saveur-icon" src="http://www.recipegirl.com/wp-content/uploads/2011/05/saveur-icon.gif" alt="" width="118" height="118" /></div>
|
301
|
+
</li><li id="text-448953174" class="widget widget_text "> <div class="textwidget"><a href="http://www.recipeboy.com/" target="_blank"><img class="aligncenter size-full wp-image-16317" title="recipeboy125X125[1]" src="http://www.recipegirl.com/wp-content/uploads/2011/05/recipeboy125X12511.png" alt="" width="125" height="125" /></a></div>
|
302
|
+
</li><li id="text-448953178" class="widget widget_text "> <div class="textwidget"><!-- Begin Cox Digital Solutions tag for "leftcolumn" Ad Space (120x240) ID #1000007180207 -->
|
303
|
+
<script type="text/javascript">
|
304
|
+
sr_adspace_id = 1000007180207;
|
305
|
+
sr_adspace_width = 120;
|
306
|
+
sr_adspace_height = 240;
|
307
|
+
sr_ad_new_window = true;
|
308
|
+
sr_adspace_type = "graphic";
|
309
|
+
</script>
|
310
|
+
<script type="text/javascript" src="http://ad.afy11.net/srad.js?azId=1000007180207">
|
311
|
+
</script>
|
312
|
+
<!-- End Cox Digital Solutions tag for "leftcolumn" Ad Space (120x240) ID #1000007180207 --></div>
|
313
|
+
</li><li id="text-448953181" class="widget widget_text "> <div class="textwidget"><iframe src="http://rcm.amazon.com/e/cm?t=reciandente-20&o=1&p=20&l=ur1&category=kitchen&banner=0Z0QS6ZP2XT90QHKRG82&f=ifr" width="120" height="90" scrolling="no" border="0" marginwidth="0" style="border:none;" frameborder="0"></iframe>
|
314
|
+
</div>
|
315
|
+
</li> </ul>
|
316
|
+
|
317
|
+
<ul id="rightsidebar">
|
318
|
+
<li id="text-448953152" class="widget widget_text"> <div class="textwidget"><!-- Begin Adify tag for "AllPagesRightBottomLeft" Ad Space (160x600) ID #1000002391607 -->
|
319
|
+
<script type="text/javascript">
|
320
|
+
sr_adspace_id = 1000002391607;
|
321
|
+
sr_adspace_width = 160;
|
322
|
+
sr_adspace_height = 600;
|
323
|
+
sr_ad_new_window = true;
|
324
|
+
sr_adspace_type = "graphic";
|
325
|
+
</script>
|
326
|
+
<script type="text/javascript" src="http://ad.afy11.net/srad.js?azId=1000002391607">
|
327
|
+
</script>
|
328
|
+
<!-- End Adify tag for "AllPagesRightBottomLeft" Ad Space (160x600) ID #1000002391607 --></div>
|
329
|
+
</li><li id="text-448953161" class="widget widget_text"> <div class="textwidget"><!-- Begin Adify tag for "Platefull Badge" Widget Space (159x80) ID #1000001305972 -->
|
330
|
+
<script type="text/javascript">
|
331
|
+
sr_widget_id = 1000001305972;
|
332
|
+
sr_widget_width = 159;
|
333
|
+
sr_widget_height = 80;
|
334
|
+
</script>
|
335
|
+
<script type="text/javascript" src="http://ad.afy11.net/srwidget.js?wId=1000001305972">
|
336
|
+
</script>
|
337
|
+
<!-- End Adify tag for "Platefull Badge" Widget Space (159x80) ID #1000001305972 --></div>
|
338
|
+
</li><li id="text-448953165" class="widget widget_text "> <div class="textwidget"><p><a href="http://www.goodbite.com/" target="_blank"><img src="/images/goodbite.jpg" width="160" height="125" alt="Good Bite Contributor" /></a></p>
|
339
|
+
<br/>
|
340
|
+
<p><img src="/images/babble.png" width="160" height="242" alt="Babble.com Top 100 Mom Food Bloggers" /></a></p></div>
|
341
|
+
</li><li id="text-448953168" class="widget widget_text "> <div class="textwidget"><div style="width: 140px !important; height: 170px !important; background:white !important; border: 1px solid #4D0A0B !important; overflow: hidden !important; text-align: center !important;"><a href="http://foodblogsearch.com" target="_blank">
|
342
|
+
<img src="http://foodblogsearch.com/images/fbs-button-140.png" style="border:0 !important; padding:0 !important; margin-bottom:5px !important;"/></a>
|
343
|
+
<!-- Google CSE Search Box Begins -->
|
344
|
+
<form action="http://foodblogsearch.com/food-blog-search-results.php" id="searchbox_003084314295129404805:72ozi9a0fjk" style="margin:0 !important; padding:0 !important;">
|
345
|
+
<input type="hidden" name="cx" value="003084314295129404805:72ozi9a0fjk" />
|
346
|
+
<input type="hidden" name="cof" value="FORID:11" /><input type="text" name="q" style="border:solid 1px #8A7C7D !important; width:128px !important; height:16px !important; " />
|
347
|
+
<input type="image" src="http://www.foodblogsearch.com/images/search-fb-button-2.png" value="Search Food Blogs" alt="Search Food Blogs" name="sa" title="Search Food Blogs" id="search-button" style="margin-top:4px !important;" /></form>
|
348
|
+
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_003084314295129404805%3A72ozi9a0fjk"></script>
|
349
|
+
<!-- Google CSE Search Box Ends -->
|
350
|
+
</div></div>
|
351
|
+
</li><li id="text-448953180" class="widget widget_text "> <div class="textwidget"><iframe src="http://rcm.amazon.com/e/cm?t=reciandente-20&o=1&p=21&l=ur1&category=gift_certificates&banner=0RMFK66CHHDVZ1TV7N02&f=ifr" width="125" height="125" scrolling="no" border="0" marginwidth="0" style="border:none;" frameborder="0"></iframe>
|
352
|
+
</div>
|
353
|
+
</li><li id="text-448953179" class="widget widget_text "> <div class="textwidget"><!-- BEGIN BHBadge -->
|
354
|
+
<div class="bhbadge" id="bhbadge_Syndicated" style="display: inline;"><a href="http://www.blogher.com?from=bhsbadge" target="_blank"><img src="http://www.blogher.com/files/edbadge_syndicated.jpg" border="0" alt="Syndicated on BlogHer.com" title="Syndicated on BlogHer.com" width="120" height="100"></a></div>
|
355
|
+
<!-- END BHBadge --></div>
|
356
|
+
</li> </ul>
|
357
|
+
|
358
|
+
</div><!-- end #sidebar --><div class="clear"></div>
|
359
|
+
|
360
|
+
</div> <!-- end #wrapper -->
|
361
|
+
|
362
|
+
<div id="footer">
|
363
|
+
<div class="footerwrap">
|
364
|
+
|
365
|
+
<ul id="footerwidgets">
|
366
|
+
<li id="twitter-3" class="widget widget_twitter"><div><h4 class="widgettitle"><span class='twitterwidget twitterwidget-title'>twittering...</span></h4><ul><li><span class='entry-content'>I totally want to do this. RT <a href="http://twitter.com/wearsmanyhats" class="twitter-user" target="_blank">@wearsmanyhats</a>: How to Make a Chalkboard. It's easy, & would make great last minute gift. <a href="http://t.co/bpVqlmAD" target="_blank">http://t.co/bpVqlmAD</a></span> <span class='entry-meta'><span class='time-meta'><a href="http://twitter.com/RecipeGirl/statuses/148969538980024320" target="_blank">about 1 hour ago</a></span> <span class='from-meta'>from <a href="http://www.hootsuite.com" rel="nofollow">HootSuite</a></span></span> <span class="intent-meta"><a href="http://twitter.com/intent/tweet?in_reply_to=148969538980024320" data-lang="en" class="in-reply-to" title="Reply" target="_blank">Reply</a><a href="http://twitter.com/intent/retweet?tweet_id=148969538980024320" data-lang="en" class="retweet" title="Retweet" target="_blank">Retweet</a><a href="http://twitter.com/intent/favorite?tweet_id=148969538980024320" data-lang="en" class="favorite" title="Favorite" target="_blank">Favorite</a></span></li><li><span class='entry-content'>Yee Hah! RT <a href="http://twitter.com/wearsmanyhats" class="twitter-user" target="_blank">@wearsmanyhats</a>: Girls & guns> RT <a href="http://twitter.com/cookincanuck" class="twitter-user" target="_blank">@cookincanuck</a>: A Girl Hunter weekend & coming full circle. <a href="http://t.co/dsGyZmMP" target="_blank">http://t.co/dsGyZmMP</a> <a href="http://search.twitter.com/search?q=%23girlhunter" class="twitter-hashtag" target="_blank">#girlhunter</a></span> <span class='entry-meta'><span class='time-meta'><a href="http://twitter.com/RecipeGirl/statuses/148966970560225280" target="_blank">about 1 hour ago</a></span> <span class='from-meta'>from <a href="http://www.hootsuite.com" rel="nofollow">HootSuite</a></span></span> <span class="intent-meta"><a href="http://twitter.com/intent/tweet?in_reply_to=148966970560225280" data-lang="en" class="in-reply-to" title="Reply" target="_blank">Reply</a><a href="http://twitter.com/intent/retweet?tweet_id=148966970560225280" data-lang="en" class="retweet" title="Retweet" target="_blank">Retweet</a><a href="http://twitter.com/intent/favorite?tweet_id=148966970560225280" data-lang="en" class="favorite" title="Favorite" target="_blank">Favorite</a></span></li></ul><div class="follow-button"><a href="http://twitter.com/recipegirl" class="twitter-follow-button" title="Follow @recipegirl" data-lang="en" target="_blank">@recipegirl</a></div></div></li><li id="recent-comments" class="widget widget_rrm_recent_comments"><h4 class="widgettitle">Recent Comments</h4><ul><li><a href="http://www.recipegirl.com/2008/09/02/macadamia-nut-butter-toffee/#comment-59738"><strong>Lori Lange</strong> - I wouldn't try Splenda- I'm not sure how Splenda works out in candy recipes!</a></li>
|
367
|
+
|
368
|
+
<li><a href="http://www.recipegirl.com/2011/12/19/butterfinger-truffles/#comment-59737"><strong>Asmita</strong> - I am drooling. These look amazing!</a></li>
|
369
|
+
|
370
|
+
<li><a href="http://www.recipegirl.com/2011/06/02/chocolate-chip-cookie-dough-brownies/#comment-59736"><strong>Ashley M.</strong> - Of everything good and Holy! THESE LOOK DELICIOUS!!! Forgive me as I run for a napkin to clean up my</a></li>
|
371
|
+
</ul><!-- Recent Comments took 2.442 ms --></li><li id="popular-posts" class="widget widget_rrm_popular_posts"><h4 class="widgettitle">Most Popular Recipes</h4><ul><li><a href="http://www.recipegirl.com/2011/06/02/chocolate-chip-cookie-dough-brownies/" rel="bookmark" title="June 2, 2011">Chocolate Chip Cookie Dough Brownies</a></li>
|
372
|
+
|
373
|
+
<li><a href="http://www.recipegirl.com/2011/03/01/cinnamon-roll-pancakes/" rel="bookmark" title="March 1, 2011">Cinnamon Roll Pancakes</a></li>
|
374
|
+
|
375
|
+
<li><a href="http://www.recipegirl.com/2011/06/27/fireworks-cookies/" rel="bookmark" title="June 27, 2011">Fireworks Cookies</a></li>
|
376
|
+
|
377
|
+
<li><a href="http://www.recipegirl.com/2011/06/23/red-white-and-blue-sangria/" rel="bookmark" title="June 23, 2011">Red, White and Blue Sangria</a></li>
|
378
|
+
|
379
|
+
<li><a href="http://www.recipegirl.com/2011/06/30/triple-berry-salad-with-sugared-almonds/" rel="bookmark" title="June 30, 2011">Triple Berry Salad with Sugared Almonds</a></li>
|
380
|
+
</ul><!-- popular Posts took 4.623 ms --></li> </ul>
|
381
|
+
<div class="clear"></div>
|
382
|
+
</div>
|
383
|
+
</div> <!-- end #footer -->
|
384
|
+
|
385
|
+
<div class="subfooter">
|
386
|
+
<div class="footermenu">
|
387
|
+
<ul id="menu-footer" class="pages"><li id="menu-item-11508" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-11508"><a href="http://staging.recipegirl.com/">Home</a></li>
|
388
|
+
<li id="menu-item-11509" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11509"><a href="http://www.recipegirl.com/about/">about</a></li>
|
389
|
+
<li id="menu-item-11511" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11511"><a href="http://www.recipegirl.com/recipes/">recipes</a></li>
|
390
|
+
<li id="menu-item-18369" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-18369"><a href="http://www.recipegirl.com/archives/">Archives</a></li>
|
391
|
+
<li id="menu-item-11510" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11510"><a href="http://www.recipegirl.com/contact/">Contact</a></li>
|
392
|
+
<li id="menu-item-13342" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13342"><a href="http://www.recipegirl.com/work-with-me/">Work with Me</a></li>
|
393
|
+
<li id="menu-item-15840" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15840"><a href="http://www.recipegirl.com/links/">links</a></li>
|
394
|
+
<li id="menu-item-17910" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17910"><a href="http://www.recipegirl.com/shop/">Shop</a></li>
|
395
|
+
</ul> <ul class="social">
|
396
|
+
<li><a href="http://feeds.feedburner.com/TheRecipeGirl"><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/rss-sm.png" width="16" height="16" alt="RSS" border="0" /></a></li>
|
397
|
+
<li><a href="http://www.twitter.com/recipegirl" target="_blank"><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/twitter-sm.png" width="16" height="16" alt="Twitter" border="0" /></a></li>
|
398
|
+
<li><a href="https://www.facebook.com/pages/RecipeGirl/107332655959579" target="_blank"><img src="http://www.recipegirl.com/wp-content/themes/recipegirl/images/facebook-sm.png" width="16" height="16" alt="Facebook" border="0" /></a></li>
|
399
|
+
</ul>
|
400
|
+
</div>
|
401
|
+
|
402
|
+
<div class="copyright">
|
403
|
+
<p><strong>©2006-2011 RecipeGirl.com™ All rights reserved.</strong> <a href="/terms/">Terms & Conditions</a> | <a href="/privacy/">Privacy Policy</a><br/>
|
404
|
+
<small>RecipeGirl™ and the RecipeGirl logo are registered trademarks. Images and original content are sole property of Lori Lange and may not be used, copied or transmitted without author consent.
|
405
|
+
</small></p>
|
406
|
+
<p>Design by <a href="http://www.purrdesign.com" target="_blank">Purr</a>.</p>
|
407
|
+
</div>
|
408
|
+
|
409
|
+
<div id="text-448953175" class="footerad widget_text "> <div class="textwidget"><script type="text/javascript"><!--
|
410
|
+
google_ad_client = "pub-2452081970497677";
|
411
|
+
/* 728x90, created 6/17/11 */
|
412
|
+
google_ad_slot = "7926433864";
|
413
|
+
google_ad_width = 728;
|
414
|
+
google_ad_height = 90;
|
415
|
+
//-->
|
416
|
+
</script>
|
417
|
+
<script type="text/javascript"
|
418
|
+
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
419
|
+
</script></div>
|
420
|
+
</div>
|
421
|
+
<script type='text/javascript' src='http://www.recipegirl.com/wp-content/plugins/contact-form-7/jquery.form.js?ver=2.52'></script>
|
422
|
+
<script type='text/javascript' src='http://www.recipegirl.com/wp-content/plugins/contact-form-7/scripts.js?ver=2.4.6'></script>
|
423
|
+
<script type='text/javascript' src='http://platform.twitter.com/widgets.js?ver=1.0.0'></script>
|
424
|
+
|
425
|
+
<!-- Cached by DB Cache Reloaded -->
|
426
|
+
</div>
|
427
|
+
|
428
|
+
<script type="text/javascript">
|
429
|
+
|
430
|
+
var _gaq = _gaq || [];
|
431
|
+
_gaq.push(['_setAccount', 'UA-8831555-1']);
|
432
|
+
_gaq.push(['_trackPageview']);
|
433
|
+
|
434
|
+
(function() {
|
435
|
+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
436
|
+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
437
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
438
|
+
})();
|
439
|
+
|
440
|
+
</script>
|
441
|
+
</body></html><!-- hyper cache: 263a2f559716402a4008763a46b5699d 11-12-20 04:44:36 -->
|
@@ -60,7 +60,7 @@ module Distillery
|
|
60
60
|
end
|
61
61
|
|
62
62
|
describe 'remove_unlikely_elements!' do
|
63
|
-
%w[combx comment community disqus
|
63
|
+
%w[combx comment community disqus foot header remark rss shoutbox sidebar sponsor ad-break agegate pagination pager popup].each do |klass|
|
64
64
|
it "removes any elements classed .#{klass}, as it is unlikely to be page content" do
|
65
65
|
doc = document_of("<div class='#{klass}'>foo</div>", :remove_unlikely_elements!)
|
66
66
|
doc.inner_html.should == html_of("")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: distillery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-20 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &2162966860 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>'
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2162966860
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: slop
|
27
|
-
requirement: &
|
27
|
+
requirement: &2162965640 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>'
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '1.0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2162965640
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &2162965140 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>'
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '2.0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2162965140
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: guard
|
49
|
-
requirement: &
|
49
|
+
requirement: &2162964740 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2162964740
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: guard-rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &2162964240 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2162964240
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: ruby-debug19
|
71
|
-
requirement: &
|
71
|
+
requirement: &2162963800 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2162963800
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rb-fsevent
|
82
|
-
requirement: &
|
82
|
+
requirement: &2162963340 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2162963340
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: growl
|
93
|
-
requirement: &
|
93
|
+
requirement: &2162962900 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2162962900
|
102
102
|
description: Distillery extracts the "content" portion out of an HTML document. It
|
103
103
|
applies heuristics based on element type, location, class/id name and other attributes
|
104
104
|
to try and find the content part of the HTML document and return it.
|
@@ -129,6 +129,7 @@ files:
|
|
129
129
|
- spec/fixtures/bilays.html
|
130
130
|
- spec/fixtures/bourbon_balls.html
|
131
131
|
- spec/fixtures/bulgogi.html
|
132
|
+
- spec/fixtures/cheese_spread.html
|
132
133
|
- spec/fixtures/clams_and_linguini.html
|
133
134
|
- spec/fixtures/clouds_shining_moment.html
|
134
135
|
- spec/fixtures/forest_ham.html
|
@@ -181,6 +182,7 @@ test_files:
|
|
181
182
|
- spec/fixtures/bilays.html
|
182
183
|
- spec/fixtures/bourbon_balls.html
|
183
184
|
- spec/fixtures/bulgogi.html
|
185
|
+
- spec/fixtures/cheese_spread.html
|
184
186
|
- spec/fixtures/clams_and_linguini.html
|
185
187
|
- spec/fixtures/clouds_shining_moment.html
|
186
188
|
- spec/fixtures/forest_ham.html
|