Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: options.html

Issue 6088024630755328: issue 1526 - Implement new options page design for Chrome/Opera/Safari (Closed)
Left Patch Set: Created Jan. 27, 2015, 11:16 a.m.
Right Patch Set: Comment about solution being temprorary is added to subscriptions.xml Created June 13, 2015, 12:59 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « locale/en-US/options.json ('k') | options.js » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <!-- 2 <!--
3 - This file is part of Adblock Plus <https://adblockplus.org/>, 3 - This file is part of Adblock Plus <https://adblockplus.org/>,
4 - Copyright (C) 2006-2015 Eyeo GmbH 4 - Copyright (C) 2006-2015 Eyeo GmbH
5 - 5 -
6 - Adblock Plus is free software: you can redistribute it and/or modify 6 - Adblock Plus is free software: you can redistribute it and/or modify
7 - it under the terms of the GNU General Public License version 3 as 7 - it under the terms of the GNU General Public License version 3 as
8 - published by the Free Software Foundation. 8 - published by the Free Software Foundation.
9 - 9 -
10 - Adblock Plus is distributed in the hope that it will be useful, 10 - Adblock Plus is distributed in the hope that it will be useful,
11 - but WITHOUT ANY WARRANTY; without even the implied warranty of 11 - but WITHOUT ANY WARRANTY; without even the implied warranty of
12 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 - GNU General Public License for more details. 13 - GNU General Public License for more details.
14 - 14 -
15 - You should have received a copy of the GNU General Public License 15 - You should have received a copy of the GNU General Public License
16 - along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 16 - along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
17 --> 17 -->
18 18
19 <html> 19 <html>
20 <head> 20 <head>
21 <meta charset="utf-8"> 21 <meta charset="utf-8">
22 <title class="i18n_options_page_title"></title> 22 <title class="i18n_options_page_title"></title>
23 <link rel="stylesheet" href="skin/options.css"> 23 <link rel="stylesheet" href="skin/options.css">
24 <style id="search-style"></style>
24 <script src="ext/common.js"></script> 25 <script src="ext/common.js"></script>
25 <script src="ext/content.js"></script> 26 <script src="ext/content.js"></script>
26 <script src="i18n.js"></script> 27 <script src="i18n.js"></script>
27 <script src="options.js"></script> 28 <script src="options.js"></script>
28 </head> 29 </head>
29 <body> 30 <body data-tab="general">
30 <!-- Navigation sidebar --> 31 <!-- Navigation sidebar -->
31 <div id="nav-sidebar"> 32 <div id="nav-sidebar">
32 <div id="fixed-sidebar" class="fixed"> 33 <div id="fixed-sidebar" class="fixed">
33 <div id="page-title"> 34 <div id="page-title">
34 <p class="i18n_options_page_name"></p> 35 <p class="i18n_options_page_header_1"></p>
35 <h1 class="i18n_options_abp"></h1> 36 <h1 class="i18n_options_page_header_2"></h1>
36 </div> 37 </div>
37 <ul class="tabs vertical" id="main-navigation-tabs"> 38 <ul id="main-navigation-tabs" class="tabs vertical">
38 <li id="tab-general" data-show="content-general" class="active"> 39 <li id="tab-general" data-show="general" class="active">
39 <span class="i18n_options_tab_general"></span> 40 <span class="i18n_options_tab_general"></span>
40 <span class="icon"></span> 41 <span class="icon"></span>
41 </li> 42 </li>
42 <li id="tab-advanced" data-show="content-advanced"> 43 <li id="tab-advanced" data-show="advanced">
43 <span class="i18n_options_tab_advanced"></span> 44 <span class="i18n_options_tab_advanced"></span>
44 <span class="icon"></span> 45 <span class="icon"></span>
45 </li> 46 </li>
46 <li id="tab-help" data-show="content-help"> 47 <li id="tab-help" data-show="help">
47 <span class="i18n_options_tab_help"></span> 48 <span class="i18n_options_tab_help"></span>
48 <span class="icon"></span> 49 <span class="icon"></span>
49 </li> 50 </li>
50 </ul> 51 </ul>
51 <p class="nav-link"> 52 <p class="nav-link">
52 <span class="i18n_options_version"></span> <span id="abp-version"></sp an> 53 <span class="i18n_options_version"></span> <span id="abp-version"></sp an>
53 </p> 54 </p>
54 <ul class="tabs vertical bottom"> 55 <ul class="tabs vertical bottom">
55 <li id="tab-share"> 56 <li id="tab-share">
56 <span class="i18n_options_tab_share"></span><span class="icon"></spa n> 57 <span class="i18n_options_tab_share"></span><span class="icon"></spa n>
57 </li> 58 </li>
58 <li id="tab-donate"> 59 <li id="tab-donate">
59 <span class="i18n_options_tab_donate"></span><span class="icon"></sp an> 60 <span class="i18n_options_tab_donate"></span><span class="icon"></sp an>
60 </li> 61 </li>
61 </ul> 62 </ul>
62 </div> 63 </div>
63 </div> 64 </div>
64 <div id="tab-content"> 65 <div id="tab-content">
65 <div id="content-wrapper"> 66 <div id="content-wrapper">
66 <div id="modal-background"></div> 67 <div id="dialog-background"></div>
67 68
68 <!-- General tab content --> 69 <!-- General tab content -->
69 <div id="content-general"> 70 <div id="content-general">
70 <div> 71 <div>
71 <h1 class="i18n_options_blocking"></h1> 72 <h1 class="i18n_options_blocking_title"></h1>
72 <div class="flex-container"> 73 <div class="flex-container">
73 <div id="blocking-languages"> 74 <div id="blocking-languages">
74 <p class="option-name"> 75 <p class="option-name">
75 <span class="i18n_options_language_title"></span> 76 <span class="i18n_options_language_title"></span>
76 <a class="i18n_options_readMore tooltip" href="#" target="_bla nk"></a> 77 <a class="i18n_options_readMore tooltip" target="_blank"></a>
77 </p> 78 </p>
78 <ul class="table list" id="blocking-languages-table"></ul> 79 <ul id="blocking-languages-table" class="table list">
79 <div class="controls"> 80 <template>
80 <button id="add-website-language" data-show="blocking-language s-modal"> 81 <input type="checkbox" class="control" />
82 <span class="display"></span>
83 </template>
84 </ul>
85 <div class="controls">
86 <button id="add-website-language">
81 <span class="icon icon-add"></span> 87 <span class="icon icon-add"></span>
82 <span class="i18n_options_language_add"></span> 88 <span class="i18n_options_language_add"></span>
83 </button> 89 </button>
84 </div> 90 </div>
85 </div> 91 </div>
86 <div id="further-blocking"> 92 <div id="further-blocking">
87 <p class="option-name"> 93 <p class="option-name">
88 <strong class="i18n_options_furtherBlocking_title"></strong> 94 <strong class="i18n_options_furtherBlocking_title"></strong>
89 <a class="i18n_options_readMore tooltip" href="#" target="_bla nk"></a> 95 <a class="i18n_options_readMore tooltip" target="_blank"></a>
90 </p> 96 </p>
91 <ul class="table list" id="further-list-table"></ul> 97 <div id="custom-wrapper">
92 <div class="controls"> 98 <ul id="recommend-list-table" class="table list">
93 <button id="add-blocking-list" data-show="further-blocking-mod al"> 99 <template>
100 <input type="checkbox" class=control />
101 <span class="display"></span>
102 <span class="popular"></span>
103 </template>
104 </ul>
105 <ul id="custom-list-table" class="table list">
106 <template>
107 <input type="checkbox" class="control" />
108 <span class="display"></span>
109 </template>
110 </ul>
111 </div>
112 <div class="controls">
113 <button id="add-blocking-list">
94 <span class="icon icon-add"></span> 114 <span class="icon icon-add"></span>
95 <span class="i18n_options_furtherBlocking_add"><span> 115 <span class="i18n_options_furtherBlocking_add"><span>
96 </button> 116 </button>
97 </div> 117 </div>
98 </div> 118 </div>
99 </div> 119 </div>
100 </div> 120 </div>
101 <div> 121 <div>
102 <h1 class="i18n_options_exceptions"></h1> 122 <h1 class="i18n_options_exceptions_title"></h1>
103 <div class="flex-container"> 123 <div class="flex-container">
104 <div id="acceptable-ads"> 124 <div id="acceptable-ads">
105 <p class="option-name"> 125 <p class="option-name">
106 <strong class="i18n_options_acceptableAds_title"></strong> 126 <strong class="i18n_options_acceptableAds_title"></strong>
107 <a class="i18n_options_readMore tooltip" href="#" target="_bla nk"></a> 127 <a class="i18n_options_readMore tooltip" target="_blank"></a>
108 </p> 128 </p>
109 <ul class="table list"> 129 <ul id="acceptableads-table" class="table list">
110 <li> 130 <template>
111 <input type="checkbox"/> 131 <input type="checkbox" class="control" />
112 <span id="allow-whitelist-cb"></span> 132 <span class="display"></span>
113 <span>Allow some non-intrusive advertising</span> 133 </template>
114 </li>
115 </ul> 134 </ul>
116 </div> 135 </div>
117 <div id="whitelisting"> 136 <div id="whitelisting">
118 <p class="option-name"> 137 <p class="option-name">
119 <strong class="i18n_options_whitelisted_title"></strong> 138 <strong class="i18n_options_whitelisted_title"></strong>
120 <a class="i18n_options_readMore tooltip" href="#" target="_bla nk"></a> 139 <a class="i18n_options_readMore tooltip" target="_blank"></a>
121 </p> 140 </p>
122 <ul class="table list" id="whitelisting-table"></ul> 141 <ul id="whitelisting-table" class="table list">
142 <template>
143 <button class="delete control"></button>
144 <span class="display"></span>
145 </template>
146 </ul>
123 <div class="controls"> 147 <div class="controls">
124 <div> 148 <div>
125 <span class="icon icon-add" id="whitelisting-add-icon"></spa n> 149 <span id="whitelisting-add-icon" class="icon icon-add"></spa n>
126 <input type="text" id="whitelisting-textbox" /> 150 <input type="text" id="whitelisting-textbox" />
127 <span class="icon icon-enter" id="whitelisting-enter-icon">< /span> 151 <span id="whitelisting-enter-icon" class="icon icon-enter">< /span>
128 </div> 152 </div>
129 <div> 153 <div>
130 <button class="button-add" id="whitelisting-add-btn"> 154 <button id="whitelisting-add-button" class="button-add">
131 +<span class="i18n_options_btn_add"></span> 155 +<span class="i18n_options_button_add"></span>
132 </button> 156 </button>
133 <span></span> 157 <span></span>
134 <button class="i18n_options_btn_cancel cancelbtn" id="whitel isting-cancel-btn"></button> 158 <button id="whitelisting-cancel-button" class="i18n_options_ button_cancel cancel-button"></button>
135 </div> 159 </div>
136 </div> 160 </div>
137 </div> 161 </div>
138 </div> 162 </div>
139 </div> 163 </div>
140 </div> 164 </div>
141 165
142 <!-- Advanced tab content --> 166 <!-- Advanced tab content -->
143 <div id="content-advanced"> 167 <div id="content-advanced">
144 <div> 168 <div>
145 <h1><span class="i18n_options_tweaks"></span><a class="i18n_options_ readMore tooltip" href="#"></a></h1> 169 <h1><span class="i18n_options_tweaks_title"></span><a class="i18n_op tions_readMore tooltip" href="#"></a></h1>
146 <ul class="table" style="width: auto;"> 170 <ul class="table" style="width: auto;">
147 <li> 171 <li>
148 <input type="checkbox" id="easylist"/><span></span><span id="blo ck-element-explanation" class="i18n_options_tweaks_blockElement"></span></li> 172 <input type="checkbox" id="easylist"/><span id="block-element-ex planation" class="i18n_options_tweaks_blockElement"></span></li>
149 </ul> 173 </ul>
150 </div> 174 </div>
151 <div> 175 <div>
152 <h1><span class="i18n_options_blockingList"></span><a class="i18n_op tions_readMore tooltip" href="#" target="_blank"></a></h1> 176 <h1><span class="i18n_options_blockingList_title"></span><a class="i 18n_options_readMore tooltip" href="#" target="_blank"></a></h1>
153 <ul class="tabs horizontal" id="blocking-list-tabs"> 177 <ul id="blocking-list-tabs" class="tabs horizontal">
154 <li class="i18n_options_tab_overview active" data-show="blocking-l ist-overview"></li><li class="i18n_options_tab_ownList" data-show="blocking-list -own"></li> 178 <li class="i18n_options_tab_overview active" data-show="blocking-l ist-overview"></li><li class="i18n_options_tab_ownList" data-show="blocking-list -own"></li>
155 </ul> 179 </ul>
156 <div id="blocking-list"> 180 <div id="blocking-list">
157 <div id="blocking-list-overview"> 181 <div id="blocking-list-overview">
158 <ul class="table cols" style="width: auto;"> 182 <ul class="table cols" style="width: auto;">
159 <li class="col-name"><span class="i18n_options_tableCol_name"> </span><span class="i18n_options_tableCol_description"></span><span class="i18n_ options_tableCol_date"></span></li> 183 <li class="col-name"><span class="i18n_options_tableCol_name"> </span><span class="i18n_options_tableCol_description"></span><span class="i18n_ options_tableCol_date"></span></li>
160 <li><input type="checkbox" id="easylist"/><span for="easylist" ></span><span>Easylist</span><span>Adblocking english sites</span><span>15 March 14 - 10:31</span></li> 184 <li><input type="checkbox" id="easylist"/><span>Easylist</span ><span>Adblocking english sites</span><span>15 March 14 - 10:31</span></li>
161 <li><input type="checkbox" id="easylist+de"/><span for="easyli st+de"></span><span>Easylist Germany + Easylist</span><span>Adblocking english + german sites</span><span>15 March 14 - 10:31</span></li> 185 <li><input type="checkbox" id="easylist+de"/><span>Easylist Ge rmany + Easylist</span><span>Adblocking english + german sites</span><span>15 Ma rch 14 - 10:31</span></li>
162 <li><input type="checkbox" id="annoyance-fb"/><span for="annoy ance-fb"></span><span>Facebook annoyance blocker</span><span>Blocks Facebook ann oyances</span><span>15 March 14 - 10:31</span></li> 186 <li><input type="checkbox" id="annoyance-fb"/><span>Facebook a nnoyance blocker</span><span>Blocks Facebook annoyances</span><span>15 March 14 - 10:31</span></li>
163 <li><input type="checkbox" id="annoyance-youtube"/><span for=" annoyance-youtube"></span><span>Facebook annoyance blocker</span><span>Blocks Fa cebook annoyances</span><span>15 March 14 - 10:31</span></li> 187 <li><input type="checkbox" id="annoyance-youtube"/><span>Faceb ook annoyance blocker</span><span>Blocks Facebook annoyances</span><span>15 Marc h 14 - 10:31</span></li>
164 <li><input type="checkbox" id="own-list"/><span for="own-list" ></span><span>Own blocking list</span><span>Your own blocking list</span><span>< a href="#">edit your blocking list</a></span></li> 188 <li><input type="checkbox" id="own-list"/><span>Own blocking l ist</span><span>Your own blocking list</span><span><a href="#">edit your blockin g list</a></span></li>
165 </ul> 189 </ul>
166 <div class="controls"> 190 <div class="controls">
167 <button> 191 <button>
168 <span class="icon icon-add"></span><span class="i18n_options _blockingList_add"></span> 192 <span class="icon icon-add"></span><span class="i18n_options _blockingList_add"></span>
169 </button> 193 </button>
170 <button> 194 <button>
171 <span class="icon icon-update"></span><span class="i18n_opti ons_blockingList_update"></span> 195 <span class="icon icon-update"></span><span class="i18n_opti ons_blockingList_update"></span>
172 </button> 196 </button>
173 </div> 197 </div>
174 </div> 198 </div>
175 <div id="blocking-list-own"> 199 <div id="blocking-list-own">
176 <p class="i18n_options_blockingRules"></p> 200 <p class="i18n_options_blockingRules"></p>
177 <ul class="table list"> 201 <ul class="table list">
178 <li><span>zap2it.com##.zc-station-position</span></li> 202 <li><span>zap2it.com##.zc-station-position</span></li>
179 <li><span>downturk.net##.zippo</span></li> 203 <li><span>downturk.net##.zippo</span></li>
180 <li><span>yahoo.com##.y708-promo-middle</span></li> 204 <li><span>yahoo.com##.y708-promo-middle</span></li>
181 <li><span>reflector.com##.yahooboss</span></li> 205 <li><span>reflector.com##.yahooboss</span></li>
182 <li><span>yardbarker.com##.yard_leader</span></li> 206 <li><span>yardbarker.com##.yard_leader</span></li>
183 <li><span>espn.co.uk##.will_hill</span></li> 207 <li><span>espn.co.uk##.will_hill</span></li>
184 <li><span>listverse.com##.wiki</span></li> 208 <li><span>listverse.com##.wiki</span></li>
185 <li><span>planet5d.com##.wp-image-1573</span></li> 209 <li><span>planet5d.com##.wp-image-1573</span></li>
186 <li><span>buzzinn.net##.wpn_finner</span></li> 210 <li><span>buzzinn.net##.wpn_finner</span></li>
187 <li><span>talkers.com##.wpss_slideshow</span></li> 211 <li><span>talkers.com##.wpss_slideshow</span></li>
188 </ul> 212 </ul>
189 <div class="controls" style="margin: 0px;"> 213 <div class="controls" style="margin: 0px;">
190 <input type="text" placeholder="add your blocking rule here"/> 214 <input type="text" placeholder="add your blocking rule here"/>
191 <div class="input-control"> 215 <div class="input-control">
192 <span class="input-separator"></span> 216 <span class="input-separator"></span>
193 <span class="i18n_options_btn_add input-btn-text"></span> 217 <span class="i18n_options_button_add input-button-text"></sp an>
194 <span class="icon icon-enter-blue"></span> 218 <span class="icon icon-enter-blue"></span>
195 </div> 219 </div>
196 </div> 220 </div>
197 <div class="controls"> 221 <div class="controls">
198 <button> 222 <button>
199 <span class="icon icon-edit"></span> 223 <span class="icon icon-edit"></span>
200 <span class="i18n_options_blockingRules_edit"></span> 224 <span class="i18n_options_blockingRules_edit"></span>
201 </button> 225 </button>
202 </div> 226 </div>
203 </div> 227 </div>
204 </div> 228 </div>
205 </div> 229 </div>
206 </div> 230 </div>
207 231
208 <!-- Help tab content --> 232 <!-- Help tab content -->
209 <div id="content-help"> 233 <div id="content-help">
210 <h1 class="i18n_options_faq"></h1> 234 <h1 class="i18n_options_faq_title"></h1>
211 <p class="i18n_options_faq_description"></p> 235 <p class="i18n_options_faq_description"></p>
212 <p> 236 <p>
213 <a class="i18n_options_faq_link" href="#" target="_blank"></a> 237 <a class="i18n_options_faq_title" href="#" target="_blank"></a>
214 </p> 238 </p>
215 <h1 class="i18n_options_forum"></h1> 239 <h1 class="i18n_options_forum_title"></h1>
216 <p class="i18n_options_forum_description"></p> 240 <p class="i18n_options_forum_description"></p>
217 <p> 241 <p>
218 <a class="i18n_options_forum_link" href="#" target="_blank"></a> 242 <a class="i18n_options_forum_link" href="#" target="_blank"></a>
219 </p> 243 </p>
220 <h1 class="i18n_options_media"></h1> 244 <h1 class="i18n_options_media_title"></h1>
221 <p class="i18n_options_media_description"></p> 245 <p class="i18n_options_media_description"></p>
222 <p> 246 <p>
223 <a href="#" target="_blank">Twitter</a> 247 <a href="#" target="_blank">Twitter</a>
224 <a href="#" target="_blank">Facebook</a> 248 <a href="#" target="_blank">Facebook</a>
225 <a href="#" target="_blank">Google+</a> 249 <a href="#" target="_blank">Google+</a>
226 </p> 250 </p>
227 </div> 251 </div>
228 </div> 252 </div>
229 </div> 253 </div>
230 254
231 <!-- Modal --> 255 <!-- Dialog -->
232 <div id="modal"> 256 <div id="dialog">
233 <header> 257 <header>
234 <span id="modal-title"></span> 258 <span id="dialog-title">
235 <button id="modal-close" class="i18n_options_close"></button> 259 <span id="dialog-title-customlist" class="i18n_options_dialog_customli st_title"></span>
260 <span id="dialog-title-language" class="i18n_options_dialog_language_t itle"></span>
261 </span>
262 <button id="dialog-close" class="i18n_options_close"></button>
236 </header> 263 </header>
237 <div class="content" id="modal-content"> 264 <div id="dialog-body" class="content">
238 <!-- Add other website language: Modal --> 265 <!-- Add other website language: Dialog -->
239 <div id="blocking-languages-modal" data-title="options_modal_language_ti tle"> 266 <div id="dialog-content-language" class="dialog-content">
240 <div> 267 <div class="dialog-content-block">
241 <h3 class="i18n_options_modal_language_added"></h3> 268 <h3 class="i18n_options_dialog_language_added"></h3>
242 <ul class="table list" id="blocking-languages-modal-table"></ul> 269 <ul id="blocking-languages-dialog-table" class="table list">
243 </div> 270 <template>
244 <div id="other-language"> 271 <span class="display"></span>
245 <h3 class="i18n_options_modal_language_other"></h3> 272 </template>
273 </ul>
274 </div>
275 <div id="other-language" class="dialog-content-block">
276 <h3 class="i18n_options_dialog_language_other"></h3>
246 <div> 277 <div>
247 <input type="text" id="find-language" /> 278 <input type="search" id="find-language" />
248 </div> 279 </div>
249 <ul class="table list" id="all-lang-table"></ul> 280 <ul id="all-lang-table" class="table list">
250 </div> 281 <template>
251 </div> 282 <button class="button-add control">
252 <!-- Add other blocking list: Modal --> 283 +<span></span>
253 <div id="further-blocking-modal" data-title="options_modal_blocklist_tit le"> 284 </button>
254 <div> 285 <span class="display"></span>
255 <h3 class="i18n_options_modal_blocklist_subscription_title"></h3> 286 </template>
287 </ul>
288 </div>
289 </div>
290 <!-- Add other blocking list: Dialog -->
291 <div id="dialog-content-customlist" class="dialog-content">
292 <div class="dialog-content-block">
293 <h3 class="i18n_options_dialog_customlist_subscription_title"></h3>
256 <div> 294 <div>
257 <input id="blockingList-textbox" type="text" placeholder="www.exam ple.com/blockinglist.txt" /> 295 <input id="blockingList-textbox" type="text" placeholder="www.exam ple.com/blockinglist.txt" />
258 </div> 296 </div>
259 <div class="btn-wrapper" id="import-blockingList-btn"> 297 <div id="import-blockingList-button" class="button-wrapper">
260 <span class="icon icon-arrow"></span> 298 <span class="icon icon-arrow"></span>
261 <span class="i18n_options_modal_blocklist_import"></span> 299 <span class="i18n_options_dialog_customlist_import"></span>
262 </div> 300 </div>
263 </div> 301 </div>
264 <div> 302 <div class="dialog-content-block">
265 <h3 class="i18n_options_modal_edit_own_list"></h3> 303 <h3 class="i18n_options_dialog_edit_own_list"></h3>
266 <div class="btn-wrapper" id="edit-ownBlockingList-btn"> 304 <div id="edit-ownBlockingList-button" class="button-wrapper">
267 <span class="icon icon-arrow"></span> 305 <span class="icon icon-arrow"></span>
268 <span class="i18n_options_modal_create_own_list"></span> 306 <span class="i18n_options_dialog_create_own_list"></span>
269 </div> 307 </div>
270 </div> 308 </div>
271 </div> 309 </div>
272 </div> 310 </div>
273 </div> 311 </div>
274 </body> 312 </body>
275 </html> 313 </html>
LEFTRIGHT

Powered by Google App Engine
This is Rietveld