ballonizer 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/ballonizer_app/config.ru +59 -0
- data/examples/ballonizer_app/index.html +159 -0
- data/examples/ballonizer_js_module/index.html +196 -0
- data/lib/assets/javascripts/ballonizer.js +482 -0
- data/lib/assets/stylesheets/ballonizer.css +78 -0
- data/lib/ballonizer.rb +201 -36
- data/spec/ballonizer_spec.rb +153 -2
- data/spec/javascripts/ballonizer_spec.js +568 -0
- data/spec/javascripts/fixtures/ballonized-xkcd-with-anchor-in-image.html +163 -0
- data/spec/javascripts/fixtures/ballonized-xkcd-with-ballons.html +163 -0
- data/spec/javascripts/fixtures/ballonized-xkcd-without-ballons.html +163 -0
- data/spec/javascripts/fixtures/xkcd.css +191 -0
- data/spec/javascripts/helpers/jasmine-jquery.js +660 -0
- data/spec/javascripts/helpers/jquery.simulate-ext.js +32 -0
- data/spec/javascripts/helpers/jquery.simulate.drag-n-drop.js +583 -0
- data/spec/javascripts/helpers/jquery.simulate.js +328 -0
- data/spec/javascripts/support/jasmine.yml +99 -0
- data/vendor/assets/javascripts/jquery-2.0.1.js +8837 -0
- data/vendor/assets/javascripts/jquery-ui-1.10.3.custom.min.js +6 -0
- data/vendor/assets/javascripts/jquery.json-2.4.min.js +24 -0
- data/vendor/assets/stylesheets/ui-lightness/images/animated-overlay.gif +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
- data/vendor/assets/stylesheets/ui-lightness/jquery-ui-1.10.3.custom.min.css +5 -0
- metadata +51 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5d1bbd1e907d9bca6cf807a94caefc63a94b164
|
4
|
+
data.tar.gz: fe4987187244948facaa3a1bcf89b4240f1a385a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81fbd87f25f016c28f7233a03c7fb04eef1634c52fae9211f451283eb2637b484c1b7c9b0118b1a2f75e54c1cb931a7ac60ab7fa08be256694cc11eb8f841362
|
7
|
+
data.tar.gz: ec5b3571b0f30841b5d8f74bddab3c9d4e819c5959914fd0085d6b8a872ad08bc4a9ceeb5b3dde4229c9ef9110d252f35afc934ad3c0d0214842e657112dac19
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'sequel'
|
2
|
+
require 'sqlite3'
|
3
|
+
require 'sprockets'
|
4
|
+
require 'ballonizer'
|
5
|
+
|
6
|
+
path_rake_to_app = 'examples/ballonizer_app/'
|
7
|
+
db_name = 'test.db'
|
8
|
+
db_path = "#{path_rake_to_app}#{db_name}"
|
9
|
+
db_uri = "sqlite://#{db_path}"
|
10
|
+
|
11
|
+
DB = nil
|
12
|
+
if File.exists?(db_path)
|
13
|
+
DB = Sequel.connect(db_uri)
|
14
|
+
else
|
15
|
+
DB = Sequel.connect(db_uri)
|
16
|
+
Ballonizer.create_tables(DB)
|
17
|
+
end
|
18
|
+
|
19
|
+
html_name = 'index.html'
|
20
|
+
html = File.read("#{path_rake_to_app}#{html_name}")
|
21
|
+
|
22
|
+
ballonizer = Ballonizer.new(DB, {
|
23
|
+
form_handler_url: '/request_handler',
|
24
|
+
add_required_css: true,
|
25
|
+
css_asset_path_for_link: '/assets',
|
26
|
+
add_required_js_libs_for_edition: true,
|
27
|
+
js_asset_path_for_link: '/assets'
|
28
|
+
})
|
29
|
+
|
30
|
+
app = Rack::Builder.new do
|
31
|
+
|
32
|
+
map '/' do
|
33
|
+
run(lambda do | env |
|
34
|
+
# the url is needed to make relative paths to images absolute
|
35
|
+
request = Rack::Request.new(env)
|
36
|
+
ballonized_page = ballonizer.ballonize_page(html, request.url)
|
37
|
+
|
38
|
+
[200, {}, [ballonized_page]]
|
39
|
+
end)
|
40
|
+
end
|
41
|
+
|
42
|
+
map '/assets' do
|
43
|
+
run Ballonizer.assets_app
|
44
|
+
end
|
45
|
+
|
46
|
+
map '/request_handler' do
|
47
|
+
run(lambda do | env |
|
48
|
+
begin
|
49
|
+
ballonizer.process_submit(env)
|
50
|
+
[200, {}, ['your changes are made with success']]
|
51
|
+
rescue Ballonizer::SubmitError => e
|
52
|
+
[200, {}, [e.message]]
|
53
|
+
end
|
54
|
+
end)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
run app
|
59
|
+
|
@@ -0,0 +1,159 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
4
|
+
<head>
|
5
|
+
<title>Um título qualquer</title>
|
6
|
+
<meta http-equiv="content-type"
|
7
|
+
content="application/xhtml+xml; charset=UTF-8" />
|
8
|
+
<link rel="stylesheet" type="text/css"
|
9
|
+
href="http://imgs.xkcd.com/static/styles_short_beta.css"
|
10
|
+
title="Default" />
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<div id="topContainer">
|
14
|
+
<div id="topLeft">
|
15
|
+
<ul>
|
16
|
+
<li>
|
17
|
+
<a href="http://xkcd.com/archive">Archive</a>
|
18
|
+
</li>
|
19
|
+
<li>
|
20
|
+
<a href="http://what-if.xkcd.com">What If?</a>
|
21
|
+
</li>
|
22
|
+
<li>
|
23
|
+
<a href="http://blag.xkcd.com">Blag</a>
|
24
|
+
</li>
|
25
|
+
<li>
|
26
|
+
<a href="http://store.xkcd.com/">Store</a>
|
27
|
+
</li>
|
28
|
+
<li>
|
29
|
+
<a rel="author" href="http://xkcd.com/about">About</a>
|
30
|
+
</li>
|
31
|
+
</ul>
|
32
|
+
</div>
|
33
|
+
<div id="topRight">
|
34
|
+
<div id="masthead">
|
35
|
+
<span>
|
36
|
+
<a href="http://xkcd.com/">
|
37
|
+
<img src="http://imgs.xkcd.com/static/terrible_small_logo.png"
|
38
|
+
alt="xkcd.com logo" height="83" width="185" />
|
39
|
+
</a>
|
40
|
+
</span>
|
41
|
+
<span id="slogan">A webcomic of romance,
|
42
|
+
<br />sarcasm, math, and language.</span>
|
43
|
+
</div>
|
44
|
+
<div id="news">You can get the Subways comic as a
|
45
|
+
<a href="http://store-xkcd-com.myshopify.com/products/subways">
|
46
|
+
poster</a>!</div>
|
47
|
+
</div>
|
48
|
+
<div id="bgLeft" class="bg box"></div>
|
49
|
+
<div id="bgRight" class="bg box"></div>
|
50
|
+
</div>
|
51
|
+
<div id="middleContainer" class="box">
|
52
|
+
<div id="ctitle">Cells</div>
|
53
|
+
<ul class="comicNav">
|
54
|
+
<li>
|
55
|
+
<a href="http://xkcd.com/1/">|<</a>
|
56
|
+
</li>
|
57
|
+
<li>
|
58
|
+
<a rel="prev" href="http://xkcd.com/1216/" accesskey="p">< Prev</a>
|
59
|
+
</li>
|
60
|
+
<li>
|
61
|
+
<a href="http://dynamic.xkcd.com/random/comic/">Random</a>
|
62
|
+
</li>
|
63
|
+
<li>
|
64
|
+
<a rel="next" href="http://xkcd.com/#" accesskey="n">Next ></a>
|
65
|
+
</li>
|
66
|
+
<li>
|
67
|
+
<a href="http://xkcd.com/">>|</a>
|
68
|
+
</li>
|
69
|
+
</ul>
|
70
|
+
<div id="comic">
|
71
|
+
<img class="to_ballonize" src="http://imgs.xkcd.com/comics/cells.png"
|
72
|
+
title="Now, if it selectively kills cancer cells in a petri dish, you can be sure it's at least a great breakthrough for everyone suffering from petri dish cancer."
|
73
|
+
width="218px"
|
74
|
+
height="339px"
|
75
|
+
alt="Cells" />
|
76
|
+
</div>
|
77
|
+
<ul class="comicNav">
|
78
|
+
<li>
|
79
|
+
<a href="http://xkcd.com/1/">|<</a>
|
80
|
+
</li>
|
81
|
+
<li>
|
82
|
+
<a rel="prev" href="http://xkcd.com/1216/" accesskey="p">< Prev</a>
|
83
|
+
</li>
|
84
|
+
<li>
|
85
|
+
<a href="http://dynamic.xkcd.com/random/comic/">Random</a>
|
86
|
+
</li>
|
87
|
+
<li>
|
88
|
+
<a rel="next" href="http://xkcd.com/#" accesskey="n">Next ></a>
|
89
|
+
</li>
|
90
|
+
<li>
|
91
|
+
<a href="http://xkcd.com/">>|</a>
|
92
|
+
</li>
|
93
|
+
</ul>
|
94
|
+
<br />Permanent link to this comic: http://xkcd.com/1217/
|
95
|
+
<br />Image URL (for hotlinking/embedding):
|
96
|
+
http://imgs.xkcd.com/comics/cells.png
|
97
|
+
<div id="transcript" style="display: none">When you see a claim
|
98
|
+
that a common drug or vitamin "kills cancer cells in a petri
|
99
|
+
dish," keep in mind: [[A scientist stands on a chair next to a
|
100
|
+
desk, pointing a gun at a petri dish. There is a microscope on
|
101
|
+
the desk.]] So does a handgun. {{Title text: Now, if it
|
102
|
+
selectively kills cancer cells in a petri dish, you can be sure
|
103
|
+
it's at least a great breakthrough for everyone suffering from
|
104
|
+
petri dish cancer.}}</div></div>
|
105
|
+
<div id="bottom" class="box">
|
106
|
+
<img src="http://imgs.xkcd.com/s/a899e84.jpg" width="520"
|
107
|
+
height="100" alt="Selected Comics" usemap="#comicmap" />
|
108
|
+
<map id="comicmap">
|
109
|
+
<!-- http://code.google.com/p/chromium/issues/detail?id=108489 Might be MIME dependant. -->
|
110
|
+
<area shape="rect" coords="0,0,100,100" href="http://xkcd.com/150/"
|
111
|
+
alt="Grownups" />
|
112
|
+
<area shape="rect" coords="104,0,204,100" href="http://xkcd.com/730/"
|
113
|
+
alt="Circuit Diagram" />
|
114
|
+
<area shape="rect" coords="208,0,308,100" href="http://xkcd.com/162/"
|
115
|
+
alt="Angular Momentum" />
|
116
|
+
<area shape="rect" coords="312,0,412,100" href="http://xkcd.com/688/"
|
117
|
+
alt="Self-Description" />
|
118
|
+
<area shape="rect" coords="416,0,520,100" href="http://xkcd.com/556/"
|
119
|
+
alt="Alternative Energy Revolution" />
|
120
|
+
</map>
|
121
|
+
<a href="http://xkcd.com/rss.xml">RSS Feed</a>-
|
122
|
+
<a href="http://xkcd.com/atom.xml">Atom Feed</a></div>
|
123
|
+
<br />
|
124
|
+
<div id="comicLinks">Comics I enjoy:
|
125
|
+
<br />
|
126
|
+
<a href="http://threewordphrase.com/">Three Word Phrase</a>,
|
127
|
+
<a href="http://oglaf.com/">Oglaf</a>(nsfw),
|
128
|
+
<a href="http://www.smbc-comics.com/">SMBC</a>,
|
129
|
+
<a href="http://www.qwantz.com">Dinosaur Comics</a>,
|
130
|
+
<a href="http://www.asofterworld.com">A Softer World</a>,
|
131
|
+
<a href="http://buttersafe.com/">Buttersafe</a>,
|
132
|
+
<a href="http://pbfcomics.com/">Perry Bible Fellowship</a>,
|
133
|
+
<a href="http://questionablecontent.net/">Questionable
|
134
|
+
Content</a>,
|
135
|
+
<a href="http://www.buttercupfestival.com/">Buttercup
|
136
|
+
Festival</a></div>
|
137
|
+
<p>Warning: this comic occasionally contains strong language
|
138
|
+
(which may be unsuitable for children), unusual humor (which
|
139
|
+
may be unsuitable for adults), and advanced mathematics
|
140
|
+
(which may be unsuitable for liberal-arts majors).</p>
|
141
|
+
<div id="footnote">BTC 1NEPgrUmed3VyXpqbYZom7YVJ8MozYrNWx
|
142
|
+
<br />We did not invent the algorithm. The algorithm
|
143
|
+
consistently finds Jesus. The algorithm killed Jeeves.
|
144
|
+
<br />The algorithm is banned in China. The algorithm is from
|
145
|
+
Jersey. The algorithm constantly finds Jesus.
|
146
|
+
<br />This is not the algorithm. This is close.</div>
|
147
|
+
<div id="licenseText">
|
148
|
+
<p>This work is licensed under a
|
149
|
+
<a href="http://creativecommons.org/licenses/by-nc/2.5/">
|
150
|
+
Creative Commons Attribution-NonCommercial 2.5
|
151
|
+
License</a>.</p>
|
152
|
+
<p>This means you're free to copy and share these comics
|
153
|
+
(but not to sell them).
|
154
|
+
<a rel="license" href="http://xkcd.com/license.html">More details</a>.</p>
|
155
|
+
</div>
|
156
|
+
</div>
|
157
|
+
</body>
|
158
|
+
</html>
|
159
|
+
|
@@ -0,0 +1,196 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
4
|
+
<head>
|
5
|
+
<title>Um título qualquer</title>
|
6
|
+
<meta http-equiv="content-type"
|
7
|
+
content="application/xhtml+xml; charset=UTF-8" />
|
8
|
+
<link rel="stylesheet" type="text/css"
|
9
|
+
href="http://imgs.xkcd.com/static/styles_short_beta.css"
|
10
|
+
title="Default" />
|
11
|
+
<link rel="stylesheet" type="text/css"
|
12
|
+
href="../../lib/ballonizer/ui-lightness/jquery-ui-1.10.3.custom.min.css" />
|
13
|
+
<link rel="stylesheet" type="text/css"
|
14
|
+
href="../../lib/ballonizer/ballonizer.css" />
|
15
|
+
<script type="text/javascript"
|
16
|
+
src="../../vendor/assets/javascripts/jquery-2.0.1.js"></script>
|
17
|
+
<script type="text/javascript"
|
18
|
+
src="../../vendor/assets/javascripts/jquery.json-2.4.min.js"></script>
|
19
|
+
<script type="text/javascript"
|
20
|
+
src="../../vendor/assets/javascripts/jquery-ui-1.10.3.custom.min.js"></script>
|
21
|
+
<script type="text/javascript"
|
22
|
+
src="../../lib/ballonizer/ballonizer.js"></script>
|
23
|
+
<script type="text/javascript">
|
24
|
+
$(document).ready(function() {
|
25
|
+
Ballonizer('/path/to/form/submit',
|
26
|
+
'.ballonizer_image_container',
|
27
|
+
$('body'));
|
28
|
+
})
|
29
|
+
</script>
|
30
|
+
</head>
|
31
|
+
<body>
|
32
|
+
<div id="topContainer">
|
33
|
+
<div id="topLeft">
|
34
|
+
<ul>
|
35
|
+
<li>
|
36
|
+
<a href="http://xkcd.com/archive">Archive</a>
|
37
|
+
</li>
|
38
|
+
<li>
|
39
|
+
<a href="http://what-if.xkcd.com">What If?</a>
|
40
|
+
</li>
|
41
|
+
<li>
|
42
|
+
<a href="http://blag.xkcd.com">Blag</a>
|
43
|
+
</li>
|
44
|
+
<li>
|
45
|
+
<a href="http://store.xkcd.com/">Store</a>
|
46
|
+
</li>
|
47
|
+
<li>
|
48
|
+
<a rel="author" href="http://xkcd.com/about">About</a>
|
49
|
+
</li>
|
50
|
+
</ul>
|
51
|
+
</div>
|
52
|
+
<div id="topRight">
|
53
|
+
<div id="masthead">
|
54
|
+
<span>
|
55
|
+
<a href="http://xkcd.com/">
|
56
|
+
<img src="http://imgs.xkcd.com/static/terrible_small_logo.png"
|
57
|
+
alt="xkcd.com logo" height="83" width="185" />
|
58
|
+
</a>
|
59
|
+
</span>
|
60
|
+
<span id="slogan">A webcomic of romance,
|
61
|
+
<br />sarcasm, math, and language.</span>
|
62
|
+
</div>
|
63
|
+
<div id="news">You can get the Subways comic as a
|
64
|
+
<a href="http://store-xkcd-com.myshopify.com/products/subways">
|
65
|
+
poster</a>!</div>
|
66
|
+
</div>
|
67
|
+
<div id="bgLeft" class="bg box"></div>
|
68
|
+
<div id="bgRight" class="bg box"></div>
|
69
|
+
</div>
|
70
|
+
<div id="middleContainer" class="box">
|
71
|
+
<div id="ctitle">Cells</div>
|
72
|
+
<ul class="comicNav">
|
73
|
+
<li>
|
74
|
+
<a href="http://xkcd.com/1/">|<</a>
|
75
|
+
</li>
|
76
|
+
<li>
|
77
|
+
<a rel="prev" href="http://xkcd.com/1216/" accesskey="p">< Prev</a>
|
78
|
+
</li>
|
79
|
+
<li>
|
80
|
+
<a href="http://dynamic.xkcd.com/random/comic/">Random</a>
|
81
|
+
</li>
|
82
|
+
<li>
|
83
|
+
<a rel="next" href="http://xkcd.com/#" accesskey="n">Next ></a>
|
84
|
+
</li>
|
85
|
+
<li>
|
86
|
+
<a href="http://xkcd.com/">>|</a>
|
87
|
+
</li>
|
88
|
+
</ul>
|
89
|
+
<div id="comic">
|
90
|
+
<div class="ballonizer_image_container"><p style="left: 0px; top: 0px; width: 218px; height: 82px;" class="ballonizer_ballon" >When you see a claim that a common drug or vitamin "kills cancer cells in a petri dish", keep in mind:</p><p style="top: 319px; left: 21px; width: 170px; height: 19px;" class="ballonizer_ballon">So does a handgun.</p><img src="http://imgs.xkcd.com/comics/cells.png"
|
91
|
+
title="Now, if it selectively kills cancer cells in a petri dish, you can be sure it's at least a great breakthrough for everyone suffering from petri dish cancer."
|
92
|
+
width="218px"
|
93
|
+
height="339px"
|
94
|
+
alt="Cells" /></div>
|
95
|
+
</div>
|
96
|
+
<ul class="comicNav">
|
97
|
+
<li>
|
98
|
+
<a href="http://xkcd.com/1/">|<</a>
|
99
|
+
</li>
|
100
|
+
<li>
|
101
|
+
<a rel="prev" href="http://xkcd.com/1216/" accesskey="p">< Prev</a>
|
102
|
+
</li>
|
103
|
+
<li>
|
104
|
+
<a href="http://dynamic.xkcd.com/random/comic/">Random</a>
|
105
|
+
</li>
|
106
|
+
<li>
|
107
|
+
<a rel="next" href="http://xkcd.com/#" accesskey="n">Next ></a>
|
108
|
+
</li>
|
109
|
+
<li>
|
110
|
+
<a href="http://xkcd.com/">>|</a>
|
111
|
+
</li>
|
112
|
+
</ul>
|
113
|
+
<br />Permanent link to this comic: http://xkcd.com/1217/
|
114
|
+
<br />Image URL (for hotlinking/embedding):
|
115
|
+
http://imgs.xkcd.com/comics/cells.png
|
116
|
+
<div id="transcript" style="display: none">When you see a claim
|
117
|
+
that a common drug or vitamin "kills cancer cells in a petri
|
118
|
+
dish," keep in mind: [[A scientist stands on a chair next to a
|
119
|
+
desk, pointing a gun at a petri dish. There is a microscope on
|
120
|
+
the desk.]] So does a handgun. {{Title text: Now, if it
|
121
|
+
selectively kills cancer cells in a petri dish, you can be sure
|
122
|
+
it's at least a great breakthrough for everyone suffering from
|
123
|
+
petri dish cancer.}}</div></div>
|
124
|
+
<div id="bottom" class="box">
|
125
|
+
<img src="http://imgs.xkcd.com/s/a899e84.jpg" width="520"
|
126
|
+
height="100" alt="Selected Comics" usemap="#comicmap" />
|
127
|
+
<map id="comicmap">
|
128
|
+
<!-- http://code.google.com/p/chromium/issues/detail?id=108489 Might be MIME dependant. -->
|
129
|
+
<area shape="rect" coords="0,0,100,100" href="http://xkcd.com/150/"
|
130
|
+
alt="Grownups" />
|
131
|
+
<area shape="rect" coords="104,0,204,100" href="http://xkcd.com/730/"
|
132
|
+
alt="Circuit Diagram" />
|
133
|
+
<area shape="rect" coords="208,0,308,100" href="http://xkcd.com/162/"
|
134
|
+
alt="Angular Momentum" />
|
135
|
+
<area shape="rect" coords="312,0,412,100" href="http://xkcd.com/688/"
|
136
|
+
alt="Self-Description" />
|
137
|
+
<area shape="rect" coords="416,0,520,100" href="http://xkcd.com/556/"
|
138
|
+
alt="Alternative Energy Revolution" />
|
139
|
+
</map>
|
140
|
+
<div>Search comic titles and transcripts:
|
141
|
+
<script type="text/javascript" src="http//www.google.com/jsapi">
|
142
|
+
</script>
|
143
|
+
<script type="text/javascript">google.load('search',
|
144
|
+
'1');google.setOnLoadCallback(function()
|
145
|
+
{google.search.CustomSearchControl.attachAutoCompletion('012652707207066138651:zudjtuwe28q',document.getElementById('q'),'cse-search-box');});</script>
|
146
|
+
<form action="//www.google.com/cse" id="cse-search-box">
|
147
|
+
<div>
|
148
|
+
<input type="hidden" name="cx"
|
149
|
+
value="012652707207066138651:zudjtuwe28q" />
|
150
|
+
<input type="hidden" name="ie" value="UTF-8" />
|
151
|
+
<input type="text" name="q" id="q" size="31" />
|
152
|
+
<input type="submit" name="sa" value="Search" />
|
153
|
+
</div>
|
154
|
+
</form>
|
155
|
+
<script type="text/javascript"
|
156
|
+
src="http://www.google.com/cse/brand?form=cse-search-box&lang=en">
|
157
|
+
</script>
|
158
|
+
<a href="http://xkcd.com/rss.xml">RSS Feed</a>-
|
159
|
+
<a href="http://xkcd.com/atom.xml">Atom Feed</a></div>
|
160
|
+
<br />
|
161
|
+
<div id="comicLinks">Comics I enjoy:
|
162
|
+
<br />
|
163
|
+
<a href="http://threewordphrase.com/">Three Word Phrase</a>,
|
164
|
+
<a href="http://oglaf.com/">Oglaf</a>(nsfw),
|
165
|
+
<a href="http://www.smbc-comics.com/">SMBC</a>,
|
166
|
+
<a href="http://www.qwantz.com">Dinosaur Comics</a>,
|
167
|
+
<a href="http://www.asofterworld.com">A Softer World</a>,
|
168
|
+
<a href="http://buttersafe.com/">Buttersafe</a>,
|
169
|
+
<a href="http://pbfcomics.com/">Perry Bible Fellowship</a>,
|
170
|
+
<a href="http://questionablecontent.net/">Questionable
|
171
|
+
Content</a>,
|
172
|
+
<a href="http://www.buttercupfestival.com/">Buttercup
|
173
|
+
Festival</a></div>
|
174
|
+
<p>Warning: this comic occasionally contains strong language
|
175
|
+
(which may be unsuitable for children), unusual humor (which
|
176
|
+
may be unsuitable for adults), and advanced mathematics
|
177
|
+
(which may be unsuitable for liberal-arts majors).</p>
|
178
|
+
<div id="footnote">BTC 1NEPgrUmed3VyXpqbYZom7YVJ8MozYrNWx
|
179
|
+
<br />We did not invent the algorithm. The algorithm
|
180
|
+
consistently finds Jesus. The algorithm killed Jeeves.
|
181
|
+
<br />The algorithm is banned in China. The algorithm is from
|
182
|
+
Jersey. The algorithm constantly finds Jesus.
|
183
|
+
<br />This is not the algorithm. This is close.</div>
|
184
|
+
<div id="licenseText">
|
185
|
+
<p>This work is licensed under a
|
186
|
+
<a href="http://creativecommons.org/licenses/by-nc/2.5/">
|
187
|
+
Creative Commons Attribution-NonCommercial 2.5
|
188
|
+
License</a>.</p>
|
189
|
+
<p>This means you're free to copy and share these comics
|
190
|
+
(but not to sell them).
|
191
|
+
<a rel="license" href="http://xkcd.com/license.html">More details</a>.</p>
|
192
|
+
</div>
|
193
|
+
</div>
|
194
|
+
</body>
|
195
|
+
</html>
|
196
|
+
|