├── .gitignore
├── PostListr
├── Gruntfile.js
├── README.md
├── css
│ ├── bootstrap-responsive.css
│ ├── bootstrap-responsive.min.css
│ ├── bootstrap.css
│ ├── bootstrap.min.css
│ ├── custom.css
│ └── spinner.css
├── img
│ ├── glyphicons-halflings-white.png
│ ├── glyphicons-halflings.png
│ └── tweed.png
├── index.html
├── js
│ ├── app.js
│ ├── lib
│ │ ├── backbone.js
│ │ ├── backbone.min.js
│ │ ├── jquery-1.10.1.js
│ │ ├── jquery-1.10.1.min.js
│ │ ├── jquery-1.10.1.min.map
│ │ ├── underscore.js
│ │ └── underscore.min.js
│ └── templates.js
├── package.json
└── templates
│ └── post.tmpl
├── README.md
├── TodoMVC
├── functions.php
├── index.php
├── js
│ ├── app.js
│ ├── collections
│ │ └── todos.js
│ ├── models
│ │ └── todo.js
│ ├── routers
│ │ └── router.js
│ └── views
│ │ ├── app.js
│ │ └── todos.js
├── lib
│ ├── backbone.localStorage
│ │ └── backbone.localStorage.js
│ ├── backbone
│ │ └── backbone.js
│ ├── jquery
│ │ └── jquery.js
│ ├── todomvc-common
│ │ ├── base.js
│ │ └── bg.png
│ └── underscore
│ │ └── underscore.js
└── style.css
├── TwentyFuture
├── 404.php
├── Gruntfile.js
├── README.md
├── archive.php
├── author.php
├── category.php
├── comments.php
├── content-none.php
├── content.tmpl
├── css
│ └── ie.css
├── editor-style-rtl.css
├── editor-style.css
├── footer.php
├── functions.php
├── header.php
├── image.php
├── inc
│ └── custom-header.php
├── index.php
├── js
│ ├── html5.js
│ ├── navigation.js
│ ├── src
│ │ ├── main.js
│ │ ├── models.js
│ │ └── views.js
│ ├── templates.js
│ └── theme-customizer.js
├── languages
│ └── twentytwelve.pot
├── package.json
├── page-templates
│ ├── front-page.php
│ └── full-width.php
├── page.php
├── rtl.css
├── screenshot.png
├── search.php
├── sidebar-front.php
├── sidebar.php
├── single.php
├── style.css
└── tag.php
└── json-api-demo
├── content.tmpl
├── helpers.js
├── views.js
└── wcbos.php
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | *.orig
3 |
--------------------------------------------------------------------------------
/PostListr/Gruntfile.js:
--------------------------------------------------------------------------------
1 | module.exports = function(grunt) {
2 | grunt.initConfig({
3 | pkg: grunt.file.readJSON('package.json'),
4 | jst: {
5 | compile: {
6 | options: {
7 | namespace: 'tmpl',
8 | prettify: true
9 | },
10 | files: {
11 | "js/templates.js": ["templates/**/*.tmpl"]
12 | }
13 | }
14 | }
15 | });
16 | grunt.loadNpmTasks('grunt-contrib-jst');
17 |
18 | grunt.registerTask('default', ['jst']);
19 | };
20 |
--------------------------------------------------------------------------------
/PostListr/README.md:
--------------------------------------------------------------------------------
1 | # PostListr
2 |
3 | This small app will fetch a list of the latest 10 posts from any blog accessible through the [WordPress.com REST API](http://developer.wordpress.com/docs/api/) (including self-hosted blogs using [Jetpack](http://jetpack.me/) with the JSON API module enabled).
4 |
5 | Since this app is completely standalone, depending on WordPress only for its data, you can run it directly from this repository's Github pages: [check it out here](http://kadamwhite.github.io/wordbone-pressback/)!
--------------------------------------------------------------------------------
/PostListr/css/bootstrap-responsive.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Responsive v2.3.2
3 | *
4 | * Copyright 2012 Twitter, Inc
5 | * Licensed under the Apache License v2.0
6 | * http://www.apache.org/licenses/LICENSE-2.0
7 | *
8 | * Designed and built with all the love in the world @twitter by @mdo and @fat.
9 | */
10 |
11 | .clearfix {
12 | *zoom: 1;
13 | }
14 |
15 | .clearfix:before,
16 | .clearfix:after {
17 | display: table;
18 | line-height: 0;
19 | content: "";
20 | }
21 |
22 | .clearfix:after {
23 | clear: both;
24 | }
25 |
26 | .hide-text {
27 | font: 0/0 a;
28 | color: transparent;
29 | text-shadow: none;
30 | background-color: transparent;
31 | border: 0;
32 | }
33 |
34 | .input-block-level {
35 | display: block;
36 | width: 100%;
37 | min-height: 30px;
38 | -webkit-box-sizing: border-box;
39 | -moz-box-sizing: border-box;
40 | box-sizing: border-box;
41 | }
42 |
43 | @-ms-viewport {
44 | width: device-width;
45 | }
46 |
47 | .hidden {
48 | display: none;
49 | visibility: hidden;
50 | }
51 |
52 | .visible-phone {
53 | display: none !important;
54 | }
55 |
56 | .visible-tablet {
57 | display: none !important;
58 | }
59 |
60 | .hidden-desktop {
61 | display: none !important;
62 | }
63 |
64 | .visible-desktop {
65 | display: inherit !important;
66 | }
67 |
68 | @media (min-width: 768px) and (max-width: 979px) {
69 | .hidden-desktop {
70 | display: inherit !important;
71 | }
72 | .visible-desktop {
73 | display: none !important ;
74 | }
75 | .visible-tablet {
76 | display: inherit !important;
77 | }
78 | .hidden-tablet {
79 | display: none !important;
80 | }
81 | }
82 |
83 | @media (max-width: 767px) {
84 | .hidden-desktop {
85 | display: inherit !important;
86 | }
87 | .visible-desktop {
88 | display: none !important;
89 | }
90 | .visible-phone {
91 | display: inherit !important;
92 | }
93 | .hidden-phone {
94 | display: none !important;
95 | }
96 | }
97 |
98 | .visible-print {
99 | display: none !important;
100 | }
101 |
102 | @media print {
103 | .visible-print {
104 | display: inherit !important;
105 | }
106 | .hidden-print {
107 | display: none !important;
108 | }
109 | }
110 |
111 | @media (min-width: 1200px) {
112 | .row {
113 | margin-left: -30px;
114 | *zoom: 1;
115 | }
116 | .row:before,
117 | .row:after {
118 | display: table;
119 | line-height: 0;
120 | content: "";
121 | }
122 | .row:after {
123 | clear: both;
124 | }
125 | [class*="span"] {
126 | float: left;
127 | min-height: 1px;
128 | margin-left: 30px;
129 | }
130 | .container,
131 | .navbar-static-top .container,
132 | .navbar-fixed-top .container,
133 | .navbar-fixed-bottom .container {
134 | width: 1170px;
135 | }
136 | .span12 {
137 | width: 1170px;
138 | }
139 | .span11 {
140 | width: 1070px;
141 | }
142 | .span10 {
143 | width: 970px;
144 | }
145 | .span9 {
146 | width: 870px;
147 | }
148 | .span8 {
149 | width: 770px;
150 | }
151 | .span7 {
152 | width: 670px;
153 | }
154 | .span6 {
155 | width: 570px;
156 | }
157 | .span5 {
158 | width: 470px;
159 | }
160 | .span4 {
161 | width: 370px;
162 | }
163 | .span3 {
164 | width: 270px;
165 | }
166 | .span2 {
167 | width: 170px;
168 | }
169 | .span1 {
170 | width: 70px;
171 | }
172 | .offset12 {
173 | margin-left: 1230px;
174 | }
175 | .offset11 {
176 | margin-left: 1130px;
177 | }
178 | .offset10 {
179 | margin-left: 1030px;
180 | }
181 | .offset9 {
182 | margin-left: 930px;
183 | }
184 | .offset8 {
185 | margin-left: 830px;
186 | }
187 | .offset7 {
188 | margin-left: 730px;
189 | }
190 | .offset6 {
191 | margin-left: 630px;
192 | }
193 | .offset5 {
194 | margin-left: 530px;
195 | }
196 | .offset4 {
197 | margin-left: 430px;
198 | }
199 | .offset3 {
200 | margin-left: 330px;
201 | }
202 | .offset2 {
203 | margin-left: 230px;
204 | }
205 | .offset1 {
206 | margin-left: 130px;
207 | }
208 | .row-fluid {
209 | width: 100%;
210 | *zoom: 1;
211 | }
212 | .row-fluid:before,
213 | .row-fluid:after {
214 | display: table;
215 | line-height: 0;
216 | content: "";
217 | }
218 | .row-fluid:after {
219 | clear: both;
220 | }
221 | .row-fluid [class*="span"] {
222 | display: block;
223 | float: left;
224 | width: 100%;
225 | min-height: 30px;
226 | margin-left: 2.564102564102564%;
227 | *margin-left: 2.5109110747408616%;
228 | -webkit-box-sizing: border-box;
229 | -moz-box-sizing: border-box;
230 | box-sizing: border-box;
231 | }
232 | .row-fluid [class*="span"]:first-child {
233 | margin-left: 0;
234 | }
235 | .row-fluid .controls-row [class*="span"] + [class*="span"] {
236 | margin-left: 2.564102564102564%;
237 | }
238 | .row-fluid .span12 {
239 | width: 100%;
240 | *width: 99.94680851063829%;
241 | }
242 | .row-fluid .span11 {
243 | width: 91.45299145299145%;
244 | *width: 91.39979996362975%;
245 | }
246 | .row-fluid .span10 {
247 | width: 82.90598290598291%;
248 | *width: 82.8527914166212%;
249 | }
250 | .row-fluid .span9 {
251 | width: 74.35897435897436%;
252 | *width: 74.30578286961266%;
253 | }
254 | .row-fluid .span8 {
255 | width: 65.81196581196582%;
256 | *width: 65.75877432260411%;
257 | }
258 | .row-fluid .span7 {
259 | width: 57.26495726495726%;
260 | *width: 57.21176577559556%;
261 | }
262 | .row-fluid .span6 {
263 | width: 48.717948717948715%;
264 | *width: 48.664757228587014%;
265 | }
266 | .row-fluid .span5 {
267 | width: 40.17094017094017%;
268 | *width: 40.11774868157847%;
269 | }
270 | .row-fluid .span4 {
271 | width: 31.623931623931625%;
272 | *width: 31.570740134569924%;
273 | }
274 | .row-fluid .span3 {
275 | width: 23.076923076923077%;
276 | *width: 23.023731587561375%;
277 | }
278 | .row-fluid .span2 {
279 | width: 14.52991452991453%;
280 | *width: 14.476723040552828%;
281 | }
282 | .row-fluid .span1 {
283 | width: 5.982905982905983%;
284 | *width: 5.929714493544281%;
285 | }
286 | .row-fluid .offset12 {
287 | margin-left: 105.12820512820512%;
288 | *margin-left: 105.02182214948171%;
289 | }
290 | .row-fluid .offset12:first-child {
291 | margin-left: 102.56410256410257%;
292 | *margin-left: 102.45771958537915%;
293 | }
294 | .row-fluid .offset11 {
295 | margin-left: 96.58119658119658%;
296 | *margin-left: 96.47481360247316%;
297 | }
298 | .row-fluid .offset11:first-child {
299 | margin-left: 94.01709401709402%;
300 | *margin-left: 93.91071103837061%;
301 | }
302 | .row-fluid .offset10 {
303 | margin-left: 88.03418803418803%;
304 | *margin-left: 87.92780505546462%;
305 | }
306 | .row-fluid .offset10:first-child {
307 | margin-left: 85.47008547008548%;
308 | *margin-left: 85.36370249136206%;
309 | }
310 | .row-fluid .offset9 {
311 | margin-left: 79.48717948717949%;
312 | *margin-left: 79.38079650845607%;
313 | }
314 | .row-fluid .offset9:first-child {
315 | margin-left: 76.92307692307693%;
316 | *margin-left: 76.81669394435352%;
317 | }
318 | .row-fluid .offset8 {
319 | margin-left: 70.94017094017094%;
320 | *margin-left: 70.83378796144753%;
321 | }
322 | .row-fluid .offset8:first-child {
323 | margin-left: 68.37606837606839%;
324 | *margin-left: 68.26968539734497%;
325 | }
326 | .row-fluid .offset7 {
327 | margin-left: 62.393162393162385%;
328 | *margin-left: 62.28677941443899%;
329 | }
330 | .row-fluid .offset7:first-child {
331 | margin-left: 59.82905982905982%;
332 | *margin-left: 59.72267685033642%;
333 | }
334 | .row-fluid .offset6 {
335 | margin-left: 53.84615384615384%;
336 | *margin-left: 53.739770867430444%;
337 | }
338 | .row-fluid .offset6:first-child {
339 | margin-left: 51.28205128205128%;
340 | *margin-left: 51.175668303327875%;
341 | }
342 | .row-fluid .offset5 {
343 | margin-left: 45.299145299145295%;
344 | *margin-left: 45.1927623204219%;
345 | }
346 | .row-fluid .offset5:first-child {
347 | margin-left: 42.73504273504273%;
348 | *margin-left: 42.62865975631933%;
349 | }
350 | .row-fluid .offset4 {
351 | margin-left: 36.75213675213675%;
352 | *margin-left: 36.645753773413354%;
353 | }
354 | .row-fluid .offset4:first-child {
355 | margin-left: 34.18803418803419%;
356 | *margin-left: 34.081651209310785%;
357 | }
358 | .row-fluid .offset3 {
359 | margin-left: 28.205128205128204%;
360 | *margin-left: 28.0987452264048%;
361 | }
362 | .row-fluid .offset3:first-child {
363 | margin-left: 25.641025641025642%;
364 | *margin-left: 25.53464266230224%;
365 | }
366 | .row-fluid .offset2 {
367 | margin-left: 19.65811965811966%;
368 | *margin-left: 19.551736679396257%;
369 | }
370 | .row-fluid .offset2:first-child {
371 | margin-left: 17.094017094017094%;
372 | *margin-left: 16.98763411529369%;
373 | }
374 | .row-fluid .offset1 {
375 | margin-left: 11.11111111111111%;
376 | *margin-left: 11.004728132387708%;
377 | }
378 | .row-fluid .offset1:first-child {
379 | margin-left: 8.547008547008547%;
380 | *margin-left: 8.440625568285142%;
381 | }
382 | input,
383 | textarea,
384 | .uneditable-input {
385 | margin-left: 0;
386 | }
387 | .controls-row [class*="span"] + [class*="span"] {
388 | margin-left: 30px;
389 | }
390 | input.span12,
391 | textarea.span12,
392 | .uneditable-input.span12 {
393 | width: 1156px;
394 | }
395 | input.span11,
396 | textarea.span11,
397 | .uneditable-input.span11 {
398 | width: 1056px;
399 | }
400 | input.span10,
401 | textarea.span10,
402 | .uneditable-input.span10 {
403 | width: 956px;
404 | }
405 | input.span9,
406 | textarea.span9,
407 | .uneditable-input.span9 {
408 | width: 856px;
409 | }
410 | input.span8,
411 | textarea.span8,
412 | .uneditable-input.span8 {
413 | width: 756px;
414 | }
415 | input.span7,
416 | textarea.span7,
417 | .uneditable-input.span7 {
418 | width: 656px;
419 | }
420 | input.span6,
421 | textarea.span6,
422 | .uneditable-input.span6 {
423 | width: 556px;
424 | }
425 | input.span5,
426 | textarea.span5,
427 | .uneditable-input.span5 {
428 | width: 456px;
429 | }
430 | input.span4,
431 | textarea.span4,
432 | .uneditable-input.span4 {
433 | width: 356px;
434 | }
435 | input.span3,
436 | textarea.span3,
437 | .uneditable-input.span3 {
438 | width: 256px;
439 | }
440 | input.span2,
441 | textarea.span2,
442 | .uneditable-input.span2 {
443 | width: 156px;
444 | }
445 | input.span1,
446 | textarea.span1,
447 | .uneditable-input.span1 {
448 | width: 56px;
449 | }
450 | .thumbnails {
451 | margin-left: -30px;
452 | }
453 | .thumbnails > li {
454 | margin-left: 30px;
455 | }
456 | .row-fluid .thumbnails {
457 | margin-left: 0;
458 | }
459 | }
460 |
461 | @media (min-width: 768px) and (max-width: 979px) {
462 | .row {
463 | margin-left: -20px;
464 | *zoom: 1;
465 | }
466 | .row:before,
467 | .row:after {
468 | display: table;
469 | line-height: 0;
470 | content: "";
471 | }
472 | .row:after {
473 | clear: both;
474 | }
475 | [class*="span"] {
476 | float: left;
477 | min-height: 1px;
478 | margin-left: 20px;
479 | }
480 | .container,
481 | .navbar-static-top .container,
482 | .navbar-fixed-top .container,
483 | .navbar-fixed-bottom .container {
484 | width: 724px;
485 | }
486 | .span12 {
487 | width: 724px;
488 | }
489 | .span11 {
490 | width: 662px;
491 | }
492 | .span10 {
493 | width: 600px;
494 | }
495 | .span9 {
496 | width: 538px;
497 | }
498 | .span8 {
499 | width: 476px;
500 | }
501 | .span7 {
502 | width: 414px;
503 | }
504 | .span6 {
505 | width: 352px;
506 | }
507 | .span5 {
508 | width: 290px;
509 | }
510 | .span4 {
511 | width: 228px;
512 | }
513 | .span3 {
514 | width: 166px;
515 | }
516 | .span2 {
517 | width: 104px;
518 | }
519 | .span1 {
520 | width: 42px;
521 | }
522 | .offset12 {
523 | margin-left: 764px;
524 | }
525 | .offset11 {
526 | margin-left: 702px;
527 | }
528 | .offset10 {
529 | margin-left: 640px;
530 | }
531 | .offset9 {
532 | margin-left: 578px;
533 | }
534 | .offset8 {
535 | margin-left: 516px;
536 | }
537 | .offset7 {
538 | margin-left: 454px;
539 | }
540 | .offset6 {
541 | margin-left: 392px;
542 | }
543 | .offset5 {
544 | margin-left: 330px;
545 | }
546 | .offset4 {
547 | margin-left: 268px;
548 | }
549 | .offset3 {
550 | margin-left: 206px;
551 | }
552 | .offset2 {
553 | margin-left: 144px;
554 | }
555 | .offset1 {
556 | margin-left: 82px;
557 | }
558 | .row-fluid {
559 | width: 100%;
560 | *zoom: 1;
561 | }
562 | .row-fluid:before,
563 | .row-fluid:after {
564 | display: table;
565 | line-height: 0;
566 | content: "";
567 | }
568 | .row-fluid:after {
569 | clear: both;
570 | }
571 | .row-fluid [class*="span"] {
572 | display: block;
573 | float: left;
574 | width: 100%;
575 | min-height: 30px;
576 | margin-left: 2.7624309392265194%;
577 | *margin-left: 2.709239449864817%;
578 | -webkit-box-sizing: border-box;
579 | -moz-box-sizing: border-box;
580 | box-sizing: border-box;
581 | }
582 | .row-fluid [class*="span"]:first-child {
583 | margin-left: 0;
584 | }
585 | .row-fluid .controls-row [class*="span"] + [class*="span"] {
586 | margin-left: 2.7624309392265194%;
587 | }
588 | .row-fluid .span12 {
589 | width: 100%;
590 | *width: 99.94680851063829%;
591 | }
592 | .row-fluid .span11 {
593 | width: 91.43646408839778%;
594 | *width: 91.38327259903608%;
595 | }
596 | .row-fluid .span10 {
597 | width: 82.87292817679558%;
598 | *width: 82.81973668743387%;
599 | }
600 | .row-fluid .span9 {
601 | width: 74.30939226519337%;
602 | *width: 74.25620077583166%;
603 | }
604 | .row-fluid .span8 {
605 | width: 65.74585635359117%;
606 | *width: 65.69266486422946%;
607 | }
608 | .row-fluid .span7 {
609 | width: 57.18232044198895%;
610 | *width: 57.12912895262725%;
611 | }
612 | .row-fluid .span6 {
613 | width: 48.61878453038674%;
614 | *width: 48.56559304102504%;
615 | }
616 | .row-fluid .span5 {
617 | width: 40.05524861878453%;
618 | *width: 40.00205712942283%;
619 | }
620 | .row-fluid .span4 {
621 | width: 31.491712707182323%;
622 | *width: 31.43852121782062%;
623 | }
624 | .row-fluid .span3 {
625 | width: 22.92817679558011%;
626 | *width: 22.87498530621841%;
627 | }
628 | .row-fluid .span2 {
629 | width: 14.3646408839779%;
630 | *width: 14.311449394616199%;
631 | }
632 | .row-fluid .span1 {
633 | width: 5.801104972375691%;
634 | *width: 5.747913483013988%;
635 | }
636 | .row-fluid .offset12 {
637 | margin-left: 105.52486187845304%;
638 | *margin-left: 105.41847889972962%;
639 | }
640 | .row-fluid .offset12:first-child {
641 | margin-left: 102.76243093922652%;
642 | *margin-left: 102.6560479605031%;
643 | }
644 | .row-fluid .offset11 {
645 | margin-left: 96.96132596685082%;
646 | *margin-left: 96.8549429881274%;
647 | }
648 | .row-fluid .offset11:first-child {
649 | margin-left: 94.1988950276243%;
650 | *margin-left: 94.09251204890089%;
651 | }
652 | .row-fluid .offset10 {
653 | margin-left: 88.39779005524862%;
654 | *margin-left: 88.2914070765252%;
655 | }
656 | .row-fluid .offset10:first-child {
657 | margin-left: 85.6353591160221%;
658 | *margin-left: 85.52897613729868%;
659 | }
660 | .row-fluid .offset9 {
661 | margin-left: 79.8342541436464%;
662 | *margin-left: 79.72787116492299%;
663 | }
664 | .row-fluid .offset9:first-child {
665 | margin-left: 77.07182320441989%;
666 | *margin-left: 76.96544022569647%;
667 | }
668 | .row-fluid .offset8 {
669 | margin-left: 71.2707182320442%;
670 | *margin-left: 71.16433525332079%;
671 | }
672 | .row-fluid .offset8:first-child {
673 | margin-left: 68.50828729281768%;
674 | *margin-left: 68.40190431409427%;
675 | }
676 | .row-fluid .offset7 {
677 | margin-left: 62.70718232044199%;
678 | *margin-left: 62.600799341718584%;
679 | }
680 | .row-fluid .offset7:first-child {
681 | margin-left: 59.94475138121547%;
682 | *margin-left: 59.838368402492065%;
683 | }
684 | .row-fluid .offset6 {
685 | margin-left: 54.14364640883978%;
686 | *margin-left: 54.037263430116376%;
687 | }
688 | .row-fluid .offset6:first-child {
689 | margin-left: 51.38121546961326%;
690 | *margin-left: 51.27483249088986%;
691 | }
692 | .row-fluid .offset5 {
693 | margin-left: 45.58011049723757%;
694 | *margin-left: 45.47372751851417%;
695 | }
696 | .row-fluid .offset5:first-child {
697 | margin-left: 42.81767955801105%;
698 | *margin-left: 42.71129657928765%;
699 | }
700 | .row-fluid .offset4 {
701 | margin-left: 37.01657458563536%;
702 | *margin-left: 36.91019160691196%;
703 | }
704 | .row-fluid .offset4:first-child {
705 | margin-left: 34.25414364640884%;
706 | *margin-left: 34.14776066768544%;
707 | }
708 | .row-fluid .offset3 {
709 | margin-left: 28.45303867403315%;
710 | *margin-left: 28.346655695309746%;
711 | }
712 | .row-fluid .offset3:first-child {
713 | margin-left: 25.69060773480663%;
714 | *margin-left: 25.584224756083227%;
715 | }
716 | .row-fluid .offset2 {
717 | margin-left: 19.88950276243094%;
718 | *margin-left: 19.783119783707537%;
719 | }
720 | .row-fluid .offset2:first-child {
721 | margin-left: 17.12707182320442%;
722 | *margin-left: 17.02068884448102%;
723 | }
724 | .row-fluid .offset1 {
725 | margin-left: 11.32596685082873%;
726 | *margin-left: 11.219583872105325%;
727 | }
728 | .row-fluid .offset1:first-child {
729 | margin-left: 8.56353591160221%;
730 | *margin-left: 8.457152932878806%;
731 | }
732 | input,
733 | textarea,
734 | .uneditable-input {
735 | margin-left: 0;
736 | }
737 | .controls-row [class*="span"] + [class*="span"] {
738 | margin-left: 20px;
739 | }
740 | input.span12,
741 | textarea.span12,
742 | .uneditable-input.span12 {
743 | width: 710px;
744 | }
745 | input.span11,
746 | textarea.span11,
747 | .uneditable-input.span11 {
748 | width: 648px;
749 | }
750 | input.span10,
751 | textarea.span10,
752 | .uneditable-input.span10 {
753 | width: 586px;
754 | }
755 | input.span9,
756 | textarea.span9,
757 | .uneditable-input.span9 {
758 | width: 524px;
759 | }
760 | input.span8,
761 | textarea.span8,
762 | .uneditable-input.span8 {
763 | width: 462px;
764 | }
765 | input.span7,
766 | textarea.span7,
767 | .uneditable-input.span7 {
768 | width: 400px;
769 | }
770 | input.span6,
771 | textarea.span6,
772 | .uneditable-input.span6 {
773 | width: 338px;
774 | }
775 | input.span5,
776 | textarea.span5,
777 | .uneditable-input.span5 {
778 | width: 276px;
779 | }
780 | input.span4,
781 | textarea.span4,
782 | .uneditable-input.span4 {
783 | width: 214px;
784 | }
785 | input.span3,
786 | textarea.span3,
787 | .uneditable-input.span3 {
788 | width: 152px;
789 | }
790 | input.span2,
791 | textarea.span2,
792 | .uneditable-input.span2 {
793 | width: 90px;
794 | }
795 | input.span1,
796 | textarea.span1,
797 | .uneditable-input.span1 {
798 | width: 28px;
799 | }
800 | }
801 |
802 | @media (max-width: 767px) {
803 | body {
804 | padding-right: 20px;
805 | padding-left: 20px;
806 | }
807 | .navbar-fixed-top,
808 | .navbar-fixed-bottom,
809 | .navbar-static-top {
810 | margin-right: -20px;
811 | margin-left: -20px;
812 | }
813 | .container-fluid {
814 | padding: 0;
815 | }
816 | .dl-horizontal dt {
817 | float: none;
818 | width: auto;
819 | clear: none;
820 | text-align: left;
821 | }
822 | .dl-horizontal dd {
823 | margin-left: 0;
824 | }
825 | .container {
826 | width: auto;
827 | }
828 | .row-fluid {
829 | width: 100%;
830 | }
831 | .row,
832 | .thumbnails {
833 | margin-left: 0;
834 | }
835 | .thumbnails > li {
836 | float: none;
837 | margin-left: 0;
838 | }
839 | [class*="span"],
840 | .uneditable-input[class*="span"],
841 | .row-fluid [class*="span"] {
842 | display: block;
843 | float: none;
844 | width: 100%;
845 | margin-left: 0;
846 | -webkit-box-sizing: border-box;
847 | -moz-box-sizing: border-box;
848 | box-sizing: border-box;
849 | }
850 | .span12,
851 | .row-fluid .span12 {
852 | width: 100%;
853 | -webkit-box-sizing: border-box;
854 | -moz-box-sizing: border-box;
855 | box-sizing: border-box;
856 | }
857 | .row-fluid [class*="offset"]:first-child {
858 | margin-left: 0;
859 | }
860 | .input-large,
861 | .input-xlarge,
862 | .input-xxlarge,
863 | input[class*="span"],
864 | select[class*="span"],
865 | textarea[class*="span"],
866 | .uneditable-input {
867 | display: block;
868 | width: 100%;
869 | min-height: 30px;
870 | -webkit-box-sizing: border-box;
871 | -moz-box-sizing: border-box;
872 | box-sizing: border-box;
873 | }
874 | .input-prepend input,
875 | .input-append input,
876 | .input-prepend input[class*="span"],
877 | .input-append input[class*="span"] {
878 | display: inline-block;
879 | width: auto;
880 | }
881 | .controls-row [class*="span"] + [class*="span"] {
882 | margin-left: 0;
883 | }
884 | .modal {
885 | position: fixed;
886 | top: 20px;
887 | right: 20px;
888 | left: 20px;
889 | width: auto;
890 | margin: 0;
891 | }
892 | .modal.fade {
893 | top: -100px;
894 | }
895 | .modal.fade.in {
896 | top: 20px;
897 | }
898 | }
899 |
900 | @media (max-width: 480px) {
901 | .nav-collapse {
902 | -webkit-transform: translate3d(0, 0, 0);
903 | }
904 | .page-header h1 small {
905 | display: block;
906 | line-height: 20px;
907 | }
908 | input[type="checkbox"],
909 | input[type="radio"] {
910 | border: 1px solid #ccc;
911 | }
912 | .form-horizontal .control-label {
913 | float: none;
914 | width: auto;
915 | padding-top: 0;
916 | text-align: left;
917 | }
918 | .form-horizontal .controls {
919 | margin-left: 0;
920 | }
921 | .form-horizontal .control-list {
922 | padding-top: 0;
923 | }
924 | .form-horizontal .form-actions {
925 | padding-right: 10px;
926 | padding-left: 10px;
927 | }
928 | .media .pull-left,
929 | .media .pull-right {
930 | display: block;
931 | float: none;
932 | margin-bottom: 10px;
933 | }
934 | .media-object {
935 | margin-right: 0;
936 | margin-left: 0;
937 | }
938 | .modal {
939 | top: 10px;
940 | right: 10px;
941 | left: 10px;
942 | }
943 | .modal-header .close {
944 | padding: 10px;
945 | margin: -10px;
946 | }
947 | .carousel-caption {
948 | position: static;
949 | }
950 | }
951 |
952 | @media (max-width: 979px) {
953 | body {
954 | padding-top: 0;
955 | }
956 | .navbar-fixed-top,
957 | .navbar-fixed-bottom {
958 | position: static;
959 | }
960 | .navbar-fixed-top {
961 | margin-bottom: 20px;
962 | }
963 | .navbar-fixed-bottom {
964 | margin-top: 20px;
965 | }
966 | .navbar-fixed-top .navbar-inner,
967 | .navbar-fixed-bottom .navbar-inner {
968 | padding: 5px;
969 | }
970 | .navbar .container {
971 | width: auto;
972 | padding: 0;
973 | }
974 | .navbar .brand {
975 | padding-right: 10px;
976 | padding-left: 10px;
977 | margin: 0 0 0 -5px;
978 | }
979 | .nav-collapse {
980 | clear: both;
981 | }
982 | .nav-collapse .nav {
983 | float: none;
984 | margin: 0 0 10px;
985 | }
986 | .nav-collapse .nav > li {
987 | float: none;
988 | }
989 | .nav-collapse .nav > li > a {
990 | margin-bottom: 2px;
991 | }
992 | .nav-collapse .nav > .divider-vertical {
993 | display: none;
994 | }
995 | .nav-collapse .nav .nav-header {
996 | color: #777777;
997 | text-shadow: none;
998 | }
999 | .nav-collapse .nav > li > a,
1000 | .nav-collapse .dropdown-menu a {
1001 | padding: 9px 15px;
1002 | font-weight: bold;
1003 | color: #777777;
1004 | -webkit-border-radius: 3px;
1005 | -moz-border-radius: 3px;
1006 | border-radius: 3px;
1007 | }
1008 | .nav-collapse .btn {
1009 | padding: 4px 10px 4px;
1010 | font-weight: normal;
1011 | -webkit-border-radius: 4px;
1012 | -moz-border-radius: 4px;
1013 | border-radius: 4px;
1014 | }
1015 | .nav-collapse .dropdown-menu li + li a {
1016 | margin-bottom: 2px;
1017 | }
1018 | .nav-collapse .nav > li > a:hover,
1019 | .nav-collapse .nav > li > a:focus,
1020 | .nav-collapse .dropdown-menu a:hover,
1021 | .nav-collapse .dropdown-menu a:focus {
1022 | background-color: #f2f2f2;
1023 | }
1024 | .navbar-inverse .nav-collapse .nav > li > a,
1025 | .navbar-inverse .nav-collapse .dropdown-menu a {
1026 | color: #999999;
1027 | }
1028 | .navbar-inverse .nav-collapse .nav > li > a:hover,
1029 | .navbar-inverse .nav-collapse .nav > li > a:focus,
1030 | .navbar-inverse .nav-collapse .dropdown-menu a:hover,
1031 | .navbar-inverse .nav-collapse .dropdown-menu a:focus {
1032 | background-color: #111111;
1033 | }
1034 | .nav-collapse.in .btn-group {
1035 | padding: 0;
1036 | margin-top: 5px;
1037 | }
1038 | .nav-collapse .dropdown-menu {
1039 | position: static;
1040 | top: auto;
1041 | left: auto;
1042 | display: none;
1043 | float: none;
1044 | max-width: none;
1045 | padding: 0;
1046 | margin: 0 15px;
1047 | background-color: transparent;
1048 | border: none;
1049 | -webkit-border-radius: 0;
1050 | -moz-border-radius: 0;
1051 | border-radius: 0;
1052 | -webkit-box-shadow: none;
1053 | -moz-box-shadow: none;
1054 | box-shadow: none;
1055 | }
1056 | .nav-collapse .open > .dropdown-menu {
1057 | display: block;
1058 | }
1059 | .nav-collapse .dropdown-menu:before,
1060 | .nav-collapse .dropdown-menu:after {
1061 | display: none;
1062 | }
1063 | .nav-collapse .dropdown-menu .divider {
1064 | display: none;
1065 | }
1066 | .nav-collapse .nav > li > .dropdown-menu:before,
1067 | .nav-collapse .nav > li > .dropdown-menu:after {
1068 | display: none;
1069 | }
1070 | .nav-collapse .navbar-form,
1071 | .nav-collapse .navbar-search {
1072 | float: none;
1073 | padding: 10px 15px;
1074 | margin: 10px 0;
1075 | border-top: 1px solid #f2f2f2;
1076 | border-bottom: 1px solid #f2f2f2;
1077 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1078 | -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1079 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
1080 | }
1081 | .navbar-inverse .nav-collapse .navbar-form,
1082 | .navbar-inverse .nav-collapse .navbar-search {
1083 | border-top-color: #111111;
1084 | border-bottom-color: #111111;
1085 | }
1086 | .navbar .nav-collapse .nav.pull-right {
1087 | float: none;
1088 | margin-left: 0;
1089 | }
1090 | .nav-collapse,
1091 | .nav-collapse.collapse {
1092 | height: 0;
1093 | overflow: hidden;
1094 | }
1095 | .navbar .btn-navbar {
1096 | display: block;
1097 | }
1098 | .navbar-static .navbar-inner {
1099 | padding-right: 10px;
1100 | padding-left: 10px;
1101 | }
1102 | }
1103 |
1104 | @media (min-width: 980px) {
1105 | .nav-collapse.collapse {
1106 | height: auto !important;
1107 | overflow: visible !important;
1108 | }
1109 | }
1110 |
--------------------------------------------------------------------------------
/PostListr/css/bootstrap-responsive.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Responsive v2.3.2
3 | *
4 | * Copyright 2012 Twitter, Inc
5 | * Licensed under the Apache License v2.0
6 | * http://www.apache.org/licenses/LICENSE-2.0
7 | *
8 | * Designed and built with all the love in the world @twitter by @mdo and @fat.
9 | */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
10 |
--------------------------------------------------------------------------------
/PostListr/css/custom.css:
--------------------------------------------------------------------------------
1 | /* Put your css in here */
2 |
3 | body {
4 | background: url('../img/tweed.png');
5 | }
6 |
7 | .container {
8 | background-color: white;
9 | border-radius: 3px;
10 | }
11 |
12 | .row > div {
13 | padding: .5em;
14 | }
15 |
16 | .spinner {
17 | margin: 50px auto;
18 | }
19 |
--------------------------------------------------------------------------------
/PostListr/css/spinner.css:
--------------------------------------------------------------------------------
1 | .windows8 {
2 | position: relative;
3 | width: 90px;
4 | height:90px;
5 | }
6 |
7 | .windows8 .wBall {
8 | position: absolute;
9 | width: 86px;
10 | height: 86px;
11 | opacity: 0;
12 | -moz-transform: rotate(225deg);
13 | -moz-animation: orbit 7.15s infinite;
14 | -webkit-transform: rotate(225deg);
15 | -webkit-animation: orbit 7.15s infinite;
16 | -ms-transform: rotate(225deg);
17 | -ms-animation: orbit 7.15s infinite;
18 | -o-transform: rotate(225deg);
19 | -o-animation: orbit 7.15s infinite;
20 | transform: rotate(225deg);
21 | animation: orbit 7.15s infinite;
22 | }
23 |
24 | .windows8 .wBall .wInnerBall{
25 | position: absolute;
26 | width: 11px;
27 | height: 11px;
28 | background: #000000;
29 | left:0px;
30 | top:0px;
31 | -moz-border-radius: 11px;
32 | -webkit-border-radius: 11px;
33 | -ms-border-radius: 11px;
34 | -o-border-radius: 11px;
35 | border-radius: 11px;
36 | }
37 |
38 | .windows8 #wBall_1 {
39 | -moz-animation-delay: 1.56s;
40 | -webkit-animation-delay: 1.56s;
41 | -ms-animation-delay: 1.56s;
42 | -o-animation-delay: 1.56s;
43 | animation-delay: 1.56s;
44 | }
45 |
46 | .windows8 #wBall_2 {
47 | -moz-animation-delay: 0.31s;
48 | -webkit-animation-delay: 0.31s;
49 | -ms-animation-delay: 0.31s;
50 | -o-animation-delay: 0.31s;
51 | animation-delay: 0.31s;
52 | }
53 |
54 | .windows8 #wBall_3 {
55 | -moz-animation-delay: 0.62s;
56 | -webkit-animation-delay: 0.62s;
57 | -ms-animation-delay: 0.62s;
58 | -o-animation-delay: 0.62s;
59 | animation-delay: 0.62s;
60 | }
61 |
62 | .windows8 #wBall_4 {
63 | -moz-animation-delay: 0.94s;
64 | -webkit-animation-delay: 0.94s;
65 | -ms-animation-delay: 0.94s;
66 | -o-animation-delay: 0.94s;
67 | animation-delay: 0.94s;
68 | }
69 |
70 | .windows8 #wBall_5 {
71 | -moz-animation-delay: 1.25s;
72 | -webkit-animation-delay: 1.25s;
73 | -ms-animation-delay: 1.25s;
74 | -o-animation-delay: 1.25s;
75 | animation-delay: 1.25s;
76 | }
77 |
78 | @-moz-keyframes orbit {
79 | 0% {
80 | opacity: 1;
81 | z-index:99;
82 | -moz-transform: rotate(180deg);
83 | -moz-animation-timing-function: ease-out;
84 | }
85 |
86 | 7% {
87 | opacity: 1;
88 | -moz-transform: rotate(300deg);
89 | -moz-animation-timing-function: linear;
90 | -moz-origin:0%;
91 | }
92 |
93 | 30% {
94 | opacity: 1;
95 | -moz-transform:rotate(410deg);
96 | -moz-animation-timing-function: ease-in-out;
97 | -moz-origin:7%;
98 | }
99 |
100 | 39% {
101 | opacity: 1;
102 | -moz-transform: rotate(645deg);
103 | -moz-animation-timing-function: linear;
104 | -moz-origin:30%;
105 | }
106 |
107 | 70% {
108 | opacity: 1;
109 | -moz-transform: rotate(770deg);
110 | -moz-animation-timing-function: ease-out;
111 | -moz-origin:39%;
112 | }
113 |
114 | 75% {
115 | opacity: 1;
116 | -moz-transform: rotate(900deg);
117 | -moz-animation-timing-function: ease-out;
118 | -moz-origin:70%;
119 | }
120 |
121 | 76% {
122 | opacity: 0;
123 | -moz-transform:rotate(900deg);
124 | }
125 |
126 | 100% {
127 | opacity: 0;
128 | -moz-transform: rotate(900deg);
129 | }
130 |
131 | }
132 |
133 | @-webkit-keyframes orbit {
134 | 0% {
135 | opacity: 1;
136 | z-index:99;
137 | -webkit-transform: rotate(180deg);
138 | -webkit-animation-timing-function: ease-out;
139 | }
140 |
141 | 7% {
142 | opacity: 1;
143 | -webkit-transform: rotate(300deg);
144 | -webkit-animation-timing-function: linear;
145 | -webkit-origin:0%;
146 | }
147 |
148 | 30% {
149 | opacity: 1;
150 | -webkit-transform:rotate(410deg);
151 | -webkit-animation-timing-function: ease-in-out;
152 | -webkit-origin:7%;
153 | }
154 |
155 | 39% {
156 | opacity: 1;
157 | -webkit-transform: rotate(645deg);
158 | -webkit-animation-timing-function: linear;
159 | -webkit-origin:30%;
160 | }
161 |
162 | 70% {
163 | opacity: 1;
164 | -webkit-transform: rotate(770deg);
165 | -webkit-animation-timing-function: ease-out;
166 | -webkit-origin:39%;
167 | }
168 |
169 | 75% {
170 | opacity: 1;
171 | -webkit-transform: rotate(900deg);
172 | -webkit-animation-timing-function: ease-out;
173 | -webkit-origin:70%;
174 | }
175 |
176 | 76% {
177 | opacity: 0;
178 | -webkit-transform:rotate(900deg);
179 | }
180 |
181 | 100% {
182 | opacity: 0;
183 | -webkit-transform: rotate(900deg);
184 | }
185 |
186 | }
187 |
188 | @-ms-keyframes orbit {
189 | 0% {
190 | opacity: 1;
191 | z-index:99;
192 | -ms-transform: rotate(180deg);
193 | -ms-animation-timing-function: ease-out;
194 | }
195 |
196 | 7% {
197 | opacity: 1;
198 | -ms-transform: rotate(300deg);
199 | -ms-animation-timing-function: linear;
200 | -ms-origin:0%;
201 | }
202 |
203 | 30% {
204 | opacity: 1;
205 | -ms-transform:rotate(410deg);
206 | -ms-animation-timing-function: ease-in-out;
207 | -ms-origin:7%;
208 | }
209 |
210 | 39% {
211 | opacity: 1;
212 | -ms-transform: rotate(645deg);
213 | -ms-animation-timing-function: linear;
214 | -ms-origin:30%;
215 | }
216 |
217 | 70% {
218 | opacity: 1;
219 | -ms-transform: rotate(770deg);
220 | -ms-animation-timing-function: ease-out;
221 | -ms-origin:39%;
222 | }
223 |
224 | 75% {
225 | opacity: 1;
226 | -ms-transform: rotate(900deg);
227 | -ms-animation-timing-function: ease-out;
228 | -ms-origin:70%;
229 | }
230 |
231 | 76% {
232 | opacity: 0;
233 | -ms-transform:rotate(900deg);
234 | }
235 |
236 | 100% {
237 | opacity: 0;
238 | -ms-transform: rotate(900deg);
239 | }
240 |
241 | }
242 |
243 | @-o-keyframes orbit {
244 | 0% {
245 | opacity: 1;
246 | z-index:99;
247 | -o-transform: rotate(180deg);
248 | -o-animation-timing-function: ease-out;
249 | }
250 |
251 | 7% {
252 | opacity: 1;
253 | -o-transform: rotate(300deg);
254 | -o-animation-timing-function: linear;
255 | -o-origin:0%;
256 | }
257 |
258 | 30% {
259 | opacity: 1;
260 | -o-transform:rotate(410deg);
261 | -o-animation-timing-function: ease-in-out;
262 | -o-origin:7%;
263 | }
264 |
265 | 39% {
266 | opacity: 1;
267 | -o-transform: rotate(645deg);
268 | -o-animation-timing-function: linear;
269 | -o-origin:30%;
270 | }
271 |
272 | 70% {
273 | opacity: 1;
274 | -o-transform: rotate(770deg);
275 | -o-animation-timing-function: ease-out;
276 | -o-origin:39%;
277 | }
278 |
279 | 75% {
280 | opacity: 1;
281 | -o-transform: rotate(900deg);
282 | -o-animation-timing-function: ease-out;
283 | -o-origin:70%;
284 | }
285 |
286 | 76% {
287 | opacity: 0;
288 | -o-transform:rotate(900deg);
289 | }
290 |
291 | 100% {
292 | opacity: 0;
293 | -o-transform: rotate(900deg);
294 | }
295 |
296 | }
297 |
298 | @keyframes orbit {
299 | 0% {
300 | opacity: 1;
301 | z-index:99;
302 | transform: rotate(180deg);
303 | animation-timing-function: ease-out;
304 | }
305 |
306 | 7% {
307 | opacity: 1;
308 | transform: rotate(300deg);
309 | animation-timing-function: linear;
310 | origin:0%;
311 | }
312 |
313 | 30% {
314 | opacity: 1;
315 | transform:rotate(410deg);
316 | animation-timing-function: ease-in-out;
317 | origin:7%;
318 | }
319 |
320 | 39% {
321 | opacity: 1;
322 | transform: rotate(645deg);
323 | animation-timing-function: linear;
324 | origin:30%;
325 | }
326 |
327 | 70% {
328 | opacity: 1;
329 | transform: rotate(770deg);
330 | animation-timing-function: ease-out;
331 | origin:39%;
332 | }
333 |
334 | 75% {
335 | opacity: 1;
336 | transform: rotate(900deg);
337 | animation-timing-function: ease-out;
338 | origin:70%;
339 | }
340 |
341 | 76% {
342 | opacity: 0;
343 | transform:rotate(900deg);
344 | }
345 |
346 | 100% {
347 | opacity: 0;
348 | transform: rotate(900deg);
349 | }
350 |
351 | }
352 | - See more at: http://cssload.net/#sthash.JmEtSGf5.dpuf
--------------------------------------------------------------------------------
/PostListr/img/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kadamwhite/wordbone-pressback/f2b668145815a75e1163dd58166ee5b17a96e0ad/PostListr/img/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/PostListr/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kadamwhite/wordbone-pressback/f2b668145815a75e1163dd58166ee5b17a96e0ad/PostListr/img/glyphicons-halflings.png
--------------------------------------------------------------------------------
/PostListr/img/tweed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kadamwhite/wordbone-pressback/f2b668145815a75e1163dd58166ee5b17a96e0ad/PostListr/img/tweed.png
--------------------------------------------------------------------------------
/PostListr/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | WordPress.com API demo
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
PostListr
21 |
22 |
32 |
33 |
34 |
35 |
36 |
39 |
42 |
45 |
48 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/PostListr/js/app.js:
--------------------------------------------------------------------------------
1 | (function($, Backbone) {
2 |
3 | var Post = Backbone.Model.extend({});
4 |
5 | var Posts = Backbone.Collection.extend({
6 | model: Post,
7 | parse: function( response ) {
8 | return response.posts;
9 | }
10 | });
11 |
12 | var PostView = Backbone.View.extend({
13 | template: tmpl['templates/post.tmpl'],
14 | render: function() {
15 | this.$el.html( this.template( this.model.attributes ) );
16 | return this;
17 | }
18 | });
19 |
20 | var PostList = Backbone.View.extend({
21 | render: function() {
22 | var $postList = this.$el;
23 | $postList.empty();
24 | this.collection.each(function( model ) {
25 | var postView = new PostView({
26 | model: model
27 | });
28 | postView.render().$el.appendTo( $postList );
29 | });
30 | return this;
31 | },
32 | initialize: function() {
33 | this.collection.fetch(); // Auto-load when created
34 | this.listenTo( this.collection, 'sync reset', this.render );
35 | }
36 | });
37 |
38 | var BlogForm = Backbone.View.extend({
39 | events: {
40 | 'submit form': 'loadPosts'
41 | },
42 | loadPosts: function( evt ) {
43 | var blog, newBlogUrl;
44 |
45 | evt.preventDefault();
46 |
47 | // Get whatever the user entered
48 | blog = this.$el.find('input').val();
49 | // Strip slashes
50 | blog = blog.replace(/\//g, '');
51 |
52 | if ( !blog ) {
53 | // Nothing was entered
54 | return;
55 | }
56 |
57 | newBlogUrl = [
58 | 'http://public-api.wordpress.com/rest/v1/sites/',
59 | blog,
60 | '/posts/?number=10&callback=?'
61 | ].join('');
62 |
63 | this.collection.url = newBlogUrl;
64 | this.collection.reset();
65 | this.collection.fetch({ reset: true });
66 | }
67 | });
68 |
69 | var LoadingSpinner = Backbone.View.extend({
70 | toggle: function() {
71 | if ( this.collection.length > 0 ) {
72 | this.$el.hide();
73 | } else {
74 | this.$el.show();
75 | }
76 | },
77 | initialize: function() {
78 | this.listenTo( this.collection, 'reset add', this.toggle );
79 | }
80 | });
81 |
82 | var posts = new Posts([], {
83 | url: 'http://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/?number=10&callback=?'
84 | });
85 |
86 | var postList = new PostList({
87 | collection: posts,
88 | el: '#app'
89 | });
90 |
91 | var blogForm = new BlogForm({
92 | el: '.hero-unit',
93 | collection: posts
94 | });
95 |
96 | var spinner = new LoadingSpinner({
97 | el: '.spinner',
98 | collection: posts
99 | });
100 |
101 | })(jQuery, Backbone);
--------------------------------------------------------------------------------
/PostListr/js/lib/backbone.min.js:
--------------------------------------------------------------------------------
1 | (function(){var t=this;var e=t.Backbone;var i=[];var r=i.push;var s=i.slice;var n=i.splice;var a;if(typeof exports!=="undefined"){a=exports}else{a=t.Backbone={}}a.VERSION="1.0.0";var h=t._;if(!h&&typeof require!=="undefined")h=require("underscore");a.$=t.jQuery||t.Zepto||t.ender||t.$;a.noConflict=function(){t.Backbone=e;return this};a.emulateHTTP=false;a.emulateJSON=false;var o=a.Events={on:function(t,e,i){if(!l(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,i){if(!l(this,"once",t,[e,i])||!e)return this;var r=this;var s=h.once(function(){r.off(t,s);e.apply(this,arguments)});s._callback=e;return this.on(t,s,i)},off:function(t,e,i){var r,s,n,a,o,u,c,f;if(!this._events||!l(this,"off",t,[e,i]))return this;if(!t&&!e&&!i){this._events={};return this}a=t?[t]:h.keys(this._events);for(o=0,u=a.length;o").attr(t);this.setElement(e,false)}else{this.setElement(h.result(this,"el"),false)}}});a.sync=function(t,e,i){var r=k[t];h.defaults(i||(i={}),{emulateHTTP:a.emulateHTTP,emulateJSON:a.emulateJSON});var s={type:r,dataType:"json"};if(!i.url){s.url=h.result(e,"url")||U()}if(i.data==null&&e&&(t==="create"||t==="update"||t==="patch")){s.contentType="application/json";s.data=JSON.stringify(i.attrs||e.toJSON(i))}if(i.emulateJSON){s.contentType="application/x-www-form-urlencoded";s.data=s.data?{model:s.data}:{}}if(i.emulateHTTP&&(r==="PUT"||r==="DELETE"||r==="PATCH")){s.type="POST";if(i.emulateJSON)s.data._method=r;var n=i.beforeSend;i.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",r);if(n)return n.apply(this,arguments)}}if(s.type!=="GET"&&!i.emulateJSON){s.processData=false}if(s.type==="PATCH"&&window.ActiveXObject&&!(window.external&&window.external.msActiveXFilteringEnabled)){s.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var o=i.xhr=a.ajax(h.extend(s,i));e.trigger("request",e,o,i);return o};var k={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};a.ajax=function(){return a.$.ajax.apply(a.$,arguments)};var S=a.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var $=/\((.*?)\)/g;var T=/(\(\?)?:\w+/g;var H=/\*\w+/g;var A=/[\-{}\[\]+?.,\\\^$|#\s]/g;h.extend(S.prototype,o,{initialize:function(){},route:function(t,e,i){if(!h.isRegExp(t))t=this._routeToRegExp(t);if(h.isFunction(e)){i=e;e=""}if(!i)i=this[e];var r=this;a.history.route(t,function(s){var n=r._extractParameters(t,s);i&&i.apply(r,n);r.trigger.apply(r,["route:"+e].concat(n));r.trigger("route",e,n);a.history.trigger("route",r,e,n)});return this},navigate:function(t,e){a.history.navigate(t,e);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=h.result(this,"routes");var t,e=h.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(A,"\\$&").replace($,"(?:$1)?").replace(T,function(t,e){return e?t:"([^/]+)"}).replace(H,"(.*?)");return new RegExp("^"+t+"$")},_extractParameters:function(t,e){var i=t.exec(e).slice(1);return h.map(i,function(t){return t?decodeURIComponent(t):null})}});var I=a.History=function(){this.handlers=[];h.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var N=/^[#\/]|\s+$/g;var P=/^\/+|\/+$/g;var O=/msie [\w.]+/;var C=/\/$/;I.started=false;h.extend(I.prototype,o,{interval:50,getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=this.location.pathname;var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.substr(i.length)}else{t=this.getHash()}}return t.replace(N,"")},start:function(t){if(I.started)throw new Error("Backbone.history has already been started");I.started=true;this.options=h.extend({},{root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var e=this.getFragment();var i=document.documentMode;var r=O.exec(navigator.userAgent.toLowerCase())&&(!i||i<=7);this.root=("/"+this.root+"/").replace(P,"/");if(r&&this._wantsHashChange){this.iframe=a.$('').hide().appendTo("body")[0].contentWindow;this.navigate(e)}if(this._hasPushState){a.$(window).on("popstate",this.checkUrl)}else if(this._wantsHashChange&&"onhashchange"in window&&!r){a.$(window).on("hashchange",this.checkUrl)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=e;var s=this.location;var n=s.pathname.replace(/[^\/]$/,"$&/")===this.root;if(this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!n){this.fragment=this.getFragment(null,true);this.location.replace(this.root+this.location.search+"#"+this.fragment);return true}else if(this._wantsPushState&&this._hasPushState&&n&&s.hash){this.fragment=this.getHash().replace(N,"");this.history.replaceState({},document.title,this.root+this.fragment+s.search)}if(!this.options.silent)return this.loadUrl()},stop:function(){a.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl);clearInterval(this._checkUrlInterval);I.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getFragment(this.getHash(this.iframe))}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()||this.loadUrl(this.getHash())},loadUrl:function(t){var e=this.fragment=this.getFragment(t);var i=h.any(this.handlers,function(t){if(t.route.test(e)){t.callback(e);return true}});return i},navigate:function(t,e){if(!I.started)return false;if(!e||e===true)e={trigger:e};t=this.getFragment(t||"");if(this.fragment===t)return;this.fragment=t;var i=this.root+t;if(this._hasPushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,i)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getFragment(this.getHash(this.iframe))){if(!e.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,t,e.replace)}}else{return this.location.assign(i)}if(e.trigger)this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});a.history=new I;var j=function(t,e){var i=this;var r;if(t&&h.has(t,"constructor")){r=t.constructor}else{r=function(){return i.apply(this,arguments)}}h.extend(r,i,e);var s=function(){this.constructor=r};s.prototype=i.prototype;r.prototype=new s;if(t)h.extend(r.prototype,t);r.__super__=i.prototype;return r};d.extend=g.extend=S.extend=b.extend=I.extend=j;var U=function(){throw new Error('A "url" property or function must be specified')};var R=function(t,e){var i=e.error;e.error=function(r){if(i)i(t,r,e);t.trigger("error",t,r,e)}}}).call(this);
2 | /*
3 | //@ sourceMappingURL=backbone-min.map
4 | */
--------------------------------------------------------------------------------
/PostListr/js/lib/underscore.min.js:
--------------------------------------------------------------------------------
1 |
2 | 404 Not Found
3 |
8 |
9 |
10 |
11 | 404 Not Found
12 | nginx
13 |
14 |
15 |
--------------------------------------------------------------------------------
/PostListr/js/templates.js:
--------------------------------------------------------------------------------
1 | this["tmpl"] = this["tmpl"] || {};
2 |
3 | this["tmpl"]["templates/post.tmpl"] = function(obj) {obj || (obj = {});var __t, __p = '', __e = _.escape, __j = Array.prototype.join;function print() { __p += __j.call(arguments, '') }with (obj) {__p += '\n\n
\n '; if ( featured_image ) { ;__p += '\n
\n '; } ;__p += '\n
\n\n
\n
\n
\n
\n Posted on ' +((__t = ( new Date( date ).toDateString() )) == null ? '' : __t) +' by ' +((__t = ( author.name )) == null ? '' : __t) +' \n
\n
\n
\n\n
\n\n ';}return __p};
--------------------------------------------------------------------------------
/PostListr/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jetpack-api",
3 | "version": "0.0.0",
4 | "description": "Playing with the Jetpack JSON API",
5 | "main": "app.js",
6 | "author": "",
7 | "license": "BSD",
8 | "devDependencies": {
9 | "grunt": "~0.4.1",
10 | "grunt-contrib-jst": "~0.5.0"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/PostListr/templates/post.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <% if ( featured_image ) { %>
5 |
6 | <% } %>
7 |
8 |
9 |
10 |
11 |
14 |
15 | Posted on <%= new Date( date ).toDateString() %> by <%= author.name %>
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WordBone PressBack
2 |
3 | This repository serves to hold some ongoing demos/experiments in building applications with [Backbone.js](http://backbonejs.org) on top of [WordPress](http://wordpress.org).
4 |
5 | Let me stress: *experiments*. These are not necessarily proven best practices. If you're interested in figuring this out with us, read on!
6 |
7 | ## Projects in this repository
8 |
9 | 1. [Step By Step from WordPress & jQuery to WordPress & Backbone](https://github.com/kadamwhite/wcchi-demo#readme)
10 | * A repository demonstrating how to refactor a jQuery theme component to leverage Backbone.js for structure and eventing
11 | 2. [TodoMVC Theme](TodoMVC)
12 | * The [Backbone.js example](http://todomvc.com/architecture-examples/backbone/) from [TodoMVC](http://todomvc.com), re-envisioned as a WordPress theme (note: Still a WIP, ideally this would [sync to-do's to the WP database](https://github.com/kadamwhite/wordbone-pressback/issues/1))
13 | 3. [TwentyFuture Theme](TwentyFuture)
14 | * The [Twenty Twelve](http://twentytwelvedemo.wordpress.com/) default theme, abused to render its post content using Backbone views.
15 | 4. [PostListr](PostListr)
16 | * A small, standalone Backbone app, which will list out the last 10 entries in a WordPress.com or Jetpack JSON API-enabled blog.
17 |
--------------------------------------------------------------------------------
/TodoMVC/functions.php:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | Backbone.js • TodoMVC • WordPress
24 |
25 |
26 |
27 |
39 |
44 |
52 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/TodoMVC/js/app.js:
--------------------------------------------------------------------------------
1 | /*global $ */
2 | /*jshint unused:false */
3 | var app = app || {};
4 | var ENTER_KEY = 13;
5 |
6 | $(function () {
7 | 'use strict';
8 |
9 | // kick things off by creating the `App`
10 | new app.AppView();
11 | });
12 |
--------------------------------------------------------------------------------
/TodoMVC/js/collections/todos.js:
--------------------------------------------------------------------------------
1 | /*global Backbone */
2 | var app = app || {};
3 |
4 | (function () {
5 | 'use strict';
6 |
7 | // Todo Collection
8 | // ---------------
9 |
10 | // The collection of todos is backed by *localStorage* instead of a remote
11 | // server.
12 | var TodoList = Backbone.Collection.extend({
13 | // Reference to this collection's model.
14 | model: app.Todo,
15 |
16 | // Save all of the todo items under the `"todos"` namespace.
17 | localStorage: new Backbone.LocalStorage('todos-backbone'),
18 |
19 | // Filter down the list of all todo items that are finished.
20 | completed: function () {
21 | return this.filter(function (todo) {
22 | return todo.get('completed');
23 | });
24 | },
25 |
26 | // Filter down the list to only todo items that are still not finished.
27 | remaining: function () {
28 | return this.without.apply(this, this.completed());
29 | },
30 |
31 | // We keep the Todos in sequential order, despite being saved by unordered
32 | // GUID in the database. This generates the next order number for new items.
33 | nextOrder: function () {
34 | if (!this.length) {
35 | return 1;
36 | }
37 | return this.last().get('order') + 1;
38 | },
39 |
40 | // Todos are sorted by their original insertion order.
41 | comparator: function (todo) {
42 | return todo.get('order');
43 | }
44 | });
45 |
46 | // Create our global collection of **Todos**.
47 | app.Todos = new TodoList();
48 | })();
49 |
--------------------------------------------------------------------------------
/TodoMVC/js/models/todo.js:
--------------------------------------------------------------------------------
1 | /*global Backbone */
2 | var app = app || {};
3 |
4 | (function () {
5 | 'use strict';
6 |
7 | // Todo Model
8 | // ----------
9 |
10 | // Our basic **Todo** model has `title`, `order`, and `completed` attributes.
11 | app.Todo = Backbone.Model.extend({
12 | // Default attributes for the todo
13 | // and ensure that each todo created has `title` and `completed` keys.
14 | defaults: {
15 | title: '',
16 | completed: false
17 | },
18 |
19 | // Toggle the `completed` state of this todo item.
20 | toggle: function () {
21 | this.save({
22 | completed: !this.get('completed')
23 | });
24 | }
25 | });
26 | })();
27 |
--------------------------------------------------------------------------------
/TodoMVC/js/routers/router.js:
--------------------------------------------------------------------------------
1 | /*global Backbone */
2 | var app = app || {};
3 |
4 | (function () {
5 | 'use strict';
6 |
7 | // Todo Router
8 | // ----------
9 | var Workspace = Backbone.Router.extend({
10 | routes: {
11 | '*filter': 'setFilter'
12 | },
13 |
14 | setFilter: function (param) {
15 | // Set the current filter to be used
16 | app.TodoFilter = param || '';
17 |
18 | // Trigger a collection filter event, causing hiding/unhiding
19 | // of Todo view items
20 | app.Todos.trigger('filter');
21 | }
22 | });
23 |
24 | app.TodoRouter = new Workspace();
25 | Backbone.history.start();
26 | })();
27 |
--------------------------------------------------------------------------------
/TodoMVC/js/views/app.js:
--------------------------------------------------------------------------------
1 | /*global Backbone, jQuery, _, ENTER_KEY */
2 | var app = app || {};
3 |
4 | (function ($) {
5 | 'use strict';
6 |
7 | // The Application
8 | // ---------------
9 |
10 | // Our overall **AppView** is the top-level piece of UI.
11 | app.AppView = Backbone.View.extend({
12 |
13 | // Instead of generating a new element, bind to the existing skeleton of
14 | // the App already present in the HTML.
15 | el: '#todoapp',
16 |
17 | // Our template for the line of statistics at the bottom of the app.
18 | statsTemplate: _.template($('#stats-template').html()),
19 |
20 | // Delegated events for creating new items, and clearing completed ones.
21 | events: {
22 | 'keypress #new-todo': 'createOnEnter',
23 | 'click #clear-completed': 'clearCompleted',
24 | 'click #toggle-all': 'toggleAllComplete'
25 | },
26 |
27 | // At initialization we bind to the relevant events on the `Todos`
28 | // collection, when items are added or changed. Kick things off by
29 | // loading any preexisting todos that might be saved in *localStorage*.
30 | initialize: function () {
31 | this.allCheckbox = this.$('#toggle-all')[0];
32 | this.$input = this.$('#new-todo');
33 | this.$footer = this.$('#footer');
34 | this.$main = this.$('#main');
35 |
36 | this.listenTo(app.Todos, 'add', this.addOne);
37 | this.listenTo(app.Todos, 'reset', this.addAll);
38 | this.listenTo(app.Todos, 'change:completed', this.filterOne);
39 | this.listenTo(app.Todos, 'filter', this.filterAll);
40 | this.listenTo(app.Todos, 'all', this.render);
41 |
42 | app.Todos.fetch();
43 | },
44 |
45 | // Re-rendering the App just means refreshing the statistics -- the rest
46 | // of the app doesn't change.
47 | render: function () {
48 | var completed = app.Todos.completed().length;
49 | var remaining = app.Todos.remaining().length;
50 |
51 | if (app.Todos.length) {
52 | this.$main.show();
53 | this.$footer.show();
54 |
55 | this.$footer.html(this.statsTemplate({
56 | completed: completed,
57 | remaining: remaining
58 | }));
59 |
60 | this.$('#filters li a')
61 | .removeClass('selected')
62 | .filter('[href="#/' + (app.TodoFilter || '') + '"]')
63 | .addClass('selected');
64 | } else {
65 | this.$main.hide();
66 | this.$footer.hide();
67 | }
68 |
69 | this.allCheckbox.checked = !remaining;
70 | },
71 |
72 | // Add a single todo item to the list by creating a view for it, and
73 | // appending its element to the ``.
74 | addOne: function (todo) {
75 | var view = new app.TodoView({ model: todo });
76 | $('#todo-list').append(view.render().el);
77 | },
78 |
79 | // Add all items in the **Todos** collection at once.
80 | addAll: function () {
81 | this.$('#todo-list').html('');
82 | app.Todos.each(this.addOne, this);
83 | },
84 |
85 | filterOne: function (todo) {
86 | todo.trigger('visible');
87 | },
88 |
89 | filterAll: function () {
90 | app.Todos.each(this.filterOne, this);
91 | },
92 |
93 | // Generate the attributes for a new Todo item.
94 | newAttributes: function () {
95 | return {
96 | title: this.$input.val().trim(),
97 | order: app.Todos.nextOrder(),
98 | completed: false
99 | };
100 | },
101 |
102 | // If you hit return in the main input field, create new **Todo** model,
103 | // persisting it to *localStorage*.
104 | createOnEnter: function (e) {
105 | if (e.which !== ENTER_KEY || !this.$input.val().trim()) {
106 | return;
107 | }
108 |
109 | app.Todos.create(this.newAttributes());
110 | this.$input.val('');
111 | },
112 |
113 | // Clear all completed todo items, destroying their models.
114 | clearCompleted: function () {
115 | _.invoke(app.Todos.completed(), 'destroy');
116 | return false;
117 | },
118 |
119 | toggleAllComplete: function () {
120 | var completed = this.allCheckbox.checked;
121 |
122 | app.Todos.each(function (todo) {
123 | todo.save({
124 | 'completed': completed
125 | });
126 | });
127 | }
128 | });
129 | })(jQuery);
130 |
--------------------------------------------------------------------------------
/TodoMVC/js/views/todos.js:
--------------------------------------------------------------------------------
1 | /*global Backbone, jQuery, _, ENTER_KEY */
2 | var app = app || {};
3 |
4 | (function ($) {
5 | 'use strict';
6 |
7 | // Todo Item View
8 | // --------------
9 |
10 | // The DOM element for a todo item...
11 | app.TodoView = Backbone.View.extend({
12 | //... is a list tag.
13 | tagName: 'li',
14 |
15 | // Cache the template function for a single item.
16 | template: _.template($('#item-template').html()),
17 |
18 | // The DOM events specific to an item.
19 | events: {
20 | 'click .toggle': 'toggleCompleted',
21 | 'dblclick label': 'edit',
22 | 'click .destroy': 'clear',
23 | 'keypress .edit': 'updateOnEnter',
24 | 'blur .edit': 'close'
25 | },
26 |
27 | // The TodoView listens for changes to its model, re-rendering. Since there's
28 | // a one-to-one correspondence between a **Todo** and a **TodoView** in this
29 | // app, we set a direct reference on the model for convenience.
30 | initialize: function () {
31 | this.listenTo(this.model, 'change', this.render);
32 | this.listenTo(this.model, 'destroy', this.remove);
33 | this.listenTo(this.model, 'visible', this.toggleVisible);
34 | },
35 |
36 | // Re-render the titles of the todo item.
37 | render: function () {
38 | this.$el.html(this.template(this.model.toJSON()));
39 | this.$el.toggleClass('completed', this.model.get('completed'));
40 | this.toggleVisible();
41 | this.$input = this.$('.edit');
42 | return this;
43 | },
44 |
45 | toggleVisible: function () {
46 | this.$el.toggleClass('hidden', this.isHidden());
47 | },
48 |
49 | isHidden: function () {
50 | var isCompleted = this.model.get('completed');
51 | return (// hidden cases only
52 | (!isCompleted && app.TodoFilter === 'completed') ||
53 | (isCompleted && app.TodoFilter === 'active')
54 | );
55 | },
56 |
57 | // Toggle the `"completed"` state of the model.
58 | toggleCompleted: function () {
59 | this.model.toggle();
60 | },
61 |
62 | // Switch this view into `"editing"` mode, displaying the input field.
63 | edit: function () {
64 | this.$el.addClass('editing');
65 | this.$input.focus();
66 | },
67 |
68 | // Close the `"editing"` mode, saving changes to the todo.
69 | close: function () {
70 | var value = this.$input.val().trim();
71 |
72 | if (value) {
73 | this.model.save({ title: value });
74 | } else {
75 | this.clear();
76 | }
77 |
78 | this.$el.removeClass('editing');
79 | },
80 |
81 | // If you hit `enter`, we're through editing the item.
82 | updateOnEnter: function (e) {
83 | if (e.which === ENTER_KEY) {
84 | this.close();
85 | }
86 | },
87 |
88 | // Remove the item, destroy the model from *localStorage* and delete its view.
89 | clear: function () {
90 | this.model.destroy();
91 | }
92 | });
93 | })(jQuery);
94 |
--------------------------------------------------------------------------------
/TodoMVC/lib/backbone.localStorage/backbone.localStorage.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Backbone localStorage Adapter
3 | * Version 1.1.0
4 | *
5 | * https://github.com/jeromegn/Backbone.localStorage
6 | */
7 | (function (root, factory) {
8 | if (typeof define === "function" && define.amd) {
9 | // AMD. Register as an anonymous module.
10 | define(["underscore","backbone"], function(_, Backbone) {
11 | // Use global variables if the locals is undefined.
12 | return factory(_ || root._, Backbone || root.Backbone);
13 | });
14 | } else {
15 | // RequireJS isn't being used. Assume underscore and backbone is loaded in
30 |
31 |
32 |
33 |
34 | >
35 |
36 |
53 |
54 |
--------------------------------------------------------------------------------
/TwentyFuture/image.php:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
>
20 |
45 |
46 |
47 |
48 |
49 |
50 | $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ) );
56 | foreach ( $attachments as $k => $attachment ) :
57 | if ( $attachment->ID == $post->ID )
58 | break;
59 | endforeach;
60 |
61 | $k++;
62 | // If there is more than 1 attachment in a gallery
63 | if ( count( $attachments ) > 1 ) :
64 | if ( isset( $attachments[ $k ] ) ) :
65 | // get the URL of the next image attachment
66 | $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID );
67 | else :
68 | // or get the URL of the first image attachment
69 | $next_attachment_url = get_attachment_link( $attachments[ 0 ]->ID );
70 | endif;
71 | else :
72 | // or, if there's only 1 image, get the URL of the image
73 | $next_attachment_url = wp_get_attachment_url();
74 | endif;
75 | ?>
76 |
ID, $attachment_size );
79 | ?>
80 |
81 | post_excerpt ) ) : ?>
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 | '
' . __( 'Pages:', 'twentytwelve' ), 'after' => '
' ) ); ?>
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
--------------------------------------------------------------------------------
/TwentyFuture/inc/custom-header.php:
--------------------------------------------------------------------------------
1 | '444',
25 | 'default-image' => '',
26 |
27 | // Set height and width, with a maximum value for the width.
28 | 'height' => 250,
29 | 'width' => 960,
30 | 'max-width' => 2000,
31 |
32 | // Support flexible height and width.
33 | 'flex-height' => true,
34 | 'flex-width' => true,
35 |
36 | // Random image rotation off by default.
37 | 'random-default' => false,
38 |
39 | // Callbacks for styling the header and the admin preview.
40 | 'wp-head-callback' => 'twentytwelve_header_style',
41 | 'admin-head-callback' => 'twentytwelve_admin_header_style',
42 | 'admin-preview-callback' => 'twentytwelve_admin_header_image',
43 | );
44 |
45 | add_theme_support( 'custom-header', $args );
46 | }
47 | add_action( 'after_setup_theme', 'twentytwelve_custom_header_setup' );
48 |
49 | /**
50 | * Styles the header text displayed on the blog.
51 | *
52 | * get_header_textcolor() options: 444 is default, hide text (returns 'blank'), or any hex value.
53 | *
54 | * @since Twenty Twelve 1.0
55 | */
56 | function twentytwelve_header_style() {
57 | $text_color = get_header_textcolor();
58 |
59 | // If no custom options for text are set, let's bail
60 | if ( $text_color == get_theme_support( 'custom-header', 'default-text-color' ) )
61 | return;
62 |
63 | // If we get this far, we have custom styles.
64 | ?>
65 |
86 | Header admin panel.
91 | *
92 | * @since Twenty Twelve 1.0
93 | */
94 | function twentytwelve_admin_header_style() {
95 | ?>
96 |
125 | Header admin panel.
130 | * This callback overrides the default markup displayed there.
131 | *
132 | * @since Twenty Twelve 1.0
133 | */
134 | function twentytwelve_admin_header_image() {
135 | ?>
136 |
137 |
143 |
144 |
>
145 |
147 |
148 |
149 |
150 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
35 |
38 |
39 |
40 |
Get started here.', 'twentytwelve' ), admin_url( 'post-new.php' ) ); ?>
41 |
42 |
43 |
46 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/TwentyFuture/js/html5.js:
--------------------------------------------------------------------------------
1 | /*! HTML5 Shiv v3.6 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */
2 | /* Source: https://github.com/aFarkas/html5shiv */
3 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
4 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x";
5 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="
";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");
6 | var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,
7 | b){a||(a=f);if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d
0;
59 |
60 | if ( queryExists ) {
61 | return href.replace( /\?/, '?json=1&' );
62 | }
63 |
64 | return href + '?json=1';
65 | }
66 |
67 | });
68 |
69 | return models;
70 |
71 | } )( jQuery, Backbone, this.app );
--------------------------------------------------------------------------------
/TwentyFuture/js/src/views.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Views for rendering posts
3 | *
4 | * Contains the Backbone views for each type of content and post format
5 | */
6 |
7 | var app = app || {};
8 |
9 | app.views = ( function( $, Backbone, tmpl, app, undefined ) {
10 | 'use strict';
11 |
12 | var views = {};
13 |
14 | views.Page = Backbone.View.extend({
15 |
16 | template: tmpl['content.tmpl'],
17 |
18 | render: function() {
19 | this.$el.html( this.template( this.model ) );
20 | return this;
21 | }
22 |
23 | });
24 |
25 | views.PostList = Backbone.View.extend({
26 |
27 | render: function() {
28 | var $postList = this.$el;
29 |
30 | this.collection.each(function( post ) {
31 | var postView = new views.Page({
32 | model: post
33 | });
34 |
35 | postView.render().$el.appendTo( $postList );
36 | });
37 |
38 | return this;
39 | },
40 |
41 | initialize: function() {
42 | this.collection.on( 'sync', _.bind( this.render, this ) );
43 | }
44 |
45 | });
46 |
47 | return views;
48 |
49 | } )( jQuery, Backbone, this.tmpl, this.app );
--------------------------------------------------------------------------------
/TwentyFuture/js/templates.js:
--------------------------------------------------------------------------------
1 | this["tmpl"] = this["tmpl"] || {};
2 |
3 | this["tmpl"]["content.tmpl"] = function(obj) {obj || (obj = {});var __t, __p = '', __e = _.escape, __j = Array.prototype.join;function print() { __p += __j.call(arguments, '') }with (obj) {__p += '\n\t\n\n\t\n\t\t' +((__t = ( get('content') )) == null ? '' : __t) +'\n\t
\n\n\t\n \n';}return __p};
--------------------------------------------------------------------------------
/TwentyFuture/js/theme-customizer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Theme Customizer enhancements for a better user experience.
3 | *
4 | * Contains handlers to make Theme Customizer preview reload changes asynchronously.
5 | * Things like site title, description, and background color changes.
6 | */
7 |
8 | ( function( $ ) {
9 | // Site title and description.
10 | wp.customize( 'blogname', function( value ) {
11 | value.bind( function( to ) {
12 | $( '.site-title a' ).html( to );
13 | } );
14 | } );
15 | wp.customize( 'blogdescription', function( value ) {
16 | value.bind( function( to ) {
17 | $( '.site-description' ).html( to );
18 | } );
19 | } );
20 |
21 | // Hook into background color change and adjust body class value as needed.
22 | wp.customize( 'background_color', function( value ) {
23 | value.bind( function( to ) {
24 | if ( '#ffffff' == to || '#fff' == to )
25 | $( 'body' ).addClass( 'custom-background-white' );
26 | else if ( '' == to )
27 | $( 'body' ).addClass( 'custom-background-empty' );
28 | else
29 | $( 'body' ).removeClass( 'custom-background-empty custom-background-white' );
30 | } );
31 | } );
32 | } )( jQuery );
--------------------------------------------------------------------------------
/TwentyFuture/languages/twentytwelve.pot:
--------------------------------------------------------------------------------
1 | # Copyright (C) 2012 the WordPress team
2 | # This file is distributed under the GNU General Public License v2 or later.
3 | msgid ""
4 | msgstr ""
5 | "Project-Id-Version: Twenty Twelve 1.0\n"
6 | "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n"
7 | "POT-Creation-Date: 2012-12-03 21:18:55+00:00\n"
8 | "MIME-Version: 1.0\n"
9 | "Content-Type: text/plain; charset=UTF-8\n"
10 | "Content-Transfer-Encoding: 8bit\n"
11 | "PO-Revision-Date: 2012-MO-DA HO:MI+ZONE\n"
12 | "Last-Translator: FULL NAME \n"
13 | "Language-Team: LANGUAGE \n"
14 |
15 | #: 404.php:17
16 | msgid "This is somewhat embarrassing, isn’t it?"
17 | msgstr ""
18 |
19 | #: 404.php:21
20 | msgid ""
21 | "It seems we can’t find what you’re looking for. Perhaps "
22 | "searching can help."
23 | msgstr ""
24 |
25 | #: archive.php:29
26 | msgid "Daily Archives: %s"
27 | msgstr ""
28 |
29 | #: archive.php:31
30 | msgid "Monthly Archives: %s"
31 | msgstr ""
32 |
33 | #: archive.php:31
34 | msgctxt "monthly archives date format"
35 | msgid "F Y"
36 | msgstr ""
37 |
38 | #: archive.php:33
39 | msgid "Yearly Archives: %s"
40 | msgstr ""
41 |
42 | #: archive.php:33
43 | msgctxt "yearly archives date format"
44 | msgid "Y"
45 | msgstr ""
46 |
47 | #: archive.php:35
48 | msgid "Archives"
49 | msgstr ""
50 |
51 | #: author.php:32
52 | msgid "Author Archives: %s"
53 | msgstr ""
54 |
55 | #: author.php:53 content.php:53
56 | msgid "About %s"
57 | msgstr ""
58 |
59 | #: category.php:21
60 | msgid "Category Archives: %s"
61 | msgstr ""
62 |
63 | #: comments.php:31
64 | msgid "One thought on “%2$s”"
65 | msgid_plural "%1$s thoughts on “%2$s”"
66 | msgstr[0] ""
67 | msgstr[1] ""
68 |
69 | #: comments.php:42
70 | msgid "Comment navigation"
71 | msgstr ""
72 |
73 | #: comments.php:43
74 | msgid "← Older Comments"
75 | msgstr ""
76 |
77 | #: comments.php:44
78 | msgid "Newer Comments →"
79 | msgstr ""
80 |
81 | #: comments.php:53
82 | msgid "Comments are closed."
83 | msgstr ""
84 |
85 | #: content-aside.php:13 content-aside.php:20 content-image.php:17
86 | #: content-link.php:18 content-quote.php:17 content-status.php:15
87 | #: content.php:23
88 | msgid "Permalink to %s"
89 | msgstr ""
90 |
91 | #: content-aside.php:15 content-image.php:13 content-link.php:14
92 | #: content-quote.php:13 content-status.php:21 content.php:39
93 | msgid "Continue reading → "
94 | msgstr ""
95 |
96 | #: content-aside.php:23 content-image.php:23 content-link.php:21
97 | #: content-quote.php:20 content-status.php:27 content.php:28
98 | msgid "Leave a reply"
99 | msgstr ""
100 |
101 | #: content-aside.php:23 content-image.php:23 content-link.php:21
102 | #: content-quote.php:20 content-status.php:27 content.php:28
103 | msgid "1 Reply"
104 | msgstr ""
105 |
106 | #: content-aside.php:23 content-image.php:23 content-link.php:21
107 | #: content-quote.php:20 content-status.php:27 content.php:28
108 | msgid "% Replies"
109 | msgstr ""
110 |
111 | #: content-aside.php:26 content-image.php:26 content-link.php:24
112 | #: content-page.php:21 content-quote.php:23 content-status.php:30
113 | #: content.php:46 functions.php:309 image.php:37
114 | msgid "Edit"
115 | msgstr ""
116 |
117 | #: content-link.php:12
118 | msgid "Link"
119 | msgstr ""
120 |
121 | #: content-none.php:13 index.php:49 search.php:34
122 | msgid "Nothing Found"
123 | msgstr ""
124 |
125 | #: content-none.php:17 index.php:53
126 | msgid ""
127 | "Apologies, but no results were found. Perhaps searching will help find a "
128 | "related post."
129 | msgstr ""
130 |
131 | #: content-page.php:18 content.php:40 image.php:92
132 | msgid "Pages:"
133 | msgstr ""
134 |
135 | #: content.php:14
136 | msgid "Featured post"
137 | msgstr ""
138 |
139 | #: content.php:57
140 | msgid "View all posts by %s → "
141 | msgstr ""
142 |
143 | #. #-#-#-#-# twentytwelve.pot (Twenty Twelve 1.0) #-#-#-#-#
144 | #. Author URI of the plugin/theme
145 | #: footer.php:17
146 | msgid "http://wordpress.org/"
147 | msgstr ""
148 |
149 | #: footer.php:17
150 | msgid "Semantic Personal Publishing Platform"
151 | msgstr ""
152 |
153 | #: footer.php:17
154 | msgid "Proudly powered by %s"
155 | msgstr ""
156 |
157 | #: functions.php:64
158 | msgid "Primary Menu"
159 | msgstr ""
160 |
161 | #. translators: If there are characters in your language that are not supported
162 | #. by Open Sans, translate this to 'off'. Do not translate into your own
163 | #. language.
164 | #: functions.php:120
165 | msgctxt "Open Sans font: on or off"
166 | msgid "on"
167 | msgstr ""
168 |
169 | #. translators: To add an additional Open Sans character subset specific to
170 | #. your language, translate
171 | #. this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your
172 | #. own language.
173 | #: functions.php:125
174 | msgctxt "Open Sans font: add new subset (greek, cyrillic, vietnamese)"
175 | msgid "no-subset"
176 | msgstr ""
177 |
178 | #: functions.php:181
179 | msgid "Page %s"
180 | msgstr ""
181 |
182 | #: functions.php:206
183 | msgid "Main Sidebar"
184 | msgstr ""
185 |
186 | #: functions.php:208
187 | msgid ""
188 | "Appears on posts and pages except the optional Front Page template, which "
189 | "has its own widgets"
190 | msgstr ""
191 |
192 | #: functions.php:216
193 | msgid "First Front Page Widget Area"
194 | msgstr ""
195 |
196 | #: functions.php:218 functions.php:228
197 | msgid ""
198 | "Appears when using the optional Front Page template with a page set as "
199 | "Static Front Page"
200 | msgstr ""
201 |
202 | #: functions.php:226
203 | msgid "Second Front Page Widget Area"
204 | msgstr ""
205 |
206 | #: functions.php:250 single.php:20
207 | msgid "Post navigation"
208 | msgstr ""
209 |
210 | #: functions.php:251
211 | msgid "← Older posts"
212 | msgstr ""
213 |
214 | #: functions.php:252
215 | msgid "Newer posts → "
216 | msgstr ""
217 |
218 | #: functions.php:277
219 | msgid "Pingback:"
220 | msgstr ""
221 |
222 | #: functions.php:277
223 | msgid "(Edit)"
224 | msgstr ""
225 |
226 | #: functions.php:292
227 | msgid "Post author"
228 | msgstr ""
229 |
230 | #. translators: 1: date, 2: time
231 | #: functions.php:298
232 | msgid "%1$s at %2$s"
233 | msgstr ""
234 |
235 | #: functions.php:304
236 | msgid "Your comment is awaiting moderation."
237 | msgstr ""
238 |
239 | #: functions.php:313
240 | msgid "Reply"
241 | msgstr ""
242 |
243 | #: functions.php:332 functions.php:335
244 | msgid ", "
245 | msgstr ""
246 |
247 | #: functions.php:346
248 | msgid "View all posts by %s"
249 | msgstr ""
250 |
251 | #: functions.php:352
252 | msgid ""
253 | "This entry was posted in %1$s and tagged %2$s on %3$s by %4$s ."
255 | msgstr ""
256 |
257 | #: functions.php:354
258 | msgid ""
259 | "This entry was posted in %1$s on %3$s by %4$s"
260 | "span>."
261 | msgstr ""
262 |
263 | #: functions.php:356
264 | msgid "This entry was posted on %3$s by %4$s ."
265 | msgstr ""
266 |
267 | #: header.php:43
268 | msgid "Menu"
269 | msgstr ""
270 |
271 | #: header.php:44
272 | msgid "Skip to content"
273 | msgstr ""
274 |
275 | #: image.php:26
276 | msgid ""
277 | "Published %2$s "
279 | "span> at %4$s × %5"
280 | "$s in %8$s ."
281 | msgstr ""
282 |
283 | #: image.php:41
284 | msgid "← Previous"
285 | msgstr ""
286 |
287 | #: image.php:42
288 | msgid "Next →"
289 | msgstr ""
290 |
291 | #: index.php:38
292 | msgid "No posts to display"
293 | msgstr ""
294 |
295 | #: index.php:42
296 | msgid "Ready to publish your first post? Get started here ."
297 | msgstr ""
298 |
299 | #: search.php:18
300 | msgid "Search Results for: %s"
301 | msgstr ""
302 |
303 | #: search.php:38
304 | msgid ""
305 | "Sorry, but nothing matched your search criteria. Please try again with some "
306 | "different keywords."
307 | msgstr ""
308 |
309 | #: single.php:21
310 | msgctxt "Previous post link"
311 | msgid "←"
312 | msgstr ""
313 |
314 | #: single.php:22
315 | msgctxt "Next post link"
316 | msgid "→"
317 | msgstr ""
318 |
319 | #: tag.php:21
320 | msgid "Tag Archives: %s"
321 | msgstr ""
322 |
323 | #. Theme Name of the plugin/theme
324 | msgid "Twenty Twelve"
325 | msgstr ""
326 |
327 | #. Theme URI of the plugin/theme
328 | msgid "http://wordpress.org/extend/themes/twentytwelve"
329 | msgstr ""
330 |
331 | #. Description of the plugin/theme
332 | msgid ""
333 | "The 2012 theme for WordPress is a fully responsive theme that looks great on "
334 | "any device. Features include a front page template with its own widgets, an "
335 | "optional display font, styling for post formats on both index and single "
336 | "views, and an optional no-sidebar page template. Make it yours with a custom "
337 | "menu, header image, and background."
338 | msgstr ""
339 |
340 | #. Author of the plugin/theme
341 | msgid "the WordPress team"
342 | msgstr ""
343 |
344 | #. Template Name of the plugin/theme
345 | msgid "Front Page Template"
346 | msgstr ""
347 |
348 | #. Template Name of the plugin/theme
349 | msgid "Full-width Page Template, No Sidebar"
350 | msgstr ""
351 |
--------------------------------------------------------------------------------
/TwentyFuture/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "twentyfuture",
3 | "version": "0.0.0",
4 | "description": "Twenty Twelve, rendered in Backbone",
5 | "author": "K.Adam White",
6 | "license": "BSD",
7 | "devDependencies": {
8 | "grunt": "~0.4.1",
9 | "grunt-contrib-jshint": "~0.6.0",
10 | "grunt-contrib-jst": "~0.5.0",
11 | "grunt-contrib-concat": "~0.3.0",
12 | "grunt-contrib-watch": "~0.4.4"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/TwentyFuture/page-templates/front-page.php:
--------------------------------------------------------------------------------
1 |
16 |
17 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/TwentyFuture/page-templates/full-width.php:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/TwentyFuture/page.php:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TwentyFuture/rtl.css:
--------------------------------------------------------------------------------
1 | /*
2 | Theme Name: Twenty Twelve
3 | Description: Adds support for languages written in a Right To Left (RTL) direction.
4 | It's easy, just a matter of overwriting all the horizontal positioning attributes
5 | of your CSS stylesheet in a separate stylesheet file named rtl.css.
6 |
7 | See http://codex.wordpress.org/Right_to_Left_Language_Support
8 | */
9 |
10 |
11 | body {
12 | direction: rtl;
13 | unicode-bidi: embed;
14 | }
15 | caption,
16 | th,
17 | td {
18 | text-align: right;
19 | }
20 |
21 | /* =Repeatable patterns
22 | -------------------------------------------------------------- */
23 |
24 | /* Images */
25 | .site-content .gallery-columns-4 .gallery-item {
26 | padding-left: 2%;
27 | padding-right: 0;
28 | }
29 | .site-content .gallery-columns-5 .gallery-item {
30 | padding-left: 2%;
31 | padding-right: 0;
32 | }
33 |
34 | /* Navigation */
35 | .nav-previous,
36 | .previous-image {
37 | float: right;
38 | }
39 | .nav-next,
40 | .next-image {
41 | float: left;
42 | text-align: left;
43 | }
44 |
45 | /* Author profiles */
46 | .author-avatar {
47 | float: right;
48 | }
49 | .author-description {
50 | float: right;
51 | margin-right: 15px;
52 | margin-right: 1.071428571rem;
53 | margin-left: auto;
54 | }
55 |
56 |
57 | /* =Main Content
58 | ----------------------------------------------- */
59 |
60 | .comment-content ol,
61 | .comment-content ul {
62 | margin: 0 24px 0 0;
63 | margin: 0 1.714285714rem 0 0;
64 | }
65 |
66 |
67 | /* =Basic post styling
68 | -------------------------------------------------------------- */
69 |
70 | .entry-content li,
71 | .comment-content li {
72 | margin: 0 24px 0 0;
73 | margin: 0 1.714285714rem 0 0;
74 | }
75 | .entry-content td,
76 | .comment-content td {
77 | padding: 6px 0 6px 10px;
78 | }
79 |
80 |
81 | /* Aside posts */
82 | article.format-aside .aside {
83 | border-right: 22px solid #a8bfe8;
84 | border-left: none;
85 | }
86 |
87 | /* Link posts */
88 | article.format-link header {
89 | float: left;
90 | }
91 | article.format-link .entry-content {
92 | float: right;
93 | }
94 |
95 | /* Status posts */
96 | .format-status .entry-header img {
97 | float: right;
98 | margin-left: 21px;
99 | margin-left: 1.5rem;
100 | margin-right: 0;
101 | }
102 |
103 |
104 | /* =Comment styling
105 | -------------------------------------------------------------- */
106 |
107 | .comments-area article header img {
108 | float: right;
109 | }
110 | .comments-area article header cite,
111 | .comments-area article header time {
112 | margin-right: 85px;
113 | margin-right: 6.071428571rem;
114 | margin-left: auto;
115 | }
116 | .comments-area article header h4 {
117 | left: 0;
118 | right: auto;
119 | }
120 | .comments-area li.bypostauthor cite span {
121 | margin-right: 5px;
122 | margin-right: 0.357142857rem;
123 | margin-left: auto;
124 | }
125 |
126 | /* Comment form */
127 | #respond h3#reply-title #cancel-comment-reply-link {
128 | margin-right: 10px;
129 | margin-right: 0.714285714rem;
130 | margin-left: auto;
131 | }
132 | label ~ span.required {
133 | float: right;
134 | margin: -18px -16px 0 0;
135 | margin: -1.285714286rem -1.142857143rem 0 0;
136 | }
137 |
138 |
139 | /* =Front page template styling
140 | -------------------------------------------------------------- */
141 |
142 | .template-front-page .widget-area .widget_text img {
143 | float: right;
144 | margin: 8px 0 8px 24px;
145 | margin: 0.571428571rem 0 0.571428571rem 1.714285714rem;
146 | }
147 |
148 |
149 | /* =Widget styling
150 | -------------------------------------------------------------- */
151 |
152 | .widget-area .widget ul ul {
153 | margin-right: 12px;
154 | margin-right: 0.857142857rem;
155 | margin-left: auto;
156 | }
157 | .widget-area .textwidget li {
158 | margin-left: auto;
159 | margin-right: 36px;
160 | margin-right: 2.571428571rem;
161 | }
162 | .widget_recent_entries .post-date,
163 | .widget_rss .rss-date {
164 | margin-right: 12px;
165 | margin-right: 0.857142857rem;
166 | margin-left: auto;
167 | }
168 | #wp-calendar th,
169 | #wp-calendar td,
170 | #wp-calendar caption {
171 | text-align: right;
172 | }
173 | #wp-calendar #next {
174 | padding-left: 24px;
175 | padding-left: 1.714285714rem;
176 | text-align: left;
177 | padding-right: 0;
178 | }
179 |
180 | /* =Media queries
181 | -------------------------------------------------------------- */
182 |
183 | /* Minimum width of 600 pixels. */
184 | @media screen and (min-width: 600px) {
185 | .site-content,
186 | .template-front-page.has-post-thumbnail article {
187 | float: right;
188 | }
189 | .widget-area,
190 | .entry-page-image {
191 | float: left;
192 | }
193 | .site-header h1,
194 | .site-header h2 {
195 | text-align: right;
196 | }
197 | .template-front-page .widget-area .widget_text img {
198 | float: right;
199 | margin: 8px 0 8px 24px;
200 | }
201 | .template-front-page .widget-area .widget,
202 | .template-front-page.two-sidebars .widget-area .front-widgets {
203 | float: right;
204 | }
205 | .template-front-page .widget-area .widget:nth-child(odd) {
206 | clear: left;
207 | }
208 | .template-front-page .widget-area .widget:nth-child(even),
209 | .template-front-page.two-sidebars .widget-area .front-widgets + .front-widgets {
210 | float: left;
211 | margin: 0 24px 0;
212 | margin: 0 1.714285714rem 0;
213 | }
214 | .main-navigation ul.nav-menu,
215 | .main-navigation div.nav-menu > ul {
216 | text-align: right;
217 | }
218 | .main-navigation li {
219 | margin-left: 40px;
220 | margin-left: 2.857142857rem;
221 | margin-right: auto;
222 | }
223 | .main-navigation li ul ul {
224 | margin-right: 0;
225 | right: 100%;
226 | left: auto;
227 | }
228 | .main-navigation ul li:hover > ul {
229 | border-right: 0;
230 | border-left: none;
231 | }
232 | .commentlist .children {
233 | margin-right: 48px;
234 | margin-right: 3.428571429rem;
235 | margin-left: auto;
236 | }
237 | }
--------------------------------------------------------------------------------
/TwentyFuture/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kadamwhite/wordbone-pressback/f2b668145815a75e1163dd58166ee5b17a96e0ad/TwentyFuture/screenshot.png
--------------------------------------------------------------------------------
/TwentyFuture/search.php:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
34 |
35 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/TwentyFuture/sidebar-front.php:
--------------------------------------------------------------------------------
1 |
23 |
--------------------------------------------------------------------------------
/TwentyFuture/sidebar.php:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/TwentyFuture/single.php:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | ' . _x( '←', 'Previous post link', 'twentytwelve' ) . ' %title' ); ?>
22 | ' . _x( '→', 'Next post link', 'twentytwelve' ) . ' ' ); ?>
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/TwentyFuture/tag.php:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
27 |
28 |
29 |
30 |
31 | twentytwelve_content_nav( 'nav-below' );
32 | ?>
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/json-api-demo/content.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 | <%= get('content') %>
23 |
24 |
25 |
34 |
35 |
--------------------------------------------------------------------------------
/json-api-demo/helpers.js:
--------------------------------------------------------------------------------
1 | var humanReadableDate = function( dateValue ) {
2 | var date, day, month, year, monthNames;
3 |
4 | monthNames = [
5 | 'January',
6 | 'February',
7 | 'March',
8 | 'April',
9 | 'May',
10 | 'June',
11 | 'July',
12 | 'August',
13 | 'September',
14 | 'October',
15 | 'November',
16 | 'December'
17 | ];
18 |
19 | date = new Date( dateValue );
20 |
21 | day = date.getDate();
22 | month = monthNames[ date.getMonth() ];
23 | year = date.getFullYear();
24 |
25 | return month + ' ' + day + ', ' + year;
26 | }
27 |
28 | var TEMPLATE_URL = '/wp-content/plugins/wcbos/content.tmpl';
29 |
30 |
31 | /*
32 |
33 | // Paste these in order to remove
34 | // and re-render the content area
35 |
36 | jQuery.get(TEMPLATE_URL).then(function(tmpl) {
37 | window.renderPost = _.template( tmpl );
38 | });
39 |
40 | window.posts = new wp.api.collections.Posts();
41 |
42 | var postList = new app.views.PostList({
43 | el: jQuery('#content'),
44 | collection: posts
45 | });
46 |
47 | jQuery('#content').empty();
48 |
49 | posts.fetch();
50 |
51 | */
52 |
--------------------------------------------------------------------------------
/json-api-demo/views.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Views for rendering posts
3 | *
4 | * Contains the Backbone views for each type of content and post format
5 | */
6 |
7 | var app = app || {};
8 |
9 | app.views = ( function( $, Backbone, tmpl, app, undefined ) {
10 | 'use strict';
11 |
12 | var views = {};
13 |
14 | views.Post = Backbone.View.extend({
15 |
16 | render: function() {
17 | this.$el.html( renderPost( this.model ) );
18 | return this;
19 | }
20 |
21 | });
22 |
23 | views.PostList = Backbone.View.extend({
24 |
25 | render: function() {
26 | var $postList = this.$el;
27 |
28 | this.collection.each(function( post ) {
29 | var postView = new views.Post({
30 | model: post
31 | });
32 |
33 | postView.render().$el.appendTo( $postList );
34 | });
35 |
36 | return this;
37 | },
38 |
39 | initialize: function() {
40 | this.collection.on( 'sync', _.bind( this.render, this ) );
41 | }
42 |
43 | });
44 |
45 | return views;
46 |
47 | } )( jQuery, Backbone, this.tmpl, this.app );
--------------------------------------------------------------------------------
/json-api-demo/wcbos.php:
--------------------------------------------------------------------------------
1 |