├── .gitignore ├── languages ├── hy.mo ├── cs_CZ.mo ├── de_DE.mo ├── default.mo ├── es_ES.mo ├── fr_FR.mo ├── id_ID.mo ├── it_IT.mo ├── mn_MN.mo ├── nl_NL.mo ├── pt_BR.mo ├── ru_RU.mo ├── tr_TR.mo └── zh_CN.mo ├── screenshot.png ├── fonts └── genericons-neue │ ├── Genericons-Neue.eot │ ├── Genericons-Neue.ttf │ └── Genericons-Neue.woff2 ├── css ├── customizer.css.php ├── jetpack-infinite-scroll-dark-overlay-fix.css ├── wp-fullscreen-title.css ├── wp-pagenavi.css └── nprogress.css ├── js ├── keyboard-image-navigation.js ├── skip-link-focus-fix.js ├── fade-post-title.js ├── enhanced-comment-form.js └── theme-customizer.js ├── sass ├── ip2 │ ├── navigation │ │ ├── _comment.scss │ │ ├── _posts.scss │ │ ├── _navigation.scss │ │ ├── _mobile-menu.scss │ │ ├── _post.scss │ │ └── _menu.scss │ ├── _accessibility.scss │ ├── _media.scss │ ├── _clearings.scss │ ├── _infinite-scroll.scss │ ├── layout │ │ ├── _hero-header.scss │ │ └── _post-author-card.scss │ ├── _galleries.scss │ ├── _widgets.scss │ ├── _forms.scss │ ├── _typography.scss │ ├── _normalize.scss │ ├── _queries.scss │ └── _comments.scss ├── default │ ├── _navigation.scss │ ├── _widgets.scss │ ├── _accessibility.scss │ ├── _links.scss │ ├── _menu.scss │ ├── _media.scss │ ├── _reset.scss │ ├── _galleries.scss │ ├── _content.scss │ ├── _post-formats.scss │ ├── _global.scss │ ├── _comments.scss │ └── _queries.scss ├── default.scss └── ip2.scss ├── inc ├── jetpack.php ├── custom-logo.php ├── mf2.php └── plugin-support.php ├── template-parts ├── author-bio.php ├── content-none.php ├── content-page.php ├── content.php └── content-single.php ├── searchform.php ├── originalofform.php ├── readme.txt ├── single.php ├── package.json ├── page.php ├── hcard.php ├── footer.php ├── sidebar.php ├── no-results.php ├── style.css ├── composer.json ├── search.php ├── index.php ├── archive.php ├── author.php ├── 404.php ├── Gruntfile.js ├── page_one-column-template.php ├── header.php ├── page_archive-template.php ├── phpcs.xml ├── comments.php ├── image.php ├── editor-style.css └── functions.php /.gitignore: -------------------------------------------------------------------------------- 1 | sass/.sass-cache/* 2 | vendor/* 3 | composer.lock 4 | node_modules/* 5 | -------------------------------------------------------------------------------- /languages/hy.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/hy.mo -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/screenshot.png -------------------------------------------------------------------------------- /languages/cs_CZ.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/cs_CZ.mo -------------------------------------------------------------------------------- /languages/de_DE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/de_DE.mo -------------------------------------------------------------------------------- /languages/default.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/default.mo -------------------------------------------------------------------------------- /languages/es_ES.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/es_ES.mo -------------------------------------------------------------------------------- /languages/fr_FR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/fr_FR.mo -------------------------------------------------------------------------------- /languages/id_ID.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/id_ID.mo -------------------------------------------------------------------------------- /languages/it_IT.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/it_IT.mo -------------------------------------------------------------------------------- /languages/mn_MN.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/mn_MN.mo -------------------------------------------------------------------------------- /languages/nl_NL.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/nl_NL.mo -------------------------------------------------------------------------------- /languages/pt_BR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/pt_BR.mo -------------------------------------------------------------------------------- /languages/ru_RU.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/ru_RU.mo -------------------------------------------------------------------------------- /languages/tr_TR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/tr_TR.mo -------------------------------------------------------------------------------- /languages/zh_CN.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/languages/zh_CN.mo -------------------------------------------------------------------------------- /fonts/genericons-neue/Genericons-Neue.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/fonts/genericons-neue/Genericons-Neue.eot -------------------------------------------------------------------------------- /fonts/genericons-neue/Genericons-Neue.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/fonts/genericons-neue/Genericons-Neue.ttf -------------------------------------------------------------------------------- /fonts/genericons-neue/Genericons-Neue.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dshanske/indieweb-publisher/HEAD/fonts/genericons-neue/Genericons-Neue.woff2 -------------------------------------------------------------------------------- /css/customizer.css.php: -------------------------------------------------------------------------------- 1 | li.comment:last-child { 11 | padding-bottom: 1.75em; 12 | border-bottom-width: 1px; 13 | } 14 | 15 | .comments-area #comment-nav-above + .comment-list > li.comment:last-child .reply { 16 | margin-bottom: 0; 17 | } 18 | 19 | #comment-nav-below { 20 | padding-top: .21875em; 21 | } 22 | -------------------------------------------------------------------------------- /inc/jetpack.php: -------------------------------------------------------------------------------- 1 | 'main', 18 | 'footer' => 'page', 19 | ) 20 | ); 21 | } 22 | 23 | add_action( 'after_setup_theme', 'indieweb_publisher_jetpack_setup' ); 24 | add_filter( 'infinite_scroll_credit', 'indieweb_publisher_footer_credits' ); 25 | -------------------------------------------------------------------------------- /sass/default/_navigation.scss: -------------------------------------------------------------------------------- 1 | .site-content .posts-navigation { 2 | overflow: hidden; 3 | /* margin: 0 0 1.5em; */ 4 | } 5 | 6 | .site-content .nav-previous, 7 | .site-navigation .previous-image { 8 | float: left; 9 | } 10 | 11 | .site-content .nav-next, 12 | .posts-navigation .next-image { 13 | float: right; 14 | text-align: right; 15 | } 16 | 17 | .single .posts-navigation { 18 | margin-top: 40px; 19 | } 20 | 21 | #nav-below { 22 | margin-top: 3em; 23 | } 24 | 25 | #nav-above { 26 | padding-bottom: 1em; 27 | padding-top: 1em; 28 | margin-top: 0; 29 | border-bottom: none; 30 | } 31 | 32 | #image-navigation { 33 | margin-bottom: 20px; 34 | } 35 | -------------------------------------------------------------------------------- /sass/default/_widgets.scss: -------------------------------------------------------------------------------- 1 | /* =Footer Widget */ 2 | .footer-widget { 3 | margin: 1.75em 0 0; 4 | padding: 1.75em 0 0; 5 | } 6 | 7 | .footer-widget .widget-area { 8 | width: 100%; 9 | margin: 0 auto 3.5em; 10 | } 11 | 12 | .widget, 13 | .widget_twitter ul li, 14 | .widget_rss ul li { 15 | margin: 0 0 4em; 16 | } 17 | 18 | /* Search widget */ 19 | .widget_search .submit, 20 | .original_of_widget .submit { 21 | display: none; 22 | } 23 | 24 | .widget_rss .rss-date, 25 | .widget_rss li > cite, 26 | .widget_twitter .timesince { 27 | color: #b3b3b1; 28 | display: block; 29 | font-size: 12px; 30 | } 31 | 32 | .sloc_weather_widget { 33 | .svg-icon { 34 | float:left; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /sass/ip2/navigation/_posts.scss: -------------------------------------------------------------------------------- 1 | .posts-navigation { 2 | margin-top: 1.75em; 3 | padding-top: 1.75em; 4 | border-top: solid 1px #ddd; 5 | } 6 | 7 | .infinite-scroll .posts-navigation { 8 | display: none; 9 | } 10 | 11 | .posts-navigation .nav-links a { 12 | font-size: 15px; 13 | } 14 | 15 | .posts-navigation .nav-links .nav-previous a:before, 16 | .posts-navigation .nav-links .nav-next a:after { 17 | position: relative; 18 | top: 0; 19 | } 20 | 21 | .posts-navigation .nav-links .nav-previous a:before { 22 | margin-right: .4375em; 23 | content: "\2190"; 24 | } 25 | 26 | .posts-navigation .nav-links .nav-next a:after { 27 | margin-left: .4375em; 28 | content: "\2192"; 29 | } 30 | -------------------------------------------------------------------------------- /sass/ip2/_accessibility.scss: -------------------------------------------------------------------------------- 1 | /* Text meant only for screen readers */ 2 | .screen-reader-text { 3 | position: absolute !important; 4 | overflow: hidden; 5 | clip: rect(1px, 1px, 1px, 1px); 6 | width: 1px; 7 | height: 1px; 8 | } 9 | 10 | .screen-reader-text:focus { 11 | z-index: 100000; 12 | top: 7px; 13 | right: auto; 14 | left: 5px; 15 | display: block; 16 | clip: auto !important; 17 | width: auto; 18 | height: auto; 19 | padding: 15px 23px 14px; 20 | font-size: 15px; 21 | font-weight: 700; 22 | line-height: normal; 23 | text-decoration: none; 24 | color: #21759b; 25 | outline: solid 1px; 26 | background-color: #f1f1f1; 27 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, .25); 28 | } 29 | -------------------------------------------------------------------------------- /sass/default/_accessibility.scss: -------------------------------------------------------------------------------- 1 | /* Text meant only for screen readers */ 2 | .screen-reader-text { 3 | clip: rect(1px, 1px, 1px, 1px); 4 | position: absolute !important; 5 | } 6 | 7 | .screen-reader-text:hover, 8 | .screen-reader-text:active, 9 | .screen-reader-text:focus { 10 | background-color: #f1f1f1; 11 | border-radius: 3px; 12 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); 13 | clip: auto !important; 14 | color: #21759b; 15 | display: block; 16 | font-size: 14px; 17 | font-weight: bold; 18 | height: auto; 19 | left: 5px; 20 | line-height: normal; 21 | padding: 15px 23px 14px; 22 | text-decoration: none; 23 | top: 5px; 24 | width: auto; 25 | z-index: 100000; /* Above WP toolbar */ 26 | } 27 | -------------------------------------------------------------------------------- /template-parts/author-bio.php: -------------------------------------------------------------------------------- 1 | 9 |
10 |
11 | 12 |
13 | 14 |
15 |

16 | 17 | 18 | 19 |

20 |
21 | 22 |
23 | -------------------------------------------------------------------------------- /searchform.php: -------------------------------------------------------------------------------- 1 | 9 | 14 | -------------------------------------------------------------------------------- /originalofform.php: -------------------------------------------------------------------------------- 1 | 8 | 13 | -------------------------------------------------------------------------------- /js/skip-link-focus-fix.js: -------------------------------------------------------------------------------- 1 | ( function() { 2 | var is_webkit = navigator.userAgent.toLowerCase().indexOf( 'webkit' ) > -1, 3 | is_opera = navigator.userAgent.toLowerCase().indexOf( 'opera' ) > -1, 4 | is_ie = navigator.userAgent.toLowerCase().indexOf( 'msie' ) > -1; 5 | 6 | if ( ( is_webkit || is_opera || is_ie ) && 'undefined' !== typeof( document.getElementById ) ) { 7 | var eventMethod = ( window.addEventListener ) ? 'addEventListener' : 'attachEvent'; 8 | window[ eventMethod ]( 'hashchange', function() { 9 | var element = document.getElementById( location.hash.substring( 1 ) ); 10 | 11 | if ( element ) { 12 | if ( ! /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) 13 | element.tabIndex = -1; 14 | 15 | element.focus(); 16 | } 17 | }, false ); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | Indieweb Publisher is a beautiful reader-focused WordPress theme, for you. 2 | 3 | Changelog 4 | 5 | = 1.0 = 6 | 7 | Initial Release of Fork 8 | 9 | * Remove Social Menu as this should be added by plugin 10 | * Add option to show time 11 | * Add option to hide category display 12 | * Custom header was being used as logo. Switched to custom logo feature as more approrpiate and removed setting that would replace this if not set with admin image 13 | * Add support for displaying Syndication Links and Simple Location data 14 | * Add link in footer to privacy policy if set 15 | * Add support for archive title and description filters added in Core 16 | * Add support for Core title management 17 | * Disable Post Formats if Post Kinds are enabled 18 | * Remove Genericons and Replace with Genericons Neue which removes social icons 19 | * Do not show word count if 0 20 | 21 | -------------------------------------------------------------------------------- /js/fade-post-title.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Fade the title on scroll if post has "Post Cover Title Style" 3 | */ 4 | jQuery(function($) { 5 | var post_title = $('.post-cover-title'), 6 | post_title_wrapper = $('.post-cover-title-wrapper'); 7 | 8 | if($('body').hasClass('post-cover-overlay-post-title')) { 9 | $(window).on('scroll', function() { 10 | var st = $(this).scrollTop(), 11 | post_title_wrapper_height = post_title_wrapper.height(), 12 | post_title_height = post_title.height(), 13 | post_title_padding = ( post_title.innerHeight() - post_title_height) / 2; 14 | 15 | post_title.css({ 16 | 'margin-bottom' : -(st/post_title_wrapper_height) * post_title_padding +"px", 17 | 'opacity' : 1 - st/post_title_wrapper_height 18 | }); 19 | }); 20 | } 21 | }); -------------------------------------------------------------------------------- /sass/default/_links.scss: -------------------------------------------------------------------------------- 1 | a { 2 | color: #57ad68; 3 | text-decoration: none; 4 | } 5 | 6 | a:visited { 7 | color: #57ad68; 8 | text-decoration: none; 9 | } 10 | 11 | a:hover, 12 | a:focus, 13 | a:active { 14 | color: #57ad68; 15 | text-decoration: underline; 16 | } 17 | 18 | /* Alignment */ 19 | .alignleft { 20 | display: inline; 21 | float: left; 22 | margin-right: 1.5em; 23 | } 24 | 25 | .alignright { 26 | display: inline; 27 | float: right; 28 | margin-left: 1.5em; 29 | } 30 | 31 | .aligncenter { 32 | display: block; 33 | clear: both; 34 | margin: 0 auto; 35 | } 36 | 37 | img.alignleft { 38 | margin: 5px 20px 10px 0; 39 | } 40 | 41 | img.alignright { 42 | margin: 5px 0 10px 20px; 43 | } 44 | 45 | img.aligncenter { 46 | margin: 5px auto 10px; 47 | } 48 | 49 | .permalink::before { 50 | font-family: "Genericons-Neue"; 51 | content: '\f107'; 52 | position: relative; 53 | top: 0; 54 | } 55 | -------------------------------------------------------------------------------- /css/wp-pagenavi.css: -------------------------------------------------------------------------------- 1 | /** 2 | * When the WP-PageNavi plugin is active, this CSS improves how the navigation items look. 3 | */ 4 | .wp-pagenavi { 5 | text-align:center; 6 | } 7 | 8 | .wp-pagenavi span.current { 9 | border-color: #C3C3C3; 10 | } 11 | 12 | .wp-pagenavi span { 13 | padding: 7px 5px 7px 5px; 14 | } 15 | 16 | .wp-pagenavi .page, 17 | .wp-pagenavi .current, 18 | .wp-pagenavi .nextpostslink, 19 | .wp-pagenavi .previouspostslink, 20 | .wp-pagenavi .extend, 21 | .wp-pagenavi .last, 22 | .wp-pagenavi .first { 23 | background-color:#FFF; 24 | color : #000; 25 | display: inline-block; 26 | padding:4px 9px; 27 | margin:0 1px; 28 | min-width: 10px; 29 | } 30 | 31 | .wp-pagenavi .current, 32 | .wp-pagenavi a:hover, 33 | .wp-pagenavi a:focus, 34 | .wp-pagenavi a:active { 35 | transition: background-color 0.1s linear; 36 | text-decoration: none; 37 | background-color:#E2E2E2; 38 | border-color: #E2E2E2; 39 | } 40 | -------------------------------------------------------------------------------- /sass/ip2/_media.scss: -------------------------------------------------------------------------------- 1 | .page-content .wp-smiley, 2 | .entry-content .wp-smiley, 3 | .comment-content .wp-smiley { 4 | margin-top: 0; 5 | margin-bottom: 0; 6 | padding: 0; 7 | border: none; 8 | } 9 | 10 | .wp-caption { 11 | max-width: 100%; 12 | margin-bottom: 1.75em; 13 | } 14 | 15 | .wp-caption.aligncenter, 16 | .wp-caption.alignleft, 17 | .wp-caption.alignright { 18 | margin-bottom: 1.75em; 19 | } 20 | 21 | .wp-caption img { 22 | display: block; 23 | max-width: 98%; 24 | margin: 5px auto 0; 25 | } 26 | 27 | .wp-caption-text, 28 | .wp-caption-dd { 29 | clear: both; 30 | font-size: 75%; 31 | font-weight: 400; 32 | font-style: italic; 33 | text-align: center; 34 | color: #939393; 35 | width: 100%; 36 | } 37 | 38 | .wp-caption-text strong, 39 | .wp-caption-dd strong { 40 | color: #454545; 41 | } 42 | 43 | .wp-caption .wp-caption-text, 44 | .wp-caption .wp-caption-dd { 45 | margin: .875em 0; 46 | } 47 | 48 | /* Make sure embeds and iframes fit their containers */ 49 | embed, 50 | iframe, 51 | object { 52 | max-width: 100%; 53 | } 54 | -------------------------------------------------------------------------------- /single.php: -------------------------------------------------------------------------------- 1 | 10 | 11 |
12 |
13 | 14 | 18 | 19 | 20 | 21 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
35 | 36 |
37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /sass/ip2/_clearings.scss: -------------------------------------------------------------------------------- 1 | .entry-author:before, 2 | .comment-author:before, 3 | .site-branding:before, 4 | .entry-content:before, 5 | .entry-footer:before, 6 | .site-logo:before, 7 | .gallery:before, 8 | .nav-links:before, 9 | .post-tags:before, 10 | .content-wrapper:before, 11 | .jetpack-social-navigation:before, 12 | .site-content:before, 13 | .footer-widgets:before, 14 | .entry-author:after, 15 | .comment-author:after, 16 | .site-branding:after, 17 | .entry-content:after, 18 | .entry-footer:after, 19 | .site-logo:after, 20 | .gallery:after, 21 | .nav-links:after, 22 | .post-tags:after, 23 | .content-wrapper:after, 24 | .jetpack-social-navigation:after, 25 | .site-content:after, 26 | .footer-widgets:after { 27 | display: table; 28 | content: " "; 29 | } 30 | 31 | .entry-author:after, 32 | .comment-author:after, 33 | .site-branding:after, 34 | .entry-content:after, 35 | .entry-footer:after, 36 | .site-logo:after, 37 | .gallery:after, 38 | .nav-links:after, 39 | .post-tags:after, 40 | .content-wrapper:after, 41 | .jetpack-social-navigation:after, 42 | .site-content:after, 43 | .footer-widgets:after { 44 | clear: both; 45 | } 46 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "indieweb-publisher", 3 | "version": "1.0.0", 4 | "description": "Indieweb Feb of Independent Publisher Theme", 5 | "main": "index.php", 6 | "dependencies": {}, 7 | "devDependencies": { 8 | "genericons-neue": "^4.0.5", 9 | "grunt": "^1.0.3", 10 | "grunt-contrib-copy": "^1.0.0", 11 | "grunt-contrib-sass": "^1.0.0", 12 | "grunt-stylelint": "^0.10.1", 13 | "grunt-wp-i18n": "^1.0.3", 14 | "grunt-wp-readme-to-markdown": "^2.0.1", 15 | "stylelint": "^9.9.0", 16 | "stylelint-config-wordpress": "^13.1.0", 17 | "stylelint-scss": "^3.4.4" 18 | }, 19 | "scripts": { 20 | "test": "echo \"Error: no test specified\" && exit 1" 21 | }, 22 | "repository": { 23 | "type": "git", 24 | "url": "git+https://github.com/dshanske/indieweb-publisher.git" 25 | }, 26 | "keywords": [ 27 | "wordpress", 28 | "indieweb" 29 | ], 30 | "author": "David Shanske", 31 | "license": "GPL-2.0", 32 | "bugs": { 33 | "url": "https://github.com/dshanske/indieweb-publisher/issues" 34 | }, 35 | "homepage": "https://github.com/dshanske/indieweb-publisher" 36 | } 37 | -------------------------------------------------------------------------------- /sass/ip2/navigation/_navigation.scss: -------------------------------------------------------------------------------- 1 | .site-content .nav-previous { 2 | float: left; 3 | } 4 | 5 | .site-content .nav-next { 6 | float: right; 7 | text-align: right; 8 | } 9 | 10 | /*-------------------------------------------------------------- 11 | ## Mobile Menu Button 12 | --------------------------------------------------------------*/ 13 | 14 | @import "mobile-menu"; 15 | 16 | /*-------------------------------------------------------------- 17 | ## - Posts Navigation 18 | --------------------------------------------------------------*/ 19 | 20 | @import "posts"; 21 | 22 | /*-------------------------------------------------------------- 23 | ## - Post Navigation 24 | --------------------------------------------------------------*/ 25 | 26 | @import "post"; 27 | 28 | /*-------------------------------------------------------------- 29 | ## Comment Navigation 30 | --------------------------------------------------------------*/ 31 | 32 | @import "comment"; 33 | 34 | 35 | /*-------------------------------------------------------------- 36 | ## Menu Navigation 37 | --------------------------------------------------------------*/ 38 | 39 | @import "menu"; 40 | -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
17 |
18 | 19 | 23 | 24 | 25 | 26 | 32 | 33 | 34 | 35 |
36 | 37 |
38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /hcard.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 |
17 |
18 | 19 | 23 | 24 | true, 30 | ) 31 | ); 32 | } else { 33 | indieweb_publisher_posted_author_card(); 34 | } 35 | ?> 36 |
37 | 38 |
> 39 | ', '' ); ?> 40 |
41 |
42 | 43 | 44 | 45 | 46 |
47 | 48 |
49 | 50 | 54 | -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 14 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /sass/ip2/navigation/_mobile-menu.scss: -------------------------------------------------------------------------------- 1 | .menu-toggle { 2 | margin: 0 auto; 3 | display: block; 4 | padding: .4375em .875em; 5 | -webkit-transition: background 200ms ease-in-out, box-shadow 200ms ease-in-out, color 200ms ease-in-out; 6 | transition: background 200ms ease-in-out, box-shadow 200ms ease-in-out, color 200ms ease-in-out; 7 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif; 8 | font-size: 17px; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: #a4a4a4; 12 | border: solid 2px currentColor; 13 | border-radius: 4px; 14 | background: none; 15 | 16 | -webkit-font-smoothing: antialiased; 17 | } 18 | 19 | .menu-toggle:hover, 20 | .menu-toggle:focus, 21 | .menu-toggle:active { 22 | text-decoration: none; 23 | color: #7e7f80; 24 | outline: 0; 25 | background: transparent; 26 | } 27 | 28 | .menu-toggle:focus, 29 | .menu-toggle:active { 30 | box-shadow: 0 0 0 6px rgba(187, 199, 211, .17); 31 | } 32 | 33 | .toggled .menu-toggle:before { 34 | top: 3px; 35 | position: relative; 36 | content: "\f405"; 37 | font-family: Genericons; 38 | line-height: .65; 39 | margin-right: 3px; 40 | font-size: 16px; 41 | -webkit-transform: scale(1.5); 42 | -ms-transform: scale(1.5); 43 | transform: scale(1.5); 44 | } 45 | -------------------------------------------------------------------------------- /sidebar.php: -------------------------------------------------------------------------------- 1 | 11 | 39 | -------------------------------------------------------------------------------- /template-parts/content-none.php: -------------------------------------------------------------------------------- 1 | 10 | 11 |
12 | 15 | 16 | 17 |
18 | 19 | 20 |

Get started here.', 'independent-publisher' ), esc_url( admin_url( 'post-new.php' ) ) ); ?>

21 | 22 | 23 | 24 |

25 | 26 | 27 | 30 | 31 |

32 | 33 | 34 | 35 |
36 | 37 |
38 | -------------------------------------------------------------------------------- /sass/ip2/_infinite-scroll.scss: -------------------------------------------------------------------------------- 1 | /* Globally hidden elements when Infinite Scroll is supported and in use. */ 2 | .infinite-scroll .posts-navigation, 3 | .infinite-scroll.neverending .site-footer { 4 | /* Theme Footer (when set to scrolling) */ 5 | display: none; 6 | } 7 | 8 | /* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */ 9 | .infinity-end.neverending .site-footer { 10 | display: block; 11 | } 12 | 13 | .infinite-loader { 14 | margin-top: 2.05em; 15 | } 16 | 17 | #content #infinite-handle { 18 | margin-top: 1.75em; 19 | } 20 | 21 | #content #infinite-handle span { 22 | padding: 0; 23 | background: none; 24 | } 25 | 26 | #content #infinite-handle span button { 27 | line-height: 1; 28 | outline: 0; 29 | } 30 | 31 | #infinite-footer .container { 32 | padding: 0; 33 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif; 34 | font-size: 12px; 35 | color: #a5a5a5; 36 | border: 0; 37 | } 38 | #infinite-footer .blog-info a, 39 | #infinite-footer .blog-credits, 40 | #infinite-footer .blog-credits a { 41 | font-size: 12px; 42 | color: #a5a5a5; 43 | } 44 | #infinite-footer .blog-info a:hover, 45 | #infinite-footer .blog-credits a:hover { 46 | text-decoration: none; 47 | } 48 | -------------------------------------------------------------------------------- /sass/default/_menu.scss: -------------------------------------------------------------------------------- 1 | .main-navigation { 2 | display: block; 3 | float: left; 4 | clear: both; 5 | width: 100%; 6 | } 7 | 8 | .main-navigation ul { 9 | margin: 0; 10 | padding-left: 0; 11 | list-style: none; 12 | } 13 | 14 | .main-navigation li { 15 | position: relative; 16 | } 17 | 18 | .main-navigation a { 19 | text-decoration: none; 20 | font-size: 15px; 21 | font-family: "Myriad Pro", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; 22 | } 23 | 24 | .main-navigation ul ul { 25 | position: absolute; 26 | top: 1.5em; 27 | left: 0; 28 | z-index: 99999; 29 | display: none; 30 | float: left; 31 | -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2); 32 | -moz-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2); 33 | box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2); 34 | } 35 | 36 | .main-navigation ul ul ul { 37 | top: 0; 38 | left: 100%; 39 | } 40 | 41 | .main-navigation ul ul a { 42 | width: 200px; 43 | } 44 | 45 | .main-navigation ul ul li { 46 | } 47 | 48 | .main-navigation li:hover > a { 49 | text-decoration: underline; 50 | } 51 | 52 | .main-navigation ul ul :hover > a { 53 | } 54 | 55 | .main-navigation ul ul a:hover { 56 | } 57 | 58 | .main-navigation ul li:hover > ul { 59 | display: block; 60 | } 61 | 62 | .main-navigation li.current_page_item a, 63 | .main-navigation li.current-menu-item a { 64 | } 65 | -------------------------------------------------------------------------------- /no-results.php: -------------------------------------------------------------------------------- 1 | 11 | 12 |
13 |
14 |

15 |
16 | 17 | 18 |
19 | 20 | 21 |

Get started here.', 'indieweb-publisher' ), admin_url( 'post-new.php' ) ); ?>

22 | 23 | 24 | 25 |

26 | 27 | 28 | 31 | 32 |

33 | 34 | 35 | 36 |
37 | 38 |
39 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: Indieweb Publisher 3 | Theme URI: https://github.com/dshanske/indieweb-publisher 4 | Author: David Shanske 5 | Author URI: https://david.shanske.com 6 | Description: Indieweb Publisher is an Indieweb fork of Independent Publisher by Raam Dev 7 | Version: 1.0 8 | License: GNU GPLv3 9 | License URI: http://www.gnu.org/copyleft/gpl.html 10 | Tags: one-column, two-columns, left-sidebar, featured-images, full-width-template, custom-menu, custom-background, custom-colors, custom-menu, editor-style, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready, theme-options 11 | Text Domain: indieweb-publisher 12 | GitHub Theme URI: dshanske/indieweb-publisher 13 | 14 | Indieweb Publisher is a fork of the excellent Independent Publisher theme, by Raam Dev. The theme had not been updated since 2017 and the developer has not been active. 15 | This not only updates the theme with new features, it adds support for Indieweb plugins, adjusts the Microformats 2 markup, and more. 16 | 17 | Genericons Neue icon font (http://genericons.com/) is bundled. 18 | Genericons is distributed under the terms of the GNU GPL. 19 | 20 | NProgress (https://github.com/rstacruz/nprogress) is bundled for use in the progress bar feature. 21 | NProgress (c) 2013, Rico Sta. Cruz. Released under the MIT License. 22 | 23 | Based on _s http://underscores.me 24 | and inspired by the Publish theme by Konstantin Kovshenin http://kovshenin.com/themes/publish 25 | 26 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dshanske/iw26", 3 | "description": "Indieweb Publisher Theme for WordPress", 4 | "type": "wordpress-theme", 5 | "license": "GPLv2 or later", 6 | "authors": [ 7 | { 8 | "name": "David Shanske", 9 | "email": "david@shanske.com" 10 | } 11 | ], 12 | "extra": { 13 | }, 14 | "require": { 15 | "php": ">=5.3.0", 16 | "composer/installers": "~1.0" 17 | }, 18 | "require-dev": { 19 | "dealerdirect/phpcodesniffer-composer-installer": "*", 20 | "squizlabs/php_codesniffer": "*", 21 | "phpcompatibility/php-compatibility": "*", 22 | "wp-coding-standards/wpcs": "*", 23 | "phpcompatibility/phpcompatibility-wp": "*", 24 | "php-parallel-lint/php-parallel-lint": "^1.2", 25 | "wp-cli/i18n-command": "^2.2", 26 | "sebastian/phpcpd": "^5.0", 27 | "wptrt/wpthemereview": "^0.2.1" 28 | }, 29 | "scripts": { 30 | "lint:phpcpd": "./vendor/bin/phpcpd --fuzzy --exclude .git --exclude vendor --exclude node_modules .", 31 | "lint:wpcs": "./vendor/bin/phpcs", 32 | "lint:wpcs-fix": "./vendor/bin/phpcbf", 33 | "make-pot": "./vendor/bin/wp i18n make-pot . languages/indieweb-publisher.pot", 34 | "lint:php": "@php ./vendor/bin/parallel-lint --exclude .git --exclude vendor --exclude node_modules .", 35 | "install-codestandards": [ 36 | "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin::run" 37 | ] 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | 10 | 11 |
12 |
13 | 14 | 15 | 16 | 17 | 18 | 23 | 24 | 25 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
43 | 44 |
45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /sass/default/_media.scss: -------------------------------------------------------------------------------- 1 | .site-header img, 2 | article > section img, 3 | .entry-summary img, 4 | .comment-content img, 5 | .widget img { 6 | max-width: 100%; /* Fluid images for posts, comments, and widgets */ 7 | } 8 | 9 | .site-header img, 10 | article > section img, 11 | .entry-summary img, 12 | .widget img, 13 | img[class*="align"], 14 | img[class*="wp-image-"] { 15 | height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ 16 | } 17 | 18 | .site-header img, 19 | article > section img, 20 | .entry-summary img, 21 | img.size-full { 22 | max-width: 100%; 23 | width: auto\9; /* Prevent stretching of full-size images with height and width attributes in IE8 */ 24 | } 25 | 26 | article > section img.wp-smiley, 27 | .entry-summary img.wp-smiley, 28 | .comment-content img.wp-smiley { 29 | margin-top: 0; 30 | margin-bottom: 0; 31 | padding: 0; 32 | border: none; 33 | } 34 | 35 | .wp-caption { 36 | max-width: 100%; 37 | border: 1px solid #ccc; 38 | margin-bottom: 1.5em; 39 | } 40 | 41 | .wp-caption.aligncenter, 42 | .wp-caption.alignleft, 43 | .wp-caption.alignright { 44 | margin-bottom: 1.5em; 45 | } 46 | 47 | .wp-caption img { 48 | display: block; 49 | margin: 5px auto 0; 50 | max-width: 98%; 51 | } 52 | 53 | .wp-caption-text { 54 | text-align: center; 55 | font-size: 80%; 56 | } 57 | 58 | .wp-caption .wp-caption-text { 59 | margin: 0.8075em 0; 60 | } 61 | 62 | /* Make sure embeds and iframes fit their containers */ 63 | embed, 64 | iframe, 65 | object { 66 | max-width: 100%; 67 | } 68 | -------------------------------------------------------------------------------- /sass/ip2/layout/_hero-header.scss: -------------------------------------------------------------------------------- 1 | .has-header-image #hero-header { 2 | position: relative; 3 | padding: 5vh 1.75em; 4 | } 5 | 6 | .has-header-image #hero-header:before { 7 | position: absolute; 8 | z-index: 1; 9 | top: 0; 10 | left: 0; 11 | display: block; 12 | width: 100%; 13 | height: 100%; 14 | content: "\020"; 15 | background: -webkit-linear-gradient(rgba(0, 0, 0, .15) 50%, rgba(0, 0, 0, .45)); 16 | background: linear-gradient(rgba(0, 0, 0, .15) 50%, rgba(0, 0, 0, .45)); 17 | box-shadow: 0 -1px 8px rgba(0, 0, 0, .2) inset; 18 | } 19 | 20 | .has-header-image #hero-header .inner { 21 | position: relative; 22 | z-index: 2; 23 | max-width: 740px; 24 | margin: 0 auto; 25 | padding-top: .875em; 26 | text-align: center; 27 | word-wrap: break-word; 28 | color: white; 29 | } 30 | 31 | .has-header-image #hero-header .site-title { 32 | color: white; 33 | } 34 | 35 | .has-header-image #hero-header .site-description { 36 | color: rgba(255, 255, 255, .84); 37 | } 38 | 39 | .has-header-image #hero-header .site-logo-link img { 40 | -webkit-transition: box-shadow 200ms ease; 41 | transition: box-shadow 200ms ease; 42 | outline: 0; 43 | } 44 | 45 | .has-header-image #hero-header .site-logo-link:focus img, 46 | .has-header-image #hero-header .site-logo-link:active img { 47 | box-shadow: 0 0 0 7px rgba(255, 255, 255, .22); 48 | } 49 | 50 | .has-header-image #hero-header .jetpack-social-navigation ul.menu li a { 51 | padding: 0 0; 52 | color: rgba(255, 255, 255, .85); 53 | } 54 | 55 | .has-header-image #hero-header .jetpack-social-navigation ul.menu li a:hover { 56 | color: white; 57 | } 58 | -------------------------------------------------------------------------------- /inc/custom-logo.php: -------------------------------------------------------------------------------- 1 | 100, 23 | 'height' => 100, 24 | 'flex-width' => true, 25 | 'flex-height' => true, 26 | 'header-text' => false, 27 | ); 28 | 29 | $args = apply_filters( 'indieweb_publisher_custom_header_args', $args ); 30 | 31 | add_theme_support( 'custom-logo', $args ); 32 | 33 | } 34 | 35 | add_action( 'after_setup_theme', 'indieweb_publisher_custom_logo_setup' ); 36 | 37 | function indieweb_publisher_author_logo() { 38 | $author_id = get_option( 'iw_default_author', get_option( 'admin_email' ) ); 39 | printf( 40 | '', 41 | esc_url( home_url( '/' ) ), 42 | get_avatar( 43 | $author_id, 44 | 100, 45 | '404', 46 | '', 47 | array( 48 | 'class' => array( 'custom-logo' ), 49 | 'extra-attr' => array( 50 | 'itemprop' => 'logo', 51 | ), 52 | ) 53 | ) 54 | ); 55 | } 56 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 16 | 17 |
18 |
19 | 20 | 21 | 22 | 23 | 27 | 28 | 37 | 38 | 39 | 40 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 | 52 |
53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /archive.php: -------------------------------------------------------------------------------- 1 | 12 | 13 |
14 |
15 | 16 | 17 | 18 | 24 | 25 | 26 | 30 | 31 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 | 52 |
53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /sass/ip2/navigation/_post.scss: -------------------------------------------------------------------------------- 1 | .post-navigation { 2 | margin-top: 2.675em; 3 | padding: .4375em 0; 4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif; 5 | border-bottom: solid 1px #ddd; 6 | border-top: solid 1px #ddd; 7 | } 8 | 9 | .post-navigation .nav-links { 10 | font-size: 15px; 11 | } 12 | 13 | .post-navigation .nav-links a { 14 | display: inline-block; 15 | padding: .21875em 0; 16 | -webkit-transition: color 140ms ease-in-out; 17 | transition: color 140ms ease-in-out; 18 | font-weight: normal; 19 | vertical-align: middle; 20 | color: #b6b6b4; 21 | } 22 | 23 | .post-navigation .nav-links a:hover, 24 | .post-navigation .nav-links a:focus, 25 | .post-navigation .nav-links a:active { 26 | text-decoration: none; 27 | color: #747471; 28 | } 29 | 30 | .post-navigation .nav-links .nav-previous a:before, 31 | .post-navigation .nav-links .nav-next a:after { 32 | position: relative; 33 | display: inline-block; 34 | margin: 0; 35 | font-family: "Genericons"; 36 | vertical-align: middle; 37 | -webkit-font-smoothing: antialiased; 38 | -moz-osx-font-smoothing: grayscale; 39 | } 40 | 41 | .post-navigation .nav-links .nav-previous { 42 | clear: both; 43 | margin: 0 0 0 -.21875em; 44 | width: 100%; 45 | } 46 | 47 | .post-navigation .nav-links .nav-previous a:before { 48 | margin-right: .21875em; 49 | content: "\f431"; 50 | -webkit-transform: rotate(90deg); 51 | -ms-transform: rotate(90deg); 52 | transform: rotate(90deg); 53 | } 54 | 55 | .post-navigation .nav-links .nav-next { 56 | margin: 0 -.21875em 0 0; 57 | } 58 | 59 | .post-navigation .nav-links .nav-next a:after { 60 | margin-left: .21875em; 61 | content: "\f432"; 62 | -webkit-transform: rotate(90deg); 63 | -ms-transform: rotate(90deg); 64 | transform: rotate(90deg); 65 | } 66 | -------------------------------------------------------------------------------- /sass/ip2/layout/_post-author-card.scss: -------------------------------------------------------------------------------- 1 | .entry-author-wrapper { 2 | position: relative; 3 | margin: 1.75em 0 0; 4 | padding: 1.75em 0 0; 5 | } 6 | 7 | .entry-author .author-avatar { 8 | position: relative; 9 | z-index: 2; 10 | display: block; 11 | float: right; 12 | margin-left: .875em; 13 | width: 80px; 14 | } 15 | 16 | .entry-author .author-avatar img { 17 | position: relative; 18 | display: block; 19 | float: right; 20 | width: 80px; 21 | height: auto; 22 | border-radius: 80px; 23 | } 24 | .entry-author .author-title { 25 | clear: none; 26 | margin: 0; 27 | font-size: 19px; 28 | font-weight: 700; 29 | line-height: 1.4; 30 | color: #333332; 31 | } 32 | 33 | .entry-author .author-bio, 34 | .entry-author .author-heading { 35 | position: relative; 36 | z-index: 1; 37 | display: block; 38 | clear: none; 39 | box-sizing: border-box; 40 | } 41 | 42 | .entry-author .author-bio { 43 | margin-top: 0; 44 | font-size: 15px; 45 | font-style: italic; 46 | color: #929292; 47 | } 48 | 49 | .site-posted-on { 50 | position: relative; 51 | display: none; 52 | margin-left: 100px; 53 | } 54 | 55 | .site-posted-on strong { 56 | display: block; 57 | clear: right; 58 | margin: 1.75em 0 0; 59 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif; 60 | font-size: 15px; 61 | font-weight: 700; 62 | font-style: normal; 63 | line-height: 1.4; 64 | color: #333332; 65 | } 66 | 67 | .site-posted-on time { 68 | display: block; 69 | margin: 0; 70 | font-family: Georgia, "Times New Roman", serif; 71 | font-size: 15px; 72 | font-weight: inherit; 73 | font-style: normal; 74 | line-height: 2; 75 | color: #929292; 76 | } 77 | 78 | .site-posted-on time.updated:not(.published) { 79 | display: none; 80 | } 81 | 82 | .site-posted-on strong { 83 | margin-top: 0; 84 | } 85 | 86 | .site-posted-on:before { 87 | display: none; 88 | } 89 | -------------------------------------------------------------------------------- /author.php: -------------------------------------------------------------------------------- 1 | 12 | 13 |
14 |
15 | 16 | 17 | 18 | 28 | 29 |
30 |

' . get_the_author() . '' ); ?>

31 |
32 | 33 | 41 | 42 | 43 | 44 | 45 | 49 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 | 62 |
63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /css/nprogress.css: -------------------------------------------------------------------------------- 1 | /* Make clicks pass-through */ 2 | #nprogress { 3 | pointer-events: none; 4 | } 5 | 6 | #nprogress .bar { 7 | background: #57ad68; 8 | 9 | position: fixed; 10 | z-index: 1031; 11 | top: 0; 12 | left: 0; 13 | 14 | width: 100%; 15 | height: 2px; 16 | } 17 | 18 | /** 19 | * Move progress bar down when WordPress Admin Bar is loaded 20 | */ 21 | .admin-bar #nprogress .bar { 22 | top: 32px; 23 | } 24 | 25 | /** 26 | * Move progress bar down 46px and disable fancy blur effect 27 | * when extra-thick WordPress Admin Bar is loaded 28 | */ 29 | @media only screen and (max-width: 800px) { 30 | .admin-bar #nprogress .bar { 31 | top: 46px; 32 | } 33 | 34 | .admin-bar #nprogress .peg { 35 | display: none; 36 | } 37 | 38 | } 39 | 40 | /* Fancy blur effect */ 41 | #nprogress .peg { 42 | display: block; 43 | position: absolute; 44 | right: 0px; 45 | width: 100px; 46 | height: 100%; 47 | box-shadow: 0 0 10px #57ad68, 0 0 5px #57ad68; 48 | opacity: 1.0; 49 | 50 | -webkit-transform: rotate(3deg) translate(0px, -4px); 51 | -ms-transform: rotate(3deg) translate(0px, -4px); 52 | transform: rotate(3deg) translate(0px, -4px); 53 | } 54 | 55 | /* Remove these to get rid of the spinner */ 56 | #nprogress .spinner { 57 | display: block; 58 | position: fixed; 59 | z-index: 1031; 60 | top: 15px; 61 | right: 15px; 62 | } 63 | 64 | #nprogress .spinner-icon { 65 | width: 18px; 66 | height: 18px; 67 | box-sizing: border-box; 68 | 69 | border: solid 2px transparent; 70 | border-top-color: #57ad68; 71 | border-left-color: #57ad68; 72 | border-radius: 50%; 73 | 74 | -webkit-animation: nprogress-spinner 400ms linear infinite; 75 | animation: nprogress-spinner 400ms linear infinite; 76 | } 77 | 78 | @-webkit-keyframes nprogress-spinner { 79 | 0% { -webkit-transform: rotate(0deg); } 80 | 100% { -webkit-transform: rotate(360deg); } 81 | } 82 | @keyframes nprogress-spinner { 83 | 0% { transform: rotate(0deg); } 84 | 100% { transform: rotate(360deg); } 85 | } 86 | -------------------------------------------------------------------------------- /sass/default/_reset.scss: -------------------------------------------------------------------------------- 1 | html, body, div, span, applet, object, iframe, 2 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 3 | a, abbr, acronym, address, big, cite, code, 4 | del, dfn, em, font, ins, kbd, q, s, samp, 5 | small, strike, strong, sub, sup, tt, var, 6 | dl, dt, dd, ol, ul, li, 7 | fieldset, form, label, legend, 8 | table, caption, tbody, tfoot, thead, tr, th, td { 9 | margin: 0; 10 | padding: 0; 11 | outline: 0; 12 | border: 0; 13 | vertical-align: baseline; 14 | font-weight: inherit; 15 | font-style: inherit; 16 | font-size: 100%; 17 | font-family: inherit; 18 | } 19 | 20 | html { 21 | overflow-y: scroll; /* Keeps page centred in all browsers regardless of content height */ 22 | font-size: 62.5%; /* Corrects text resizing oddly in IE6/7 when body font-size is set using em units http://clagnut.com/blog/348/#c790 */ 23 | -webkit-text-size-adjust: 100%; /* Prevents iOS text size adjust after orientation change, without disabling user zoom */ 24 | -ms-text-size-adjust: 100%; /* www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */ 25 | } 26 | 27 | body { 28 | background: #fff; 29 | } 30 | 31 | article, 32 | aside, 33 | details, 34 | figcaption, 35 | figure, 36 | footer, 37 | header, 38 | hgroup, 39 | nav, 40 | section { 41 | display: block; 42 | } 43 | 44 | ol, ul { 45 | list-style: none; 46 | } 47 | 48 | table { 49 | border-spacing: 0; /* tables still need 'cellspacing="0"' in the markup */ 50 | border-collapse: separate; 51 | } 52 | 53 | caption, th, td { 54 | text-align: left; 55 | font-weight: normal; 56 | } 57 | 58 | blockquote:before, blockquote:after, 59 | q:before, q:after { 60 | content: ""; 61 | } 62 | 63 | blockquote, q { 64 | quotes: "" ""; 65 | } 66 | 67 | a:focus { 68 | outline: thin dotted; 69 | } 70 | 71 | a:hover, 72 | a:active { 73 | /* Improves readability when focused and also mouse hovered in all browsers people.opera.com/patrickl/experiments/keyboard/test */ 74 | outline: 0; 75 | } 76 | 77 | a img { 78 | border: 0; 79 | } 80 | -------------------------------------------------------------------------------- /sass/ip2/navigation/_menu.scss: -------------------------------------------------------------------------------- 1 | .main-navigation { 2 | display: block; 3 | clear: both; 4 | width: 100%; 5 | margin: 0 auto; 6 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif; 7 | font-size: 17px; 8 | font-weight: 700; 9 | text-align: left; 10 | } 11 | .main-navigation a { 12 | display: block; 13 | padding: .20875em .4375em; 14 | text-decoration: none; 15 | -webkit-transition: color 140ms ease-in-out; 16 | transition: color 140ms ease-in-out; 17 | } 18 | .main-navigation ul { 19 | display: none; 20 | margin: 0; 21 | padding-left: 0; 22 | list-style: none; 23 | } 24 | .main-navigation li { 25 | border-top: 1px solid #ccc; 26 | position: relative; 27 | display: inline-block; 28 | margin-top: .4375em; 29 | padding-top: .4375em; 30 | line-height: 1.3; 31 | width: 100%; 32 | } 33 | .main-navigation ul:first-child > li:first-child { 34 | border-top: 0; 35 | } 36 | 37 | .main-navigation > div > ul > li.current-menu-item > a, 38 | .main-navigation > div > ul > li.current_page_item > a { 39 | color: #00aadc; 40 | } 41 | 42 | .main-navigation > div > ul > li.current-menu-item > ul > li a, 43 | .main-navigation > div > ul > li.current_page_item > ul > li a { 44 | color: #fff; 45 | } 46 | 47 | /* Small menu. */ 48 | .menu-toggle, 49 | .main-navigation.toggled ul { 50 | display: block; 51 | } 52 | 53 | .menu-toggle:before { 54 | display: inline-block; 55 | margin-right: 5px; 56 | content: "\2630"; 57 | } 58 | 59 | .main-navigation ul a { 60 | padding-left: 1.75em; 61 | padding-right: 1.75em; 62 | } 63 | 64 | .main-navigation ul ul a { 65 | padding-left: 3.5em; 66 | } 67 | 68 | .main-navigation ul ul ul a { 69 | padding-left: 5.25em; 70 | } 71 | 72 | .main-navigation ul ul ul ul a { 73 | padding-left: 7em; 74 | } 75 | 76 | .main-navigation ul ul ul ul ul a { 77 | padding-left: 8.75em; 78 | } 79 | 80 | .main-navigation ul ul ul ul ul ul a { 81 | padding-left: 10.5em; 82 | } 83 | 84 | .has-header-image .menu-toggle { 85 | color: white; 86 | border-color: white; 87 | } 88 | -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | 10 | 11 |
12 |
13 | 14 |
15 |
16 |

17 |
18 | 19 | 20 |
21 |

22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 |
35 |

36 |
    37 | 'count', 41 | 'order' => 'DESC', 42 | 'show_count' => 1, 43 | 'title_li' => '', 44 | 'number' => 10, 45 | ) 46 | ); 47 | ?> 48 |
49 |
50 | 51 | 52 | 53 | ' . sprintf( __( 'Try looking in the monthly archives. %1$s', 'indieweb-publisher' ), convert_smilies( ':)' ) ) . '

'; 56 | the_widget( 'WP_Widget_Archives', 'dropdown=1', "after_title=$archive_content" ); 57 | ?> 58 | 59 | 60 | 61 |
62 |
63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /template-parts/content-page.php: -------------------------------------------------------------------------------- 1 | 9 | 10 |
> 11 | 12 | 'image' ) ); ?> 13 | 14 |
15 | 16 |

17 | 18 |
19 | 20 | 21 | 22 | 62 | 63 | 64 |
65 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 3 | // Project configuration. 4 | grunt.initConfig({ 5 | wp_readme_to_markdown: { 6 | target: { 7 | files: { 8 | 'readme.md': 'readme.txt' 9 | } 10 | }, 11 | }, 12 | copy: { 13 | main: { 14 | files: [ {expand: true, cwd: 'node_modules/genericons-neue/icon-font/', src: ['**'], dest: 'fonts/genericons-neue/'}, ], 15 | }, 16 | }, 17 | sass: { // Task 18 | dev: { // Target 19 | options: { // Target options 20 | style: 'expanded' 21 | }, 22 | files: { // Dictionary of files 23 | 'css/default.css': 'sass/default.scss', // 'destination': 'source' 24 | 'css/ip2.css': 'sass/ip2.scss' 25 | } 26 | }, 27 | dist: { // Target 28 | options: { // Target options 29 | style: 'compressed' 30 | }, 31 | files: { // Dictionary of files 32 | 'css/default.min.css': 'sass/default.scss', // 'destination': 'source' 33 | 'css/ip2.min.css': 'sass/ip2.scss', 34 | 35 | } 36 | } 37 | }, 38 | stylelint: { 39 | all: ['sass/**/*.scss'] 40 | }, 41 | makepot: { 42 | target: { 43 | options: { 44 | mainFile: 'iw26.php', // Main project file. 45 | domainPath: '/languages', // Where to save the POT file. 46 | potFilename: 'iw26.pot', 47 | type: 'wp-theme', // Type of project (wp-plugin or wp-theme). 48 | exclude: [ 49 | 'vendor/.*' 50 | ], 51 | updateTimestamp: false // Whether the POT-Creation-Date should be updated without other changes. 52 | } 53 | } 54 | } 55 | }); 56 | 57 | grunt.loadNpmTasks('grunt-wp-readme-to-markdown'); 58 | grunt.loadNpmTasks('grunt-wp-i18n'); 59 | grunt.loadNpmTasks('grunt-contrib-sass'); 60 | grunt.loadNpmTasks('grunt-contrib-copy'); 61 | grunt.loadNpmTasks('grunt-stylelint' ); 62 | 63 | // Default task(s). 64 | grunt.registerTask('default', ['wp_readme_to_markdown', 'makepot', 'sass', 'copy']); 65 | 66 | }; 67 | -------------------------------------------------------------------------------- /page_one-column-template.php: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | 19 |
20 |
21 | 22 | 26 | 27 |
> 28 | 29 | 30 | 31 |
32 |

33 |
34 | 35 | 36 | 37 |
> 38 | 39 | 40 | 41 | 'multipart' ) ); ?> 42 | 43 | 44 | 45 | '', 50 | 'nextpagelink' => '', 51 | 'previouspagelink' => '', 52 | 'next_or_number' => 'next', 53 | ) 54 | ); 55 | ?> 56 | '', 61 | ) 62 | ); 63 | ?> 64 | 65 | 66 | 67 | ', '' ); ?> 68 |
69 |
70 | 71 | 72 | 73 | 74 | 75 |
76 | 77 |
78 | 79 | 80 | -------------------------------------------------------------------------------- /inc/mf2.php: -------------------------------------------------------------------------------- 1 | %1$s', $content ); 81 | } 82 | add_filter( 'the_content', 'indieweb_publisher_the_content', 1 ); 83 | 84 | /** 85 | * Wraps the_excerpt in p-summary 86 | */ 87 | function indieweb_publisher_the_excerpt( $content ) { 88 | if ( is_feed() ) { 89 | return $content; 90 | } 91 | if ( empty( $content ) ) { 92 | return $content; 93 | } 94 | return sprintf( '
%1$s
', $content ); 95 | } 96 | 97 | add_filter( 'the_excerpt', 'indieweb_publisher_the_excerpt', 1 ); 98 | 99 | -------------------------------------------------------------------------------- /header.php: -------------------------------------------------------------------------------- 1 | section and everything up till
6 | * 7 | * @package Indieweb Publisher 8 | * @since Indieweb Publisher 1.0 9 | */ 10 | ?> 11 | > 12 | 13 | 14 | 15 | 16 | 19 | 20 | 21 | 22 | itemscope="itemscope" itemtype="http://schema.org/WebPage"> 23 | 24 | 25 | 26 | 27 |
28 | 71 | 72 | 73 |
74 | -------------------------------------------------------------------------------- /sass/default.scss: -------------------------------------------------------------------------------- 1 | /*-------------------------------------------------------------- 2 | >>> TABLE OF CONTENTS: 3 | ---------------------------------------------------------------- 4 | # Variables 5 | # Reset 6 | # Global 7 | # Links 8 | # Accessibility 9 | # Content 10 | # Post Formats 11 | # Media 12 | # Galleries 13 | # Navigation 14 | # Comments 15 | # Widgets 16 | # Layout 17 | # Media Queries 18 | 19 | /*-------------------------------------------------------------- 20 | # Variables 21 | --------------------------------------------------------------*/ 22 | 23 | /*-------------------------------------------------------------- 24 | # Reset 25 | --------------------------------------------------------------*/ 26 | @import "default/reset"; 27 | 28 | /*-------------------------------------------------------------- 29 | # Global 30 | --------------------------------------------------------------*/ 31 | @import "default/global"; 32 | 33 | 34 | /*-------------------------------------------------------------- 35 | # Links 36 | --------------------------------------------------------------*/ 37 | @import "default/links"; 38 | 39 | 40 | /*-------------------------------------------------------------- 41 | # Menu 42 | --------------------------------------------------------------*/ 43 | @import "default/menu"; 44 | 45 | /*-------------------------------------------------------------- 46 | # Accessibility 47 | --------------------------------------------------------------*/ 48 | @import "default/accessibility"; 49 | 50 | /*-------------------------------------------------------------- 51 | # Content 52 | --------------------------------------------------------------*/ 53 | @import "default/content"; 54 | 55 | /*-------------------------------------------------------------- 56 | # Post Formats 57 | --------------------------------------------------------------*/ 58 | @import "default/post-formats"; 59 | 60 | /*-------------------------------------------------------------- 61 | # Media 62 | --------------------------------------------------------------*/ 63 | @import "default/media"; 64 | 65 | /*-------------------------------------------------------------- 66 | # Galleries 67 | --------------------------------------------------------------*/ 68 | @import "default/galleries"; 69 | 70 | /*-------------------------------------------------------------- 71 | # Navigation 72 | --------------------------------------------------------------*/ 73 | @import "default/navigation"; 74 | 75 | /*-------------------------------------------------------------- 76 | # Comments 77 | --------------------------------------------------------------*/ 78 | @import "default/comments"; 79 | 80 | /*-------------------------------------------------------------- 81 | # Widgets 82 | --------------------------------------------------------------*/ 83 | @import "default/widgets"; 84 | 85 | /*-------------------------------------------------------------- 86 | # Layout 87 | --------------------------------------------------------------*/ 88 | @import "default/layout"; 89 | 90 | /*-------------------------------------------------------------- 91 | # Media Queries 92 | --------------------------------------------------------------*/ 93 | @import "default/queries"; 94 | -------------------------------------------------------------------------------- /page_archive-template.php: -------------------------------------------------------------------------------- 1 | 12 | 13 |
14 |
15 | 16 | 20 | 21 |
> 22 |
23 |

24 |
25 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 15 ) ); ?> 33 | 34 | 35 |
36 |

37 |
    38 | 'count', 42 | 'order' => 'DESC', 43 | 'show_count' => 1, 44 | 'title_li' => '', 45 | 'number' => 10, 46 | ) 47 | ); 48 | ?> 49 |
50 |
51 | 52 | 53 |
54 |

55 | 66 |
67 | 68 |
69 |

70 | 81 |
82 | 83 |
84 |

85 | 86 |
87 | 88 | __( 'Explore by Tag', 'indieweb-publisher' ) ) ); ?> 89 | 90 | 91 | 92 |
93 | 94 | ', '' ); ?> 95 |
96 | 97 | 98 | 99 |
100 | 101 |
102 | 103 | 104 | -------------------------------------------------------------------------------- /sass/ip2.scss: -------------------------------------------------------------------------------- 1 | /*-------------------------------------------------------------- 2 | >>> TABLE OF CONTENTS: 3 | ---------------------------------------------------------------- 4 | # Variables 5 | # Normalize 6 | # Typography 7 | # Forms 8 | # Navigation 9 | ## Mobile Menu Button 10 | ## - Posts Navigation 11 | ## - Post Navigation 12 | ## Comment Navigation 13 | ## Menu Navigation 14 | # Accessibility 15 | # Clearings 16 | # Content 17 | # Media 18 | # Galleries 19 | # Comments 20 | # Widgets 21 | # Layout 22 | ## - Hero Header 23 | ## - Post Author Card 24 | # Infinite Scroll 25 | # Media Queries 26 | 27 | /*-------------------------------------------------------------- 28 | # Variables 29 | --------------------------------------------------------------*/ 30 | 31 | /*-------------------------------------------------------------- 32 | # Normalize 33 | --------------------------------------------------------------*/ 34 | @import "ip2/normalize"; 35 | 36 | /*-------------------------------------------------------------- 37 | # Typography 38 | --------------------------------------------------------------*/ 39 | @import "ip2/typography"; 40 | 41 | 42 | /*-------------------------------------------------------------- 43 | # Forms 44 | --------------------------------------------------------------*/ 45 | @import "ip2/forms"; 46 | 47 | 48 | /*-------------------------------------------------------------- 49 | # Navigation 50 | --------------------------------------------------------------*/ 51 | @import "ip2/navigation/navigation"; 52 | 53 | /*-------------------------------------------------------------- 54 | # Accessibility 55 | --------------------------------------------------------------*/ 56 | @import "ip2/accessibility"; 57 | 58 | /*-------------------------------------------------------------- 59 | # Clearings 60 | --------------------------------------------------------------*/ 61 | @import "ip2/clearings"; 62 | 63 | /*-------------------------------------------------------------- 64 | # Content 65 | --------------------------------------------------------------*/ 66 | @import "ip2/content"; 67 | 68 | /*-------------------------------------------------------------- 69 | # Media 70 | --------------------------------------------------------------*/ 71 | @import "ip2/media"; 72 | 73 | /*-------------------------------------------------------------- 74 | # Galleries 75 | --------------------------------------------------------------*/ 76 | @import "ip2/galleries"; 77 | /*-------------------------------------------------------------- 78 | # Comments 79 | --------------------------------------------------------------*/ 80 | @import "ip2/comments"; 81 | 82 | /*-------------------------------------------------------------- 83 | # Widgets 84 | --------------------------------------------------------------*/ 85 | @import "ip2/widgets"; 86 | 87 | /*-------------------------------------------------------------- 88 | # Layout 89 | --------------------------------------------------------------*/ 90 | @import "ip2/layout/layout"; 91 | 92 | /*-------------------------------------------------------------- 93 | # Infinite Scroll 94 | --------------------------------------------------------------*/ 95 | @import "ip2/infinite-scroll"; 96 | 97 | /*-------------------------------------------------------------- 98 | # Media Queries 99 | --------------------------------------------------------------*/ 100 | @import "ip2/queries"; 101 | -------------------------------------------------------------------------------- /sass/ip2/_galleries.scss: -------------------------------------------------------------------------------- 1 | .tiled-gallery { 2 | margin: 1.75em 0; 3 | } 4 | 5 | .tiled-gallery a:focus { 6 | outline: 0; 7 | } 8 | 9 | .gallery { 10 | margin: 1.75em 0; 11 | } 12 | 13 | .hentry .entry-content > .gallery:first-child { 14 | margin-top: .875em; 15 | } 16 | 17 | .gallery-item { 18 | position: relative; 19 | float: left; 20 | overflow: hidden; 21 | width: 100%; 22 | margin: 1.75em 0 0 4px; 23 | } 24 | 25 | .gallery-icon { 26 | text-align: center; 27 | } 28 | 29 | .gallery-icon a { 30 | display: block; 31 | outline: 0; 32 | } 33 | 34 | .gallery-icon img { 35 | line-height: 1; 36 | vertical-align: middle; 37 | border-radius: 3px; 38 | } 39 | 40 | .gallery-columns-1 .gallery-item { 41 | max-width: 100%; 42 | } 43 | 44 | .gallery-columns-1 .gallery-item:first-child { 45 | margin-top: 0; 46 | } 47 | 48 | .gallery-columns-2 .gallery-item { 49 | max-width: -webkit-calc(50% - 2px); 50 | max-width: calc(50% - 2px); 51 | } 52 | 53 | .gallery-columns-2 .gallery-item:nth-child(-n+2) { 54 | margin-top: 0; 55 | } 56 | 57 | .gallery-columns-3 .gallery-item { 58 | max-width: -webkit-calc(100%/3 - 5px*2/3); 59 | max-width: calc(100%/3 - 5px*2/3); 60 | } 61 | 62 | .gallery-columns-3 .gallery-item:nth-child(-n+3) { 63 | margin-top: 0; 64 | } 65 | 66 | .gallery-columns-4 .gallery-item { 67 | max-width: -webkit-calc(100%/4 - 4px*3/4); 68 | max-width: calc(100%/4 - 4px*3/4); 69 | } 70 | 71 | .gallery-columns-4 .gallery-item:nth-child(-n+4) { 72 | margin-top: 0; 73 | } 74 | 75 | .gallery-columns-5 .gallery-item { 76 | max-width: -webkit-calc(100%/5 - 4px*4/5); 77 | max-width: calc(100%/5 - 4px*4/5); 78 | } 79 | 80 | .gallery-columns-5 .gallery-item:nth-child(-n+5) { 81 | margin-top: 0; 82 | } 83 | 84 | .gallery-columns-6 .gallery-item { 85 | max-width: -webkit-calc(100%/6 - 4px*5/6); 86 | max-width: calc(100%/6 - 4px*5/6); 87 | } 88 | 89 | .gallery-columns-6 .gallery-item:nth-child(-n+6) { 90 | margin-top: 0; 91 | } 92 | 93 | .gallery-columns-7 .gallery-item { 94 | max-width: -webkit-calc(100%/7 - 4px*6/7); 95 | max-width: calc(100%/7 - 4px*6/7); 96 | } 97 | 98 | .gallery-columns-7 .gallery-item:nth-child(-n+7) { 99 | margin-top: 0; 100 | } 101 | 102 | .gallery-columns-8 .gallery-item { 103 | max-width: -webkit-calc(100%/8 - 4px*7/8); 104 | max-width: calc(100%/8 - 4px*7/8); 105 | } 106 | 107 | .gallery-columns-8 .gallery-item:nth-child(-n+8) { 108 | margin-top: 0; 109 | } 110 | 111 | .gallery-columns-9 .gallery-item { 112 | max-width: -webkit-calc(100%/9 - 4px*8/9); 113 | max-width: calc(100%/9 - 4px*8/9); 114 | } 115 | 116 | .gallery-columns-9 .gallery-item:nth-child(-n+9) { 117 | margin-top: 0; 118 | } 119 | 120 | .gallery-caption { 121 | margin-top: .875em; 122 | } 123 | 124 | .gallery-columns-7 .gallery-caption, 125 | .gallery-columns-8 .gallery-caption, 126 | .gallery-columns-9 .gallery-caption { 127 | display: none; 128 | } 129 | 130 | .gallery-columns-1 .gallery-item:nth-of-type(1n+1), 131 | .gallery-columns-2 .gallery-item:nth-of-type(2n+1), 132 | .gallery-columns-3 .gallery-item:nth-of-type(3n+1), 133 | .gallery-columns-4 .gallery-item:nth-of-type(4n+1), 134 | .gallery-columns-5 .gallery-item:nth-of-type(5n+1), 135 | .gallery-columns-6 .gallery-item:nth-of-type(6n+1), 136 | .gallery-columns-7 .gallery-item:nth-of-type(7n+1), 137 | .gallery-columns-8 .gallery-item:nth-of-type(8n+1), 138 | .gallery-columns-9 .gallery-item:nth-of-type(9n+1) { 139 | clear: left; 140 | margin-left: 0; 141 | } 142 | -------------------------------------------------------------------------------- /sass/default/_galleries.scss: -------------------------------------------------------------------------------- 1 | .gallery:before, .gallery:after { 2 | content: ""; 3 | display: table; 4 | } 5 | 6 | .gallery:after { 7 | clear: both; 8 | } 9 | 10 | .gallery { 11 | margin-bottom: 1.5em; 12 | } 13 | 14 | .gallery-item { 15 | float: left; 16 | margin: 0 4px 4px 0; 17 | overflow: hidden; 18 | position: relative; 19 | line-height: 10px; 20 | } 21 | 22 | .gallery-columns-1 .gallery-item { 23 | max-width: 100%; 24 | } 25 | 26 | .gallery-columns-2 .gallery-item { 27 | max-width: 48%; 28 | max-width: -webkit-calc(50% - 4px); 29 | max-width: calc(50% - 4px); 30 | } 31 | 32 | .gallery-columns-3 .gallery-item { 33 | max-width: 32%; 34 | max-width: -webkit-calc(33.3% - 4px); 35 | max-width: calc(33.3% - 4px); 36 | } 37 | 38 | .gallery-columns-4 .gallery-item { 39 | max-width: 23%; 40 | max-width: -webkit-calc(25% - 4px); 41 | max-width: calc(25% - 4px); 42 | } 43 | 44 | .gallery-columns-5 .gallery-item { 45 | max-width: 19%; 46 | max-width: -webkit-calc(20% - 4px); 47 | max-width: calc(20% - 4px); 48 | } 49 | 50 | .gallery-columns-6 .gallery-item { 51 | max-width: 15%; 52 | max-width: -webkit-calc(16.7% - 4px); 53 | max-width: calc(16.7% - 4px); 54 | } 55 | 56 | .gallery-columns-7 .gallery-item { 57 | max-width: 13%; 58 | max-width: -webkit-calc(14.28% - 4px); 59 | max-width: calc(14.28% - 4px); 60 | } 61 | 62 | .gallery-columns-8 .gallery-item { 63 | max-width: 11%; 64 | max-width: -webkit-calc(12.5% - 4px); 65 | max-width: calc(12.5% - 4px); 66 | } 67 | 68 | .gallery-columns-9 .gallery-item { 69 | max-width: 9%; 70 | max-width: -webkit-calc(11.1% - 4px); 71 | max-width: calc(11.1% - 4px); 72 | } 73 | 74 | .gallery-columns-1 .gallery-item:nth-of-type(1n), 75 | .gallery-columns-2 .gallery-item:nth-of-type(2n), 76 | .gallery-columns-3 .gallery-item:nth-of-type(3n), 77 | .gallery-columns-4 .gallery-item:nth-of-type(4n), 78 | .gallery-columns-5 .gallery-item:nth-of-type(5n), 79 | .gallery-columns-6 .gallery-item:nth-of-type(6n), 80 | .gallery-columns-7 .gallery-item:nth-of-type(7n), 81 | .gallery-columns-8 .gallery-item:nth-of-type(8n), 82 | .gallery-columns-9 .gallery-item:nth-of-type(9n) { 83 | margin-right: 0; 84 | } 85 | 86 | .gallery-columns-1.gallery-size-medium figure.gallery-item:nth-of-type(1n+1), 87 | .gallery-columns-1.gallery-size-thumbnail figure.gallery-item:nth-of-type(1n+1), 88 | .gallery-columns-2.gallery-size-thumbnail figure.gallery-item:nth-of-type(2n+1), 89 | .gallery-columns-3.gallery-size-thumbnail figure.gallery-item:nth-of-type(3n+1) { 90 | clear: left; 91 | } 92 | 93 | .gallery-caption { 94 | background-color: rgba(0, 0, 0, 0.7); 95 | -webkit-box-sizing: border-box; 96 | -moz-box-sizing: border-box; 97 | box-sizing: border-box; 98 | color: #fff; 99 | font-size: 12px; 100 | line-height: 1.2; 101 | margin: 0; 102 | max-height: 50%; 103 | opacity: 0; 104 | padding: 6px 8px; 105 | position: absolute; 106 | bottom: 0; 107 | left: 0; 108 | text-align: left; 109 | width: 100%; 110 | font-style: italic; 111 | } 112 | 113 | .gallery-caption:before { 114 | content: ""; 115 | height: 100%; 116 | min-height: 49px; 117 | position: absolute; 118 | top: 0; 119 | left: 0; 120 | width: 100%; 121 | } 122 | 123 | .gallery-item:hover .gallery-caption { 124 | opacity: 1; 125 | } 126 | 127 | .gallery-columns-7 .gallery-caption, 128 | .gallery-columns-8 .gallery-caption, 129 | .gallery-columns-9 .gallery-caption { 130 | display: none; 131 | } 132 | -------------------------------------------------------------------------------- /template-parts/content.php: -------------------------------------------------------------------------------- 1 | 7 |
> 8 |
9 | 13 |

14 | 15 |

16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 'multipart' ) ); ?> 27 | 28 | 29 | 30 | '', 35 | ) 36 | ); 37 | ?> 38 | 39 | 40 | 41 |
42 | 43 | 47 | 48 | 49 | 50 | 51 | 54 | ', get_the_permalink(), indieweb_publisher_post_link_title(), $title ); 59 | } 60 | ?> 61 | 62 | 63 | 64 | 65 | 66 | 67 | 1 ? __( 'Webmentions', 'independent-publisher' ) : __( 'Webmention', 'independent-publisher' ) ); ?> 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | ' . $separator . ' ', '' ); ?> 77 | 78 |
79 | 80 |
81 | -------------------------------------------------------------------------------- /sass/default/_content.scss: -------------------------------------------------------------------------------- 1 | .site, 2 | article > section, 3 | .entry-summary { 4 | *zoom: 1; 5 | } 6 | 7 | .site:before, 8 | .site:after, 9 | article > section:before, 10 | article > section:after, 11 | .entry-summary:before, 12 | .entry-summary:after { 13 | display: table; 14 | content: ""; 15 | line-height: 0; 16 | } 17 | 18 | .site:after, 19 | article > section:after, 20 | .entry-summary:after { 21 | clear: both; 22 | } 23 | 24 | .site-main article.sticky { 25 | margin-bottom: 1px; 26 | padding-right: 40px; 27 | padding-left: 40px; 28 | padding-top: 20px; 29 | background: #F5F5F5; 30 | border: none; 31 | border-radius: 10px; 32 | -webkit-border-radius: 10px; 33 | -moz-border-radius: 10px; 34 | } 35 | 36 | .entry-meta { 37 | clear: both; 38 | } 39 | 40 | .byline { 41 | display: none; 42 | } 43 | 44 | .single .byline, 45 | .group-blog .byline { 46 | display: inline; 47 | } 48 | 49 | article > section, 50 | .entry-summary { 51 | margin: 0 0 0; 52 | } 53 | 54 | article > section > .sharedaddy, 55 | .entry-summary > .sharedaddy { 56 | margin: 1.5em 0; 57 | } 58 | 59 | .page-links { 60 | clear: both; 61 | margin: 0 0 1em; 62 | text-align: center; 63 | padding-top: 2em; 64 | } 65 | 66 | .page-links-next-prev { 67 | margin-top: 4em; 68 | clear: both; 69 | } 70 | 71 | .page-links-next-prev .next-page-nav { 72 | float: right; 73 | } 74 | 75 | .page-links-next-prev .previous-page-nav { 76 | float: left; 77 | } 78 | 79 | article > section .twitter-tweet-rendered, 80 | .entry-summary .twitter-tweet-rendered { 81 | max-width: 100% !important; 82 | } 83 | 84 | .single article > section, 85 | .single .entry-summary { 86 | padding-bottom: 20px; 87 | margin-top: 0; 88 | } 89 | 90 | .single article.post, .single article.page { 91 | margin-bottom: 40px; 92 | } 93 | 94 | .single .wp-post-image, 95 | .page .wp-post-image, 96 | .blog .wp-post-image, 97 | .archive .wp-post-image { 98 | width: 100%; 99 | height: auto; 100 | } 101 | 102 | .single .full-width-featured-image { 103 | top: 0; 104 | left: 0; 105 | width: 100%; 106 | } 107 | 108 | .single .wp-post-image, 109 | .page .wp-post-image, 110 | .blog .wp-post-image, 111 | .archive .wp-post-image { 112 | margin-bottom: 20px; 113 | } 114 | 115 | .single-attachment .entry-title-meta { 116 | margin-bottom: 20px; 117 | } 118 | 119 | .single-attachment .entry-caption { 120 | margin-top: 1.2em; 121 | } 122 | 123 | .post-excerpts h1.entry-title, 124 | .enhanced-excerpts h1.entry-title { 125 | font-size: 1.8em; 126 | margin-bottom: 0; 127 | } 128 | 129 | .post-excerpts .sticky h1.entry-title, 130 | .enhanced-excerpts .sticky h1.entry-title { 131 | font-size: 2.5em; 132 | margin-bottom: 20px; 133 | } 134 | 135 | .post-excerpts article > section, 136 | .enhanced-excerpts article > section, 137 | .post-excerpts article > section a, 138 | .enhanced-excerpts article > section a, 139 | .post-excerpts .entry-summary, 140 | .enhanced-excerpts .entry-summary, 141 | .post-excerpts .entry-summary a, 142 | .enhanced-excerpts .entry-summary a { 143 | margin-top: 10px; 144 | text-decoration: none; 145 | } 146 | 147 | .enhanced-excerpts .enhanced-excerpt-read-more a { 148 | text-align: right; 149 | font-family: Georgia, "Times New Roman", Times, serif; 150 | font-size: 1.4em; 151 | color: #57ad68; 152 | } 153 | 154 | .enhanced-excerpt-read-more { 155 | margin-bottom: 1em; 156 | font-size: 13px; 157 | text-align: right; 158 | } 159 | 160 | .show-full-content-first-post h1.entry-title, 161 | .show-full-content-first-post-sticky h1.entry-title { 162 | font-size: 2.5em; 163 | margin-bottom: 20px; 164 | } 165 | 166 | article > section .subtitle, 167 | .entry-summary .subtitle { 168 | font-style: italic; 169 | font-weight: normal; 170 | font-family: Georgia, "Times New Roman", Times, serif; 171 | font-size: 1.3em; 172 | line-height: 1.2em; 173 | margin-top: -5px; 174 | margin-bottom: 1em; 175 | letter-spacing: 0; 176 | } 177 | -------------------------------------------------------------------------------- /js/enhanced-comment-form.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery for Comment Form Enhancements 3 | * */ 4 | 5 | jQuery(document).ready(function () { 6 | 7 | /* Checks if this is a link to reply directly to a comment */ 8 | function is_replytocom() { 9 | var field = 'replytocom'; 10 | var url = window.location.href; 11 | if(url.indexOf('?' + field + '=') != -1 || url.indexOf('&' + field + '=') != -1 ) 12 | return true; 13 | else 14 | return false; 15 | } 16 | 17 | var identifier = window.location.hash; 18 | 19 | if (identifier === "#respond") { 20 | jQuery('#respond').show(); 21 | jQuery('#webmention-form').show(); 22 | jQuery('#share-comment-button-bottom').show(); 23 | jQuery('.comment-form-reply-title').hide(); 24 | 25 | if(is_replytocom()) { // If this is a link to reply directly to a comment 26 | jQuery('#commentform-top').hide(); 27 | jQuery('#commentform-bottom').hide(); 28 | jQuery('#share-comment-button').show(); 29 | } else { // Otherwise, load the normal comment reply form 30 | jQuery('#commentform-top').show(); 31 | jQuery('#commentform-top').append(jQuery('#respond')); 32 | jQuery('#commentform-top').append(jQuery('#webmention-form')); 33 | jQuery('#commentform-bottom').hide(); 34 | } 35 | 36 | } else { // Set the default state (forms hidden, buttons showing) 37 | jQuery('#respond').hide(); 38 | jQuery('#webmention-form').hide(); 39 | jQuery('#share-comment-button').show(); 40 | jQuery('#share-comment-button-bottom').show(); 41 | jQuery('#commentform-top').hide(); 42 | jQuery('#commentform-bottom').hide(); 43 | } 44 | 45 | /* Share Comment Button (Top) */ 46 | 47 | jQuery( document ).on('click', '#share-comment-button', function (event) { 48 | jQuery('#commentform-top').show(); 49 | jQuery('#commentform-bottom').hide(); 50 | jQuery('#cancel-comment-reply-link').click(); 51 | jQuery('#commentform-top').append(jQuery('#respond')); 52 | jQuery('#commentform-top').append(jQuery('#webmention-form')); 53 | jQuery('#respond').show(); 54 | jQuery('#webmention-form').show(); 55 | jQuery('#share-comment-button').toggle('hide'); 56 | jQuery('#share-comment-button-bottom').show(); 57 | jQuery('.comment-form-reply-title').hide(); 58 | jQuery('#main-reply-title').show(); 59 | jQuery('#comment').focus(); 60 | if(is_replytocom()) 61 | jQuery('#reply-title').hide(); 62 | }); 63 | 64 | /* Share Comment Button (Bottom)*/ 65 | 66 | jQuery( document ).on('click', '#share-comment-button-bottom', function (event) { 67 | jQuery('#commentform-bottom').show(); 68 | jQuery('#commentform-top').hide(); 69 | jQuery('#cancel-comment-reply-link').click(); 70 | jQuery('#commentform-bottom').append(jQuery('#respond')); 71 | jQuery('#commentform-button').append(jQuery('#webmention-form')); 72 | jQuery('#share-comment-button-bottom').toggle('hide'); 73 | jQuery('#respond').show(); 74 | jQuery('#webmention-form').show(); 75 | jQuery('#share-comment-button').show(); 76 | jQuery('.comment-form-reply-title').hide(); 77 | jQuery('#main-reply-title').show(); 78 | jQuery('#comment').focus(); 79 | if(is_replytocom()) 80 | jQuery('#reply-title').hide(); 81 | }); 82 | 83 | jQuery( document ).on('click', '.comment-reply-link', function (event) { 84 | jQuery('#respond').show(); 85 | jQuery('#webmention-form').show(); 86 | jQuery('#share-comment-button').show(); 87 | jQuery('#share-comment-button-bottom').show(); 88 | jQuery('.comment-form-reply-title').show(); 89 | jQuery('#main-reply-title').hide(); 90 | jQuery('#comment').focus(); 91 | jQuery('#commentform-top').hide(); 92 | jQuery('#commentform-bottom').hide(); 93 | if(is_replytocom()) 94 | jQuery('#reply-title').hide(); 95 | }); 96 | 97 | jQuery( document ).on('click', '#cancel-comment-reply-link', function (event) { 98 | jQuery('#respond').hide(); 99 | jQuery('#webmention-form').hide(); 100 | jQuery('#share-comment-button').show(); 101 | if(is_replytocom()) 102 | jQuery('#reply-title').hide(); 103 | }); 104 | 105 | }); 106 | -------------------------------------------------------------------------------- /sass/default/_post-formats.scss: -------------------------------------------------------------------------------- 1 | .blog .format-aside .entry-title, 2 | .archive .format-aside .entry-title, 3 | .search .format-aside .entry-title, 4 | .originalofsearch .format-aside .entry-title, 5 | .blog .format-status .entry-title, 6 | .archive .format-status .entry-title, 7 | .search .format-status .entry-title, 8 | .originalofsearch .format-aside .entry-title, 9 | .blog .format-image .entry-title, 10 | .archive .format-image .entry-title, 11 | .search .format-image .entry-title, 12 | .originalofsearch .format-image .entry-title, 13 | .blog .format-quote .entry-title, 14 | .archive .format-quote .entry-title, 15 | .originalofsearch .format-image .entry-title, 16 | .search .format-quote .entry-title { 17 | display: none; 18 | } 19 | 20 | .format-aside .entry-format, 21 | .format-quote .entry-format, 22 | .format-chat .entry-format, 23 | .format-status .entry-format, 24 | .format-image .entry-format, 25 | .format-link .entry-format, 26 | .format-gallery .entry-format { 27 | color: #b3b3b1; 28 | font-weight: 300; 29 | } 30 | 31 | .format-link .entry-title { 32 | font-size: 1.5em; 33 | } 34 | 35 | .format-link .entry-title a:after { 36 | font-family: "Genericons-Neue"; 37 | content: '\f107'; 38 | font-size: 24px; 39 | height: 24px; 40 | position: relative; 41 | top: 0; 42 | width: 24px; 43 | } 44 | 45 | .format-aside { 46 | font-style: italic; 47 | } 48 | 49 | .format-aside, 50 | .format-quote { 51 | font-size: 1.3em; 52 | line-height: 1.4; 53 | } 54 | 55 | .format-aside article > section, 56 | .format-quote article > section { 57 | margin-top: 1em; 58 | } 59 | 60 | .format-aside .entry-title-meta { 61 | margin-bottom: 20px; 62 | } 63 | 64 | .format-aside article > section a, 65 | .format-aside article > section a:hover, 66 | .format-quote article > section a, 67 | .format-quote article > section a:hover { 68 | color: inherit; 69 | text-decoration: none; 70 | } 71 | 72 | .single-format-aside .entry-title, 73 | .single-format-quote .entry-title { 74 | display: none; 75 | } 76 | 77 | .format-standard .entry-title { 78 | width: 90%; 79 | } 80 | 81 | .format-chat article > section, 82 | .format-chat .entry-summary { 83 | font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; 84 | background: #eee; 85 | padding: 20px 20px 10px 20px; 86 | margin-bottom: 2em; 87 | font-size: 12px; 88 | line-height: 1.6; 89 | } 90 | 91 | /* =Media 92 | ----------------------------------------------- */ 93 | 94 | .site-header img, 95 | article > section img, 96 | .entry-summary img, 97 | .comment-content img, 98 | .widget img { 99 | max-width: 100%; /* Fluid images for posts, comments, and widgets */ 100 | } 101 | 102 | .site-header img, 103 | article > section img, 104 | .entry-summary img, 105 | .widget img, 106 | img[class*="align"], 107 | img[class*="wp-image-"] { 108 | height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ 109 | } 110 | 111 | .site-header img, 112 | article > section img, 113 | .entry-summary img, 114 | img.size-full { 115 | max-width: 100%; 116 | width: auto\9; /* Prevent stretching of full-size images with height and width attributes in IE8 */ 117 | } 118 | 119 | article > section img.wp-smiley, 120 | .entry-summary img.wp-smiley, 121 | .comment-content img.wp-smiley { 122 | margin-top: 0; 123 | margin-bottom: 0; 124 | padding: 0; 125 | border: none; 126 | } 127 | 128 | .wp-caption { 129 | max-width: 100%; 130 | border: 1px solid #ccc; 131 | margin-bottom: 1.5em; 132 | } 133 | 134 | .wp-caption.aligncenter, 135 | .wp-caption.alignleft, 136 | .wp-caption.alignright { 137 | margin-bottom: 1.5em; 138 | } 139 | 140 | .wp-caption img { 141 | display: block; 142 | margin: 5px auto 0; 143 | max-width: 98%; 144 | } 145 | 146 | .wp-caption-text { 147 | text-align: center; 148 | font-size: 80%; 149 | } 150 | 151 | .wp-caption .wp-caption-text { 152 | margin: 0.8075em 0; 153 | } 154 | 155 | /* Make sure embeds and iframes fit their containers */ 156 | embed, 157 | iframe, 158 | object { 159 | max-width: 100%; 160 | } 161 | -------------------------------------------------------------------------------- /sass/ip2/_widgets.scss: -------------------------------------------------------------------------------- 1 | .widget-area { 2 | margin-top: 3.5em; 3 | font-size: 16px; 4 | } 5 | 6 | /* =Footer Widgets */ 7 | .footer-widgets { 8 | margin: 1.75em 0 0; 9 | padding: 1.75em 0 0; 10 | } 11 | 12 | .footer-widgets .widget-area { 13 | width: 100%; 14 | margin: 0 auto 3.5em; 15 | } 16 | 17 | .widget:nth-child(n+2) { 18 | margin-top: 3.5em; 19 | } 20 | 21 | .page-content > .widget { 22 | margin-top: 3.5em; 23 | } 24 | 25 | .widget .widget-title, 26 | .widget .widgettitle { 27 | margin: 0 0 .4375em; 28 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif; 29 | font-weight: bold; 30 | margin-bottom: .875em; 31 | font-size: 17px; 32 | } 33 | 34 | .widget .widget-title + p, 35 | .widget .widgettitle + p, 36 | .widget .widget-title + ul, 37 | .widget .widgettitle + ul, 38 | .widget .widget-title + ol, 39 | .widget .widgettitle + ol { 40 | margin-top: 0; 41 | } 42 | 43 | .widget ul, 44 | .widget ol { 45 | margin-left: 1.75em; 46 | } 47 | 48 | .widget ul ul, 49 | .widget ol ul, 50 | .widget ul ol, 51 | .widget ol ol { 52 | margin-left: .875em; 53 | } 54 | 55 | .widget ul ul, 56 | .widget ol ul, 57 | .widget ul ol, 58 | .widget ol ol { 59 | margin-left: 1.75em; 60 | } 61 | 62 | .widget ul li, 63 | .widget ol li { 64 | margin: .875em 0 0; 65 | line-height: 1.2; 66 | } 67 | 68 | .widget > ul > li:first-child, 69 | .widget > ol > li:first-child { 70 | margin-top: 0; 71 | } 72 | 73 | .widget ul li a:hover { 74 | text-decoration: underline; 75 | } 76 | 77 | .widget select { 78 | max-width: 100%; 79 | } 80 | 81 | .widget { 82 | margin-top: 0; 83 | } 84 | 85 | .widget_search .search-submit { 86 | display: none; 87 | } 88 | 89 | .widget_rss .rss-date, 90 | .widget_rss li > cite { 91 | display: block; 92 | font-size: 15px; 93 | color: #b3b3b1; 94 | } 95 | 96 | .widget_goodreads div a img { 97 | float: right; 98 | margin-left: .875em; 99 | } 100 | .widget_goodreads > div > div > div { 101 | clear: both; 102 | margin-bottom: .875em; 103 | } 104 | .widget_goodreads h2 { 105 | font-size: 17px; 106 | margin: 0 0 .875em; 107 | } 108 | 109 | #flickr_badge_uber_wrapper { 110 | border-color: #ddd; 111 | } 112 | 113 | .widget_recent_comments img.avatar { 114 | border-radius: 100px; 115 | } 116 | 117 | .widget_calendar #next { 118 | text-align: right; 119 | } 120 | 121 | .widget_authors a { 122 | color: inherit; 123 | line-height: 1.5; 124 | } 125 | .widget_authors strong { 126 | clear: both; 127 | display: block; 128 | width: 100%; 129 | } 130 | .widget-area .widget_authors ul { 131 | margin-left: 0; 132 | } 133 | 134 | .widget_authors a:hover { 135 | text-decoration: none; 136 | color: #696969; 137 | } 138 | 139 | .widget_authors img { 140 | margin-right: .4375em; 141 | border-radius: 100%; 142 | } 143 | 144 | .widget_authors img, 145 | .widget_authors a { 146 | display: inline-block; 147 | vertical-align: middle; 148 | } 149 | 150 | .widget_recent_comments table, 151 | .widget_recent_comments td { 152 | border: none; 153 | } 154 | 155 | .widget_recent_comments .widget-title + table.recentcommentsavatar { 156 | margin-top: -.4375em; 157 | } 158 | 159 | .widget_recent_entries { 160 | font-size: 15px; 161 | color: #939393; 162 | } 163 | 164 | .widget_recent_comments a, 165 | .widget_recent_entries a { 166 | font-size: 17px; 167 | font-weight: bold; 168 | color: #383838; 169 | } 170 | 171 | .widget_recent_entries span.post-date { 172 | display: block; 173 | font-family: Georgia, "Times New Roman", serif; 174 | font-style: italic; 175 | } 176 | 177 | .widget_recent_entries ul { 178 | margin-top: 1.75em; 179 | } 180 | 181 | .widget_recent_entries ul li { 182 | margin-top: 1.3125em; 183 | line-height: 1.4; 184 | } 185 | 186 | #wp-calendar tbody td { 187 | white-space: nowrap; 188 | } 189 | 190 | .widget.widget_text ul, 191 | .widget.widget_text ol { 192 | margin-left: .875em; 193 | padding-left: .875em; 194 | } 195 | 196 | .widget.widget_text ul { 197 | list-style-type: disc; 198 | } 199 | 200 | .widget.widget_text ol { 201 | list-style-type: decimal; 202 | } 203 | 204 | .gist table { 205 | table-layout: inherit; 206 | } 207 | 208 | /* Search widget */ 209 | .widget_search .submit, 210 | .original_of_widget .submit { 211 | display: none; 212 | } 213 | -------------------------------------------------------------------------------- /phpcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A custom set of code standard rules to check for WordPress themes. 10 | 11 | 12 | 18 | 19 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | . 36 | 37 | 38 | /vendor/* 39 | /node_modules/* 40 | 41 | 42 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 59 | 60 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /inc/plugin-support.php: -------------------------------------------------------------------------------- 1 | false, 15 | 'icons' => true, 16 | 'show_text_before' => false, 17 | ); 18 | $links = get_syndication_links( get_the_ID(), $args ); 19 | if ( empty( $links ) ) { 20 | return; 21 | } 22 | printf( '

%1$s

', get_option( 'syndication-links_text_before' ) ); 23 | echo $links; 24 | } 25 | 26 | /* 27 | * Wrapper function for a possible custom display of Simple Location output 28 | */ 29 | function indieweb_publisher_simple_location( $separator ) { 30 | $location = Loc_View::get_location( 31 | get_post(), 32 | array( 33 | 'icon' => false, 34 | ) 35 | ); 36 | if ( empty( $location ) ) { 37 | return; 38 | } 39 | printf( '

%1$s

', __( 'Location', 'indieweb-publisher' ) ); 40 | printf( '

%1$s

', $location ); 41 | } 42 | 43 | function indieweb_publisher_indieweb_plugin_support() { 44 | /* 45 | * Adds support for Syndication Links 46 | */ 47 | if ( class_exists( 'Syn_Meta' ) ) { 48 | remove_filter( 'the_content', array( 'Syn_Config', 'the_content' ), 30 ); 49 | add_action( 'indieweb_publisher_after_post_published_date', 'indieweb_publisher_syndication_links', 11 ); 50 | } 51 | 52 | /* 53 | * Adds support for Simple Location 54 | */ 55 | if ( class_exists( 'Loc_View' ) ) { 56 | remove_filter( 'the_content', array( 'Loc_View', 'location_content' ), 12 ); 57 | add_action( 'indieweb_publisher_after_post_published_date', 'indieweb_publisher_simple_location' ); 58 | } 59 | 60 | if ( class_exists( 'Semantic_Linkbacks_Plugin' ) ) { 61 | remove_action( 'comment_form_before', array( 'Linkbacks_Handler', 'show_mentions' ) ); 62 | } 63 | 64 | } 65 | add_action( 'init', 'indieweb_publisher_indieweb_plugin_support', 11 ); 66 | 67 | 68 | /* 69 | * Adds support for showing Subscribe to Comments Reloaded options after comment form fields 70 | */ 71 | if ( function_exists( 'subscribe_reloaded_show' ) ) { 72 | if ( get_option( 'subscribe_reloaded_show_subscription_box', 'yes' ) !== 'yes' ) { 73 | add_action( 'comment_form_logged_in_after', 'subscribe_reloaded_show' ); 74 | add_action( 'comment_form_after_fields', 'subscribe_reloaded_show' ); 75 | } 76 | } 77 | 78 | if ( ! function_exists( 'indieweb_publisher_jetpack_dark_overlay_fix_css' ) ) : 79 | /** 80 | * Fixes an issue with a dark overlay that appears < 800px when the Jetpack Infinite Scroll 81 | * module is enabled. See https://github.com/raamdev/indieweb-publisher/issues/72 82 | */ 83 | function indieweb_publisher_jetpack_dark_overlay_fix_css() { 84 | if ( class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'infinite-scroll' ) ) { 85 | wp_enqueue_style( 'indieweb-publisher-jetpack-infinite-scroll-dark-overlay-fix', get_template_directory_uri() . '/css/jetpack-infinite-scroll-dark-overlay-fix.css', array(), '1.0' ); 86 | } 87 | } 88 | endif; 89 | 90 | /** 91 | * When the Disqus Commenting System is active and enabled, don't load our comment form enhancements 92 | */ 93 | require_once ABSPATH . 'wp-admin/includes/plugin.php'; // Required to use is_plugin_active() here 94 | if ( is_plugin_active( 'disqus-comment-system/disqus.php' ) 95 | && ! function_exists( 'indieweb_publisher_enhanced_comment_form' ) 96 | ) : 97 | if ( get_option( 'disqus_active' ) !== '0' ) { 98 | function indieweb_publisher_enhanced_comment_form() { 99 | return; 100 | } 101 | } 102 | endif; 103 | 104 | /* 105 | * When Jetpack Comments is enabled, don't load our comment form enhancements 106 | */ 107 | if ( class_exists( 'Jetpack' ) 108 | && Jetpack::is_module_active( 'comments' ) 109 | && ! function_exists( 'indieweb_publisher_enhanced_comment_form' ) 110 | ) { 111 | function indieweb_publisher_enhanced_comment_form() { 112 | return; 113 | } 114 | } 115 | 116 | if ( ! function_exists( 'indieweb_publisher_wp_pagenavi_css' ) ) : 117 | /** 118 | * Improves the style of WP-PageNavi when used with this theme 119 | */ 120 | function indieweb_publisher_wp_pagenavi_css() { 121 | if ( function_exists( 'wp_pagenavi' ) ) { 122 | wp_enqueue_style( 'indieweb-publisher-wp-pagenavi-css', get_template_directory_uri() . '/css/wp-pagenavi.css', array(), '1.7' ); 123 | } 124 | } 125 | endif; 126 | -------------------------------------------------------------------------------- /template-parts/content-single.php: -------------------------------------------------------------------------------- 1 | 7 |
itemscope="itemscope" itemtype="http://schema.org/BlogPosting" itemprop="blogPost"> 8 | 9 | 'image' ) ); ?> 10 | 11 |
12 | 13 |

14 | 15 | 21 | dddd 22 | 23 | 30 | 34 | 35 |

36 | 37 | 38 |

39 | 40 | 46 | 47 | 52 | 56 | 57 |

58 | 63 |

64 | 68 |
69 | 70 | 71 | 72 | 73 | 74 |
75 | 76 | 77 | 78 | 'multipart' ) ); ?> 79 | 80 | 81 | 82 | '', 87 | 'nextpagelink' => '', 88 | 'previouspagelink' => '', 89 | 'next_or_number' => 'next', 90 | ) 91 | ); 92 | ?> 93 | '', 98 | ) 99 | ); 100 | ?> 101 | 102 | 103 | 104 | 105 |
106 | 109 |
110 | 111 | 112 | ', '' ); ?> 113 |
114 | 115 | 116 |
117 | -------------------------------------------------------------------------------- /comments.php: -------------------------------------------------------------------------------- 1 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
32 | 33 | 34 | 35 | indieweb_publisher_min_comments_comment_title() ) : ?> 36 |

37 | 38 | ' . get_the_title() . '' 43 | ); 44 | ?> 45 |

46 | 47 | 48 | 53 | 54 | 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> 55 | 61 | 62 | 63 |
    64 | 70 |
71 | 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> 72 | 78 | 79 | 80 | 81 | 82 | 86 |

87 | 88 | 89 | = indieweb_publisher_min_comments_bottom_comment_button() ) : ?> 90 | 91 | 92 | 93 |
94 | 97 |
98 |
99 | 100 | 101 | 0 ) : ?> 102 | 103 | 104 | 105 |
106 | 107 | 108 | -------------------------------------------------------------------------------- /sass/ip2/_forms.scss: -------------------------------------------------------------------------------- 1 | button, 2 | input, 3 | select, 4 | textarea { 5 | max-width: 100%; 6 | margin: 0; 7 | font: inherit; 8 | vertical-align: middle; 9 | } 10 | 11 | button:focus, 12 | input:focus, 13 | button:active, 14 | input:active { 15 | outline: 0; 16 | } 17 | 18 | .button, 19 | .more-link, 20 | button:not(.menu-toggle), 21 | input[type="button"], 22 | input[type="reset"], 23 | input[type="submit"], 24 | .posts-navigation .nav-links a, 25 | #content #infinite-handle span button { 26 | display: inline-block; 27 | box-sizing: content-box; 28 | padding: .4375em .875em; 29 | cursor: pointer; 30 | -webkit-transition: background 120ms ease-in-out, box-shadow 120ms ease-in-out; 31 | transition: background 120ms ease-in-out, box-shadow 120ms ease-in-out; 32 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif; 33 | font-size: 16px; 34 | font-weight: 400; 35 | font-style: normal; 36 | text-decoration: none; 37 | color: #fff; 38 | border: solid 1px transparent; 39 | border-radius: 3px; 40 | background: #0087be; 41 | 42 | -webkit-font-smoothing: antialiased; 43 | -moz-osx-font-smoothing: grayscale; 44 | } 45 | 46 | .button:focus, 47 | .button:active, 48 | .more-link:focus, 49 | .more-link:active, 50 | button:not(.menu-toggle):focus, 51 | input[type="button"]:focus, 52 | input[type="reset"]:focus, 53 | input[type="submit"]:focus, 54 | .posts-navigation .nav-links a:focus, 55 | #content #infinite-handle span button:focus, 56 | button:not(.menu-toggle):active, 57 | input[type="button"]:active, 58 | input[type="reset"]:active, 59 | input[type="submit"]:active, 60 | .posts-navigation .nav-links a:active, 61 | #content #infinite-handle span button:active { 62 | outline: 0; 63 | background: #767676; 64 | box-shadow: inset 0 2px 2px rgba(0, 0, 0, .25), 0 0 0 6px rgba(0, 0, 0, .08); 65 | } 66 | 67 | .button:hover, 68 | .more-link:hover, 69 | button:not(.menu-toggle):hover, 70 | input[type="button"]:hover, 71 | input[type="reset"]:hover, 72 | input[type="submit"]:hover, 73 | .posts-navigation .nav-links a:hover, 74 | #content #infinite-handle span button:hover { 75 | text-decoration: none; 76 | color: #fff; 77 | background: #767676; 78 | } 79 | 80 | .button:visited, 81 | .more-link:visited { 82 | color: white; 83 | } 84 | 85 | .more-link { 86 | display: block; 87 | clear: both; 88 | width: 130px; 89 | margin: .4375em 0 1.75em; 90 | text-align: center; 91 | } 92 | 93 | input + button:not(.menu-toggle), 94 | input + input[type="button"], 95 | input + input[type="reset"], 96 | input + input[type="submit"], 97 | input + .posts-navigation .nav-links a, 98 | input + #content #infinite-handle span button, 99 | label + button:not(.menu-toggle), 100 | label + input[type="button"], 101 | label + input[type="reset"], 102 | label + input[type="submit"], 103 | label + .posts-navigation .nav-links a, 104 | label + #content #infinite-handle span button { 105 | margin-left: .21875em; 106 | } 107 | 108 | input[type="text"], 109 | input[type="password"], 110 | input[type="email"], 111 | input[type="search"], 112 | input[type="url"], 113 | textarea { 114 | box-sizing: border-box; 115 | -webkit-transition: color 160ms ease, border-color 160ms ease, box-shadow 160ms ease; 116 | transition: color 160ms ease, border-color 160ms ease, box-shadow 160ms ease; 117 | font-family: Georgia, "Times New Roman", serif; 118 | color: #404040; 119 | border: 1px solid #a1a1a1; 120 | border-radius: 3px; 121 | 122 | -webkit-appearance: none; 123 | -webkit-font-smoothing: antialiased; 124 | -moz-osx-font-smoothing: grayscale; 125 | } 126 | 127 | input[type="text"]:focus, 128 | input[type="password"]:focus, 129 | input[type="email"]:focus, 130 | input[type="search"]:focus, 131 | input[type="url"]:focus, 132 | textarea:focus { 133 | border-color: #0087be; 134 | outline: 0; 135 | box-shadow: 0 0 3px rgba(87, 173, 104, .15) inset; 136 | } 137 | 138 | input[type="text"], 139 | input[type="password"], 140 | input[type="email"], 141 | input[type="search"], 142 | input[type="url"] { 143 | height: 1.75em; 144 | padding: 0 .875em; 145 | line-height: 2; 146 | } 147 | 148 | textarea { 149 | padding: .4375em .875em; 150 | } 151 | 152 | input[type="checkbox"], 153 | input[type="radio"] { 154 | position: relative; 155 | top: 0; 156 | box-sizing: border-box; 157 | margin-right: .1em; 158 | padding: 0; 159 | line-height: 1; 160 | vertical-align: baseline; 161 | } 162 | 163 | .entry-content input[type="checkbox"], 164 | .entry-content input[type="radio"], 165 | .entry-summary input[type="checkbox"], 166 | .entry-summary input[type="radio"] { 167 | top: -.1em; 168 | } 169 | 170 | button::-moz-focus-inner, 171 | input::-moz-focus-inner { 172 | padding: 0; 173 | border: 0; 174 | } 175 | 176 | :focus, 177 | :active { 178 | outline: 0; 179 | } 180 | -------------------------------------------------------------------------------- /image.php: -------------------------------------------------------------------------------- 1 | 11 | 12 |
13 |
14 | 15 | 19 | 20 |
> 21 |
22 |

23 | %3$s × %4$s %5$s %7$s', 'indieweb-publisher' ), 27 | get_the_title(), 28 | wp_get_attachment_url(), 29 | $metadata['width'], 30 | $metadata['height'], 31 | indieweb_publisher_entry_meta_category_prefix(), 32 | get_permalink( $post->post_parent ), 33 | get_the_title( $post->post_parent ) 34 | ); 35 | ?> 36 | 37 | 38 |

39 | 40 | 41 |
42 | 43 | 44 |
45 | 46 |
47 |
48 | $post->post_parent, 59 | 'post_status' => 'inherit', 60 | 'post_type' => 'attachment', 61 | 'post_mime_type' => 'image', 62 | 'order' => 'ASC', 63 | 'orderby' => 'menu_order ID', 64 | ) 65 | ) 66 | ); 67 | foreach ( $attachments as $k => $attachment ) { 68 | if ( $attachment->ID == $post->ID ) { 69 | break; 70 | } 71 | } 72 | $k ++; 73 | // If there is more than 1 attachment in a gallery 74 | if ( count( $attachments ) > 1 ) { 75 | if ( isset( $attachments[ $k ] ) ) { 76 | $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID ); 77 | } else // or get the URL of the first image attachment 78 | { 79 | $next_attachment_url = get_attachment_link( $attachments[0]->ID ); 80 | } 81 | } else { 82 | // or, if there's only 1 image, get the URL of the image 83 | $next_attachment_url = wp_get_attachment_url(); 84 | } 85 | ?> 86 | 87 | 88 | ID, $attachment_size ); 97 | ?> 98 | 99 |
100 | 101 | 102 | post_excerpt ) ) : ?> 103 |
104 | 105 |
106 | 107 |
108 | 109 | 110 | 111 | 112 | 116 | 117 | 118 |
119 | 120 | 121 | 122 |
123 | 124 | 125 | 126 |
127 | 130 |
131 | 132 | 133 | ', '' ); ?> 134 |
135 | 136 | 137 |
138 | 139 | 140 | 141 | 142 | 143 |
144 | 145 |
146 | 147 | 148 | -------------------------------------------------------------------------------- /sass/ip2/_typography.scss: -------------------------------------------------------------------------------- 1 | body { 2 | background: #fff; 3 | } 4 | 5 | body, 6 | button, 7 | input, 8 | select, 9 | textarea { 10 | font-family: Georgia, "Times New Roman", serif; 11 | font-size: 18px; 12 | line-height: 1.75; 13 | color: #383838; 14 | } 15 | 16 | select { 17 | font-size: 13px; 18 | } 19 | 20 | h1, 21 | h2, 22 | h3, 23 | h4, 24 | h5, 25 | h6 { 26 | clear: both; 27 | margin-top: .875em; 28 | margin-bottom: .875em; 29 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif; 30 | line-height: 1.1; 31 | color: #333332; 32 | } 33 | 34 | h1 { 35 | font-size: 32px; 36 | margin-bottom: .4375em; 37 | } 38 | 39 | h2 { 40 | font-size: 24px; 41 | margin-bottom: .4375em; 42 | } 43 | 44 | h3 { 45 | font-size: 19px; 46 | } 47 | 48 | h4 { 49 | font-size: 15px; 50 | } 51 | 52 | h5 { 53 | font-size: 14px; 54 | } 55 | 56 | h6 { 57 | font-size: 13px; 58 | } 59 | 60 | h5, 61 | h6 { 62 | line-height: 1.3; 63 | } 64 | 65 | hr { 66 | height: 1px; 67 | margin: 1.75em 0; 68 | border: 0; 69 | background-color: #ccc; 70 | } 71 | 72 | p { 73 | margin-bottom: .875em; 74 | } 75 | 76 | ul, 77 | ol { 78 | margin: 0 0 1.75em 2em; 79 | padding: 0; 80 | list-style-position: outside; 81 | } 82 | 83 | ul ul, 84 | ol ul, 85 | ul ol, 86 | ol ol { 87 | margin-bottom: 0; 88 | margin-left: 2em; 89 | } 90 | 91 | ul li, 92 | ol li { 93 | margin-top: .4375em; 94 | } 95 | 96 | ul { 97 | list-style-type: disc; 98 | } 99 | 100 | ol { 101 | list-style-type: decimal; 102 | } 103 | 104 | dt { 105 | font-weight: 700; 106 | } 107 | 108 | dd { 109 | margin: .4375em 1.75em 1.75em; 110 | } 111 | 112 | b, 113 | strong { 114 | font-weight: 700; 115 | } 116 | 117 | dfn, 118 | cite, 119 | em, 120 | i { 121 | font-style: italic; 122 | } 123 | 124 | blockquote { 125 | margin: 1.75em .875em 1.75em -1.9em; 126 | padding: 0 0 0 1.75em; 127 | font-family: Georgia, "Times New Roman", serif; 128 | font-style: italic; 129 | border: solid #0087be; 130 | border-width: 0 0 0 3px; 131 | } 132 | 133 | .comments-area blockquote { 134 | margin-left: 0; 135 | } 136 | 137 | blockquote blockquote { 138 | margin-left: 1.75em; 139 | } 140 | 141 | blockquote.aligncenter, 142 | blockquote.alignleft, 143 | blockquote.alignright { 144 | padding: .875em 0; 145 | font-family: Georgia, "Times New Roman", serif; 146 | font-size: 20px; 147 | font-style: italic; 148 | text-align: center; 149 | color: #a5a5a5; 150 | border: 0; 151 | } 152 | blockquote.alignright, 153 | blockquote.alignleft { 154 | max-width: 100%; 155 | padding: 0; 156 | margin-left: auto; 157 | margin-right: auto; 158 | text-align: left; 159 | } 160 | 161 | blockquote cite { 162 | display: block; 163 | margin-top: .875em; 164 | font-size: .875em; 165 | font-weight: bold; 166 | } 167 | 168 | blockquote cite:before { 169 | margin-right: .21875em; 170 | margin-left: 0; 171 | content: "\2014"; 172 | font-weight: normal; 173 | } 174 | 175 | blockquote h1, 176 | blockquote h2, 177 | blockquote h3, 178 | blockquote h4 { 179 | font-family: inherit; 180 | font-weight: normal; 181 | } 182 | 183 | address { 184 | margin: 0 0 1.75em; 185 | } 186 | 187 | pre { 188 | overflow: auto; 189 | max-width: 100%; 190 | padding: 1.75em; 191 | font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; 192 | line-height: 1.75; 193 | background: #f5f5f5; 194 | } 195 | 196 | pre, 197 | code, 198 | kbd, 199 | tt, 200 | var { 201 | font-size: 18px; 202 | } 203 | 204 | pre pre, 205 | pre code, 206 | pre kbd, 207 | pre tt, 208 | pre var { 209 | background: transparent; 210 | } 211 | 212 | code, 213 | kbd, 214 | tt, 215 | var { 216 | padding: 2px 5px 2px 5px; 217 | font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; 218 | background: #eee; 219 | } 220 | 221 | abbr, 222 | acronym { 223 | cursor: help; 224 | border-bottom: 1px dotted #666; 225 | } 226 | 227 | mark, 228 | ins { 229 | text-decoration: none; 230 | background: #fff9c0; 231 | } 232 | 233 | sup, 234 | sub { 235 | position: relative; 236 | height: 0; 237 | font-size: 75%; 238 | line-height: 0; 239 | vertical-align: baseline; 240 | } 241 | 242 | sup { 243 | bottom: 1ex; 244 | } 245 | 246 | sub { 247 | top: .5ex; 248 | } 249 | 250 | small { 251 | font-size: 75%; 252 | } 253 | 254 | big { 255 | font-size: 125%; 256 | } 257 | 258 | figure { 259 | margin: 0; 260 | } 261 | 262 | table { 263 | width: 100%; 264 | margin: 0 0 1.75em; 265 | font-size: 90%; 266 | } 267 | 268 | th { 269 | font-weight: 700; 270 | } 271 | 272 | textarea { 273 | overflow: auto; 274 | width: 95%; 275 | padding-left: 3px; 276 | vertical-align: top; 277 | } 278 | 279 | a { 280 | text-decoration: none; 281 | color: #0087be; 282 | } 283 | 284 | a:visited { 285 | text-decoration: none; 286 | color: #0087be; 287 | } 288 | 289 | a:hover { 290 | text-decoration: underline; 291 | } 292 | 293 | a:hover, 294 | a:focus, 295 | a:active { 296 | color: #00aadc; 297 | } 298 | 299 | a:focus, 300 | a:active, 301 | button:focus, 302 | button:active { 303 | outline: thin dotted; 304 | } 305 | 306 | table, 307 | th, 308 | td { 309 | border: 1px solid #ddd; 310 | } 311 | 312 | table { 313 | /* Prevents HTML tables from becoming too wide */ 314 | width: 100%; 315 | margin: 0 0 1.75em; 316 | table-layout: fixed; 317 | border-spacing: 0; 318 | border-collapse: separate; 319 | border-width: 1px 0 0 1px; 320 | } 321 | 322 | caption, 323 | th, 324 | td { 325 | font-weight: normal; 326 | text-align: left; 327 | } 328 | 329 | th { 330 | font-weight: 700; 331 | border-width: 0 1px 1px 0; 332 | } 333 | 334 | td { 335 | border-width: 0 1px 1px 0; 336 | } 337 | 338 | th, 339 | td { 340 | padding: .4375em; 341 | } 342 | -------------------------------------------------------------------------------- /js/theme-customizer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This file adds some LIVE to the Theme Customizer live preview. To leverage 3 | * this, set your custom settings to 'postMessage' and then add your handling 4 | * here. Your javascript should grab settings from customizer controls, and 5 | * then make any necessary changes to the page using jQuery. 6 | * 7 | * @link http://codex.wordpress.org/Theme_Customization_API 8 | * 9 | * @package Independent Publisher 10 | * @since Independent Publisher 1.0 11 | */ 12 | (function ($) { 13 | 14 | // Update the site title in real time 15 | wp.customize('blogname', function (value) { 16 | value.bind(function (newval) { 17 | $('#site-title a').html(newval); 18 | }); 19 | }); 20 | 21 | // Update the site description in real time 22 | wp.customize('blogdescription', function (value) { 23 | value.bind(function (newval) { 24 | $('.site-description').html(newval); 25 | }); 26 | }); 27 | 28 | // Update site title color in real time 29 | wp.customize('header_textcolor', function (value) { 30 | value.bind(function (newval) { 31 | $('#site-title a').css('color', newval); 32 | }); 33 | }); 34 | 35 | // Update site background color in real time 36 | wp.customize('background_color', function (value) { 37 | value.bind(function (newval) { 38 | $('body').css('background-color', newval); 39 | $('.site').css('background-color', newval); 40 | }); 41 | }); 42 | 43 | // Update comment form background color in real time 44 | wp.customize('comment_form_background_color', function (value) { 45 | value.bind(function (newval) { 46 | $('#commentform-top').css('background-color', newval); 47 | $('#commentform-bottom').css('background-color', newval); 48 | $('.comment-respond').css('background-color', newval); 49 | }); 50 | }); 51 | 52 | // Update text color in real time 53 | wp.customize('text_color', function (value) { 54 | value.bind(function (newval) { 55 | $('body').css('color', newval); 56 | $('button').css('color', newval); 57 | $('input').css('color', newval); 58 | $('select').css('color', newval); 59 | $('textarea').css('color', newval); 60 | $('.format-aside .entry-content a').css('color', newval); 61 | $('.format-aside .entry-content a:hover').css('color', newval); 62 | $('.format-aside .entry-content a:focus').css('color', newval); 63 | $('.format-aside .entry-content a:active').css('color', newval); 64 | $('.format-aside .entry-content a:visited').css('color', newval); 65 | $('.format-aside .entry-summary a').css('color', newval); 66 | $('.format-aside .entry-summary a:hover').css('color', newval); 67 | $('.format-aside .entry-summary a:focus').css('color', newval); 68 | $('.format-aside .entry-summary a:active').css('color', newval); 69 | $('.format-aside .entry-summary a:visited').css('color', newval); 70 | }); 71 | }); 72 | 73 | // Update link color in real time 74 | wp.customize('link_color', function (value) { 75 | value.bind(function (newval) { 76 | $('.main-navigation a').css('color', newval); 77 | $('.widget-area ul li a').css('color', newval); 78 | $('.no-post-excerpts .format-standard .entry-content a').css('color', newval); 79 | $('.no-post-excerpts .format-standard .entry-content a:hover').css('color', newval); 80 | $('.no-post-excerpts .format-standard .entry-content a:focus').css('color', newval); 81 | $('.no-post-excerpts .format-standard .entry-content a:active').css('color', newval); 82 | $('.no-post-excerpts .format-standard .entry-content a:visited').css('color', newval); 83 | $('.enhanced-excerpts .enhanced-excerpt-read-more a').css('color', newval); 84 | $('.comment .reply a').css('color', newval); 85 | $('.pinglist a').css('color', newval); 86 | $('.taglist a').css('color', newval); 87 | $('.entry-meta a:hover').css('color', newval); 88 | $('.site-footer a').css('color', newval); 89 | $('.widget-area a').css('color', newval); 90 | }); 91 | }); 92 | 93 | // Update header text color in real time 94 | wp.customize('header_text_color', function (value) { 95 | value.bind(function (newval) { 96 | $('.site-published').css('color', newval); 97 | $('.site-title a').css('color', newval); 98 | $('h1.entry-title').css('color', newval); 99 | $('.entry-content h1').css('color', newval); 100 | $('.entry-content h2').css('color', newval); 101 | $('.entry-content h3').css('color', newval); 102 | $('.entry-content h4').css('color', newval); 103 | $('.entry-content h5').css('color', newval); 104 | $('.entry-content h6').css('color', newval); 105 | $('.entry-summary h1').css('color', newval); 106 | $('.entry-summary h2').css('color', newval); 107 | $('.entry-summary h3').css('color', newval); 108 | $('.entry-summary h4').css('color', newval); 109 | $('.entry-summary h5').css('color', newval); 110 | $('.entry-summary h6').css('color', newval); 111 | $('.entry-title a').css('color', newval); 112 | $('.author .archive-title a').css('color', newval); 113 | }); 114 | }); 115 | 116 | // Update primary meta text color in real time 117 | wp.customize('primary_meta_text_color', function (value) { 118 | value.bind(function (newval) { 119 | $('.site-description').css('color', newval); 120 | $('.site-published-date a').css('color', newval); 121 | }); 122 | }); 123 | 124 | // Update secondary meta text color in real time 125 | wp.customize('secondary_meta_text_color', function (value) { 126 | value.bind(function (newval) { 127 | $('.entry-title-meta').css('color', newval); 128 | $('.entry-title-meta a').css('color', newval); 129 | $('.entry-meta').css('color', newval); 130 | $('.entry-meta a').css('color', newval); 131 | $('.entry-meta a:hover').css('color', newval); 132 | $('blockquote cite').css('color', newval); 133 | $('.gallery-caption').css('color', newval); 134 | $('.comment-meta').css('color', newval); 135 | $('.comment-meta a').css('color', newval); 136 | $('.widget_rss .rss-date').css('color', newval); 137 | $('.widget_twitter .timesince').css('color', newval); 138 | $('.site-footer').css('color', newval); 139 | }); 140 | }); 141 | })(jQuery); 142 | -------------------------------------------------------------------------------- /sass/ip2/_normalize.scss: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Correct the font size and margin on `h1` elements within `section` and 29 | * `article` contexts in Chrome, Firefox, and Safari. 30 | */ 31 | 32 | h1 { 33 | font-size: 2em; 34 | margin: 0.67em 0; 35 | } 36 | 37 | /* Grouping content 38 | ========================================================================== */ 39 | 40 | /** 41 | * 1. Add the correct box sizing in Firefox. 42 | * 2. Show the overflow in Edge and IE. 43 | */ 44 | 45 | hr { 46 | box-sizing: content-box; /* 1 */ 47 | height: 0; /* 1 */ 48 | overflow: visible; /* 2 */ 49 | } 50 | 51 | /** 52 | * 1. Correct the inheritance and scaling of font size in all browsers. 53 | * 2. Correct the odd `em` font sizing in all browsers. 54 | */ 55 | 56 | pre { 57 | font-family: monospace, monospace; /* 1 */ 58 | font-size: 1em; /* 2 */ 59 | } 60 | 61 | /* Text-level semantics 62 | ========================================================================== */ 63 | 64 | /** 65 | * Remove the gray background on active links in IE 10. 66 | */ 67 | 68 | a { 69 | background-color: transparent; 70 | } 71 | 72 | /** 73 | * 1. Remove the bottom border in Chrome 57- 74 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 75 | */ 76 | 77 | abbr[title] { 78 | border-bottom: none; /* 1 */ 79 | text-decoration: underline; /* 2 */ 80 | text-decoration: underline dotted; /* 2 */ 81 | } 82 | 83 | /** 84 | * Add the correct font weight in Chrome, Edge, and Safari. 85 | */ 86 | 87 | b, 88 | strong { 89 | font-weight: bolder; 90 | } 91 | 92 | /** 93 | * 1. Correct the inheritance and scaling of font size in all browsers. 94 | * 2. Correct the odd `em` font sizing in all browsers. 95 | */ 96 | 97 | code, 98 | kbd, 99 | samp { 100 | font-family: monospace, monospace; /* 1 */ 101 | font-size: 1em; /* 2 */ 102 | } 103 | 104 | /** 105 | * Add the correct font size in all browsers. 106 | */ 107 | 108 | small { 109 | font-size: 80%; 110 | } 111 | 112 | /** 113 | * Prevent `sub` and `sup` elements from affecting the line height in 114 | * all browsers. 115 | */ 116 | 117 | sub, 118 | sup { 119 | font-size: 75%; 120 | line-height: 0; 121 | position: relative; 122 | vertical-align: baseline; 123 | } 124 | 125 | sub { 126 | bottom: -0.25em; 127 | } 128 | 129 | sup { 130 | top: -0.5em; 131 | } 132 | 133 | /* Embedded content 134 | ========================================================================== */ 135 | 136 | /** 137 | * Remove the border on images inside links in IE 10. 138 | */ 139 | 140 | img { 141 | border-style: none; 142 | } 143 | 144 | /* Forms 145 | ========================================================================== */ 146 | 147 | /** 148 | * 1. Change the font styles in all browsers. 149 | * 2. Remove the margin in Firefox and Safari. 150 | */ 151 | 152 | button, 153 | input, 154 | optgroup, 155 | select, 156 | textarea { 157 | font-family: inherit; /* 1 */ 158 | font-size: 100%; /* 1 */ 159 | line-height: 1.15; /* 1 */ 160 | margin: 0; /* 2 */ 161 | } 162 | 163 | /** 164 | * Show the overflow in IE. 165 | * 1. Show the overflow in Edge. 166 | */ 167 | 168 | button, 169 | input { 170 | 171 | /* 1 */ 172 | overflow: visible; 173 | } 174 | 175 | /** 176 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 177 | * 1. Remove the inheritance of text transform in Firefox. 178 | */ 179 | 180 | button, 181 | select { 182 | 183 | /* 1 */ 184 | text-transform: none; 185 | } 186 | 187 | /** 188 | * Correct the inability to style clickable types in iOS and Safari. 189 | */ 190 | 191 | button, 192 | [type="button"], 193 | [type="reset"], 194 | [type="submit"] { 195 | -webkit-appearance: button; 196 | } 197 | 198 | /** 199 | * Remove the inner border and padding in Firefox. 200 | */ 201 | 202 | button::-moz-focus-inner, 203 | [type="button"]::-moz-focus-inner, 204 | [type="reset"]::-moz-focus-inner, 205 | [type="submit"]::-moz-focus-inner { 206 | border-style: none; 207 | padding: 0; 208 | } 209 | 210 | /** 211 | * Restore the focus styles unset by the previous rule. 212 | */ 213 | 214 | button:-moz-focusring, 215 | [type="button"]:-moz-focusring, 216 | [type="reset"]:-moz-focusring, 217 | [type="submit"]:-moz-focusring { 218 | outline: 1px dotted ButtonText; 219 | } 220 | 221 | /** 222 | * Correct the padding in Firefox. 223 | */ 224 | 225 | fieldset { 226 | padding: 0.35em 0.75em 0.625em; 227 | } 228 | 229 | /** 230 | * 1. Correct the text wrapping in Edge and IE. 231 | * 2. Correct the color inheritance from `fieldset` elements in IE. 232 | * 3. Remove the padding so developers are not caught out when they zero out 233 | * `fieldset` elements in all browsers. 234 | */ 235 | 236 | legend { 237 | box-sizing: border-box; /* 1 */ 238 | color: inherit; /* 2 */ 239 | display: table; /* 1 */ 240 | max-width: 100%; /* 1 */ 241 | padding: 0; /* 3 */ 242 | white-space: normal; /* 1 */ 243 | } 244 | 245 | /** 246 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 247 | */ 248 | 249 | progress { 250 | vertical-align: baseline; 251 | } 252 | 253 | /** 254 | * Remove the default vertical scrollbar in IE 10+. 255 | */ 256 | 257 | textarea { 258 | overflow: auto; 259 | } 260 | 261 | /** 262 | * 1. Add the correct box sizing in IE 10. 263 | * 2. Remove the padding in IE 10. 264 | */ 265 | 266 | [type="checkbox"], 267 | [type="radio"] { 268 | box-sizing: border-box; /* 1 */ 269 | padding: 0; /* 2 */ 270 | } 271 | 272 | /** 273 | * Correct the cursor style of increment and decrement buttons in Chrome. 274 | */ 275 | 276 | [type="number"]::-webkit-inner-spin-button, 277 | [type="number"]::-webkit-outer-spin-button { 278 | height: auto; 279 | } 280 | 281 | /** 282 | * 1. Correct the odd appearance in Chrome and Safari. 283 | * 2. Correct the outline style in Safari. 284 | */ 285 | 286 | [type="search"] { 287 | -webkit-appearance: textfield; /* 1 */ 288 | outline-offset: -2px; /* 2 */ 289 | } 290 | 291 | /** 292 | * Remove the inner padding in Chrome and Safari on macOS. 293 | */ 294 | 295 | [type="search"]::-webkit-search-decoration { 296 | -webkit-appearance: none; 297 | } 298 | 299 | /** 300 | * 1. Correct the inability to style clickable types in iOS and Safari. 301 | * 2. Change font properties to `inherit` in Safari. 302 | */ 303 | 304 | ::-webkit-file-upload-button { 305 | -webkit-appearance: button; /* 1 */ 306 | font: inherit; /* 2 */ 307 | } 308 | 309 | /* Interactive 310 | ========================================================================== */ 311 | 312 | /* 313 | * Add the correct display in Edge, IE 10+, and Firefox. 314 | */ 315 | 316 | details { 317 | display: block; 318 | } 319 | 320 | /* 321 | * Add the correct display in all browsers. 322 | */ 323 | 324 | summary { 325 | display: list-item; 326 | } 327 | 328 | /* Misc 329 | ========================================================================== */ 330 | 331 | /** 332 | * Add the correct display in IE 10+. 333 | */ 334 | 335 | template { 336 | display: none; 337 | } 338 | 339 | /** 340 | * Add the correct display in IE 10. 341 | */ 342 | 343 | [hidden] { 344 | display: none; 345 | } 346 | -------------------------------------------------------------------------------- /sass/default/_global.scss: -------------------------------------------------------------------------------- 1 | body, 2 | button, 3 | input, 4 | select, 5 | textarea { 6 | color: #000000; 7 | font-size: 16px; 8 | font-size: 1.6rem; 9 | font-family: serif; 10 | line-height: 1.5; 11 | } 12 | 13 | select { 14 | font-family: Helvetica, Arial, sans-serif; 15 | font-size: 13px !important; /* webkit annoyingly only lets