Add upstream
This commit is contained in:
		| @@ -0,0 +1,744 @@ | ||||
| /** | ||||
|  * Jetpack Portfolio Shortcode | ||||
|  */ | ||||
|  | ||||
| .site .portfolio-entry { | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
| .site .portfolio-entry-title, | ||||
| .site .portfolio-entry-meta, | ||||
| .site .portfolio-entry-content { | ||||
| 	font-size: 1.2rem; | ||||
| 	font-size: 12px; | ||||
| 	line-height: 1.5; | ||||
| } | ||||
|  | ||||
| .site .portfolio-featured-image + .portfolio-entry-title { | ||||
| 	margin-top: 0.75em; | ||||
| 	margin-bottom: 0.75em; | ||||
| } | ||||
|  | ||||
| .site .portfolio-entry-meta { | ||||
| 	font-family: "Noto Sans", sans-serif; | ||||
| } | ||||
|  | ||||
| .site .portfolio-entry-content .more-link:after { | ||||
| 	font-size: 16px; | ||||
| 	top: 1px; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Jetpack Widgets | ||||
|  */ | ||||
|  | ||||
| /* Blog Subscriptions Widget */ | ||||
| .jetpack_subscription_widget #subscribe-email input { | ||||
| 	padding: 0.375em; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .jetpack_subscription_widget form > :last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Display WordPress Posts Widget */ | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4 { | ||||
| 	font-size: inherit; | ||||
| 	margin: 0 0 1.6em; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts img { | ||||
| 	margin: 0 0 1.6em; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 	font-size: inherit; | ||||
| 	line-height: 1.6 !important; | ||||
| 	margin: 0 0 1.6em !important; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts > :last-child { | ||||
| 	margin-bottom: 0 !important; | ||||
| } | ||||
|  | ||||
| /* Gallery Widget */ | ||||
| .widget-gallery .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| } | ||||
|  | ||||
| /* Gravatar Profile Widget */ | ||||
| .widget-area .widget-grofile .grofile-thumbnail { | ||||
| 	border-radius: 50%; | ||||
| 	max-width: 200px; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile h4 { | ||||
| 	margin: 1.6em 0 0; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile .grofile-accounts { | ||||
| 	margin-top: 0.8em; | ||||
| } | ||||
|  | ||||
| /* Image Widget */ | ||||
| .widget_image .wp-caption { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_image .wp-caption-text { | ||||
| 	padding-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* RSS Links Widget */ | ||||
| .widget_rss_links img { | ||||
| 	position: relative; | ||||
| 	top: -2px; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* List type widgets */ | ||||
| .widget_rss_links ul, | ||||
| .widget_top-posts ul , | ||||
| .widget_upcoming_events_widget ul { | ||||
| 	list-style: none; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .widget_rss_links li, | ||||
| .widget_top-posts li, | ||||
| .widget_upcoming_events_widget li { | ||||
| 	border-top: 1px solid #eaeaea; | ||||
| 	border-top: 1px solid rgba(51, 51, 51, 0.1); | ||||
| 	padding: 0.7667em 0; | ||||
| } | ||||
|  | ||||
| .widget_rss_links li:first-child, | ||||
| .widget_top-posts li:first-child, | ||||
| .widget_upcoming_events_widget li:first-child { | ||||
| 	border-top: 0; | ||||
| 	padding-top: 0; | ||||
| } | ||||
|  | ||||
| .widget_rss_links li:last-child, | ||||
| .widget_top-posts li:last-child, | ||||
| .widget_upcoming_events_widget li:last-child { | ||||
| 	padding-bottom: 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Shortcodes Embeds | ||||
|  */ | ||||
|  | ||||
| /* Facebook */ | ||||
| .fb_iframe_widget { | ||||
| 	margin-bottom: 1.6em; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .fb_iframe_widget span { | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| /* Gist */ | ||||
| .gist table { | ||||
| 	table-layout: auto; | ||||
| } | ||||
|  | ||||
| .site .gist .gist-file { | ||||
| 	margin-bottom: 1.5em; | ||||
| } | ||||
|  | ||||
| /* Googlemaps */ | ||||
| .googlemaps { | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
| .googlemaps iframe { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Crowdsignal */ | ||||
| .PDS_Poll, | ||||
| .CSS_Poll { | ||||
| 	display: block !important; | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
| .PDS_Poll .pds-box, | ||||
| .CSS_Poll .css-box { | ||||
| 	max-width: 100%; | ||||
| 	width: auto; | ||||
| } | ||||
|  | ||||
| /* Presentation */ | ||||
| .site .presentation-wrapper { | ||||
| 	margin: 0 auto 1.6em; | ||||
| } | ||||
|  | ||||
| /* Recipes */ | ||||
| .site .jetpack-recipe { | ||||
| 	border: 0; | ||||
| 	margin: 0 0 1.6em; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .site .jetpack-recipe-title { | ||||
| 	border: 0; | ||||
| 	margin-top: 0; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .site .jetpack-recipe .jetpack-recipe-meta { | ||||
| 	font-size: inherit; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| /* Slideshow */ | ||||
| .site .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
| /* Twitter-timeline */ | ||||
| iframe[id*="twitter-widget-"] { | ||||
| 	display: block; | ||||
| } | ||||
|  | ||||
| /* Vine */ | ||||
| .vine-embed { | ||||
| 	display: block; | ||||
| } | ||||
|  | ||||
| /* VideoPress */ | ||||
| .site .video-player { | ||||
| 	margin-bottom: 1.6em; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .video-player object { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Tiled gallery | ||||
|  */ | ||||
|  | ||||
| .site .tiled-gallery { | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Jetpack Comments | ||||
|  */ | ||||
|  | ||||
| .comment-form iframe { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .comment-form .subscribe-label { | ||||
| 	font-weight: 400; | ||||
| 	text-transform: none; | ||||
| } | ||||
|  | ||||
| .comment-subscription-form { | ||||
| 	font-size: 12px; | ||||
| 	font-size: 1.2rem; | ||||
| 	line-height: 1.5em; | ||||
| 	margin: 2em 0 0; | ||||
| } | ||||
|  | ||||
| .comment-subscription-form + .comment-subscription-form  { | ||||
| 	margin-top: 1em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Sharing | ||||
|  */ | ||||
|  | ||||
| .hentry div.sharedaddy h3.sd-title, | ||||
| .hentry h3.sd-title { | ||||
| 	font-family: "Noto Sans", sans-serif; | ||||
| 	font-size: 12px; | ||||
| 	font-size: 1.2rem; | ||||
| 	line-height: 1; | ||||
| 	margin: 0 0 1em 0; | ||||
| 	opacity: 0.7; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Related Posts | ||||
|  */ | ||||
|  | ||||
| .hentry #jp-relatedposts { | ||||
| 	margin: 0; | ||||
| 	padding-top: 0; | ||||
| } | ||||
|  | ||||
| .hentry .jp-relatedposts-post-title a { | ||||
| 	border-bottom: 0; | ||||
| } | ||||
|  | ||||
| .hentry .jp-relatedposts-headline em:before { | ||||
| 	opacity: 0.7; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts h3.jp-relatedposts-headline { | ||||
| 	font-family: "Noto Sans", sans-serif; | ||||
| 	font-size: 12px; | ||||
| 	font-size: 1.2rem; | ||||
| 	opacity: 0.7; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items-visual { | ||||
| 	margin-left: 0; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post { | ||||
| 	margin-bottom: 1.6em; | ||||
| 	opacity: 1; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 	font-size: 1.2rem; | ||||
| 	font-size: 12px; | ||||
| 	line-height: 1.5; | ||||
| } | ||||
|  | ||||
| .hentry .jp-relatedposts-post-title { | ||||
| 	font-weight: 700; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a { | ||||
| 	font-weight: inherit; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items div.jp-relatedposts-post:hover .jp-relatedposts-post-title a, | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a { | ||||
| 	text-decoration: none; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context, | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items-visual div.jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt { | ||||
| 	opacity: 0.7; | ||||
| } | ||||
|  | ||||
| .hentry .jp-relatedposts-post-img { | ||||
| 	margin-bottom: 0.6em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Stats | ||||
|  */ | ||||
|  | ||||
| #wpstats { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Media Queries | ||||
|  */ | ||||
|  | ||||
| @media screen and (min-width: 46.25em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.4rem; | ||||
| 		font-size: 14px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		top: 3px; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 1.75em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.3125em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.widget .fb_iframe_widget, | ||||
| 	.widget .googlemaps, | ||||
| 	.widget .PDS_Poll, | ||||
| 	.widget .CSS_Poll, | ||||
| 	.site .widget .presentation-wrapper, | ||||
| 	.site .widget .jetpack-recipe, | ||||
| 	.site .widget .slideshow-window, | ||||
| 	.site .widget .video-player { | ||||
| 		margin-bottom: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4, | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts img { | ||||
| 		margin: 0 0 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 		line-height: 1.5 !important; | ||||
| 		margin: 0 0 1.5em !important; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile h4 { | ||||
| 		margin: 1.5em 0 0; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile .grofile-accounts { | ||||
| 		margin-top: 0.75em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.5625em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.9643em 0; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 14px; | ||||
| 		font-size: 1.4rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post { | ||||
| 		margin-bottom: 0; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 1.4rem; | ||||
| 		font-size: 14px; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6176em; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 55em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6842em | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.6rem; | ||||
| 		font-size: 16px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		font-size: 24px; | ||||
| 		top: 0; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 2em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.75em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.7188em 0; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 16px; | ||||
| 		font-size: 1.6rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 1.6rem; | ||||
| 		font-size: 16px; | ||||
| 		line-height: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6315em; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 59.6875em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6em | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.2rem; | ||||
| 		font-size: 12px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		font-size: 16px; | ||||
| 		top: 1px; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.125em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6em; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.4583em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6em; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile .grofile-thumbnail { | ||||
| 		max-width: 100%; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.4583em 0; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 12px; | ||||
| 		font-size: 1.2rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 1.2rem; | ||||
| 		font-size: 12px; | ||||
| 		line-height: 1.5; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6em; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 68.75em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6471em | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.4rem; | ||||
| 		font-size: 14px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		top: 3px; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 1.75em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.3125em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.5em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.4643em 0; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 14px; | ||||
| 		font-size: 1.4rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 14px; | ||||
| 		font-size: 1.4rem; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6176em; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 77.5em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6842em | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.6rem; | ||||
| 		font-size: 16px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		font-size: 24px; | ||||
| 		top: 0; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 2em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.4688em 0; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div.sharedaddy h3.sd-title, | ||||
| 	.hentry div#jp-relatedposts h3.jp-relatedposts-headline { | ||||
| 		font-size: 13px; | ||||
| 		font-size: 1.3rem; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 16px; | ||||
| 		font-size: 1.6rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 16px; | ||||
| 		font-size: 1.6rem; | ||||
| 		line-height: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6315em; | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,769 @@ | ||||
| /** | ||||
|  * Jetpack Portfolio Shortcode | ||||
|  */ | ||||
|  | ||||
| .site .portfolio-entry { | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
| .site .portfolio-entry-title, | ||||
| .site .portfolio-entry-meta, | ||||
| .site .portfolio-entry-content { | ||||
| 	font-size: 1.2rem; | ||||
| 	font-size: 12px; | ||||
| 	line-height: 1.5; | ||||
| } | ||||
|  | ||||
| .site .portfolio-featured-image + .portfolio-entry-title { | ||||
| 	margin-top: 0.75em; | ||||
| 	margin-bottom: 0.75em; | ||||
| } | ||||
|  | ||||
| .site .portfolio-entry-meta { | ||||
| 	font-family: "Noto Sans", sans-serif; | ||||
| } | ||||
|  | ||||
| .site .portfolio-entry-content .more-link:after { | ||||
| 	font-size: 16px; | ||||
| 	top: 1px; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Jetpack Widgets | ||||
|  */ | ||||
|  | ||||
| /* Blog Subscriptions Widget */ | ||||
| .jetpack_subscription_widget #subscribe-email input { | ||||
| 	padding: 0.375em; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .jetpack_subscription_widget form > :last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Display WordPress Posts Widget */ | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4 { | ||||
| 	font-size: inherit; | ||||
| 	margin: 0 0 1.6em; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts img { | ||||
| 	margin: 0 0 1.6em; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 	font-size: inherit; | ||||
| 	line-height: 1.6 !important; | ||||
| 	margin: 0 0 1.6em !important; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts > :last-child { | ||||
| 	margin-bottom: 0 !important; | ||||
| } | ||||
|  | ||||
| /* Gallery Widget */ | ||||
| .widget-gallery .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| } | ||||
|  | ||||
| /* Gravatar Profile Widget */ | ||||
| .widget-area .widget-grofile .grofile-thumbnail { | ||||
| 	border-radius: 50%; | ||||
| 	max-width: 200px; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile h4 { | ||||
| 	margin: 1.6em 0 0; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile .grofile-accounts { | ||||
| 	margin-top: 0.8em; | ||||
| } | ||||
|  | ||||
| /* Image Widget */ | ||||
| .widget_image .wp-caption { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_image .wp-caption-text { | ||||
| 	padding-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* RSS Links Widget */ | ||||
| .widget_rss_links img { | ||||
| 	position: relative; | ||||
| 	top: -2px; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* List type widgets */ | ||||
| .widget_rss_links ul, | ||||
| .widget_top-posts ul , | ||||
| .widget_upcoming_events_widget ul { | ||||
| 	list-style: none; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .widget_rss_links li, | ||||
| .widget_top-posts li, | ||||
| .widget_upcoming_events_widget li { | ||||
| 	border-top: 1px solid #eaeaea; | ||||
| 	border-top: 1px solid rgba(51, 51, 51, 0.1); | ||||
| 	padding: 0.7667em 0; | ||||
| } | ||||
|  | ||||
| .widget_rss_links li:first-child, | ||||
| .widget_top-posts li:first-child, | ||||
| .widget_upcoming_events_widget li:first-child { | ||||
| 	border-top: 0; | ||||
| 	padding-top: 0; | ||||
| } | ||||
|  | ||||
| .widget_rss_links li:last-child, | ||||
| .widget_top-posts li:last-child, | ||||
| .widget_upcoming_events_widget li:last-child { | ||||
| 	padding-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Authors Widget */ | ||||
| .widget_authors > ul > li > a { | ||||
| 	margin-bottom: 1em; | ||||
| 	display: inline-block; | ||||
| } | ||||
|  | ||||
| .widget_authors ul { | ||||
| 	list-style: none; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .widget_authors li { | ||||
| 	border-top: 1px solid #eaeaea; | ||||
| 	border-top: 1px solid rgba(51, 51, 51, 0.1); | ||||
| 	padding: 0.7667em 0; | ||||
| } | ||||
|  | ||||
| .widget_authors li:first-child { | ||||
| 	border-top: 0; | ||||
| 	padding-top: 0; | ||||
| } | ||||
|  | ||||
| .widget_authors li:last-child { | ||||
| 	padding-bottom: 0; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Shortcodes Embeds | ||||
|  */ | ||||
|  | ||||
| /* Facebook */ | ||||
| .fb_iframe_widget { | ||||
| 	margin-bottom: 1.6em; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .fb_iframe_widget span { | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| /* Gist */ | ||||
| .gist table { | ||||
| 	table-layout: auto; | ||||
| } | ||||
|  | ||||
| .site .gist .gist-file { | ||||
| 	margin-bottom: 1.5em; | ||||
| } | ||||
|  | ||||
| /* Googlemaps */ | ||||
| .googlemaps { | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
| .googlemaps iframe { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Crowdsignal */ | ||||
| .PDS_Poll, | ||||
| .CSS_Poll { | ||||
| 	display: block !important; | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
| .PDS_Poll .pds-box, | ||||
| .CSS_Poll .css-box { | ||||
| 	max-width: 100%; | ||||
| 	width: auto; | ||||
| } | ||||
|  | ||||
| /* Presentation */ | ||||
| .site .presentation-wrapper { | ||||
| 	margin: 0 auto 1.6em; | ||||
| } | ||||
|  | ||||
| /* Recipes */ | ||||
| .site .jetpack-recipe { | ||||
| 	border: 0; | ||||
| 	margin: 0 0 1.6em; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .site .jetpack-recipe-title { | ||||
| 	border: 0; | ||||
| 	margin-top: 0; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .site .jetpack-recipe .jetpack-recipe-meta { | ||||
| 	font-size: inherit; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| /* Slideshow */ | ||||
| .site .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
| /* Twitter-timeline */ | ||||
| iframe[id*="twitter-widget-"] { | ||||
| 	display: block; | ||||
| } | ||||
|  | ||||
| /* Vine */ | ||||
| .vine-embed { | ||||
| 	display: block; | ||||
| } | ||||
|  | ||||
| /* VideoPress */ | ||||
| .site .video-player { | ||||
| 	margin-bottom: 1.6em; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .video-player object { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Tiled gallery | ||||
|  */ | ||||
|  | ||||
| .site .tiled-gallery { | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Jetpack Comments | ||||
|  */ | ||||
|  | ||||
| .comment-form iframe { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .comment-form .subscribe-label { | ||||
| 	font-weight: 400; | ||||
| 	text-transform: none; | ||||
| } | ||||
|  | ||||
| .comment-subscription-form { | ||||
| 	font-size: 12px; | ||||
| 	font-size: 1.2rem; | ||||
| 	line-height: 1.5em; | ||||
| 	margin: 2em 0 0; | ||||
| } | ||||
|  | ||||
| .comment-subscription-form + .comment-subscription-form  { | ||||
| 	margin-top: 1em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Sharing | ||||
|  */ | ||||
|  | ||||
| .hentry div.sharedaddy h3.sd-title, | ||||
| .hentry h3.sd-title { | ||||
| 	font-family: "Noto Sans", sans-serif; | ||||
| 	font-size: 12px; | ||||
| 	font-size: 1.2rem; | ||||
| 	line-height: 1; | ||||
| 	margin: 0 0 1em 0; | ||||
| 	opacity: 0.7; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Related Posts | ||||
|  */ | ||||
|  | ||||
| .hentry #jp-relatedposts { | ||||
| 	margin: 0; | ||||
| 	padding-top: 0; | ||||
| } | ||||
|  | ||||
| .hentry .jp-relatedposts-post-title a { | ||||
| 	border-bottom: 0; | ||||
| } | ||||
|  | ||||
| .hentry .jp-relatedposts-headline em:before { | ||||
| 	opacity: 0.7; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts h3.jp-relatedposts-headline { | ||||
| 	font-family: "Noto Sans", sans-serif; | ||||
| 	font-size: 12px; | ||||
| 	font-size: 1.2rem; | ||||
| 	opacity: 0.7; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items-visual { | ||||
| 	margin-right: 0; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post { | ||||
| 	margin-bottom: 1.6em; | ||||
| 	opacity: 1; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 	font-size: 1.2rem; | ||||
| 	font-size: 12px; | ||||
| 	line-height: 1.5; | ||||
| } | ||||
|  | ||||
| .hentry .jp-relatedposts-post-title { | ||||
| 	font-weight: 700; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a { | ||||
| 	font-weight: inherit; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items div.jp-relatedposts-post:hover .jp-relatedposts-post-title a, | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a { | ||||
| 	text-decoration: none; | ||||
| } | ||||
|  | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context, | ||||
| .hentry div#jp-relatedposts div.jp-relatedposts-items-visual div.jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt { | ||||
| 	opacity: 0.7; | ||||
| } | ||||
|  | ||||
| .hentry .jp-relatedposts-post-img { | ||||
| 	margin-bottom: 0.6em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Stats | ||||
|  */ | ||||
|  | ||||
| #wpstats { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Media Queries | ||||
|  */ | ||||
|  | ||||
| @media screen and (min-width: 46.25em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.4rem; | ||||
| 		font-size: 14px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		top: 3px; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 1.75em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.3125em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.widget .fb_iframe_widget, | ||||
| 	.widget .googlemaps, | ||||
| 	.widget .PDS_Poll, | ||||
| 	.widget .CSS_Poll, | ||||
| 	.site .widget .presentation-wrapper, | ||||
| 	.site .widget .jetpack-recipe, | ||||
| 	.site .widget .slideshow-window, | ||||
| 	.site .widget .video-player { | ||||
| 		margin-bottom: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4, | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts img { | ||||
| 		margin: 0 0 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 		line-height: 1.5 !important; | ||||
| 		margin: 0 0 1.5em !important; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile h4 { | ||||
| 		margin: 1.5em 0 0; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile .grofile-accounts { | ||||
| 		margin-top: 0.75em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.5625em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.9643em 0; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 14px; | ||||
| 		font-size: 1.4rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post { | ||||
| 		margin-bottom: 0; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 1.4rem; | ||||
| 		font-size: 14px; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6176em; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 55em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6842em | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.6rem; | ||||
| 		font-size: 16px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		font-size: 24px; | ||||
| 		top: 0; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 2em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.75em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.7188em 0; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 16px; | ||||
| 		font-size: 1.6rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 1.6rem; | ||||
| 		font-size: 16px; | ||||
| 		line-height: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6315em; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 59.6875em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6em | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.2rem; | ||||
| 		font-size: 12px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		font-size: 16px; | ||||
| 		top: 1px; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.125em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6em; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.4583em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6em; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile .grofile-thumbnail { | ||||
| 		max-width: 100%; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.4583em 0; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 12px; | ||||
| 		font-size: 1.2rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 1.2rem; | ||||
| 		font-size: 12px; | ||||
| 		line-height: 1.5; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6em; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 68.75em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6471em | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.4rem; | ||||
| 		font-size: 14px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		top: 3px; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 1.75em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.3125em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.5em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.4643em 0; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6471em; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 14px; | ||||
| 		font-size: 1.4rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 14px; | ||||
| 		font-size: 1.4rem; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6176em; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 77.5em) { | ||||
| 	.site .portfolio-entry { | ||||
| 		margin-bottom: 1.6842em | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-title, | ||||
| 	.site .portfolio-entry-meta, | ||||
| 	.site .portfolio-entry-content { | ||||
| 		font-size: 1.6rem; | ||||
| 		font-size: 16px; | ||||
| 	} | ||||
|  | ||||
| 	.site .portfolio-entry-content .more-link:after { | ||||
| 		font-size: 24px; | ||||
| 		top: 0; | ||||
| 	} | ||||
|  | ||||
| 	.site .hentry .gist .gist-file { | ||||
| 		margin-bottom: 2em; | ||||
| 	} | ||||
|  | ||||
| 	.site .widget .gist .gist-file { | ||||
| 		margin-bottom: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry .fb_iframe_widget, | ||||
| 	.hentry .googlemaps, | ||||
| 	.hentry .PDS_Poll, | ||||
| 	.hentry .CSS_Poll, | ||||
| 	.site .hentry .presentation-wrapper, | ||||
| 	.site .hentry .jetpack-recipe, | ||||
| 	.site .hentry .slideshow-window, | ||||
| 	.site .hentry .video-player { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_rss_links li, | ||||
| 	.widget_top-posts li, | ||||
| 	.widget_upcoming_events_widget li { | ||||
| 		padding: 0.4688em 0; | ||||
| 	} | ||||
|  | ||||
| 	.site .tiled-gallery { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.jetpack-video-wrapper { | ||||
| 		margin-bottom: 1.6842em; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div.sharedaddy h3.sd-title, | ||||
| 	.hentry div#jp-relatedposts h3.jp-relatedposts-headline { | ||||
| 		font-size: 13px; | ||||
| 		font-size: 1.3rem; | ||||
| 	} | ||||
|  | ||||
| 	.comment-subscription-form { | ||||
| 		font-size: 16px; | ||||
| 		font-size: 1.6rem; | ||||
| 	} | ||||
|  | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| 	.hentry div#jp-relatedposts div.jp-relatedposts-items p { | ||||
| 		font-size: 16px; | ||||
| 		font-size: 1.6rem; | ||||
| 		line-height: 1.5em; | ||||
| 	} | ||||
|  | ||||
| 	.jp-relatedposts-post-img { | ||||
| 		margin-bottom: 0.6315em; | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,35 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Jetpack Compatibility File | ||||
|  * See: http://jetpack.com/ | ||||
|  */ | ||||
|  | ||||
| function twentyfifteen_jetpack_setup() { | ||||
| 	/** | ||||
| 	 * Add theme support for Responsive Videos. | ||||
| 	 */ | ||||
| 	add_theme_support( 'jetpack-responsive-videos' ); | ||||
|  | ||||
| 	/** | ||||
| 	 * Add theme support for geo-location. | ||||
| 	 */ | ||||
| 	add_theme_support( 'jetpack-geo-location' ); | ||||
| } | ||||
| add_action( 'after_setup_theme', 'twentyfifteen_jetpack_setup' ); | ||||
|  | ||||
| function twentyfifteen_init_jetpack() { | ||||
| 	/** | ||||
| 	 * Add our compat CSS file for custom widget stylings and such. | ||||
| 	 * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production | ||||
| 	 * or skip it entirely for wpcom. | ||||
| 	 */ | ||||
| 	if ( ! is_admin() ) { | ||||
| 		$version = false; | ||||
| 		if ( method_exists( 'Jetpack', 'is_development_version' ) ) { | ||||
| 			$version = Jetpack::is_development_version() ? filemtime( plugin_dir_path( __FILE__ ) . 'twentyfifteen.css' ) : JETPACK__VERSION; | ||||
| 		} | ||||
| 		wp_enqueue_style( 'twentyfifteen-jetpack', plugins_url( 'twentyfifteen.css', __FILE__ ), array(), $version ); | ||||
| 		wp_style_add_data( 'twentyfifteen-jetpack', 'rtl', 'replace' ); | ||||
| 	} | ||||
| } | ||||
| add_action( 'init', 'twentyfifteen_init_jetpack' ); | ||||
| @@ -0,0 +1,370 @@ | ||||
| /** | ||||
|  * Jetpack compat stylesheet for Twenty Fourteen. | ||||
|  */ | ||||
|  | ||||
| #jp-post-flair:empty { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
| .site-content #jp-post-flair { | ||||
| 	margin: 24px 0; | ||||
| } | ||||
|  | ||||
| .widget #jp-post-flair { | ||||
| 	padding-top: 0; | ||||
| } | ||||
|  | ||||
| .entry-content div.jp-relatedposts { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| div.jp-relatedposts .jp-relatedposts-headline em:after { | ||||
| 	content: ":"; | ||||
| } | ||||
|  | ||||
| #page .entry-content div.sharedaddy h3, | ||||
| #page .entry-summary div.sharedaddy h3, | ||||
| #page .entry-content h3.sd-title, | ||||
| #page .entry-summary h3.sd-title, | ||||
| #primary div.sharedaddy .jp-relatedposts-headline em, | ||||
| .pd-rating, | ||||
| .cs-rating { | ||||
| 	color: #767676; | ||||
| 	font-size: 11px; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| .pd-rating, | ||||
| .cs-rating { | ||||
| 	min-height: 23px; | ||||
| 	margin-bottom: 5px; | ||||
| } | ||||
|  | ||||
| .wp-multiplayer, | ||||
| .PDS_Poll, | ||||
| .CSS_Poll, | ||||
| .entry-content .slideshow-window { | ||||
| 	margin-bottom: 24px; | ||||
| } | ||||
|  | ||||
| .entry-content .gist table { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .video-player { | ||||
| 	padding: 0 0 24px; | ||||
| } | ||||
|  | ||||
| .highlander-enabled #respond { | ||||
| 	margin: 0; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .highlander-enabled #respond h3 { | ||||
| 	margin: 0 0 24px; | ||||
| } | ||||
|  | ||||
| .highlander-enabled #respond h3 small a { | ||||
| 	width: 24px; | ||||
| } | ||||
|  | ||||
| .wpcnt { | ||||
| 	margin-bottom: 15px; /* 24-9 */ | ||||
| } | ||||
|  | ||||
| #wpstats { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
| img[id*="botd"] { | ||||
| 	position: absolute; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Widgets | ||||
|  * ----------------------------------------------------------------------------- | ||||
|  */ | ||||
|  | ||||
| /* About.me Widget*/ | ||||
|  | ||||
| .aboutme_widget #am_thumbnail { | ||||
| 	margin-bottom: 18px; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_thumbnail img { | ||||
| 	border: 0; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_name { | ||||
| 	font-weight: 900; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_headline { | ||||
| 	font-size: 14px; | ||||
| 	line-height: 1.2857142857; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_bio { | ||||
| 	margin: 18px 0; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_bio p { | ||||
| 	margin-bottom: 6px; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_bio:empty { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_services { | ||||
| 	margin-top: 18px; | ||||
| } | ||||
|  | ||||
| /* Akismet Widget */ | ||||
|  | ||||
| .widget_akismet_widget a, | ||||
| .content-sidebar .widget_akismet_widget a { | ||||
| 	color: rgba(255,255,255,0.5) !important; | ||||
| } | ||||
|  | ||||
| .widget_akismet_widget a:hover, | ||||
| .content-sidebar .widget_akismet_widget a:hover { | ||||
| 	color: rgba(255,255,255,0.7)  !important; | ||||
| } | ||||
|  | ||||
| /* Authors Widget */ | ||||
|  | ||||
| .widget_authors li { | ||||
| 	margin-bottom: 9px; | ||||
| } | ||||
|  | ||||
| .widget_authors li:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_authors img { | ||||
| 	margin-left: 5px; | ||||
| } | ||||
|  | ||||
| /* Contact Info Widget */ | ||||
|  | ||||
| .widget_contact_info > div { | ||||
| 	margin-bottom: 18px; | ||||
| } | ||||
|  | ||||
| .widget_contact_info > div:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Display WordPress Posts Widget */ | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4 { | ||||
| 	font-size: 14px; | ||||
| 	line-height: 1.2857142857; | ||||
| 	margin: 0 0 9px; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 	font-size: 14px; | ||||
| 	line-height: 1.2857142857 !important; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 	margin: 9px 0 18px !important; | ||||
| } | ||||
|  | ||||
| /* Follow Button Widget */ | ||||
|  | ||||
| .widget_follow_button_widget iframe { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Gravatar & Gravatar Profile Widget */ | ||||
|  | ||||
| .widget_gravatar img.avatar, | ||||
| .widget-grofile .grofile-thumbnail { | ||||
| 	height: auto; | ||||
| 	max-width: 100% !important; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile h4 { | ||||
| 	font-size: 12px; | ||||
| 	line-height: 1.2857142857; | ||||
| 	margin: 18px 0 9px; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile .grofile-meta h4 { | ||||
| 	font-size: 18px; | ||||
| 	line-height: 1; | ||||
| 	text-transform: none; | ||||
| } | ||||
|  | ||||
| /* Image Widget */ | ||||
|  | ||||
| .widget_image .wp-caption, | ||||
| .widget_image .wp-caption-text { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_image img { | ||||
| 	height: auto; | ||||
| } | ||||
|  | ||||
| /* Posts I Like Widget */ | ||||
|  | ||||
| .widget_jetpack_posts_i_like .widgets-list-layout li { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| /* Recent Comments Widget */ | ||||
|  | ||||
| .widget_recent_comments table, | ||||
| .widget_recent_comments td { | ||||
| 	border: 0; | ||||
| } | ||||
|  | ||||
| .widget_recent_comments td.recentcommentsavatartop, | ||||
| .widget_recent_comments td.recentcommentsavatarend { | ||||
| 	padding: 5px 0 5px 5px; | ||||
| } | ||||
|  | ||||
| .widget_recent_comments td.recentcommentstexttop, | ||||
| .widget_recent_comments td.recentcommentstextend { | ||||
| 	padding: 5px 5px 5px 0; | ||||
| 	vertical-align: top; | ||||
| } | ||||
|  | ||||
| /* Recent Images Widget */ | ||||
|  | ||||
| .widget_recent_images img { | ||||
| 	height: auto; | ||||
| } | ||||
|  | ||||
| /* Top Posts & Pages Widget */ | ||||
|  | ||||
| .widget_top-posts .widgets-list-layout li { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Twitter(old) Widget */ | ||||
|  | ||||
| .widget_twitter li { | ||||
| 	margin-bottom: 18px; | ||||
| } | ||||
|  | ||||
| .widget_twitter li:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_twitter iframe { | ||||
| 	margin: 18px 0 0; | ||||
| } | ||||
|  | ||||
| /* List type Widgets */ | ||||
|  | ||||
| .widget_jp_blogs_i_follow li, | ||||
| .widget_delicious li, | ||||
| .widgets-list-layout li, | ||||
| .widget_top-clicks li, | ||||
| .widget_top-posts li, | ||||
| .top_rated li, | ||||
| .widget_upcoming_events_widget .upcoming-events li { | ||||
| 	border-top: 1px solid rgba(255, 255, 255, 0.2); | ||||
| 	padding: 8px 0 9px; | ||||
| } | ||||
|  | ||||
| .widget_jp_blogs_i_follow li:first-child, | ||||
| .widgets-list-layout li:first-child, | ||||
| .widget_top-clicks li:first-child, | ||||
| .widget_top-posts li:first-child, | ||||
| .top_rated li:first-child, | ||||
| .widget_upcoming_events_widget .upcoming-events li:first-child { | ||||
| 	border-top: 0; | ||||
| } | ||||
|  | ||||
| .content-sidebar .widget_jp_blogs_i_follow li, | ||||
| .content-sidebar .widgets-list-layout li, | ||||
| .content-sidebar .widget_top-clicks li, | ||||
| .content-sidebar .widget_top-posts li, | ||||
| .content-sidebar .top_rated li, | ||||
| .content-sidebar .widget_upcoming_events_widget .upcoming-events li { | ||||
| 	border-color: rgba(0, 0, 0, 0.1); | ||||
| } | ||||
|  | ||||
| .content-sidebar widget-area .widget-grofile h4 { | ||||
| 	font-weight: 900; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Media Queries | ||||
|  * ----------------------------------------------------------------------------- | ||||
|  */ | ||||
|  | ||||
| @media screen and (min-width: 1008px) { | ||||
| 	.footer-sidebar .widget_jp_blogs_i_follow li, | ||||
| 	.footer-sidebar .widget_jp_blogs_i_follow li, | ||||
| 	.footer-sidebar .widget_top-clicks li, | ||||
| 	.footer-sidebar .widget_top-posts li, | ||||
| 	.footer-sidebar .top_rated li, | ||||
| 	.footer-sidebar .widget_upcoming_events_widget .upcoming-events li, | ||||
| 	.primary-sidebar .widget_jp_blogs_i_follow li, | ||||
| 	.primary-sidebar .widget_jp_blogs_i_follow li, | ||||
| 	.primary-sidebar .widget_top-clicks li, | ||||
| 	.primary-sidebar .widget_top-posts li, | ||||
| 	.primary-sidebar .top_rated li { | ||||
| 		border-top: 0; | ||||
| 		padding: 0 0 6px; | ||||
| 	} | ||||
|  | ||||
| 	.footer-sidebar .widget_jp_blogs_i_follow li:last-child, | ||||
| 	.footer-sidebar .widget_jp_blogs_i_follow li:last-child, | ||||
| 	.footer-sidebar .widget_top-clicks li:last-child, | ||||
| 	.footer-sidebar .widget_top-posts li:last-child, | ||||
| 	.footer-sidebar .top_rated li:last-child, | ||||
| 	.footer-sidebar .widget_upcoming_events_widget .upcoming-events li:last-child, | ||||
| 	.primary-sidebar .widget_jp_blogs_i_follow li:last-child, | ||||
| 	.primary-sidebar .widget_jp_blogs_i_follow li:last-child, | ||||
| 	.primary-sidebar .widget_top-clicks li:last-child, | ||||
| 	.primary-sidebar .widget_top-posts li:last-child, | ||||
| 	.primary-sidebar .top_rated li:last-child { | ||||
| 		padding: 0; | ||||
| 	} | ||||
|  | ||||
| 	.primary-sidebar .widget_blog_subscription input[type="text"], | ||||
| 	.footer-sidebar .widget_blog_subscription input[type="text"] { | ||||
| 		padding: 3px 2px !important; | ||||
| 	} | ||||
|  | ||||
| 	.footer-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4, | ||||
| 	.primary-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4, | ||||
| 	.footer-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p, | ||||
| 	.primary-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p, | ||||
| 	.footer-sidebar .widget-grofile .grofile-meta h4, | ||||
| 	.primary-sidebar .widget-grofile .grofile-meta h4 { | ||||
| 		font-size: 12px; | ||||
| 		line-height: 1.5; | ||||
| 	} | ||||
|  | ||||
| 	.footer-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p, | ||||
| 	.primary-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 		line-height: 1.5 !important; | ||||
| 	} | ||||
|  | ||||
| 	.footer-sidebar .widget-grofile h4, | ||||
| 	.primary-sidebar .widget-grofile h4, | ||||
| 	.footer-sidebar .top_rated div > p:first-of-type, | ||||
| 	.primary-sidebar .top_rated div > p:first-of-type { | ||||
| 		font-size: 11px; | ||||
| 		line-height: 1.6363636363; | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,365 @@ | ||||
| /** | ||||
|  * Jetpack compat stylesheet for Twenty Fourteen. | ||||
|  */ | ||||
|  | ||||
| #jp-post-flair:empty { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
| .site-content #jp-post-flair { | ||||
| 	margin: 24px 0; | ||||
| } | ||||
|  | ||||
| .widget #jp-post-flair { | ||||
| 	padding-top: 0; | ||||
| } | ||||
|  | ||||
| .entry-content div.jp-relatedposts { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| #page .entry-content div.sharedaddy h3, | ||||
| #page .entry-summary div.sharedaddy h3, | ||||
| #page .entry-content h3.sd-title, | ||||
| #page .entry-summary h3.sd-title, | ||||
| #primary div.sharedaddy .jp-relatedposts-headline em, | ||||
| .pd-rating, | ||||
| .cs-rating { | ||||
| 	color: #767676; | ||||
| 	font-size: 11px; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| .pd-rating, | ||||
| .cs-rating { | ||||
| 	min-height: 23px; | ||||
| 	margin-bottom: 5px; | ||||
| } | ||||
|  | ||||
| .wp-multiplayer, | ||||
| .PDS_Poll, | ||||
| .CSS_Poll, | ||||
| .entry-content .slideshow-window { | ||||
| 	margin-bottom: 24px; | ||||
| } | ||||
|  | ||||
| .entry-content .gist table { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .video-player { | ||||
| 	padding: 0 0 24px; | ||||
| } | ||||
|  | ||||
| .highlander-enabled #respond { | ||||
| 	margin: 0; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .highlander-enabled #respond h3 { | ||||
| 	margin: 0 0 24px; | ||||
| } | ||||
|  | ||||
| .highlander-enabled #respond h3 small a { | ||||
| 	width: 24px; | ||||
| } | ||||
|  | ||||
| .wpcnt { | ||||
| 	margin-bottom: 15px; /* 24-9 */ | ||||
| } | ||||
|  | ||||
| #wpstats { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
| img[id*="botd"] { | ||||
| 	position: absolute; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Widgets | ||||
|  * ----------------------------------------------------------------------------- | ||||
|  */ | ||||
|  | ||||
| /* About.me Widget*/ | ||||
|  | ||||
| .aboutme_widget #am_thumbnail { | ||||
| 	margin-bottom: 18px; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_thumbnail img { | ||||
| 	border: 0; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_name { | ||||
| 	font-weight: 900; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_headline { | ||||
| 	font-size: 14px; | ||||
| 	line-height: 1.2857142857; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_bio { | ||||
| 	margin: 18px 0; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_bio p { | ||||
| 	margin-bottom: 6px; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_bio:empty { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .aboutme_widget #am_services { | ||||
| 	margin-top: 18px; | ||||
| } | ||||
|  | ||||
| /* Akismet Widget */ | ||||
|  | ||||
| .widget_akismet_widget a, | ||||
| .content-sidebar .widget_akismet_widget a { | ||||
| 	color: rgba(255,255,255,0.5) !important; | ||||
| } | ||||
|  | ||||
| .widget_akismet_widget a:hover, | ||||
| .content-sidebar .widget_akismet_widget a:hover { | ||||
| 	color: rgba(255,255,255,0.7)  !important; | ||||
| } | ||||
|  | ||||
| /* Authors Widget */ | ||||
| .widget.widget_authors li > ul { | ||||
| 	margin-left: 0; | ||||
| } | ||||
|  | ||||
| .widget_authors li { | ||||
| 	margin-bottom: 9px; | ||||
| } | ||||
|  | ||||
| .widget_authors li:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Contact Info Widget */ | ||||
|  | ||||
| .widget_contact_info > div { | ||||
| 	margin-bottom: 18px; | ||||
| } | ||||
|  | ||||
| .widget_contact_info > div:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Display WordPress Posts Widget */ | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4 { | ||||
| 	font-size: 14px; | ||||
| 	line-height: 1.2857142857; | ||||
| 	margin: 0 0 9px; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 	font-size: 14px; | ||||
| 	line-height: 1.2857142857 !important; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 	margin: 9px 0 18px !important; | ||||
| } | ||||
|  | ||||
| /* Follow Button Widget */ | ||||
|  | ||||
| .widget_follow_button_widget iframe { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Gravatar & Gravatar Profile Widget */ | ||||
|  | ||||
| .widget_gravatar img.avatar, | ||||
| .widget-grofile .grofile-thumbnail { | ||||
| 	height: auto; | ||||
| 	max-width: 100% !important; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile h4 { | ||||
| 	font-size: 12px; | ||||
| 	line-height: 1.2857142857; | ||||
| 	margin: 18px 0 9px; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile .grofile-meta h4 { | ||||
| 	font-size: 18px; | ||||
| 	line-height: 1; | ||||
| 	text-transform: none; | ||||
| } | ||||
|  | ||||
| /* Image Widget */ | ||||
|  | ||||
| .widget_image .wp-caption, | ||||
| .widget_image .wp-caption-text { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_image img { | ||||
| 	height: auto; | ||||
| } | ||||
|  | ||||
| /* Posts I Like Widget */ | ||||
|  | ||||
| .widget_jetpack_posts_i_like .widgets-list-layout li { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| /* Recent Comments Widget */ | ||||
|  | ||||
| .widget_recent_comments table, | ||||
| .widget_recent_comments td { | ||||
| 	border: 0; | ||||
| } | ||||
|  | ||||
| .widget_recent_comments td.recentcommentsavatartop, | ||||
| .widget_recent_comments td.recentcommentsavatarend { | ||||
| 	padding: 5px 5px 5px 0; | ||||
| } | ||||
|  | ||||
| .widget_recent_comments td.recentcommentstexttop, | ||||
| .widget_recent_comments td.recentcommentstextend { | ||||
| 	padding: 5px 0 5px 5px; | ||||
| 	vertical-align: top; | ||||
| } | ||||
|  | ||||
| /* Recent Images Widget */ | ||||
|  | ||||
| .widget_recent_images img { | ||||
| 	height: auto; | ||||
| } | ||||
|  | ||||
| /* Top Posts & Pages Widget */ | ||||
|  | ||||
| .widget_top-posts .widgets-list-layout li { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* Twitter(old) Widget */ | ||||
|  | ||||
| .widget_twitter li { | ||||
| 	margin-bottom: 18px; | ||||
| } | ||||
|  | ||||
| .widget_twitter li:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_twitter iframe { | ||||
| 	margin: 18px 0 0; | ||||
| } | ||||
|  | ||||
| /* List type Widgets */ | ||||
|  | ||||
| .widget_jp_blogs_i_follow li, | ||||
| .widget_delicious li, | ||||
| .widgets-list-layout li, | ||||
| .widget_top-clicks li, | ||||
| .widget_top-posts li, | ||||
| .top_rated li, | ||||
| .widget_upcoming_events_widget .upcoming-events li { | ||||
| 	border-top: 1px solid rgba(255, 255, 255, 0.2); | ||||
| 	padding: 8px 0 9px; | ||||
| } | ||||
|  | ||||
| .widget_jp_blogs_i_follow li:first-child, | ||||
| .widgets-list-layout li:first-child, | ||||
| .widget_top-clicks li:first-child, | ||||
| .widget_top-posts li:first-child, | ||||
| .top_rated li:first-child, | ||||
| .widget_upcoming_events_widget .upcoming-events li:first-child { | ||||
| 	border-top: 0; | ||||
| } | ||||
|  | ||||
| .content-sidebar .widget_jp_blogs_i_follow li, | ||||
| .content-sidebar .widgets-list-layout li, | ||||
| .content-sidebar .widget_top-clicks li, | ||||
| .content-sidebar .widget_top-posts li, | ||||
| .content-sidebar .top_rated li, | ||||
| .content-sidebar .widget_upcoming_events_widget .upcoming-events li { | ||||
| 	border-color: rgba(0, 0, 0, 0.1); | ||||
| } | ||||
|  | ||||
| .content-sidebar widget-area .widget-grofile h4 { | ||||
| 	font-weight: 900; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Media Queries | ||||
|  * ----------------------------------------------------------------------------- | ||||
|  */ | ||||
|  | ||||
| @media screen and (min-width: 1008px) { | ||||
| 	.footer-sidebar .widget_jp_blogs_i_follow li, | ||||
| 	.footer-sidebar .widget_jp_blogs_i_follow li, | ||||
| 	.footer-sidebar .widget_top-clicks li, | ||||
| 	.footer-sidebar .widget_top-posts li, | ||||
| 	.footer-sidebar .top_rated li, | ||||
| 	.footer-sidebar .widget_upcoming_events_widget .upcoming-events li, | ||||
| 	.primary-sidebar .widget_jp_blogs_i_follow li, | ||||
| 	.primary-sidebar .widget_jp_blogs_i_follow li, | ||||
| 	.primary-sidebar .widget_top-clicks li, | ||||
| 	.primary-sidebar .widget_top-posts li, | ||||
| 	.primary-sidebar .top_rated li { | ||||
| 		border-top: 0; | ||||
| 		padding: 0 0 6px; | ||||
| 	} | ||||
|  | ||||
| 	.footer-sidebar .widget_jp_blogs_i_follow li:last-child, | ||||
| 	.footer-sidebar .widget_jp_blogs_i_follow li:last-child, | ||||
| 	.footer-sidebar .widget_top-clicks li:last-child, | ||||
| 	.footer-sidebar .widget_top-posts li:last-child, | ||||
| 	.footer-sidebar .top_rated li:last-child, | ||||
| 	.footer-sidebar .widget_upcoming_events_widget .upcoming-events li:last-child, | ||||
| 	.primary-sidebar .widget_jp_blogs_i_follow li:last-child, | ||||
| 	.primary-sidebar .widget_jp_blogs_i_follow li:last-child, | ||||
| 	.primary-sidebar .widget_top-clicks li:last-child, | ||||
| 	.primary-sidebar .widget_top-posts li:last-child, | ||||
| 	.primary-sidebar .top_rated li:last-child { | ||||
| 		padding: 0; | ||||
| 	} | ||||
|  | ||||
| 	.primary-sidebar .widget_blog_subscription input[type="text"], | ||||
| 	.footer-sidebar .widget_blog_subscription input[type="text"] { | ||||
| 		padding: 3px 2px !important; | ||||
| 	} | ||||
|  | ||||
| 	.footer-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4, | ||||
| 	.primary-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4, | ||||
| 	.footer-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p, | ||||
| 	.primary-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p, | ||||
| 	.footer-sidebar .widget-grofile .grofile-meta h4, | ||||
| 	.primary-sidebar .widget-grofile .grofile-meta h4 { | ||||
| 		font-size: 12px; | ||||
| 		line-height: 1.5; | ||||
| 	} | ||||
|  | ||||
| 	.footer-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p, | ||||
| 	.primary-sidebar .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 		line-height: 1.5 !important; | ||||
| 	} | ||||
|  | ||||
| 	.footer-sidebar .widget-grofile h4, | ||||
| 	.primary-sidebar .widget-grofile h4, | ||||
| 	.footer-sidebar .top_rated div > p:first-of-type, | ||||
| 	.primary-sidebar .top_rated div > p:first-of-type { | ||||
| 		font-size: 11px; | ||||
| 		line-height: 1.6363636363; | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,73 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * A last try to show posts, in case the Featured Content plugin returns no IDs. | ||||
|  * | ||||
|  * @param array $featured_ids | ||||
|  * @return array | ||||
|  */ | ||||
| function twentyfourteen_featured_content_post_ids( $featured_ids ) { | ||||
| 	if ( empty( $featured_ids ) ) { | ||||
| 		$featured_ids = array_slice( get_option( 'sticky_posts', array() ), 0, 6 ); | ||||
| 	} | ||||
|  | ||||
| 	return $featured_ids; | ||||
| } | ||||
| add_action( 'featured_content_post_ids', 'twentyfourteen_featured_content_post_ids' ); | ||||
|  | ||||
| /** | ||||
|  * Set the default tag name for Featured Content. | ||||
|  * | ||||
|  * @param WP_Customize_Manager $wp_customize Theme Customizer object. | ||||
|  * @return void | ||||
|  */ | ||||
| function twentyfourteen_customizer_default( $wp_customize ) { | ||||
| 	$wp_customize->get_setting( 'featured-content[tag-name]' )->default = 'featured'; | ||||
| } | ||||
| add_action( 'customize_register', 'twentyfourteen_customizer_default' ); | ||||
|  | ||||
| /** | ||||
|  * Sets a default tag of 'featured' for Featured Content. | ||||
|  * | ||||
|  * @param array $settings | ||||
|  * @return array | ||||
|  */ | ||||
| function twentyfourteen_featured_content_default_settings( $settings ) { | ||||
| 	$settings['tag-name'] = 'featured'; | ||||
|  | ||||
| 	return $settings; | ||||
| } | ||||
| add_action( 'featured_content_default_settings', 'twentyfourteen_featured_content_default_settings' ); | ||||
|  | ||||
| /** | ||||
|  * Removes sharing markup from post content if we're not in the loop and it's a | ||||
|  * formatted post. | ||||
|  * | ||||
|  * @param bool    $show Whether to show sharing options. | ||||
|  * @param WP_Post $post The post to share. | ||||
|  * @return bool | ||||
|  */ | ||||
| function twentyfourteen_mute_content_filters( $show, $post ) { | ||||
| 	$formats = get_theme_support( 'post-formats' ); | ||||
| 	if ( ! in_the_loop() && has_post_format( $formats[0], $post ) ) { | ||||
| 		$show = false; | ||||
| 	} | ||||
| 	return $show; | ||||
| } | ||||
| add_filter( 'sharing_show', 'twentyfourteen_mute_content_filters', 10, 2 ); | ||||
|  | ||||
| function twentyfourteen_init_jetpack() { | ||||
| 	/** | ||||
| 	 * Add our compat CSS file for custom widget stylings and such. | ||||
| 	 * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production. | ||||
| 	 */ | ||||
| 	if ( ! is_admin() ) { | ||||
| 		$version = false; | ||||
| 		if ( method_exists( 'Jetpack', 'is_development_version' ) ) { | ||||
| 			$version = Jetpack::is_development_version() ? filemtime( plugin_dir_path( __FILE__ ) . 'twentyfourteen.css' ) : JETPACK__VERSION; | ||||
| 		} | ||||
| 		wp_enqueue_style( 'twentyfourteen-jetpack', plugins_url( 'twentyfourteen.css', __FILE__ ), array(), $version ); | ||||
| 		wp_style_add_data( 'twentyfourteen-jetpack', 'rtl', 'replace' ); | ||||
| 	} | ||||
| } | ||||
| add_action( 'init', 'twentyfourteen_init_jetpack' ); | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -0,0 +1,374 @@ | ||||
| /* Infinite scroll */ | ||||
|  | ||||
| /* Globally hidden elements when Infinite Scroll is supported and in use. */ | ||||
| .infinite-scroll .pagination, | ||||
| .infinite-scroll .posts-navigation, | ||||
| .infinite-scroll.neverending .site-footer { | ||||
| 	/* Theme Footer (when set to scrolling) */ | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
|  /* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */ | ||||
| .infinity-end.neverending .site-footer { | ||||
| 	display: block; | ||||
| } | ||||
|  | ||||
| .infinite-loader { | ||||
| 	margin: calc(3 * 1rem) auto; | ||||
| } | ||||
|  | ||||
| .infinite-loader .spinner { | ||||
| 	margin: 0 auto; | ||||
| 	left: inherit !important; | ||||
| } | ||||
|  | ||||
| .site-main #infinite-handle { | ||||
| 	margin: calc(2 * 1rem) auto; | ||||
| } | ||||
|  | ||||
| .site-main #infinite-handle span { | ||||
| 	background: transparent; | ||||
| 	display: block; | ||||
| 	font-size: 0.8888888889em; | ||||
| 	text-align: center; | ||||
| } | ||||
|  | ||||
| .site-main #infinite-handle span button, | ||||
| .site-main #infinite-handle span button:hover, | ||||
| .site-main #infinite-handle span button:focus { | ||||
| 	transition: background 150ms ease-in-out; | ||||
| 	background: #0073aa; | ||||
| 	border: none; | ||||
| 	border-radius: 5px; | ||||
| 	box-sizing: border-box; | ||||
| 	color: white; | ||||
| 	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; | ||||
| 	font-size: 0.8888888889em; | ||||
| 	font-weight: 600; | ||||
| 	line-height: 1.2; | ||||
| 	outline: none; | ||||
| 	padding: 0.66rem 1rem; | ||||
| } | ||||
|  | ||||
| .site-main #infinite-handle span button:hover { | ||||
| 	cursor: pointer; | ||||
| } | ||||
|  | ||||
| .site-main #infinite-handle span button:hover, | ||||
| .site-main #infinite-handle span button:focus { | ||||
| 	background: #111; | ||||
| } | ||||
|  | ||||
| .site-main #infinite-handle span button:focus { | ||||
| 	outline: thin dotted; | ||||
| 	outline-offset: -4px; | ||||
| } | ||||
|  | ||||
| .site-main .infinite-wrap .entry:first-of-type { | ||||
| 	margin-top: calc(6 * 1rem); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Responsive Videos | ||||
|  */ | ||||
| .entry .jetpack-video-wrapper { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Sharing | ||||
|  */ | ||||
|  | ||||
| .sd-block { | ||||
| 	line-height: 1; | ||||
| } | ||||
|  | ||||
| .entry div.sharedaddy h3.sd-title, | ||||
| .entry h3.sd-title { | ||||
| 	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; | ||||
| 	font-size: 1.125em; | ||||
| 	font-weight: 700; | ||||
| 	letter-spacing: -0.02em; | ||||
| 	line-height: 1.2; | ||||
| 	margin-bottom: 0.5em; | ||||
| 	-webkit-font-smoothing: antialiased; | ||||
| 	-moz-osx-font-smoothing: grayscale; | ||||
| } | ||||
|  | ||||
| .entry div.sharedaddy h3.sd-title:before, | ||||
| .entry h3.sd-title:before { | ||||
| 	background: #767676; | ||||
| 	border-top: none; | ||||
| 	content: "\020"; | ||||
| 	display: block; | ||||
| 	height: 2px; | ||||
| 	margin: 1rem 0; | ||||
| 	width: 1em; | ||||
| 	min-width: inherit; | ||||
| } | ||||
|  | ||||
| .sd-social-icon-text .sd-content ul, | ||||
| .sd-social-text .sd-content ul { | ||||
| 	margin-bottom: -0.3125em !important; | ||||
| } | ||||
|  | ||||
| .sd-social-icon .sd-content ul, | ||||
| .sd-social-official .sd-content ul { | ||||
| 	margin-bottom: 0 !important; | ||||
| } | ||||
|  | ||||
| .entry #sharing_email .sharing_send, | ||||
| .entry .sd-content ul li .option a.share-ustom, | ||||
| .entry .sd-content ul li a.sd-button, | ||||
| .entry .sd-content ul li.advanced a.share-more, | ||||
| .entry .sd-content ul li.preview-item div.option.option-smart-off a, | ||||
| .entry .sd-social-icon .sd-content ul li a.sd-button, | ||||
| .entry .sd-social-icon-text .sd-content ul li a.sd-button, | ||||
| .entry .sd-social-official .sd-content > ul > li .digg_button > a, | ||||
| .entry .sd-social-official .sd-content > ul > li > a.sd-button, | ||||
| .entry .sd-social-text .sd-content ul li a.sd-button { | ||||
| 	box-shadow: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Related Posts | ||||
|  */ | ||||
|  | ||||
| .entry #jp-relatedposts { | ||||
| 	padding-top: 0; | ||||
| 	margin-top: 32px; | ||||
| 	margin-bottom: 32px; | ||||
| } | ||||
|  | ||||
| .entry #jp-relatedposts h3.jp-relatedposts-headline { | ||||
| 	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; | ||||
| 	font-size: 1.125em; | ||||
| 	font-weight: 700; | ||||
| 	letter-spacing: -0.02em; | ||||
| 	line-height: 1.2; | ||||
| 	margin-bottom: 0.5em; | ||||
| 	-webkit-font-smoothing: antialiased; | ||||
| 	-moz-osx-font-smoothing: grayscale; | ||||
| } | ||||
|  | ||||
| .entry #jp-relatedposts h3.jp-relatedposts-headline:before { | ||||
| 	background: #767676; | ||||
| 	border-top: none; | ||||
| 	content: "\020"; | ||||
| 	display: block; | ||||
| 	height: 2px; | ||||
| 	margin: 1rem 0; | ||||
| 	width: 1em; | ||||
| 	min-width: inherit; | ||||
| } | ||||
|  | ||||
| .entry #jp-relatedposts h3.jp-relatedposts-headline em:before { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
| .entry #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post { | ||||
| 	opacity: 1; | ||||
| } | ||||
|  | ||||
| .entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title, | ||||
| .entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { | ||||
| 	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; | ||||
| 	font-size: 1em; | ||||
| 	letter-spacing: -0.02em; | ||||
| 	line-height: 1.2; | ||||
| 	margin-bottom: 0.5em; | ||||
| 	-webkit-font-smoothing: antialiased; | ||||
| 	-moz-osx-font-smoothing: grayscale; | ||||
| } | ||||
|  | ||||
| .entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title a, | ||||
| .entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span a { | ||||
| 	font-weight: 700; | ||||
| } | ||||
|  | ||||
| .entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title, | ||||
| .entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-excerpt { | ||||
| 	margin-top: 0.5em; | ||||
| 	margin-bottom: 0.5em; | ||||
| } | ||||
|  | ||||
| .entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context, | ||||
| .entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date { | ||||
| 	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; | ||||
| 	font-size: 13px; | ||||
| 	font-weight: 500; | ||||
| } | ||||
|  | ||||
| .entry #jp-relatedposts .jp-relatedposts-items p, | ||||
| .entry #jp-relatedposts .jp-relatedposts-items-visual | ||||
| .entry h4.jp-relatedposts-post-title { | ||||
| 	letter-spacing: normal; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Stats | ||||
|  */ | ||||
|  | ||||
| #wpstats { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Comments | ||||
|  */ | ||||
|  | ||||
| .comments-area .comments-title-wrap + .comment-respond .comment-reply-title { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Widgets | ||||
|  */ | ||||
|  | ||||
| /* Widget List Resets */ | ||||
| .widget_authors ul, | ||||
| .widget_author_grid ul, | ||||
| .widget_jp_blogs_i_follow ul, | ||||
| .widget_links ul, | ||||
| .widget_rss_links ul { | ||||
| 	list-style: none; | ||||
| 	padding-left: 0; | ||||
| 	padding-right: 0; | ||||
| } | ||||
|  | ||||
| .widget_links li, | ||||
| .widget_jp_blogs_i_follow li, | ||||
| .widget_rss_links li { | ||||
| 	color: #767676; | ||||
| 	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; | ||||
| 	font-size: calc(22px * 1.125); | ||||
| 	font-weight: 700; | ||||
| 	line-height: 1.2; | ||||
| 	margin-top: 0.5rem; | ||||
| 	margin-bottom: 0.5rem; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* Authors Widget */ | ||||
| .widget.widget_authors ul li > ul { | ||||
| 	list-style-type: disc; | ||||
| 	padding-left: 4.25rem; | ||||
| } | ||||
|  | ||||
| .rtl .widget.widget_authors ul li > ul { | ||||
| 	padding-left: 0; | ||||
| 	padding-right: 1rem; | ||||
| } | ||||
|  | ||||
| .widget_authors > ul > li > a { | ||||
| 	display: block; | ||||
| 	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; | ||||
| 	position: relative; | ||||
| } | ||||
|  | ||||
| .widget.widget_authors li a strong { | ||||
| 	line-height: 1.2; | ||||
| 	position: absolute; | ||||
| 	top: 0; | ||||
| } | ||||
|  | ||||
| .widget.widget_authors .avatar { | ||||
| 	float: left; | ||||
| 	margin-right: 1em; | ||||
| } | ||||
|  | ||||
| .widget_authors li > ul { | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| /* Display WordPress Posts */ | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4 { | ||||
| 	font-size: 100%; | ||||
| 	margin: 1rem 0; | ||||
| } | ||||
|  | ||||
| /* GoodReads */ | ||||
| .widget_goodreads div[class^="gr_custom_container"] { | ||||
| 	border: none; | ||||
| } | ||||
|  | ||||
| .widget_goodreads div[class^="gr_custom_each_container"] { | ||||
| 	border-bottom: none; | ||||
| 	margin-bottom: 1rem; | ||||
| 	padding-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_goodreads h2[class^="gr_custom_header"], | ||||
| .widget_goodreads div[class^="gr_custom_author"] { | ||||
| 	font-size: inherit; | ||||
| 	line-height: 1.15; | ||||
| } | ||||
|  | ||||
| /* EU cookie law */ | ||||
| .widget_eu_cookie_law_widget #eu-cookie-law { | ||||
| 	border-color: #ccc; | ||||
| 	color: #767676; | ||||
| 	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; | ||||
| 	font-size: 0.68182em; | ||||
| 	padding: 0.5rem 1rem; | ||||
| } | ||||
|  | ||||
| .widget_eu_cookie_law_widget #eu-cookie-law .accept { | ||||
| 	font-size: 1em; | ||||
| 	padding: 10px 12px; | ||||
| } | ||||
|  | ||||
| /* RSS Feed Widget */ | ||||
| .widget_rss li a.rsswidget { | ||||
| 	display: block; | ||||
| 	margin: 1rem 0 0.5rem; | ||||
| } | ||||
|  | ||||
| .widget_rss .rssSummary { | ||||
| 	font-family: "NonBreakingSpaceOverride", "Hoefler Text", "Baskerville Old Face", Garamond, "Times New Roman", serif; | ||||
| 	font-weight: 400; | ||||
| 	font-size: 22px; | ||||
| } | ||||
|  | ||||
| .widget_rss cite, | ||||
| .widget_rss .rss-date { | ||||
| 	color: #9c9c9c; | ||||
| 	display: block; | ||||
| 	font-size: 0.71111em; | ||||
| 	font-weight: 500; | ||||
| 	margin: 0.5rem 0; | ||||
| } | ||||
|  | ||||
| .widget_rss cite { | ||||
| 	font-style: normal; | ||||
| } | ||||
|  | ||||
| .widget_rss cite:before { | ||||
| 	content: "\2014\00a0"; | ||||
| } | ||||
|  | ||||
| /* Top Posts & Pages Widget */ | ||||
| .widget_top-posts .widgets-list-layout-links { | ||||
| 	float: inherit; | ||||
| 	margin-left: calc(40px + 1rem); | ||||
| 	width: inherit; | ||||
| } | ||||
|  | ||||
| /* Search widget override */ | ||||
| @media only screen and (min-width: 600px) { | ||||
| 	.widget.widget_search .search-field { | ||||
| 		max-width: calc( 50vw - 20% ); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Content Options | ||||
|  */ | ||||
| .twentynineteen-customizer .entry .entry-meta > span, | ||||
| .twentynineteen-customizer .entry .entry-footer > span { | ||||
| 	display: inline; | ||||
| } | ||||
| @@ -0,0 +1,126 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Jetpack Compatibility File | ||||
|  * See: http://jetpack.com/ | ||||
|  */ | ||||
|  | ||||
| function twentynineteen_jetpack_setup() { | ||||
|  | ||||
| 	/** | ||||
|  	 * Add theme support for Infinite Scroll. | ||||
| 	 */ | ||||
|  	add_theme_support( 'infinite-scroll', array( | ||||
| 	 	'type'      => 'click', | ||||
|  		'container' => 'main', | ||||
|  		'render'    => 'twentynineteen_infinite_scroll_render', | ||||
|  		'footer'    => 'page', | ||||
|  	) ); | ||||
|  | ||||
|  	/** | ||||
| 	 * Add theme support for Responsive Videos. | ||||
| 	 */ | ||||
| 	add_theme_support( 'jetpack-responsive-videos' ); | ||||
|  | ||||
| 	/** | ||||
| 	 * Add theme support for geo-location. | ||||
| 	 */ | ||||
| 	add_theme_support( 'jetpack-geo-location' ); | ||||
|  | ||||
| 	/** | ||||
| 	 * Add theme support for Content Options. | ||||
| 	 */ | ||||
| 	add_theme_support( 'jetpack-content-options', array( | ||||
| 		'blog-display' => array( 'content', 'excerpt' ), | ||||
|     	'post-details' => array( | ||||
| 			'stylesheet' => 'twentynineteen-style', | ||||
| 			'date'       => '.posted-on', | ||||
| 			'categories' => '.cat-links', | ||||
| 			'tags'       => '.tags-links', | ||||
| 			'author'     => '.byline', | ||||
| 			'comment'    => '.comments-link', | ||||
| 		), | ||||
| 		'featured-images'    => array( | ||||
| 			'archive'  => true, | ||||
| 			'post'     => true, | ||||
| 			'page'     => true, | ||||
| 		), | ||||
| 	) ); | ||||
| } | ||||
| add_action( 'after_setup_theme', 'twentynineteen_jetpack_setup' ); | ||||
|  | ||||
| /** | ||||
|  * Custom render function for Infinite Scroll. | ||||
|  */ | ||||
| function twentynineteen_infinite_scroll_render() { | ||||
| 	while ( have_posts() ) { | ||||
| 		the_post(); | ||||
| 		get_template_part( 'template-parts/content/content' ); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| function twentynineteen_init_jetpack() { | ||||
| 	/** | ||||
| 	 * Add our compat CSS file for Infinite Scroll and custom widget stylings and such. | ||||
| 	 * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production | ||||
| 	 * or skip it entirely for wpcom. | ||||
| 	 */ | ||||
| 	if ( ! is_admin() ) { | ||||
| 		$version = false; | ||||
| 		if ( method_exists( 'Jetpack', 'is_development_version' ) ) { | ||||
| 			$version = Jetpack::is_development_version() ? filemtime( plugin_dir_path( __FILE__ ) . 'twentynineteen.css' ) : JETPACK__VERSION; | ||||
| 		} | ||||
| 		wp_enqueue_style( 'twentynineteen-jetpack', plugins_url( 'twentynineteen.css', __FILE__ ), array(), $version ); | ||||
| 		wp_style_add_data( 'twentynineteen-jetpack', 'rtl', 'replace' ); | ||||
| 	} | ||||
| } | ||||
| add_action( 'init', 'twentynineteen_init_jetpack' ); | ||||
|  | ||||
| /** | ||||
|  * Alter gallery widget default width. | ||||
|  */ | ||||
| function twentynineteen_gallery_widget_content_width( $width ) { | ||||
| 	return 390; | ||||
| } | ||||
| add_filter( 'gallery_widget_content_width', 'twentynineteen_gallery_widget_content_width' ); | ||||
|  | ||||
| /** | ||||
|  * Alter featured-image default visibility for content-options. | ||||
|  */ | ||||
| function twentynineteen_override_post_thumbnail( $width ) { | ||||
| 	$options         = get_theme_support( 'jetpack-content-options' ); | ||||
| 	$featured_images = ( ! empty( $options[0]['featured-images'] ) ) ? $options[0]['featured-images'] : null; | ||||
|  | ||||
| 	$settings = array( | ||||
| 		'post-default' => ( isset( $featured_images['post-default'] ) && false === $featured_images['post-default'] ) ? '' : 1, | ||||
| 		'page-default' => ( isset( $featured_images['page-default'] ) && false === $featured_images['page-default'] ) ? '' : 1, | ||||
| 	); | ||||
|  | ||||
| 	$settings = array_merge( $settings, array( | ||||
| 		'post-option'  => get_option( 'jetpack_content_featured_images_post', $settings['post-default'] ), | ||||
| 		'page-option'  => get_option( 'jetpack_content_featured_images_page', $settings['page-default'] ), | ||||
| 	) ); | ||||
|  | ||||
| 	if ( ( ! $settings['post-option'] && is_single() ) | ||||
| 	|| ( ! $settings['page-option'] && is_singular() && is_page() ) ) { | ||||
| 		return false; | ||||
| 	} else { | ||||
| 		return ! post_password_required() && ! is_attachment() && has_post_thumbnail(); | ||||
| 	} | ||||
| } | ||||
| add_filter( 'twentynineteen_can_show_post_thumbnail', 'twentynineteen_override_post_thumbnail', 10, 2 ); | ||||
|  | ||||
| /** | ||||
|  * Adds custom classes to the array of body classes. | ||||
|  * | ||||
|  * @param array $classes Classes for the body element. | ||||
|  * @return array | ||||
|  */ | ||||
| function twentynineteen_jetpack_body_classes( $classes ) { | ||||
| 	// Adds a class if we're in the Customizer | ||||
| 	if ( is_customize_preview() ) : | ||||
| 		$classes[] = 'twentynineteen-customizer'; | ||||
| 	endif; | ||||
|  | ||||
| 	return $classes; | ||||
| } | ||||
| add_filter( 'body_class', 'twentynineteen_jetpack_body_classes' ); | ||||
| @@ -0,0 +1,13 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Jetpack Compatibility File | ||||
|  * See: http://jetpack.com/ | ||||
|  */ | ||||
|  | ||||
| function twentyseventeen_jetpack_setup() { | ||||
| 	/** | ||||
| 	 * Add theme support for geo-location. | ||||
| 	 */ | ||||
| 	add_theme_support( 'jetpack-geo-location' ); | ||||
| } | ||||
| add_action( 'after_setup_theme', 'twentyseventeen_jetpack_setup' ); | ||||
| @@ -0,0 +1,832 @@ | ||||
| /** | ||||
|  * Jetpack Comments | ||||
|  */ | ||||
|  | ||||
| .comment-form iframe { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .comment-form .subscribe-label { | ||||
| 	font-weight: 400; | ||||
| 	letter-spacing: 0; | ||||
| 	text-transform: none; | ||||
| } | ||||
|  | ||||
| .comment-subscription-form { | ||||
| 	margin: 1.75em 0 0; | ||||
| } | ||||
|  | ||||
| .comment-subscription-form + .comment-subscription-form  { | ||||
| 	margin-top: 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Extra Widgets | ||||
|  */ | ||||
|  | ||||
|  /* Blog Subscriptions Widget */ | ||||
| .jetpack_subscription_widget #subscribe-email input { | ||||
| 	padding: 0.625em 0.4375em; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .jetpack_subscription_widget form > :last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
|  /* Contact Info Widget */ | ||||
| .widget_contact_info .contact-map { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| /* Display WordPress Posts Widget */ | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4 { | ||||
| 	font-size: inherit; | ||||
| 	margin: 0 0 0.875em; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts img { | ||||
| 	margin-bottom: 0.875em; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 	font-size: inherit; | ||||
| 	line-height: 1.75 !important; | ||||
| 	margin: 0 0 1.75em !important; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts > :last-child { | ||||
| 	margin-bottom: 0 !important; | ||||
| } | ||||
|  | ||||
| /* Gallery Widget */ | ||||
| .widget-gallery .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| } | ||||
|  | ||||
| /* Goodreads Widget */ | ||||
| .widget_goodreads div[class^="gr_custom_container"] { | ||||
| 	background-color: transparent; | ||||
| 	border: 0; | ||||
| 	border-radius: 0; | ||||
| 	color: inherit; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .widget_goodreads div[class^="gr_custom_container"] a { | ||||
| 	color: inherit; | ||||
| } | ||||
|  | ||||
| .widget_goodreads div[class^="gr_custom_each_container"] { | ||||
| 	border: 0; | ||||
| 	margin-bottom: 1.75em; | ||||
| 	padding-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_goodreads h2[class^="gr_custom_header"], | ||||
| .widget_goodreads div[class^="gr_custom_author"] { | ||||
| 	font-size: inherit; | ||||
| } | ||||
|  | ||||
| /* Gravatar Profile Widget */ | ||||
| .widget-grofile .grofile-thumbnail { | ||||
| 	width: 300px; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile h4 { | ||||
| 	font-size: inherit; | ||||
| 	font-weight: 900; | ||||
| 	margin: 1.75em 0 0; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile .grofile-accounts { | ||||
| 	margin-top: 0.4375em; | ||||
| } | ||||
|  | ||||
| /* Image Widget */ | ||||
| .widget_image .wp-caption { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* RSS Links Widget */ | ||||
| .widget_rss_links img { | ||||
| 	position: relative; | ||||
| 	top: -1px; | ||||
| } | ||||
|  | ||||
| /* Social Media Icon Widget */ | ||||
| .widget.widget_wpcom_social_media_icons_widget ul { | ||||
| 	margin: 0 0 -0.4375em; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget ul:before, | ||||
| .widget.widget_wpcom_social_media_icons_widget ul:after { | ||||
| 	content: ""; | ||||
| 	display: table; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget ul:after { | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget li { | ||||
| 	float: right; | ||||
| 	margin: 0 0 0.4375em 0.4375em; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget li a { | ||||
| 	border: 1px solid currentColor; | ||||
| 	border-radius: 50%; | ||||
| 	color: inherit; | ||||
| 	display: block; | ||||
| 	height: 35px; | ||||
| 	position: relative; | ||||
| 	width: 35px; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget li a:before { | ||||
| 	height: 33px; | ||||
| 	line-height: 33px; | ||||
| 	text-align: center; | ||||
| 	width: 33px; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget li a:hover:before, | ||||
| .widget.widget_wpcom_social_media_icons_widget li a:focus:before { | ||||
| 	opacity: 0.8; | ||||
| } | ||||
|  | ||||
| /* Social Icons Widget */ | ||||
| .widget.jetpack_widget_social_icons ul { | ||||
| 	margin: 0 0 -0.4375em; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul:before, | ||||
| .widget.jetpack_widget_social_icons ul:after { | ||||
| 	content: ""; | ||||
| 	display: table; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul:after { | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons li { | ||||
| 	float: right; | ||||
| 	margin: 0 0 0.4375em 0.4375em; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons li a { | ||||
| 	border: 1px solid currentColor; | ||||
| 	border-radius: 50%; | ||||
| 	color: inherit; | ||||
| 	display: block; | ||||
| 	position: relative; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons li a:hover, | ||||
| .widget.jetpack_widget_social_icons li a:focus { | ||||
| 	opacity: 0.8; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-small a { | ||||
| 	height: 38px; | ||||
| 	padding: 6px; | ||||
| 	width: 38px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-small svg { | ||||
| 	height: 24px; | ||||
| 	width: 24px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-medium a { | ||||
| 	height: 50px; | ||||
| 	padding: 8px; | ||||
| 	width: 50px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-medium svg { | ||||
| 	height: 32px; | ||||
| 	width: 32px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-large a { | ||||
| 	height: 70px; | ||||
| 	padding: 10px; | ||||
| 	width: 70px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-large svg { | ||||
| 	height: 48px; | ||||
| 	width: 48px; | ||||
| } | ||||
|  | ||||
| /* Top Posts & Pages Widget */ | ||||
| .widget_top-posts .widgets-list-layout .widgets-list-layout-blavatar { | ||||
| 	margin-top: 0.25em; | ||||
| } | ||||
|  | ||||
| .widget_top-posts .widgets-list-layout-links { | ||||
| 	width: -webkit-calc(100% - 3.375em); | ||||
| 	width: calc(100% - 3.375em); | ||||
| } | ||||
|  | ||||
| .widget_top-posts .widgets-list-layout li { | ||||
| 	margin-bottom: 0.875em; | ||||
| } | ||||
|  | ||||
| .widget_top-posts .widgets-list-layout li:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget-grid-view-image:nth-child(odd) { | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| /* Upcoming Events Widget */ | ||||
| .widget_upcoming_events_widget .upcoming-events li { | ||||
| 	margin-bottom: 0.875em | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Shortcodes | ||||
|  */ | ||||
|  | ||||
| /* Contact Form */ | ||||
| .entry-content .contact-form label { | ||||
| 	color: inherit; | ||||
| 	display: block; | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125rem; | ||||
| 	font-weight: 400; | ||||
| 	letter-spacing: 0.076923077em; | ||||
| 	line-height: 1.6153846154; | ||||
| 	margin-bottom: 0.5384615385em; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form label span { | ||||
| 	color: inherit; | ||||
| 	letter-spacing: 0; | ||||
| 	opacity: 0.7; | ||||
| 	text-transform: capitalize; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form input[type="text"], | ||||
| .entry-content .contact-form input[type="email"], | ||||
| .entry-content .contact-form textarea { | ||||
| 	margin-bottom: 1.75em; | ||||
| 	max-width: 100%; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form label.checkbox, | ||||
| .entry-content .contact-form label.radio { | ||||
| 	font-family: inherit; | ||||
| 	font-size: inherit; | ||||
| 	letter-spacing: 0; | ||||
| 	margin-bottom: 0; | ||||
| 	text-transform: none; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form label.checkbox:nth-last-child(2), | ||||
| .entry-content .contact-form label.radio:nth-last-child(2) { | ||||
| 	margin-bottom: 0.875em; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form input[type="radio"], | ||||
| .entry-content .contact-form input[type="checkbox"] { | ||||
| 	margin-bottom: 0.875em; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form select { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| /* Facebook */ | ||||
| .fb_iframe_widget { | ||||
| 	margin-bottom: 1.75em; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .fb_iframe_widget span { | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| /* Gist */ | ||||
| .gist table { | ||||
| 	table-layout: auto; | ||||
| } | ||||
|  | ||||
| .entry-content .gist .gist-file { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| /* Instagram */ | ||||
| .instagram-media { | ||||
| 	margin-bottom: 1.75em !important; | ||||
| } | ||||
|  | ||||
| /* Mixclound */ | ||||
| iframe[src^="http://api.mixcloud.com/"] { | ||||
| 	margin-right: -8px; | ||||
| 	max-width: -webkit-calc(100% + 8px); | ||||
| 	max-width: calc(100% + 8px); | ||||
| } | ||||
|  | ||||
| /* Crowdsignal */ | ||||
| .PDS_Poll, | ||||
| .CSS_Poll { | ||||
| 	display: block !important; | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| .PDS_Poll .pds-box, | ||||
| .CSS_Poll .css-box { | ||||
| 	max-width: 100%; | ||||
| 	width: auto; | ||||
| } | ||||
|  | ||||
| /* Portfolio */ | ||||
| .entry-content .portfolio-entry { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title, | ||||
| .entry-content .portfolio-entry-meta { | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title a, | ||||
| .entry-content .portfolio-entry-meta a { | ||||
| 	box-shadow: none; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title a:hover, | ||||
| .entry-content .portfolio-entry-meta a:hover { | ||||
| 	box-shadow: 0 1px 0 0 currentColor; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-meta span, | ||||
| .entry-content .portfolio-entry-meta a { | ||||
| 	font-size: 1em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title { | ||||
| 	font-size: inherit; | ||||
| 	line-height: 1.3125; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-featured-image + .portfolio-entry-title { | ||||
| 	margin-top: 0.875em; | ||||
| 	margin-bottom: 0.4375em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-meta, | ||||
| .entry-content .portfolio-entry-content p { | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125em; | ||||
| 	line-height: 1.615384615; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-content p:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title + .portfolio-entry-meta { | ||||
| 	margin-top: 0.538461538em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-content { | ||||
| 	margin-top: 0.875em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-content p { | ||||
| 	margin-bottom: 1.615384615em; | ||||
| } | ||||
|  | ||||
| /* Presentation */ | ||||
| .entry-content .presentation-wrapper { | ||||
| 	margin: 0 0 1.75em; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .presentation { | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| /* Recipes */ | ||||
| .entry-content .jetpack-recipe { | ||||
| 	border: 0; | ||||
| 	margin: 0 0 1.75em; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .jetpack-recipe-title { | ||||
| 	border: 0; | ||||
| 	margin-top: 0; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .jetpack-recipe .jetpack-recipe-meta { | ||||
| 	font-size: inherit; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| /* Scribd */ | ||||
| .scribd_iframe_embed + div { | ||||
| 	margin-bottom: 28px; | ||||
| } | ||||
|  | ||||
| /* Slideshow */ | ||||
| .entry-content .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| /* Subscription Form */ | ||||
| .entry-content .jetpack_subscription_widget { | ||||
| 	border-top: 0; | ||||
| 	font-size: inherit; | ||||
| 	margin-bottom: 1.75em; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .entry-content #subscribe-email input { | ||||
| 	font-size: inherit; | ||||
| 	line-height: normal; | ||||
| 	padding: 0.625em 0.4375em; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .entry-content .jetpack_subscription_widget input[type="submit"] { | ||||
| 	font-size: inherit; | ||||
| 	padding: 0.84375em 0.875em 0.78125em; | ||||
| } | ||||
|  | ||||
| /* Testimonial */ | ||||
| .entry-content .testimonial-entry { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-content { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-title, | ||||
| .entry-content .testimonial-entry-content p { | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125em; | ||||
| 	line-height: 1.615384615; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-content p { | ||||
| 	margin-bottom: 1.615384615em; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-title { | ||||
| 	float: right; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-title a { | ||||
| 	box-shadow: none; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-title a:hover { | ||||
| 	box-shadow: 0 1px 0 0 currentColor; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-featured-image img { | ||||
| 	float: left; | ||||
| 	max-width: 42px; | ||||
| } | ||||
|  | ||||
| /* Twitter-timeline */ | ||||
| .twitter-timeline { | ||||
| 	margin-bottom: 1.75em !important; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Responsive Videos | ||||
|  */ | ||||
| .hentry .jetpack-video-wrapper { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Related Posts | ||||
|  */ | ||||
|  | ||||
| .entry-content #jp-relatedposts { | ||||
| 	margin: 0; | ||||
| 	padding: 1.75em 0; | ||||
| 	position: relative; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts:before, | ||||
| .jp-relatedposts:last-child:after { | ||||
| 	background-color: currentColor; | ||||
| 	content: ""; | ||||
| 	height: 1px; | ||||
| 	opacity: 0.2; | ||||
| 	position: absolute; | ||||
| 	top: 0; | ||||
| 	right: 0; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts:last-child:after { | ||||
| 	bottom: 0; | ||||
| 	top: auto; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts h3.jp-relatedposts-headline { | ||||
| 	color: inherit; | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125rem; | ||||
| 	font-weight: 400; | ||||
| 	line-height: 1; | ||||
| 	margin-bottom: 1.076923077em; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts h3.jp-relatedposts-headline em:before { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts h3.jp-relatedposts-headline em { | ||||
| 	font-weight: 400; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-headline em:after { | ||||
| 	content: ":"; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts-items:before, | ||||
| .jp-relatedposts-items:after { | ||||
| 	content: ""; | ||||
| 	display: table; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts-items:after { | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| .entry-content .jp-relatedposts-post-aoverlay, | ||||
| .entry-content .jp-relatedposts-post-a { | ||||
| 	box-shadow: none; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { | ||||
| 	margin-bottom: 1.75em; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span { | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items p, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title { | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125rem; | ||||
| 	letter-spacing: 0; | ||||
| 	line-height: 1.615384615; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts-post-date, | ||||
| .jp-relatedposts-post-context { | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts-post-title, | ||||
| #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post-excerpt, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title { | ||||
| 	margin-bottom: 1.076923077em; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a { | ||||
| 	font-weight: 700; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover, | ||||
| .entry-content .jp-relatedposts-post-aoverlay:hover + .jp-relatedposts-post-title .jp-relatedposts-post-a { | ||||
| 	box-shadow: 0 1px 0 0 currentColor; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a { | ||||
| 	text-decoration: none; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post { | ||||
| 	opacity: 1; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post { | ||||
| 	padding-left: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .jp-relatedposts-post-a:hover img.jp-relatedposts-post-img, | ||||
| .entry-content .jp-relatedposts-post-a:focus img.jp-relatedposts-post-img { | ||||
| 	opacity: 0.85; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img { | ||||
| 	margin-bottom: 0.875em; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Sharing | ||||
|  */ | ||||
|  | ||||
| .sharedaddy { | ||||
| 	padding: 1.75em 0; | ||||
| 	position: relative; | ||||
| } | ||||
|  | ||||
| .sharedaddy:before, | ||||
| .sharedaddy:last-child:after { | ||||
| 	background-color: currentColor; | ||||
| 	content: ""; | ||||
| 	height: 1px; | ||||
| 	opacity: 0.2; | ||||
| 	position: absolute; | ||||
| 	top: 0; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .sharedaddy:last-child:after { | ||||
| 	bottom: 0; | ||||
| 	top: auto; | ||||
| } | ||||
|  | ||||
| .sd-block { | ||||
| 	line-height: 1; | ||||
| } | ||||
|  | ||||
| .sd-like { | ||||
| 	padding-bottom: 1.125em; | ||||
| } | ||||
|  | ||||
| .hentry div.sharedaddy h3.sd-title, | ||||
| .hentry h3.sd-title { | ||||
| 	color: inherit; | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125rem; | ||||
| 	font-weight: 400; | ||||
| 	line-height: 1; | ||||
| 	margin-bottom: 1.076923077em; | ||||
| } | ||||
|  | ||||
| .hentry div.sharedaddy h3.sd-title:before { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
| .sd-social-icon-text .sd-content ul, | ||||
| .sd-social-text .sd-content ul { | ||||
| 	margin-bottom: -0.3125em !important; | ||||
| } | ||||
|  | ||||
| .sd-social-icon .sd-content ul { | ||||
| 	margin-bottom: 0 !important; | ||||
| } | ||||
|  | ||||
| .sd-social-official .sd-content ul { | ||||
| 	margin-bottom: -0.625em !important; | ||||
| } | ||||
|  | ||||
| .hentry #sharing_email .sharing_send, | ||||
| .hentry .sd-content ul li .option a.share-ustom, | ||||
| .hentry .sd-content ul li a.sd-button, | ||||
| .hentry .sd-content ul li.advanced a.share-more, | ||||
| .hentry .sd-content ul li.preview-item div.option.option-smart-off a, | ||||
| .hentry .sd-social-icon .sd-content ul li a.sd-button, | ||||
| .hentry .sd-social-icon-text .sd-content ul li a.sd-button, | ||||
| .hentry .sd-social-official .sd-content > ul > li .digg_button > a, | ||||
| .hentry .sd-social-official .sd-content > ul > li > a.sd-button, | ||||
| .hentry .sd-social-text .sd-content ul li a.sd-button { | ||||
| 	box-shadow: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Stats | ||||
|  */ | ||||
|  | ||||
| #wpstats { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Tiled gallery | ||||
|  */ | ||||
|  | ||||
| .entry-content .tiled-gallery { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Media Queries | ||||
|  */ | ||||
|  | ||||
| @media screen and (min-width: 56.875em) { | ||||
| 	.widget-area .jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.4615384615em 0.5384615385em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_contact_info .contact-map { | ||||
| 		margin-bottom: 1.615384615em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4, | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts img { | ||||
| 		margin-bottom: 1.076923077em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 		line-height: 1.615384615em !important; | ||||
| 		margin: 0 0 1.615384615em !important; | ||||
| 	} | ||||
|  | ||||
| 	.widget_goodreads div[class^="gr_custom_each_container"] { | ||||
| 		margin-bottom: 1.615384615em; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile h4 { | ||||
| 		margin: 1.615384615em 0 0; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile .grofile-accounts { | ||||
| 		margin-top: 0.538461538em; | ||||
| 	} | ||||
|  | ||||
| 	.widget.widget_wpcom_social_media_icons_widget ul { | ||||
| 		margin: 0 0 -0.538461538em; | ||||
| 	} | ||||
|  | ||||
| 	.widget.widget_wpcom_social_media_icons_widget li { | ||||
| 		margin: 0 0 0.538461538em 0.538461538em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_top-posts .widgets-list-layout .widgets-list-layout-blavatar { | ||||
| 		margin-top: 0.153846154em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_top-posts .widgets-list-layout-links { | ||||
| 		width: -webkit-calc(100% - 4.153846154em); | ||||
| 		width: calc(100% - 4.153846154em); | ||||
| 	} | ||||
|  | ||||
| 	.widget_top-posts .widgets-list-layout li { | ||||
| 		margin-bottom: 1.076923077em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_upcoming_events_widget .upcoming-events li { | ||||
| 		margin-bottom: 1.076923077em | ||||
| 	} | ||||
|  | ||||
| 	.entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { | ||||
| 		margin-bottom: 0; | ||||
| 		padding-left: 0.875em; | ||||
| 		width: 33%; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 61.5625em) { | ||||
| 	body:not(.search-results) article:not(.type-page) .sharedaddy:last-child, | ||||
| 	body:not(.search-results) article:not(.type-page) .jp-relatedposts:last-child { | ||||
| 		padding-bottom: 0; | ||||
| 	} | ||||
|  | ||||
| 	body:not(.search-results) article:not(.type-page) .sharedaddy:last-child:after, | ||||
| 	body:not(.search-results) article:not(.type-page) .jp-relatedposts:last-child:after { | ||||
| 		display: none; | ||||
| 	} | ||||
|  | ||||
| 	body:not(.search-results) article:not(.type-page) img.below-entry-meta { | ||||
| 		width: auto; | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,827 @@ | ||||
| /** | ||||
|  * Jetpack Comments | ||||
|  */ | ||||
|  | ||||
| .comment-form iframe { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .comment-form .subscribe-label { | ||||
| 	font-weight: 400; | ||||
| 	letter-spacing: 0; | ||||
| 	text-transform: none; | ||||
| } | ||||
|  | ||||
| .comment-subscription-form { | ||||
| 	margin: 1.75em 0 0; | ||||
| } | ||||
|  | ||||
| .comment-subscription-form + .comment-subscription-form  { | ||||
| 	margin-top: 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Extra Widgets | ||||
|  */ | ||||
|  | ||||
|  /* Blog Subscriptions Widget */ | ||||
| .jetpack_subscription_widget #subscribe-email input { | ||||
| 	padding: 0.625em 0.4375em; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .jetpack_subscription_widget form > :last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
|  /* Contact Info Widget */ | ||||
| .widget_contact_info .contact-map { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| /* Display WordPress Posts Widget */ | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4 { | ||||
| 	font-size: inherit; | ||||
| 	margin: 0 0 0.875em; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts img { | ||||
| 	margin-bottom: 0.875em; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 	font-size: inherit; | ||||
| 	line-height: 1.75 !important; | ||||
| 	margin: 0 0 1.75em !important; | ||||
| } | ||||
|  | ||||
| .widget_jetpack_display_posts_widget .jetpack-display-remote-posts > :last-child { | ||||
| 	margin-bottom: 0 !important; | ||||
| } | ||||
|  | ||||
| /* Gallery Widget */ | ||||
| .widget-gallery .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| } | ||||
|  | ||||
| /* Goodreads Widget */ | ||||
| .widget_goodreads div[class^="gr_custom_container"] { | ||||
| 	background-color: transparent; | ||||
| 	border: 0; | ||||
| 	border-radius: 0; | ||||
| 	color: inherit; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .widget_goodreads div[class^="gr_custom_container"] a { | ||||
| 	color: inherit; | ||||
| } | ||||
|  | ||||
| .widget_goodreads div[class^="gr_custom_each_container"] { | ||||
| 	border: 0; | ||||
| 	margin-bottom: 1.75em; | ||||
| 	padding-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget_goodreads h2[class^="gr_custom_header"], | ||||
| .widget_goodreads div[class^="gr_custom_author"] { | ||||
| 	font-size: inherit; | ||||
| } | ||||
|  | ||||
| /* Gravatar Profile Widget */ | ||||
| .widget-grofile .grofile-thumbnail { | ||||
| 	width: 300px; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile h4 { | ||||
| 	font-size: inherit; | ||||
| 	font-weight: 900; | ||||
| 	margin: 1.75em 0 0; | ||||
| } | ||||
|  | ||||
| .widget-area .widget-grofile .grofile-accounts { | ||||
| 	margin-top: 0.4375em; | ||||
| } | ||||
|  | ||||
| /* Image Widget */ | ||||
| .widget_image .wp-caption { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| /* RSS Links Widget */ | ||||
| .widget_rss_links img { | ||||
| 	position: relative; | ||||
| 	top: -1px; | ||||
| } | ||||
|  | ||||
| /* Social Media Icon Widget */ | ||||
| .widget.widget_wpcom_social_media_icons_widget ul { | ||||
| 	margin: 0 0 -0.4375em; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget ul:before, | ||||
| .widget.widget_wpcom_social_media_icons_widget ul:after { | ||||
| 	content: ""; | ||||
| 	display: table; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget ul:after { | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget li { | ||||
| 	float: left; | ||||
| 	margin: 0 0.4375em 0.4375em 0; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget li a { | ||||
| 	border: 1px solid currentColor; | ||||
| 	border-radius: 50%; | ||||
| 	color: inherit; | ||||
| 	display: block; | ||||
| 	height: 35px; | ||||
| 	position: relative; | ||||
| 	width: 35px; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget li a:before { | ||||
| 	height: 33px; | ||||
| 	line-height: 33px; | ||||
| 	text-align: center; | ||||
| 	width: 33px; | ||||
| } | ||||
|  | ||||
| .widget.widget_wpcom_social_media_icons_widget li a:hover:before, | ||||
| .widget.widget_wpcom_social_media_icons_widget li a:focus:before { | ||||
| 	opacity: 0.8; | ||||
| } | ||||
|  | ||||
| /* Social Icons Widget */ | ||||
| .widget.jetpack_widget_social_icons ul { | ||||
| 	margin: 0 0 -0.4375em; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul:before, | ||||
| .widget.jetpack_widget_social_icons ul:after { | ||||
| 	content: ""; | ||||
| 	display: table; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul:after { | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons li { | ||||
| 	float: left; | ||||
| 	margin: 0 0.4375em 0.4375em 0; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons li a { | ||||
| 	border: 1px solid currentColor; | ||||
| 	border-radius: 50%; | ||||
| 	color: inherit; | ||||
| 	display: block; | ||||
| 	position: relative; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons li a:hover, | ||||
| .widget.jetpack_widget_social_icons li a:focus { | ||||
| 	opacity: 0.8; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-small a { | ||||
| 	height: 38px; | ||||
| 	padding: 6px; | ||||
| 	width: 38px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-small svg { | ||||
| 	height: 24px; | ||||
| 	width: 24px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-medium a { | ||||
| 	height: 50px; | ||||
| 	padding: 8px; | ||||
| 	width: 50px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-medium svg { | ||||
| 	height: 32px; | ||||
| 	width: 32px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-large a { | ||||
| 	height: 70px; | ||||
| 	padding: 10px; | ||||
| 	width: 70px; | ||||
| } | ||||
|  | ||||
| .widget.jetpack_widget_social_icons ul.size-large svg { | ||||
| 	height: 48px; | ||||
| 	width: 48px; | ||||
| } | ||||
|  | ||||
| /* Top Posts & Pages Widget */ | ||||
| .widget_top-posts .widgets-list-layout .widgets-list-layout-blavatar { | ||||
| 	margin-top: 0.25em; | ||||
| } | ||||
|  | ||||
| .widget_top-posts .widgets-list-layout-links { | ||||
| 	width: -webkit-calc(100% - 3.375em); | ||||
| 	width: calc(100% - 3.375em); | ||||
| } | ||||
|  | ||||
| .widget_top-posts .widgets-list-layout li { | ||||
| 	margin-bottom: 0.875em; | ||||
| } | ||||
|  | ||||
| .widget_top-posts .widgets-list-layout li:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .widget-grid-view-image:nth-child(odd) { | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| /* Upcoming Events Widget */ | ||||
| .widget_upcoming_events_widget .upcoming-events li { | ||||
| 	margin-bottom: 0.875em | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Shortcodes | ||||
|  */ | ||||
|  | ||||
| /* Contact Form */ | ||||
| .entry-content .contact-form label { | ||||
| 	color: inherit; | ||||
| 	display: block; | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125rem; | ||||
| 	font-weight: 400; | ||||
| 	letter-spacing: 0.076923077em; | ||||
| 	line-height: 1.6153846154; | ||||
| 	margin-bottom: 0.5384615385em; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form label span { | ||||
| 	color: inherit; | ||||
| 	letter-spacing: 0; | ||||
| 	opacity: 0.7; | ||||
| 	text-transform: capitalize; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form input[type="text"], | ||||
| .entry-content .contact-form input[type="email"], | ||||
| .entry-content .contact-form textarea { | ||||
| 	margin-bottom: 1.75em; | ||||
| 	max-width: 100%; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form label.checkbox, | ||||
| .entry-content .contact-form label.radio { | ||||
| 	font-family: inherit; | ||||
| 	font-size: inherit; | ||||
| 	letter-spacing: 0; | ||||
| 	margin-bottom: 0; | ||||
| 	text-transform: none; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form label.checkbox:nth-last-child(2), | ||||
| .entry-content .contact-form label.radio:nth-last-child(2) { | ||||
| 	margin-bottom: 0.875em; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form input[type="radio"], | ||||
| .entry-content .contact-form input[type="checkbox"] { | ||||
| 	margin-bottom: 0.875em; | ||||
| } | ||||
|  | ||||
| .entry-content .contact-form select { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| /* Facebook */ | ||||
| .fb_iframe_widget { | ||||
| 	margin-bottom: 1.75em; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .fb_iframe_widget span { | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| /* Gist */ | ||||
| .gist table { | ||||
| 	table-layout: auto; | ||||
| } | ||||
|  | ||||
| .entry-content .gist .gist-file { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| /* Instagram */ | ||||
| .instagram-media { | ||||
| 	margin-bottom: 1.75em !important; | ||||
| } | ||||
|  | ||||
| /* Mixclound */ | ||||
| iframe[src^="http://api.mixcloud.com/"] { | ||||
| 	margin-left: -8px; | ||||
| 	max-width: -webkit-calc(100% + 8px); | ||||
| 	max-width: calc(100% + 8px); | ||||
| } | ||||
|  | ||||
| /* Crowdsignal */ | ||||
| .PDS_Poll, | ||||
| .CSS_Poll { | ||||
| 	display: block !important; | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| .PDS_Poll .pds-box, | ||||
| .CSS_Poll .css-box { | ||||
| 	max-width: 100%; | ||||
| 	width: auto; | ||||
| } | ||||
|  | ||||
| /* Portfolio */ | ||||
| .entry-content .portfolio-entry { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title, | ||||
| .entry-content .portfolio-entry-meta { | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title a, | ||||
| .entry-content .portfolio-entry-meta a { | ||||
| 	box-shadow: none; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title a:hover, | ||||
| .entry-content .portfolio-entry-meta a:hover { | ||||
| 	box-shadow: 0 1px 0 0 currentColor; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-meta span, | ||||
| .entry-content .portfolio-entry-meta a { | ||||
| 	font-size: 1em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title { | ||||
| 	font-size: inherit; | ||||
| 	line-height: 1.3125; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-featured-image + .portfolio-entry-title { | ||||
| 	margin-top: 0.875em; | ||||
| 	margin-bottom: 0.4375em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-meta, | ||||
| .entry-content .portfolio-entry-content p { | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125em; | ||||
| 	line-height: 1.615384615; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-content p:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-title + .portfolio-entry-meta { | ||||
| 	margin-top: 0.538461538em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-content { | ||||
| 	margin-top: 0.875em; | ||||
| } | ||||
|  | ||||
| .entry-content .portfolio-entry-content p { | ||||
| 	margin-bottom: 1.615384615em; | ||||
| } | ||||
|  | ||||
| /* Presentation */ | ||||
| .entry-content .presentation-wrapper { | ||||
| 	margin: 0 0 1.75em; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .presentation { | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| /* Recipes */ | ||||
| .entry-content .jetpack-recipe { | ||||
| 	border: 0; | ||||
| 	margin: 0 0 1.75em; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .jetpack-recipe-title { | ||||
| 	border: 0; | ||||
| 	margin-top: 0; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .jetpack-recipe .jetpack-recipe-meta { | ||||
| 	font-size: inherit; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| /* Scribd */ | ||||
| .scribd_iframe_embed + div { | ||||
| 	margin-bottom: 28px; | ||||
| } | ||||
|  | ||||
| /* Slideshow */ | ||||
| .entry-content .slideshow-window { | ||||
| 	border-radius: 0; | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| /* Subscription Form */ | ||||
| .entry-content .jetpack_subscription_widget { | ||||
| 	border-top: 0; | ||||
| 	font-size: inherit; | ||||
| 	margin-bottom: 1.75em; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .entry-content #subscribe-email input { | ||||
| 	font-size: inherit; | ||||
| 	line-height: normal; | ||||
| 	padding: 0.625em 0.4375em; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .entry-content .jetpack_subscription_widget input[type="submit"] { | ||||
| 	font-size: inherit; | ||||
| 	padding: 0.84375em 0.875em 0.78125em; | ||||
| } | ||||
|  | ||||
| /* Testimonial */ | ||||
| .entry-content .testimonial-entry { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-content { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-title, | ||||
| .entry-content .testimonial-entry-content p { | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125em; | ||||
| 	line-height: 1.615384615; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-content p { | ||||
| 	margin-bottom: 1.615384615em; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-title { | ||||
| 	float: left; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-title a { | ||||
| 	box-shadow: none; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-entry-title a:hover { | ||||
| 	box-shadow: 0 1px 0 0 currentColor; | ||||
| } | ||||
|  | ||||
| .entry-content .testimonial-featured-image img { | ||||
| 	float: right; | ||||
| 	max-width: 42px; | ||||
| } | ||||
|  | ||||
| /* Twitter-timeline */ | ||||
| .twitter-timeline { | ||||
| 	margin-bottom: 1.75em !important; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Responsive Videos | ||||
|  */ | ||||
| .hentry .jetpack-video-wrapper { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Related Posts | ||||
|  */ | ||||
|  | ||||
| .entry-content #jp-relatedposts { | ||||
| 	margin: 0; | ||||
| 	padding: 1.75em 0; | ||||
| 	position: relative; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts:before, | ||||
| .jp-relatedposts:last-child:after { | ||||
| 	background-color: currentColor; | ||||
| 	content: ""; | ||||
| 	height: 1px; | ||||
| 	opacity: 0.2; | ||||
| 	position: absolute; | ||||
| 	top: 0; | ||||
| 	left: 0; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts:last-child:after { | ||||
| 	bottom: 0; | ||||
| 	top: auto; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts h3.jp-relatedposts-headline { | ||||
| 	color: inherit; | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125rem; | ||||
| 	font-weight: 400; | ||||
| 	line-height: 1; | ||||
| 	margin-bottom: 1.076923077em; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts h3.jp-relatedposts-headline em:before { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts h3.jp-relatedposts-headline em { | ||||
| 	font-weight: 400; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts-items:before, | ||||
| .jp-relatedposts-items:after { | ||||
| 	content: ""; | ||||
| 	display: table; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts-items:after { | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| .entry-content .jp-relatedposts-post-aoverlay, | ||||
| .entry-content .jp-relatedposts-post-a { | ||||
| 	box-shadow: none; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { | ||||
| 	margin-bottom: 1.75em; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:last-child { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span { | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items p, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title { | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125rem; | ||||
| 	letter-spacing: 0; | ||||
| 	line-height: 1.615384615; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts-post-date, | ||||
| .jp-relatedposts-post-context { | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| } | ||||
|  | ||||
| .jp-relatedposts-post-title, | ||||
| #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post-excerpt, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title { | ||||
| 	margin-bottom: 1.076923077em; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a { | ||||
| 	font-weight: 700; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover, | ||||
| .entry-content .jp-relatedposts-post-aoverlay:hover + .jp-relatedposts-post-title .jp-relatedposts-post-a { | ||||
| 	box-shadow: 0 1px 0 0 currentColor; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a { | ||||
| 	text-decoration: none; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context, | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post { | ||||
| 	opacity: 1; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post { | ||||
| 	padding-right: 0; | ||||
| } | ||||
|  | ||||
| .entry-content .jp-relatedposts-post-a:hover img.jp-relatedposts-post-img, | ||||
| .entry-content .jp-relatedposts-post-a:focus img.jp-relatedposts-post-img { | ||||
| 	opacity: 0.85; | ||||
| } | ||||
|  | ||||
| .entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img { | ||||
| 	margin-bottom: 0.875em; | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Sharing | ||||
|  */ | ||||
|  | ||||
| .sharedaddy { | ||||
| 	padding: 1.75em 0; | ||||
| 	position: relative; | ||||
| } | ||||
|  | ||||
| .sharedaddy:before, | ||||
| .sharedaddy:last-child:after { | ||||
| 	background-color: currentColor; | ||||
| 	content: ""; | ||||
| 	height: 1px; | ||||
| 	opacity: 0.2; | ||||
| 	position: absolute; | ||||
| 	top: 0; | ||||
| 	width: 100%; | ||||
| } | ||||
|  | ||||
| .sharedaddy:last-child:after { | ||||
| 	bottom: 0; | ||||
| 	top: auto; | ||||
| } | ||||
|  | ||||
| .sd-block { | ||||
| 	line-height: 1; | ||||
| } | ||||
|  | ||||
| .sd-like { | ||||
| 	padding-bottom: 1.125em; | ||||
| } | ||||
|  | ||||
| .hentry div.sharedaddy h3.sd-title, | ||||
| .hentry h3.sd-title { | ||||
| 	color: inherit; | ||||
| 	font-family: Montserrat, "Helvetica Neue", sans-serif; | ||||
| 	font-size: 13px; | ||||
| 	font-size: 0.8125rem; | ||||
| 	font-weight: 400; | ||||
| 	line-height: 1; | ||||
| 	margin-bottom: 1.076923077em; | ||||
| } | ||||
|  | ||||
| .hentry div.sharedaddy h3.sd-title:before { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
| .sd-social-icon-text .sd-content ul, | ||||
| .sd-social-text .sd-content ul { | ||||
| 	margin-bottom: -0.3125em !important; | ||||
| } | ||||
|  | ||||
| .sd-social-icon .sd-content ul { | ||||
| 	margin-bottom: 0 !important; | ||||
| } | ||||
|  | ||||
| .sd-social-official .sd-content ul { | ||||
| 	margin-bottom: -0.625em !important; | ||||
| } | ||||
|  | ||||
| .hentry #sharing_email .sharing_send, | ||||
| .hentry .sd-content ul li .option a.share-ustom, | ||||
| .hentry .sd-content ul li a.sd-button, | ||||
| .hentry .sd-content ul li.advanced a.share-more, | ||||
| .hentry .sd-content ul li.preview-item div.option.option-smart-off a, | ||||
| .hentry .sd-social-icon .sd-content ul li a.sd-button, | ||||
| .hentry .sd-social-icon-text .sd-content ul li a.sd-button, | ||||
| .hentry .sd-social-official .sd-content > ul > li .digg_button > a, | ||||
| .hentry .sd-social-official .sd-content > ul > li > a.sd-button, | ||||
| .hentry .sd-social-text .sd-content ul li a.sd-button { | ||||
| 	box-shadow: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Stats | ||||
|  */ | ||||
|  | ||||
| #wpstats { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Tiled gallery | ||||
|  */ | ||||
|  | ||||
| .entry-content .tiled-gallery { | ||||
| 	margin-bottom: 1.75em; | ||||
| } | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Media Queries | ||||
|  */ | ||||
|  | ||||
| @media screen and (min-width: 56.875em) { | ||||
| 	.widget-area .jetpack_subscription_widget #subscribe-email input { | ||||
| 		padding: 0.4615384615em 0.5384615385em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_contact_info .contact-map { | ||||
| 		margin-bottom: 1.615384615em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4, | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts img { | ||||
| 		margin-bottom: 1.076923077em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_jetpack_display_posts_widget .jetpack-display-remote-posts p { | ||||
| 		line-height: 1.615384615em !important; | ||||
| 		margin: 0 0 1.615384615em !important; | ||||
| 	} | ||||
|  | ||||
| 	.widget_goodreads div[class^="gr_custom_each_container"] { | ||||
| 		margin-bottom: 1.615384615em; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile h4 { | ||||
| 		margin: 1.615384615em 0 0; | ||||
| 	} | ||||
|  | ||||
| 	.widget-area .widget-grofile .grofile-accounts { | ||||
| 		margin-top: 0.538461538em; | ||||
| 	} | ||||
|  | ||||
| 	.widget.widget_wpcom_social_media_icons_widget ul { | ||||
| 		margin: 0 0 -0.538461538em; | ||||
| 	} | ||||
|  | ||||
| 	.widget.widget_wpcom_social_media_icons_widget li { | ||||
| 		margin: 0 0.538461538em 0.538461538em 0; | ||||
| 	} | ||||
|  | ||||
| 	.widget_top-posts .widgets-list-layout .widgets-list-layout-blavatar { | ||||
| 		margin-top: 0.153846154em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_top-posts .widgets-list-layout-links { | ||||
| 		width: -webkit-calc(100% - 4.153846154em); | ||||
| 		width: calc(100% - 4.153846154em); | ||||
| 	} | ||||
|  | ||||
| 	.widget_top-posts .widgets-list-layout li { | ||||
| 		margin-bottom: 1.076923077em; | ||||
| 	} | ||||
|  | ||||
| 	.widget_upcoming_events_widget .upcoming-events li { | ||||
| 		margin-bottom: 1.076923077em | ||||
| 	} | ||||
|  | ||||
| 	.entry-content #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { | ||||
| 		margin-bottom: 0; | ||||
| 		padding-right: 0.875em; | ||||
| 		width: 33%; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @media screen and (min-width: 61.5625em) { | ||||
| 	body:not(.search-results) article:not(.type-page) .sharedaddy:last-child, | ||||
| 	body:not(.search-results) article:not(.type-page) .jp-relatedposts:last-child { | ||||
| 		padding-bottom: 0; | ||||
| 	} | ||||
|  | ||||
| 	body:not(.search-results) article:not(.type-page) .sharedaddy:last-child:after, | ||||
| 	body:not(.search-results) article:not(.type-page) .jp-relatedposts:last-child:after { | ||||
| 		display: none; | ||||
| 	} | ||||
|  | ||||
| 	body:not(.search-results) article:not(.type-page) img.below-entry-meta { | ||||
| 		width: auto; | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,68 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Jetpack Compatibility File | ||||
|  * See: http://jetpack.com/ | ||||
|  */ | ||||
|  | ||||
| function twentysixteen_jetpack_setup() { | ||||
| 	/** | ||||
| 	 * Add theme support for Responsive Videos. | ||||
| 	 */ | ||||
| 	add_theme_support( 'jetpack-responsive-videos' ); | ||||
|  | ||||
| 	/** | ||||
| 	 * Add theme support for geo-location. | ||||
| 	 */ | ||||
| 	add_theme_support( 'jetpack-geo-location' ); | ||||
| } | ||||
| add_action( 'after_setup_theme', 'twentysixteen_jetpack_setup' ); | ||||
|  | ||||
| function twentysixteen_init_jetpack() { | ||||
| 	/** | ||||
| 	 * Add our compat CSS file for custom widget stylings and such. | ||||
| 	 * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production | ||||
| 	 * or skip it entirely for wpcom. | ||||
| 	 */ | ||||
| 	if ( ! is_admin() ) { | ||||
| 		$version = false; | ||||
| 		if ( method_exists( 'Jetpack', 'is_development_version' ) ) { | ||||
| 			$version = Jetpack::is_development_version() ? filemtime( plugin_dir_path( __FILE__ ) . 'twentysixteen.css' ) : JETPACK__VERSION; | ||||
| 		} | ||||
| 		wp_enqueue_style( 'twentysixteen-jetpack', plugins_url( 'twentysixteen.css', __FILE__ ), array(), $version ); | ||||
| 		wp_style_add_data( 'twentysixteen-jetpack', 'rtl', 'replace' ); | ||||
| 	} | ||||
| } | ||||
| add_action( 'init', 'twentysixteen_init_jetpack' ); | ||||
|  | ||||
| /** | ||||
|  * Alter gallery widget default width. | ||||
|  */ | ||||
| function twentysixteen_gallery_widget_content_width( $width ) { | ||||
| 	return 390; | ||||
| } | ||||
| add_filter( 'gallery_widget_content_width', 'twentysixteen_gallery_widget_content_width' ); | ||||
|  | ||||
| /** | ||||
|  * Remove ratings from excerpts that are used as intro on blog index, single, and archive pages. | ||||
|  */ | ||||
| function twentysixteen_remove_share() { | ||||
| 	if ( is_single() || is_archive() || is_home() ) { | ||||
| 		remove_filter( 'the_excerpt', 'sharing_display', 19 ); | ||||
| 		if ( class_exists( 'Jetpack_Likes' ) ) { | ||||
| 			remove_filter( 'the_excerpt', array( Jetpack_Likes::init(), 'post_likes' ), 30, 1 ); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| add_action( 'loop_start', 'twentysixteen_remove_share' ); | ||||
|  | ||||
| function twentysixteen_jetpack_lazy_images_compat() { | ||||
| 	// Since TwentySixteen outdents when window is resized, let's trigger a window resize | ||||
| 	// every time we lazy load an image on the TwentySixteen theme. | ||||
| 	wp_add_inline_script( | ||||
| 		'jetpack-lazy-images', | ||||
| 		"jQuery( document.body ).on( 'jetpack-lazy-loaded-image', function () { jQuery( window ).trigger( 'resize' ); } );" | ||||
| 	); | ||||
| } | ||||
|  | ||||
| // Priority needs to be 11 here so that we have already enqueued jetpack-lazy-images. | ||||
| add_action( 'wp_enqueue_scripts', 'twentysixteen_jetpack_lazy_images_compat', 11 ); | ||||
| @@ -0,0 +1,137 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Content Options. | ||||
|  * | ||||
|  * This feature will only be activated for themes that declare their support. | ||||
|  * This can be done by adding code similar to the following during the | ||||
|  * 'after_setup_theme' action: | ||||
|  * | ||||
| 	add_theme_support( 'jetpack-content-options', array( | ||||
| 		'blog-display'       => 'content', // the default setting of the theme: 'content', 'excerpt' or array( 'content', 'excerpt' ) for themes mixing both display. | ||||
| 		'author-bio'         => true, // display or not the author bio: true or false. | ||||
| 		'author-bio-default' => false, // the default setting of the author bio, if it's being displayed or not: true or false (only required if false). | ||||
| 		'masonry'            => '.site-main', // a CSS selector matching the elements that triggers a masonry refresh if the theme is using a masonry layout. | ||||
| 		'post-details'       => array( | ||||
| 			'stylesheet'        => 'themeslug-style', // name of the theme's stylesheet. | ||||
| 			'date'              => '.posted-on', // a CSS selector matching the elements that display the post date. | ||||
| 			'categories'        => '.cat-links', // a CSS selector matching the elements that display the post categories. | ||||
| 			'tags'              => '.tags-links', // a CSS selector matching the elements that display the post tags. | ||||
| 			'author'            => '.byline', // a CSS selector matching the elements that display the post author. | ||||
| 			'comment'           => '.comments-link', // a CSS selector matching the elements that display the comment link. | ||||
| 		), | ||||
| 		'featured-images'    => array( | ||||
| 			'archive'           => true, // enable or not the featured image check for archive pages: true or false. | ||||
| 			'archive-default'   => false, // the default setting of the featured image on archive pages, if it's being displayed or not: true or false (only required if false). | ||||
| 			'post'              => true, // enable or not the featured image check for single posts: true or false. | ||||
| 			'post-default'      => false, // the default setting of the featured image on single posts, if it's being displayed or not: true or false (only required if false). | ||||
| 			'page'              => true, // enable or not the featured image check for single pages: true or false. | ||||
| 			'page-default'      => false, // the default setting of the featured image on single pages, if it's being displayed or not: true or false (only required if false). | ||||
| 			'portfolio'         => true, // enable or not the featured image check for single projects: true or false. | ||||
| 			'portfolio-default' => false, // the default setting of the featured image on single projects, if it's being displayed or not: true or false (only required if false). | ||||
| 			'fallback'          => true, // enable or not the featured image fallback: true or false. | ||||
| 			'fallback-default'  => true, // the default setting for featured image fallbacks: true or false (only required if false) | ||||
| 		), | ||||
| 	) ); | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * Activate the Content Options plugin. | ||||
|  * | ||||
|  * @uses current_theme_supports() | ||||
|  */ | ||||
| function jetpack_content_options_init() { | ||||
| 	// If the theme doesn't support 'jetpack-content-options', don't continue. | ||||
| 	if ( ! current_theme_supports( 'jetpack-content-options' ) ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	// Load the Customizer options. | ||||
| 	require dirname( __FILE__ ) . '/content-options/customizer.php'; | ||||
|  | ||||
| 	// Load Blog Display function. | ||||
| 	require dirname( __FILE__ ) . '/content-options/blog-display.php'; | ||||
|  | ||||
| 	// Load Author Bio function. | ||||
| 	require dirname( __FILE__ ) . '/content-options/author-bio.php'; | ||||
|  | ||||
| 	// Load Post Details function. | ||||
| 	require dirname( __FILE__ ) . '/content-options/post-details.php'; | ||||
|  | ||||
| 	// Load Featured Images function. | ||||
| 	if ( jetpack_featured_images_should_load() ) { | ||||
| 		require dirname( __FILE__ ) . '/content-options/featured-images.php'; | ||||
| 	} | ||||
|  | ||||
| 	// Load Featured Images Fallback function. | ||||
| 	if ( jetpack_featured_images_fallback_should_load() ) { | ||||
| 		require dirname( __FILE__ ) . '/content-options/featured-images-fallback.php'; | ||||
| 	} | ||||
| } | ||||
| add_action( 'init', 'jetpack_content_options_init' ); | ||||
|  | ||||
| function jetpack_featured_images_get_settings() { | ||||
| 	$options = get_theme_support( 'jetpack-content-options' ); | ||||
|  | ||||
| 	$featured_images = ( ! empty( $options[0]['featured-images'] ) ) ? $options[0]['featured-images'] : null; | ||||
|  | ||||
| 	$settings = array( | ||||
| 		'archive'           => ( ! empty( $featured_images['archive'] ) ) ? $featured_images['archive'] : null, | ||||
| 		'post'              => ( ! empty( $featured_images['post'] ) ) ? $featured_images['post'] : null, | ||||
| 		'page'              => ( ! empty( $featured_images['page'] ) ) ? $featured_images['page'] : null, | ||||
| 		'portfolio'         => ( ! empty( $featured_images['portfolio'] ) ) ? $featured_images['portfolio'] : null, | ||||
| 		'archive-default'   => ( isset( $featured_images['archive-default'] ) && false === $featured_images['archive-default'] ) ? '' : 1, | ||||
| 		'post-default'      => ( isset( $featured_images['post-default'] ) && false === $featured_images['post-default'] ) ? '' : 1, | ||||
| 		'page-default'      => ( isset( $featured_images['page-default'] ) && false === $featured_images['page-default'] ) ? '' : 1, | ||||
| 		'portfolio-default' => ( isset( $featured_images['portfolio-default'] ) && false === $featured_images['portfolio-default'] ) ? '' : 1, | ||||
| 		'fallback'          => ( ! empty( $featured_images['fallback'] ) ) ? $featured_images['fallback'] : null, | ||||
| 		'fallback-default'  => ( isset( $featured_images['fallback-default'] ) && false === $featured_images['fallback-default'] ) ? '' : 1, | ||||
| 	); | ||||
|  | ||||
| 	$settings = array_merge( | ||||
| 		$settings, | ||||
| 		array( | ||||
| 			'archive-option'   => get_option( 'jetpack_content_featured_images_archive', $settings['archive-default'] ), | ||||
| 			'post-option'      => get_option( 'jetpack_content_featured_images_post', $settings['post-default'] ), | ||||
| 			'page-option'      => get_option( 'jetpack_content_featured_images_page', $settings['page-default'] ), | ||||
| 			'portfolio-option' => get_option( 'jetpack_content_featured_images_portfolio', $settings['portfolio-default'] ), | ||||
| 			'fallback-option'  => get_option( 'jetpack_content_featured_images_fallback', $settings['fallback-default'] ), | ||||
| 		) | ||||
| 	); | ||||
|  | ||||
| 	return $settings; | ||||
| } | ||||
|  | ||||
| function jetpack_featured_images_should_load() { | ||||
| 	// If the theme doesn't support post thumbnails, don't continue. | ||||
| 	if ( ! current_theme_supports( 'post-thumbnails' ) ) { | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	$opts = jetpack_featured_images_get_settings(); | ||||
|  | ||||
| 	// If the theme doesn't support archive, post and page or if all the options are ticked and we aren't in the customizer, don't continue. | ||||
| 	if ( | ||||
| 		( true !== $opts['archive'] && true !== $opts['post'] && true !== $opts['page'] ) | ||||
| 		|| ( 1 === $opts['archive-option'] && 1 === $opts['post-option'] && 1 === $opts['page-option'] && ! is_customize_preview() ) | ||||
| 	) { | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	return true; | ||||
| } | ||||
|  | ||||
| function jetpack_featured_images_fallback_should_load() { | ||||
| 	// If the theme doesn't support post thumbnails, don't continue. | ||||
| 	if ( ! current_theme_supports( 'post-thumbnails' ) ) { | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	$opts = jetpack_featured_images_get_settings(); | ||||
|  | ||||
| 	// If the theme doesn't support fallback, don't continue. | ||||
| 	if ( true !== $opts['fallback'] ) { | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	return true; | ||||
| } | ||||
| @@ -0,0 +1,60 @@ | ||||
| <?php | ||||
| /** | ||||
|  * The function to display Author Bio in a theme. | ||||
|  */ | ||||
| function jetpack_author_bio() { | ||||
| 	// If the theme doesn't support 'jetpack-content-options', don't continue. | ||||
| 	if ( ! current_theme_supports( 'jetpack-content-options' ) ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	$options            = get_theme_support( 'jetpack-content-options' ); | ||||
| 	$author_bio         = ( ! empty( $options[0]['author-bio'] ) ) ? $options[0]['author-bio'] : null; | ||||
| 	$author_bio_default = ( isset( $options[0]['author-bio-default'] ) && false === $options[0]['author-bio-default'] ) ? '' : 1; | ||||
|  | ||||
| 	// If the theme doesn't support 'jetpack-content-options[ 'author-bio' ]', don't continue. | ||||
| 	if ( true !== $author_bio ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	// If 'jetpack_content_author_bio' is false, don't continue. | ||||
| 	if ( ! get_option( 'jetpack_content_author_bio', $author_bio_default ) ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	// If we aren't on a single post, don't continue. | ||||
| 	if ( ! is_single() ) { | ||||
| 		return; | ||||
| 	} | ||||
| 	?> | ||||
| 	<div class="entry-author"> | ||||
| 		<div class="author-avatar"> | ||||
| 			<?php | ||||
| 			/** | ||||
| 			 * Filter the author bio avatar size. | ||||
| 			 * | ||||
| 			 * @param int $size The avatar height and width size in pixels. | ||||
| 			 * | ||||
| 			 * @module theme-tools | ||||
| 			 * | ||||
| 			 * @since 4.5.0 | ||||
| 			 */ | ||||
| 			$author_bio_avatar_size = apply_filters( 'jetpack_author_bio_avatar_size', 48 ); | ||||
|  | ||||
| 			echo get_avatar( get_the_author_meta( 'user_email' ), $author_bio_avatar_size ); | ||||
| 			?> | ||||
| 		</div><!-- .author-avatar --> | ||||
|  | ||||
| 		<div class="author-heading"> | ||||
| 			<h2 class="author-title"><?php printf( esc_html__( 'Published by %s', 'jetpack' ), '<span class="author-name">' . get_the_author() . '</span>' ); ?></h2> | ||||
| 		</div><!-- .author-heading --> | ||||
|  | ||||
| 		<p class="author-bio"> | ||||
| 			<?php the_author_meta( 'description' ); ?> | ||||
| 			<a class="author-link" href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>" rel="author"> | ||||
| 				<?php printf( esc_html__( 'View all posts by %s', 'jetpack' ), get_the_author() ); ?> | ||||
| 			</a> | ||||
| 		</p><!-- .author-bio --> | ||||
| 	</div><!-- .entry-auhtor --> | ||||
| 	<?php | ||||
| } | ||||
| @@ -0,0 +1,240 @@ | ||||
| <?php | ||||
| /** | ||||
|  * The functions to display Content or Excerpt in a theme. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * If the theme doesn't support 'jetpack-content-options', don't continue. | ||||
|  */ | ||||
| if ( ! current_theme_supports( 'jetpack-content-options' ) ) { | ||||
| 	return; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Get the Blog Display setting. | ||||
|  * If theme is using both 'Content' and 'Excerpt' then this setting will be called 'Mixed'. | ||||
|  */ | ||||
| $options      = get_theme_support( 'jetpack-content-options' ); | ||||
| $blog_display = ( ! empty( $options[0]['blog-display'] ) ) ? $options[0]['blog-display'] : null; | ||||
| $blog_display = preg_grep( '/^(content|excerpt)$/', (array) $blog_display ); | ||||
| sort( $blog_display ); | ||||
| $blog_display = implode( ', ', $blog_display ); | ||||
| $blog_display = ( 'content, excerpt' === $blog_display ) ? 'mixed' : $blog_display; | ||||
|  | ||||
| /** | ||||
|  * If the theme doesn't support 'jetpack-content-options[ 'blog-display' ]', don't continue. | ||||
|  */ | ||||
| if ( ! in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ) ) ) { | ||||
| 	return; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Apply Content filters. | ||||
|  */ | ||||
| function jetpack_blog_display_custom_excerpt( $content ) { | ||||
| 	$post = get_post(); | ||||
| 	if ( empty( $post->post_excerpt ) ) { | ||||
| 		$text = strip_shortcodes( $post->post_content ); | ||||
| 		$text = str_replace( ']]>', ']]>', $text ); | ||||
| 		$text = strip_tags( $text ); | ||||
| 		/** This filter is documented in wp-includes/formatting.php */ | ||||
| 		$excerpt_length = apply_filters( 'excerpt_length', 55 ); | ||||
| 		/** This filter is documented in wp-includes/formatting.php */ | ||||
| 		$excerpt_more = apply_filters( 'excerpt_more', ' ' . '[...]' ); | ||||
|  | ||||
| 		/* | ||||
| 		 * translators: If your word count is based on single characters (e.g. East Asian characters), | ||||
| 		 * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'. | ||||
| 		 * Do not translate into your own language. | ||||
| 		 */ | ||||
| 		if ( strpos( _x( 'words', 'Word count type. Do not translate!' ), 'characters' ) === 0 && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) { | ||||
| 			$text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' ); | ||||
| 			preg_match_all( '/./u', $text, $words ); | ||||
| 			$words = array_slice( $words[0], 0, $excerpt_length + 1 ); | ||||
| 			$sep   = ''; | ||||
| 		} else { | ||||
| 			$words = preg_split( "/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY ); | ||||
| 			$sep   = ' '; | ||||
| 		} | ||||
|  | ||||
| 		if ( count( $words ) > $excerpt_length ) { | ||||
| 			array_pop( $words ); | ||||
| 			$text = implode( $sep, $words ); | ||||
| 			$text = $text . $excerpt_more; | ||||
| 		} else { | ||||
| 			$text = implode( $sep, $words ); | ||||
| 		} | ||||
| 	} else { | ||||
| 		$text = wp_kses_post( $post->post_excerpt ); | ||||
| 	} | ||||
| 	return sprintf( '<p>%s</p>', $text ); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Display Excerpt instead of Content. | ||||
|  */ | ||||
| function jetpack_the_content_to_the_excerpt( $content ) { | ||||
| 	if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) { | ||||
| 		if ( post_password_required() ) { | ||||
| 			$content = sprintf( '<p>%s</p>', esc_html__( 'There is no excerpt because this is a protected post.', 'jetpack' ) ); | ||||
| 		} else { | ||||
| 			$content = jetpack_blog_display_custom_excerpt( $content ); | ||||
| 		} | ||||
| 	} | ||||
| 	return $content; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Display Content instead of Excerpt. | ||||
|  */ | ||||
| function jetpack_the_excerpt_to_the_content( $content ) { | ||||
| 	if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) { | ||||
| 		ob_start(); | ||||
| 		the_content( | ||||
| 			sprintf( | ||||
| 				wp_kses( | ||||
| 					/* translators: %s: Name of current post. Only visible to screen readers */ | ||||
| 					__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'jetpack' ), | ||||
| 					array( | ||||
| 						'span' => array( | ||||
| 							'class' => array(), | ||||
| 						), | ||||
| 					) | ||||
| 				), | ||||
| 				get_the_title() | ||||
| 			) | ||||
| 		); | ||||
| 		$content = ob_get_clean(); | ||||
| 	} | ||||
| 	return $content; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Display both Content and Excerpt instead of Content in the Customizer so live preview can switch between them. | ||||
|  */ | ||||
| function jetpack_the_content_customizer( $content ) { | ||||
| 	$class = jetpack_the_content_customizer_class(); | ||||
| 	if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) { | ||||
| 		if ( post_password_required() ) { | ||||
| 			$excerpt = sprintf( '<p>%s</p>', esc_html__( 'There is no excerpt because this is a protected post.', 'jetpack' ) ); | ||||
| 		} else { | ||||
| 			$excerpt = jetpack_blog_display_custom_excerpt( $content ); | ||||
| 		} | ||||
| 	} | ||||
| 	if ( empty( $excerpt ) ) { | ||||
| 		return $content; | ||||
| 	} else { | ||||
| 		return sprintf( '<div class="jetpack-blog-display %s jetpack-the-content">%s</div><div class="jetpack-blog-display %s jetpack-the-excerpt">%s</div>', $class, $content, $class, $excerpt ); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Display both Content and Excerpt instead of Excerpt in the Customizer so live preview can switch between them. | ||||
|  */ | ||||
| function jetpack_the_excerpt_customizer( $excerpt ) { | ||||
| 	if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) { | ||||
| 		ob_start(); | ||||
| 		the_content( | ||||
| 			sprintf( | ||||
| 				wp_kses( | ||||
| 					/* translators: %s: Name of current post. Only visible to screen readers */ | ||||
| 					__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'jetpack' ), | ||||
| 					array( | ||||
| 						'span' => array( | ||||
| 							'class' => array(), | ||||
| 						), | ||||
| 					) | ||||
| 				), | ||||
| 				get_the_title() | ||||
| 			) | ||||
| 		); | ||||
| 		$content = ob_get_clean(); | ||||
| 	} | ||||
| 	if ( empty( $content ) ) { | ||||
| 		return $excerpt; | ||||
| 	} else { | ||||
| 		return sprintf( '<div class="jetpack-blog-display jetpack-the-content">%s</div><div class="jetpack-blog-display jetpack-the-excerpt">%s</div>', $content, $excerpt ); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Display Content instead of Excerpt in the Customizer when theme uses a 'Mixed' display. | ||||
|  */ | ||||
| function jetpack_the_excerpt_mixed_customizer( $content ) { | ||||
| 	if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) { | ||||
| 		jetpack_the_content_customizer_class( 'output-the-excerpt' ); | ||||
| 		ob_start(); | ||||
| 		the_content(); | ||||
| 		$content = ob_get_clean(); | ||||
| 	} | ||||
| 	return $content; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Returns a class value, `output-the-content` by default. | ||||
|  * Used for themes with a 'Mixed' Blog Display so we can tell which output is by default. | ||||
|  */ | ||||
| function jetpack_the_content_customizer_class( $new_class = null ) { | ||||
| 	static $class; | ||||
| 	if ( isset( $new_class ) ) { | ||||
| 		// Assign a new class and return. | ||||
| 		$class = $new_class; | ||||
| 	} elseif ( isset( $class ) ) { | ||||
| 		// Reset the class after getting value. | ||||
| 		$prev_class = $class; | ||||
| 		$class      = null; | ||||
| 		return $prev_class; | ||||
| 	} else { | ||||
| 		// Return default class value. | ||||
| 		return 'output-the-content'; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| if ( is_customize_preview() ) { | ||||
| 	/* | ||||
| 	 * Display Content and Excerpt if the default Blog Display is 'Content' | ||||
| 	 * and we are in the Customizer. | ||||
| 	 */ | ||||
| 	if ( 'content' === $blog_display ) { | ||||
| 		add_filter( 'the_content', 'jetpack_the_content_customizer' ); | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Display Content and Excerpt if the default Blog Display is 'Excerpt' | ||||
| 	 * and we are in the Customizer. | ||||
| 	 */ | ||||
| 	if ( 'excerpt' === $blog_display ) { | ||||
| 		add_filter( 'the_excerpt', 'jetpack_the_excerpt_customizer' ); | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Display Content and Excerpt if the default Blog Display is 'Mixed' | ||||
| 	 * and we are in the Customizer. | ||||
| 	 */ | ||||
| 	if ( 'mixed' === $blog_display ) { | ||||
| 		add_filter( 'the_content', 'jetpack_the_content_customizer' ); | ||||
| 		add_filter( 'the_excerpt', 'jetpack_the_excerpt_mixed_customizer' ); | ||||
| 	} | ||||
| } else { | ||||
| 	$display_option = get_option( 'jetpack_content_blog_display', $blog_display ); | ||||
|  | ||||
| 	/* | ||||
| 	 * Display Excerpt if the default Blog Display is 'Content' | ||||
| 	 * or default Blog Display is 'Mixed' | ||||
| 	 * and the Option picked is 'Post Excerpt' | ||||
| 	 * and we aren't in the Customizer. | ||||
| 	 */ | ||||
| 	if ( ( 'content' === $blog_display || 'mixed' === $blog_display ) && 'excerpt' === $display_option ) { | ||||
| 		add_filter( 'the_content', 'jetpack_the_content_to_the_excerpt' ); | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Display Content if the default Blog Display is 'Excerpt' | ||||
| 	 * or default Blog Display is 'Mixed' | ||||
| 	 * and the Option picked is 'Full Post' | ||||
| 	 * and we aren't in the Customizer. | ||||
| 	 */ | ||||
| 	if ( ( 'excerpt' === $blog_display || 'mixed' === $blog_display ) && 'content' === $display_option ) { | ||||
| 		add_filter( 'the_excerpt', 'jetpack_the_excerpt_to_the_content' ); | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,217 @@ | ||||
| /* global blogDisplay, postDetails */ | ||||
|  | ||||
| /** | ||||
|  * customizer.js | ||||
|  * | ||||
|  * Theme Customizer enhancements for a better user experience. | ||||
|  * | ||||
|  * Contains handlers to make Theme Customizer preview reload changes asynchronously. | ||||
|  */ | ||||
|  | ||||
| ( function( $ ) { | ||||
| 	// Blog Display | ||||
| 	wp.customize( 'jetpack_content_blog_display', function( value ) { | ||||
| 		if ( 'content' === blogDisplay.display ) { | ||||
| 			$( '.jetpack-blog-display.jetpack-the-excerpt' ).css( { | ||||
| 				clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 				position: 'absolute', | ||||
| 			} ); | ||||
| 			$( '.jetpack-blog-display.jetpack-the-content' ).css( { | ||||
| 				clip: 'auto', | ||||
| 				position: 'relative', | ||||
| 			} ); | ||||
| 		} else if ( 'excerpt' === blogDisplay.display ) { | ||||
| 			$( '.jetpack-blog-display.jetpack-the-content' ).css( { | ||||
| 				clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 				position: 'absolute', | ||||
| 			} ); | ||||
| 			$( '.jetpack-blog-display.jetpack-the-excerpt' ).css( { | ||||
| 				clip: 'auto', | ||||
| 				position: 'relative', | ||||
| 			} ); | ||||
| 		} else if ( 'mixed' === blogDisplay.display ) { | ||||
| 			$( '.jetpack-blog-display.jetpack-the-content.output-the-content' ).css( { | ||||
| 				clip: 'auto', | ||||
| 				position: 'relative', | ||||
| 			} ); | ||||
| 			$( '.jetpack-blog-display.jetpack-the-excerpt.output-the-content' ).css( { | ||||
| 				clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 				position: 'absolute', | ||||
| 			} ); | ||||
| 			$( '.jetpack-blog-display.jetpack-the-content.output-the-excerpt' ).css( { | ||||
| 				clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 				position: 'absolute', | ||||
| 			} ); | ||||
| 			$( '.jetpack-blog-display.jetpack-the-excerpt.output-the-excerpt' ).css( { | ||||
| 				clip: 'auto', | ||||
| 				position: 'relative', | ||||
| 			} ); | ||||
| 		} | ||||
| 		value.bind( function( to ) { | ||||
| 			if ( 'content' === to ) { | ||||
| 				$( '.jetpack-blog-display.jetpack-the-excerpt' ).css( { | ||||
| 					clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 					position: 'absolute', | ||||
| 				} ); | ||||
| 				$( '.jetpack-blog-display.jetpack-the-content' ).css( { | ||||
| 					clip: 'auto', | ||||
| 					position: 'relative', | ||||
| 				} ); | ||||
| 			} else if ( 'excerpt' === to ) { | ||||
| 				$( '.jetpack-blog-display.jetpack-the-content' ).css( { | ||||
| 					clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 					position: 'absolute', | ||||
| 				} ); | ||||
| 				$( '.jetpack-blog-display.jetpack-the-excerpt' ).css( { | ||||
| 					clip: 'auto', | ||||
| 					position: 'relative', | ||||
| 				} ); | ||||
| 			} else if ( 'mixed' === to ) { | ||||
| 				$( '.jetpack-blog-display.jetpack-the-content.output-the-content' ).css( { | ||||
| 					clip: 'auto', | ||||
| 					position: 'relative', | ||||
| 				} ); | ||||
| 				$( '.jetpack-blog-display.jetpack-the-excerpt.output-the-content' ).css( { | ||||
| 					clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 					position: 'absolute', | ||||
| 				} ); | ||||
| 				$( '.jetpack-blog-display.jetpack-the-content.output-the-excerpt' ).css( { | ||||
| 					clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 					position: 'absolute', | ||||
| 				} ); | ||||
| 				$( '.jetpack-blog-display.jetpack-the-excerpt.output-the-excerpt' ).css( { | ||||
| 					clip: 'auto', | ||||
| 					position: 'relative', | ||||
| 				} ); | ||||
| 			} | ||||
| 			if ( blogDisplay.masonry ) { | ||||
| 				$( blogDisplay.masonry ).masonry(); | ||||
| 			} | ||||
| 		} ); | ||||
| 	} ); | ||||
|  | ||||
| 	// Post Details: Date. | ||||
| 	wp.customize( 'jetpack_content_post_details_date', function( value ) { | ||||
| 		value.bind( function( to ) { | ||||
| 			if ( false === to ) { | ||||
| 				$( postDetails.date ).css( { | ||||
| 					clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 					height: '1px', | ||||
| 					overflow: 'hidden', | ||||
| 					position: 'absolute', | ||||
| 					width: '1px', | ||||
| 				} ); | ||||
| 				$( 'body' ).addClass( 'date-hidden' ); | ||||
| 			} else { | ||||
| 				$( postDetails.date ).css( { | ||||
| 					clip: 'auto', | ||||
| 					height: 'auto', | ||||
| 					overflow: 'auto', | ||||
| 					position: 'relative', | ||||
| 					width: 'auto', | ||||
| 				} ); | ||||
| 				$( 'body' ).removeClass( 'date-hidden' ); | ||||
| 			} | ||||
| 		} ); | ||||
| 	} ); | ||||
|  | ||||
| 	// Post Details: Categories. | ||||
| 	wp.customize( 'jetpack_content_post_details_categories', function( value ) { | ||||
| 		value.bind( function( to ) { | ||||
| 			if ( false === to ) { | ||||
| 				$( postDetails.categories ).css( { | ||||
| 					clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 					height: '1px', | ||||
| 					overflow: 'hidden', | ||||
| 					position: 'absolute', | ||||
| 					width: '1px', | ||||
| 				} ); | ||||
| 				$( 'body' ).addClass( 'categories-hidden' ); | ||||
| 			} else { | ||||
| 				$( postDetails.categories ).css( { | ||||
| 					clip: 'auto', | ||||
| 					height: 'auto', | ||||
| 					overflow: 'auto', | ||||
| 					position: 'relative', | ||||
| 					width: 'auto', | ||||
| 				} ); | ||||
| 				$( 'body' ).removeClass( 'categories-hidden' ); | ||||
| 			} | ||||
| 		} ); | ||||
| 	} ); | ||||
|  | ||||
| 	// Post Details: Tags. | ||||
| 	wp.customize( 'jetpack_content_post_details_tags', function( value ) { | ||||
| 		value.bind( function( to ) { | ||||
| 			if ( false === to ) { | ||||
| 				$( postDetails.tags ).css( { | ||||
| 					clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 					height: '1px', | ||||
| 					overflow: 'hidden', | ||||
| 					position: 'absolute', | ||||
| 					width: '1px', | ||||
| 				} ); | ||||
| 				$( 'body' ).addClass( 'tags-hidden' ); | ||||
| 			} else { | ||||
| 				$( postDetails.tags ).css( { | ||||
| 					clip: 'auto', | ||||
| 					height: 'auto', | ||||
| 					overflow: 'auto', | ||||
| 					position: 'relative', | ||||
| 					width: 'auto', | ||||
| 				} ); | ||||
| 				$( 'body' ).removeClass( 'tags-hidden' ); | ||||
| 			} | ||||
| 		} ); | ||||
| 	} ); | ||||
|  | ||||
| 	// Post Details: Author. | ||||
| 	wp.customize( 'jetpack_content_post_details_author', function( value ) { | ||||
| 		value.bind( function( to ) { | ||||
| 			if ( false === to ) { | ||||
| 				$( postDetails.author ).css( { | ||||
| 					clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 					height: '1px', | ||||
| 					overflow: 'hidden', | ||||
| 					position: 'absolute', | ||||
| 					width: '1px', | ||||
| 				} ); | ||||
| 				$( 'body' ).addClass( 'author-hidden' ); | ||||
| 			} else { | ||||
| 				$( postDetails.author ).css( { | ||||
| 					clip: 'auto', | ||||
| 					height: 'auto', | ||||
| 					overflow: 'auto', | ||||
| 					position: 'relative', | ||||
| 					width: 'auto', | ||||
| 				} ); | ||||
| 				$( 'body' ).removeClass( 'author-hidden' ); | ||||
| 			} | ||||
| 		} ); | ||||
| 	} ); | ||||
|  | ||||
| 	// Post Details: Comment link. | ||||
| 	wp.customize( 'jetpack_content_post_details_comment', function( value ) { | ||||
| 		value.bind( function( to ) { | ||||
| 			if ( false === to ) { | ||||
| 				$( postDetails.comment ).css( { | ||||
| 					clip: 'rect(1px, 1px, 1px, 1px)', | ||||
| 					height: '1px', | ||||
| 					overflow: 'hidden', | ||||
| 					position: 'absolute', | ||||
| 					width: '1px', | ||||
| 				} ); | ||||
| 				$( 'body' ).addClass( 'comment-hidden' ); | ||||
| 			} else { | ||||
| 				$( postDetails.comment ).css( { | ||||
| 					clip: 'auto', | ||||
| 					height: 'auto', | ||||
| 					overflow: 'auto', | ||||
| 					position: 'relative', | ||||
| 					width: 'auto', | ||||
| 				} ); | ||||
| 				$( 'body' ).removeClass( 'comment-hidden' ); | ||||
| 			} | ||||
| 		} ); | ||||
| 	} ); | ||||
| } )( jQuery ); | ||||
| @@ -0,0 +1,482 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Add Content section to the Theme Customizer. | ||||
|  * | ||||
|  * @param WP_Customize_Manager $wp_customize Theme Customizer object. | ||||
|  */ | ||||
| function jetpack_content_options_customize_register( $wp_customize ) { | ||||
| 	$options      = get_theme_support( 'jetpack-content-options' ); | ||||
| 	$blog_display = ( ! empty( $options[0]['blog-display'] ) ) ? $options[0]['blog-display'] : null; | ||||
| 	$blog_display = preg_grep( '/^(content|excerpt)$/', (array) $blog_display ); | ||||
| 	sort( $blog_display ); | ||||
| 	$blog_display         = implode( ', ', $blog_display ); | ||||
| 	$blog_display         = ( 'content, excerpt' === $blog_display ) ? 'mixed' : $blog_display; | ||||
| 	$author_bio           = ( ! empty( $options[0]['author-bio'] ) ) ? $options[0]['author-bio'] : null; | ||||
| 	$author_bio_default   = ( isset( $options[0]['author-bio-default'] ) && false === $options[0]['author-bio-default'] ) ? '' : 1; | ||||
| 	$post_details         = ( ! empty( $options[0]['post-details'] ) ) ? $options[0]['post-details'] : null; | ||||
| 	$date                 = ( ! empty( $post_details['date'] ) ) ? $post_details['date'] : null; | ||||
| 	$categories           = ( ! empty( $post_details['categories'] ) ) ? $post_details['categories'] : null; | ||||
| 	$tags                 = ( ! empty( $post_details['tags'] ) ) ? $post_details['tags'] : null; | ||||
| 	$author               = ( ! empty( $post_details['author'] ) ) ? $post_details['author'] : null; | ||||
| 	$comment              = ( ! empty( $post_details['comment'] ) ) ? $post_details['comment'] : null; | ||||
| 	$featured_images      = ( ! empty( $options[0]['featured-images'] ) ) ? $options[0]['featured-images'] : null; | ||||
| 	$fi_archive           = ( ! empty( $featured_images['archive'] ) ) ? $featured_images['archive'] : null; | ||||
| 	$fi_post              = ( ! empty( $featured_images['post'] ) ) ? $featured_images['post'] : null; | ||||
| 	$fi_page              = ( ! empty( $featured_images['page'] ) ) ? $featured_images['page'] : null; | ||||
| 	$fi_portfolio         = ( ! empty( $featured_images['portfolio'] ) ) ? $featured_images['portfolio'] : null; | ||||
| 	$fi_fallback          = ( ! empty( $featured_images['fallback'] ) ) ? $featured_images['fallback'] : null; | ||||
| 	$fi_archive_default   = ( isset( $featured_images['archive-default'] ) && false === $featured_images['archive-default'] ) ? '' : 1; | ||||
| 	$fi_post_default      = ( isset( $featured_images['post-default'] ) && false === $featured_images['post-default'] ) ? '' : 1; | ||||
| 	$fi_page_default      = ( isset( $featured_images['page-default'] ) && false === $featured_images['page-default'] ) ? '' : 1; | ||||
| 	$fi_portfolio_default = ( isset( $featured_images['portfolio-default'] ) && false === $featured_images['portfolio-default'] ) ? '' : 1; | ||||
| 	$fi_fallback_default  = ( isset( $featured_images['fallback-default'] ) && false === $featured_images['fallback-default'] ) ? '' : 1; | ||||
|  | ||||
| 	// If the theme doesn't support 'jetpack-content-options[ 'blog-display' ]', 'jetpack-content-options[ 'author-bio' ]', 'jetpack-content-options[ 'post-details' ]' and 'jetpack-content-options[ 'featured-images' ]', don't continue. | ||||
| 	if ( ( ! in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ) ) ) | ||||
| 		&& ( true !== $author_bio ) | ||||
| 		&& ( ( empty( $post_details['stylesheet'] ) ) | ||||
| 			&& ( empty( $date ) | ||||
| 				|| empty( $categories ) | ||||
| 				|| empty( $tags ) | ||||
| 				|| empty( $author ) | ||||
| 				|| empty( $comment ) ) ) | ||||
| 		&& ( true !== $fi_archive && true !== $fi_post && true !== $fi_page && true !== $fi_portfolio && true !== $fi_fallback ) ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	// New control type: Title. | ||||
| 	class Jetpack_Customize_Control_Title extends WP_Customize_Control { | ||||
| 		public $type = 'title'; | ||||
|  | ||||
| 		public function render_content() { | ||||
| 			?> | ||||
| 			<span class="customize-control-title"><?php echo wp_kses_post( $this->label ); ?></span> | ||||
| 			<?php | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Add Content section. | ||||
| 	$wp_customize->add_section( | ||||
| 		'jetpack_content_options', | ||||
| 		array( | ||||
| 			'title'          => esc_html__( 'Content Options', 'jetpack' ), | ||||
| 			'theme_supports' => 'jetpack-content-options', | ||||
| 			'priority'       => 100, | ||||
| 		) | ||||
| 	); | ||||
|  | ||||
| 	// Add Blog Display option. | ||||
| 	if ( in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ) ) ) { | ||||
| 		if ( 'mixed' === $blog_display ) { | ||||
| 			$blog_display_choices = array( | ||||
| 				'content' => esc_html__( 'Full post', 'jetpack' ), | ||||
| 				'excerpt' => esc_html__( 'Post excerpt', 'jetpack' ), | ||||
| 				'mixed'   => esc_html__( 'Default', 'jetpack' ), | ||||
| 			); | ||||
|  | ||||
| 			$blog_display_description = esc_html__( 'Choose between a full post or an excerpt for the blog and archive pages, or opt for the theme\'s default combination of excerpt and full post.', 'jetpack' ); | ||||
| 		} else { | ||||
| 			$blog_display_choices = array( | ||||
| 				'content' => esc_html__( 'Full post', 'jetpack' ), | ||||
| 				'excerpt' => esc_html__( 'Post excerpt', 'jetpack' ), | ||||
| 			); | ||||
|  | ||||
| 			$blog_display_description = esc_html__( 'Choose between a full post or an excerpt for the blog and archive pages.', 'jetpack' ); | ||||
|  | ||||
| 			if ( 'mixed' === get_option( 'jetpack_content_blog_display' ) ) { | ||||
| 				update_option( 'jetpack_content_blog_display', $blog_display ); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		$wp_customize->add_setting( | ||||
| 			'jetpack_content_blog_display', | ||||
| 			array( | ||||
| 				'default'           => $blog_display, | ||||
| 				'type'              => 'option', | ||||
| 				'transport'         => 'postMessage', | ||||
| 				'sanitize_callback' => 'jetpack_content_options_sanitize_blog_display', | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		$wp_customize->add_control( | ||||
| 			'jetpack_content_blog_display', | ||||
| 			array( | ||||
| 				'section'     => 'jetpack_content_options', | ||||
| 				'label'       => esc_html__( 'Blog Display', 'jetpack' ), | ||||
| 				'description' => $blog_display_description, | ||||
| 				'type'        => 'radio', | ||||
| 				'choices'     => $blog_display_choices, | ||||
| 			) | ||||
| 		); | ||||
| 	} | ||||
|  | ||||
| 	// Add Author Bio option. | ||||
| 	if ( true === $author_bio ) { | ||||
| 		$wp_customize->add_setting( 'jetpack_content_author_bio_title' ); | ||||
|  | ||||
| 		$wp_customize->add_control( | ||||
| 			new Jetpack_Customize_Control_Title( | ||||
| 				$wp_customize, | ||||
| 				'jetpack_content_author_bio_title', | ||||
| 				array( | ||||
| 					'section' => 'jetpack_content_options', | ||||
| 					'label'   => esc_html__( 'Author Bio', 'jetpack' ), | ||||
| 					'type'    => 'title', | ||||
| 				) | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		$wp_customize->add_setting( | ||||
| 			'jetpack_content_author_bio', | ||||
| 			array( | ||||
| 				'default'           => $author_bio_default, | ||||
| 				'type'              => 'option', | ||||
| 				'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		$wp_customize->add_control( | ||||
| 			'jetpack_content_author_bio', | ||||
| 			array( | ||||
| 				'section' => 'jetpack_content_options', | ||||
| 				'label'   => esc_html__( 'Display on single posts', 'jetpack' ), | ||||
| 				'type'    => 'checkbox', | ||||
| 			) | ||||
| 		); | ||||
| 	} | ||||
|  | ||||
| 	// Add Post Details options. | ||||
| 	if ( ( ! empty( $post_details ) ) | ||||
| 		&& ( ! empty( $post_details['stylesheet'] ) ) | ||||
| 		&& ( ! empty( $date ) | ||||
| 			|| ! empty( $categories ) | ||||
| 			|| ! empty( $tags ) | ||||
| 			|| ! empty( $author ) | ||||
| 			|| ! empty( $comment ) ) ) { | ||||
| 		$wp_customize->add_setting( 'jetpack_content_post_details_title' ); | ||||
|  | ||||
| 		$wp_customize->add_control( | ||||
| 			new Jetpack_Customize_Control_Title( | ||||
| 				$wp_customize, | ||||
| 				'jetpack_content_post_details_title', | ||||
| 				array( | ||||
| 					'section' => 'jetpack_content_options', | ||||
| 					'label'   => esc_html__( 'Post Details', 'jetpack' ), | ||||
| 					'type'    => 'title', | ||||
| 				) | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		// Post Details: Date | ||||
| 		if ( ! empty( $date ) ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_post_details_date', | ||||
| 				array( | ||||
| 					'default'           => 1, | ||||
| 					'type'              => 'option', | ||||
| 					'transport'         => 'postMessage', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_post_details_date', | ||||
| 				array( | ||||
| 					'section' => 'jetpack_content_options', | ||||
| 					'label'   => esc_html__( 'Display date', 'jetpack' ), | ||||
| 					'type'    => 'checkbox', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// Post Details: Categories | ||||
| 		if ( ! empty( $categories ) ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_post_details_categories', | ||||
| 				array( | ||||
| 					'default'           => 1, | ||||
| 					'type'              => 'option', | ||||
| 					'transport'         => 'postMessage', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_post_details_categories', | ||||
| 				array( | ||||
| 					'section' => 'jetpack_content_options', | ||||
| 					'label'   => esc_html__( 'Display categories', 'jetpack' ), | ||||
| 					'type'    => 'checkbox', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// Post Details: Tags | ||||
| 		if ( ! empty( $tags ) ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_post_details_tags', | ||||
| 				array( | ||||
| 					'default'           => 1, | ||||
| 					'type'              => 'option', | ||||
| 					'transport'         => 'postMessage', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_post_details_tags', | ||||
| 				array( | ||||
| 					'section' => 'jetpack_content_options', | ||||
| 					'label'   => esc_html__( 'Display tags', 'jetpack' ), | ||||
| 					'type'    => 'checkbox', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// Post Details: Author | ||||
| 		if ( ! empty( $author ) ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_post_details_author', | ||||
| 				array( | ||||
| 					'default'           => 1, | ||||
| 					'type'              => 'option', | ||||
| 					'transport'         => 'postMessage', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_post_details_author', | ||||
| 				array( | ||||
| 					'section' => 'jetpack_content_options', | ||||
| 					'label'   => esc_html__( 'Display author', 'jetpack' ), | ||||
| 					'type'    => 'checkbox', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// Post Details: Comment link | ||||
| 		if ( ! empty( $comment ) ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_post_details_comment', | ||||
| 				array( | ||||
| 					'default'           => 1, | ||||
| 					'type'              => 'option', | ||||
| 					'transport'         => 'postMessage', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_post_details_comment', | ||||
| 				array( | ||||
| 					'section' => 'jetpack_content_options', | ||||
| 					'label'   => esc_html__( 'Display comment link', 'jetpack' ), | ||||
| 					'type'    => 'checkbox', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Add Featured Images options. | ||||
| 	if ( true === $fi_archive || true === $fi_post || true === $fi_page || true === $fi_portfolio || true === $fi_fallback ) { | ||||
| 		$wp_customize->add_setting( 'jetpack_content_featured_images_title' ); | ||||
|  | ||||
| 		$wp_customize->add_control( | ||||
| 			new Jetpack_Customize_Control_Title( | ||||
| 				$wp_customize, | ||||
| 				'jetpack_content_featured_images_title', | ||||
| 				array( | ||||
| 					'section'         => 'jetpack_content_options', | ||||
| 					'label'           => esc_html__( 'Featured Images', 'jetpack' ) . sprintf( '<a href="https://en.support.wordpress.com/featured-images/" class="customize-help-toggle dashicons dashicons-editor-help" title="%1$s" rel="noopener noreferrer" target="_blank"><span class="screen-reader-text">%1$s</span></a>', esc_html__( 'Learn more about Featured Images', 'jetpack' ) ), | ||||
| 					'type'            => 'title', | ||||
| 					'active_callback' => 'jetpack_post_thumbnail_supports', | ||||
| 				) | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		// Featured Images: Archive | ||||
| 		if ( true === $fi_archive ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_featured_images_archive', | ||||
| 				array( | ||||
| 					'default'           => $fi_archive_default, | ||||
| 					'type'              => 'option', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_featured_images_archive', | ||||
| 				array( | ||||
| 					'section'         => 'jetpack_content_options', | ||||
| 					'label'           => esc_html__( 'Display on blog and archives', 'jetpack' ), | ||||
| 					'type'            => 'checkbox', | ||||
| 					'active_callback' => 'jetpack_post_thumbnail_supports', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// Featured Images: Post | ||||
| 		if ( true === $fi_post ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_featured_images_post', | ||||
| 				array( | ||||
| 					'default'           => $fi_post_default, | ||||
| 					'type'              => 'option', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_featured_images_post', | ||||
| 				array( | ||||
| 					'section'         => 'jetpack_content_options', | ||||
| 					'label'           => esc_html__( 'Display on single posts', 'jetpack' ), | ||||
| 					'type'            => 'checkbox', | ||||
| 					'active_callback' => 'jetpack_post_thumbnail_supports', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// Featured Images: Page | ||||
| 		if ( true === $fi_page ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_featured_images_page', | ||||
| 				array( | ||||
| 					'default'           => $fi_page_default, | ||||
| 					'type'              => 'option', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_featured_images_page', | ||||
| 				array( | ||||
| 					'section'         => 'jetpack_content_options', | ||||
| 					'label'           => esc_html__( 'Display on pages', 'jetpack' ), | ||||
| 					'type'            => 'checkbox', | ||||
| 					'active_callback' => 'jetpack_post_thumbnail_supports', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// Featured Images: Portfolio | ||||
| 		if ( true === $fi_portfolio && post_type_exists( 'jetpack-portfolio' ) ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_featured_images_portfolio', | ||||
| 				array( | ||||
| 					'default'           => $fi_portfolio_default, | ||||
| 					'type'              => 'option', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_featured_images_portfolio', | ||||
| 				array( | ||||
| 					'section'         => 'jetpack_content_options', | ||||
| 					'label'           => esc_html__( 'Display on single projects', 'jetpack' ), | ||||
| 					'type'            => 'checkbox', | ||||
| 					'active_callback' => 'jetpack_post_thumbnail_supports', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// Featured Images: Fallback | ||||
| 		if ( true === $fi_fallback ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'jetpack_content_featured_images_fallback', | ||||
| 				array( | ||||
| 					'default'           => $fi_fallback_default, | ||||
| 					'type'              => 'option', | ||||
| 					'sanitize_callback' => 'jetpack_content_options_sanitize_checkbox', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				'jetpack_content_featured_images_fallback', | ||||
| 				array( | ||||
| 					'section'         => 'jetpack_content_options', | ||||
| 					'label'           => esc_html__( 'Automatically use first image in post', 'jetpack' ), | ||||
| 					'type'            => 'checkbox', | ||||
| 					'active_callback' => 'jetpack_post_thumbnail_supports', | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| add_action( 'customize_register', 'jetpack_content_options_customize_register' ); | ||||
|  | ||||
| /** | ||||
|  * Return whether the theme supports Post Thumbnails. | ||||
|  */ | ||||
| function jetpack_post_thumbnail_supports() { | ||||
| 	return ( current_theme_supports( 'post-thumbnails' ) ); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Sanitize the checkbox. | ||||
|  * | ||||
|  * @param int $input. | ||||
|  * @return boolean|string | ||||
|  */ | ||||
| function jetpack_content_options_sanitize_checkbox( $input ) { | ||||
| 	return ( 1 == $input ) ? 1 : ''; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Sanitize the Display value. | ||||
|  * | ||||
|  * @param string $display. | ||||
|  * @return string. | ||||
|  */ | ||||
| function jetpack_content_options_sanitize_blog_display( $display ) { | ||||
| 	if ( ! in_array( $display, array( 'content', 'excerpt', 'mixed' ) ) ) { | ||||
| 		$display = 'content'; | ||||
| 	} | ||||
| 	return $display; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. | ||||
|  */ | ||||
| function jetpack_content_options_customize_preview_js() { | ||||
| 	$options      = get_theme_support( 'jetpack-content-options' ); | ||||
| 	$blog_display = ( ! empty( $options[0]['blog-display'] ) ) ? $options[0]['blog-display'] : null; | ||||
| 	$blog_display = preg_grep( '/^(content|excerpt)$/', (array) $blog_display ); | ||||
| 	sort( $blog_display ); | ||||
| 	$blog_display = implode( ', ', $blog_display ); | ||||
| 	$blog_display = ( 'content, excerpt' === $blog_display ) ? 'mixed' : $blog_display; | ||||
| 	$masonry      = ( ! empty( $options[0]['masonry'] ) ) ? $options[0]['masonry'] : null; | ||||
| 	$post_details = ( ! empty( $options[0]['post-details'] ) ) ? $options[0]['post-details'] : null; | ||||
| 	$date         = ( ! empty( $post_details['date'] ) ) ? $post_details['date'] : null; | ||||
| 	$categories   = ( ! empty( $post_details['categories'] ) ) ? $post_details['categories'] : null; | ||||
| 	$tags         = ( ! empty( $post_details['tags'] ) ) ? $post_details['tags'] : null; | ||||
| 	$author       = ( ! empty( $post_details['author'] ) ) ? $post_details['author'] : null; | ||||
| 	$comment      = ( ! empty( $post_details['comment'] ) ) ? $post_details['comment'] : null; | ||||
|  | ||||
| 	wp_enqueue_script( 'jetpack-content-options-customizer', plugins_url( 'customizer.js', __FILE__ ), array( 'customize-preview' ), '1.0', true ); | ||||
|  | ||||
| 	wp_localize_script( | ||||
| 		'jetpack-content-options-customizer', | ||||
| 		'blogDisplay', | ||||
| 		array( | ||||
| 			'display' => get_option( 'jetpack_content_blog_display', $blog_display ), | ||||
| 			'masonry' => $masonry, | ||||
| 		) | ||||
| 	); | ||||
|  | ||||
| 	wp_localize_script( | ||||
| 		'jetpack-content-options-customizer', | ||||
| 		'postDetails', | ||||
| 		array( | ||||
| 			'date'       => $date, | ||||
| 			'categories' => $categories, | ||||
| 			'tags'       => $tags, | ||||
| 			'author'     => $author, | ||||
| 			'comment'    => $comment, | ||||
| 		) | ||||
| 	); | ||||
| } | ||||
| add_action( 'customize_preview_init', 'jetpack_content_options_customize_preview_js' ); | ||||
| @@ -0,0 +1,161 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Get one image from a specified post in the following order: | ||||
|  * Featured Image then first image from the_content HTML | ||||
|  * and filter the post_thumbnail_html | ||||
|  * | ||||
|  * @param string       $html              The HTML for the image markup. | ||||
|  * @param int          $post_id           The post ID to check. | ||||
|  * @param int          $post_thumbnail_id The ID of the featured image. | ||||
|  * @param string       $size              The image size to return, defaults to 'post-thumbnail'. | ||||
|  * @param string|array $attr              Optional. Query string or array of attributes. | ||||
|  * | ||||
|  * @return string      $html              Thumbnail image with markup. | ||||
|  */ | ||||
| function jetpack_featured_images_fallback_get_image( $html, $post_id, $post_thumbnail_id, $size, $attr ) { | ||||
| 	$opts = jetpack_featured_images_get_settings(); | ||||
|  | ||||
| 	if ( ! empty( $html ) || (bool) 1 !== (bool) $opts['fallback-option'] ) { | ||||
| 		return trim( $html ); | ||||
| 	} | ||||
|  | ||||
| 	if ( jetpack_featured_images_should_load() ) { | ||||
| 		if ( | ||||
| 			( true === $opts['archive'] && ( is_home() || is_archive() || is_search() ) && ! $opts['archive-option'] ) | ||||
| 			|| ( true === $opts['post'] && is_single() && ! $opts['post-option'] ) | ||||
| 			|| ! $opts['fallback-option'] | ||||
| 		) { | ||||
| 			return trim( $html ); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if ( class_exists( 'Jetpack_PostImages' ) ) { | ||||
| 		global $_wp_additional_image_sizes; | ||||
|  | ||||
| 		$args = array( | ||||
| 			'from_thumbnail'  => false, | ||||
| 			'from_slideshow'  => true, | ||||
| 			'from_gallery'    => true, | ||||
| 			'from_attachment' => false, | ||||
| 		); | ||||
|  | ||||
| 		$image = Jetpack_PostImages::get_image( $post_id, $args ); | ||||
|  | ||||
| 		if ( ! empty( $image ) ) { | ||||
| 			$image['width']  = ''; | ||||
| 			$image['height'] = ''; | ||||
| 			$image['crop']   = ''; | ||||
|  | ||||
| 			if ( array_key_exists( $size, $_wp_additional_image_sizes ) ) { | ||||
| 				$image['width']  = $_wp_additional_image_sizes[ $size ]['width']; | ||||
| 				$image['height'] = $_wp_additional_image_sizes[ $size ]['height']; | ||||
| 				$image['crop']   = $_wp_additional_image_sizes[ $size ]['crop']; | ||||
| 			} | ||||
|  | ||||
| 			$image_src = Jetpack_PostImages::fit_image_url( $image['src'], $image['width'], $image['height'] ); | ||||
|  | ||||
| 			// Use the theme's crop setting rather than forcing to true | ||||
| 			$image_src = add_query_arg( 'crop', $image['crop'], $image_src ); | ||||
|  | ||||
| 			$html = '<img src="' . esc_url( $image_src ) . '" title="' . esc_attr( strip_tags( get_the_title() ) ) . '" class="attachment-' . esc_attr( $size ) . ' wp-post-image" />'; | ||||
|  | ||||
| 			return trim( $html ); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return trim( $html ); | ||||
| } | ||||
| add_filter( 'post_thumbnail_html', 'jetpack_featured_images_fallback_get_image', 10, 5 ); | ||||
|  | ||||
| /** | ||||
|  * Get URL of one image from a specified post in the following order: | ||||
|  * Featured Image then first image from the_content HTML | ||||
|  * | ||||
|  * @param int    $post_id           The post ID to check. | ||||
|  * @param int    $post_thumbnail_id The ID of the featured image. | ||||
|  * @param string $size              The image size to return, defaults to 'post-thumbnail'. | ||||
|  * | ||||
|  * @return string|null $image_src         The URL of the thumbnail image. | ||||
|  */ | ||||
| function jetpack_featured_images_fallback_get_image_src( $post_id, $post_thumbnail_id, $size ) { | ||||
| 	$image_src = wp_get_attachment_image_src( $post_thumbnail_id, $size ); | ||||
| 	$image_src = ( ! empty( $image_src[0] ) ) ? $image_src[0] : null; | ||||
| 	$opts      = jetpack_featured_images_get_settings(); | ||||
|  | ||||
| 	if ( ! empty( $image_src ) || (bool) 1 !== (bool) $opts['fallback-option'] ) { | ||||
| 		return esc_url( $image_src ); | ||||
| 	} | ||||
|  | ||||
| 	if ( jetpack_featured_images_should_load() ) { | ||||
| 		if ( ( true === $opts['archive'] && ( is_home() || is_archive() || is_search() ) && ! $opts['archive-option'] ) | ||||
| 			|| ( true === $opts['post'] && is_single() && ! $opts['post-option'] ) ) { | ||||
| 				return esc_url( $image_src ); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if ( class_exists( 'Jetpack_PostImages' ) ) { | ||||
| 		global $_wp_additional_image_sizes; | ||||
|  | ||||
| 		$args = array( | ||||
| 			'from_thumbnail'  => false, | ||||
| 			'from_slideshow'  => true, | ||||
| 			'from_gallery'    => true, | ||||
| 			'from_attachment' => false, | ||||
| 		); | ||||
|  | ||||
| 		$image = Jetpack_PostImages::get_image( $post_id, $args ); | ||||
|  | ||||
| 		if ( ! empty( $image ) ) { | ||||
| 			$image['width']  = ''; | ||||
| 			$image['height'] = ''; | ||||
| 			$image['crop']   = ''; | ||||
|  | ||||
| 			if ( array_key_exists( $size, $_wp_additional_image_sizes ) ) { | ||||
| 				$image['width']  = $_wp_additional_image_sizes[ $size ]['width']; | ||||
| 				$image['height'] = $_wp_additional_image_sizes[ $size ]['height']; | ||||
| 				$image['crop']   = $_wp_additional_image_sizes[ $size ]['crop']; | ||||
| 			} | ||||
|  | ||||
| 			$image_src = Jetpack_PostImages::fit_image_url( $image['src'], $image['width'], $image['height'] ); | ||||
|  | ||||
| 			// Use the theme's crop setting rather than forcing to true | ||||
| 			$image_src = add_query_arg( 'crop', $image['crop'], $image_src ); | ||||
|  | ||||
| 			return esc_url( $image_src ); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return esc_url( $image_src ); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Check if post has an image attached, including a fallback. | ||||
|  * | ||||
|  * @param  int $post The post ID to check. | ||||
|  * | ||||
|  * @return bool | ||||
|  */ | ||||
| function jetpack_has_featured_image( $post = null ) { | ||||
| 	return (bool) get_the_post_thumbnail( $post ); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Adds custom class to the array of post classes. | ||||
|  * | ||||
|  * @param array $classes Classes for the post element. | ||||
|  * @param array $class   Optional. Comma separated list of additional classes. | ||||
|  * @param array $post_id Unique The post ID to check | ||||
|  * | ||||
|  * @return array $classes | ||||
|  */ | ||||
| function jetpack_featured_images_post_class( $classes, $class, $post_id ) { | ||||
| 	$post_password_required = post_password_required( $post_id ); | ||||
| 	$opts                   = jetpack_featured_images_get_settings(); | ||||
|  | ||||
| 	if ( jetpack_has_featured_image( $post_id ) && (bool) 1 === (bool) $opts['fallback-option'] && ! is_attachment() && ! $post_password_required && 'post' === get_post_type() ) { | ||||
| 		$classes[] = 'has-post-thumbnail'; | ||||
| 	} | ||||
|  | ||||
| 	return $classes; | ||||
| } | ||||
| add_filter( 'post_class', 'jetpack_featured_images_post_class', 10, 3 ); | ||||
| @@ -0,0 +1,84 @@ | ||||
| <?php | ||||
| /** | ||||
|  * The function to prevent for Featured Images to be displayed in a theme. | ||||
|  */ | ||||
| function jetpack_featured_images_remove_post_thumbnail( $metadata, $object_id, $meta_key, $single ) { | ||||
| 	$opts = jetpack_featured_images_get_settings(); | ||||
|  | ||||
| 	// Automatically return metadata if it's a PayPal product - we don't want to hide the Featured Image. | ||||
| 	if ( 'jp_pay_product' === get_post_type( $object_id ) ) { | ||||
| 		return $metadata; | ||||
| 	} | ||||
|  | ||||
| 	// Return false if the archive option or singular option is unticked. | ||||
| 	if ( | ||||
| 		( true === $opts['archive'] | ||||
| 			&& ( is_home() || is_archive() || is_search() ) | ||||
| 			&& ! jetpack_is_shop_page() | ||||
| 			&& ! $opts['archive-option'] | ||||
| 			&& ( isset( $meta_key ) | ||||
| 			&& '_thumbnail_id' === $meta_key ) | ||||
| 			&& in_the_loop() | ||||
| 		) | ||||
| 		|| ( true === $opts['post'] | ||||
| 			&& is_single() | ||||
| 			&& ! jetpack_is_product() | ||||
| 			&& ! $opts['post-option'] | ||||
| 			&& ( isset( $meta_key ) | ||||
| 			&& '_thumbnail_id' === $meta_key ) | ||||
| 			&& in_the_loop() | ||||
| 		) | ||||
| 		|| ( true === $opts['page'] | ||||
| 			&& is_singular() | ||||
| 			&& is_page() | ||||
| 			&& ! $opts['page-option'] | ||||
| 			&& ( isset( $meta_key ) | ||||
| 			&& '_thumbnail_id' === $meta_key ) | ||||
| 			&& in_the_loop() | ||||
| 		) | ||||
| 		|| ( true === $opts['portfolio'] | ||||
| 			&& post_type_exists( 'jetpack-portfolio' ) | ||||
| 			&& is_singular( 'jetpack-portfolio' ) | ||||
| 			&& ! $opts['portfolio-option'] | ||||
| 			&& ( isset( $meta_key ) | ||||
| 			&& '_thumbnail_id' === $meta_key ) | ||||
| 			&& in_the_loop() | ||||
| 		) | ||||
| 	) { | ||||
| 		return false; | ||||
| 	} else { | ||||
| 		return $metadata; | ||||
| 	} | ||||
| } | ||||
| add_filter( 'get_post_metadata', 'jetpack_featured_images_remove_post_thumbnail', true, 4 ); | ||||
|  | ||||
| /** | ||||
|  * Check if we are in a WooCommerce Product in order to exclude it from the is_single check. | ||||
|  */ | ||||
| function jetpack_is_product() { | ||||
| 	return ( function_exists( 'is_product' ) ) ? is_product() : false; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Check if we are in a WooCommerce Shop in order to exclude it from the is_archive check. | ||||
|  */ | ||||
| function jetpack_is_shop_page() { | ||||
| 	// Check if WooCommerce is active first. | ||||
| 	if ( ! class_exists( 'WooCommerce' ) ) { | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	global $wp_query; | ||||
|  | ||||
| 	$front_page_id        = get_option( 'page_on_front' ); | ||||
| 	$current_page_id      = $wp_query->get( 'page_id' ); | ||||
| 	$is_static_front_page = 'page' === get_option( 'show_on_front' ); | ||||
|  | ||||
| 	if ( $is_static_front_page && $front_page_id === $current_page_id ) { | ||||
| 		$is_shop_page = ( $current_page_id === wc_get_page_id( 'shop' ) ) ? true : false; | ||||
| 	} else { | ||||
| 		$is_shop_page = is_shop(); | ||||
| 	} | ||||
|  | ||||
| 	return $is_shop_page; | ||||
| } | ||||
| @@ -0,0 +1,150 @@ | ||||
| <?php | ||||
| /** | ||||
|  * The function to include Post Details in a theme's stylesheet. | ||||
|  */ | ||||
| function jetpack_post_details_enqueue_scripts() { | ||||
| 	// Make sure we can proceed. | ||||
| 	list( $should_run, $options, $definied, $post_details ) = jetpack_post_details_should_run(); | ||||
|  | ||||
| 	if ( ! $should_run ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	list( $date_option, $categories_option, $tags_option, $author_option, $comment_option ) = $options; | ||||
| 	list( $date, $categories, $tags, $author, $comment )                                    = $definied; | ||||
|  | ||||
| 	$elements = array(); | ||||
|  | ||||
| 	// If date option is unticked, add it to the list of classes. | ||||
| 	if ( 1 != $date_option && ! empty( $date ) ) { | ||||
| 		$elements[] = $date; | ||||
| 	} | ||||
|  | ||||
| 	// If categories option is unticked, add it to the list of classes. | ||||
| 	if ( 1 != $categories_option && ! empty( $categories ) ) { | ||||
| 		$elements[] = $categories; | ||||
| 	} | ||||
|  | ||||
| 	// If tags option is unticked, add it to the list of classes. | ||||
| 	if ( 1 != $tags_option && ! empty( $tags ) ) { | ||||
| 		$elements[] = $tags; | ||||
| 	} | ||||
|  | ||||
| 	// If author option is unticked, add it to the list of classes. | ||||
| 	if ( 1 != $author_option && ! empty( $author ) ) { | ||||
| 		$elements[] = $author; | ||||
| 	} | ||||
|  | ||||
| 	// If comment option is unticked, add it to the list of classes. | ||||
| 	if ( 1 != $comment_option && ! empty( $comment ) ) { | ||||
| 		$elements[] = $comment; | ||||
| 	} | ||||
|  | ||||
| 	// Get the list of classes. | ||||
| 	$elements = implode( ', ', $elements ); | ||||
|  | ||||
| 	// Hide the classes with CSS. | ||||
| 	$css = $elements . ' { clip: rect(1px, 1px, 1px, 1px); height: 1px; position: absolute; overflow: hidden; width: 1px; }'; | ||||
|  | ||||
| 	// Add the CSS to the stylesheet. | ||||
| 	wp_add_inline_style( $post_details['stylesheet'], $css ); | ||||
| } | ||||
| add_action( 'wp_enqueue_scripts', 'jetpack_post_details_enqueue_scripts' ); | ||||
|  | ||||
| /** | ||||
|  * Adds custom classes to the array of body classes. | ||||
|  */ | ||||
| function jetpack_post_details_body_classes( $classes ) { | ||||
| 	// Make sure we can proceed. | ||||
| 	list( $should_run, $options, $definied ) = jetpack_post_details_should_run(); | ||||
|  | ||||
| 	if ( ! $should_run ) { | ||||
| 		return $classes; | ||||
| 	} | ||||
|  | ||||
| 	list( $date_option, $categories_option, $tags_option, $author_option, $comment_option ) = $options; | ||||
| 	list( $date, $categories, $tags, $author, $comment )                                    = $definied; | ||||
|  | ||||
| 	// If date option is unticked, add a class of 'date-hidden' to the body. | ||||
| 	if ( 1 != $date_option && ! empty( $date ) ) { | ||||
| 		$classes[] = 'date-hidden'; | ||||
| 	} | ||||
|  | ||||
| 	// If categories option is unticked, add a class of 'categories-hidden' to the body. | ||||
| 	if ( 1 != $categories_option && ! empty( $categories ) ) { | ||||
| 		$classes[] = 'categories-hidden'; | ||||
| 	} | ||||
|  | ||||
| 	// If tags option is unticked, add a class of 'tags-hidden' to the body. | ||||
| 	if ( 1 != $tags_option && ! empty( $tags ) ) { | ||||
| 		$classes[] = 'tags-hidden'; | ||||
| 	} | ||||
|  | ||||
| 	// If author option is unticked, add a class of 'author-hidden' to the body. | ||||
| 	if ( 1 != $author_option && ! empty( $author ) ) { | ||||
| 		$classes[] = 'author-hidden'; | ||||
| 	} | ||||
|  | ||||
| 	// If comment option is unticked, add a class of 'comment-hidden' to the body. | ||||
| 	if ( 1 != $comment_option && ! empty( $comment ) ) { | ||||
| 		$classes[] = 'comment-hidden'; | ||||
| 	} | ||||
|  | ||||
| 	return $classes; | ||||
| } | ||||
| add_filter( 'body_class', 'jetpack_post_details_body_classes' ); | ||||
|  | ||||
| /** | ||||
|  * Determines if Post Details should run. | ||||
|  */ | ||||
| function jetpack_post_details_should_run() { | ||||
| 	// Empty value representing falsy return value. | ||||
| 	$void = array( false, null, null, null ); | ||||
|  | ||||
| 	// If the theme doesn't support 'jetpack-content-options', don't continue. | ||||
| 	if ( ! current_theme_supports( 'jetpack-content-options' ) ) { | ||||
| 		return $void; | ||||
| 	} | ||||
|  | ||||
| 	$options      = get_theme_support( 'jetpack-content-options' ); | ||||
| 	$post_details = ( ! empty( $options[0]['post-details'] ) ) ? $options[0]['post-details'] : null; | ||||
|  | ||||
| 	// If the theme doesn't support 'jetpack-content-options[ 'post-details' ]', don't continue. | ||||
| 	if ( empty( $post_details ) ) { | ||||
| 		return $void; | ||||
| 	} | ||||
|  | ||||
| 	$date       = ( ! empty( $post_details['date'] ) ) ? $post_details['date'] : null; | ||||
| 	$categories = ( ! empty( $post_details['categories'] ) ) ? $post_details['categories'] : null; | ||||
| 	$tags       = ( ! empty( $post_details['tags'] ) ) ? $post_details['tags'] : null; | ||||
| 	$author     = ( ! empty( $post_details['author'] ) ) ? $post_details['author'] : null; | ||||
| 	$comment    = ( ! empty( $post_details['comment'] ) ) ? $post_details['comment'] : null; | ||||
|  | ||||
| 	// If there is no stylesheet and there are no date, categories, tags, author or comment declared, don't continue. | ||||
| 	if ( | ||||
| 		empty( $post_details['stylesheet'] ) | ||||
| 		&& ( empty( $date ) | ||||
| 			|| empty( $categories ) | ||||
| 			|| empty( $tags ) | ||||
| 			|| empty( $author ) | ||||
| 			|| empty( $comment ) ) | ||||
| 	) { | ||||
| 		return $void; | ||||
| 	} | ||||
|  | ||||
| 	$date_option       = get_option( 'jetpack_content_post_details_date', 1 ); | ||||
| 	$categories_option = get_option( 'jetpack_content_post_details_categories', 1 ); | ||||
| 	$tags_option       = get_option( 'jetpack_content_post_details_tags', 1 ); | ||||
| 	$author_option     = get_option( 'jetpack_content_post_details_author', 1 ); | ||||
| 	$comment_option    = get_option( 'jetpack_content_post_details_comment', 1 ); | ||||
|  | ||||
| 	$options  = array( $date_option, $categories_option, $tags_option, $author_option, $comment_option ); | ||||
| 	$definied = array( $date, $categories, $tags, $author, $comment ); | ||||
|  | ||||
| 	// If all the options are ticked, don't continue. | ||||
| 	if ( array( 1, 1, 1, 1, 1 ) === $options ) { | ||||
| 		return $void; | ||||
| 	} | ||||
|  | ||||
| 	return array( true, $options, $definied, $post_details ); | ||||
| } | ||||
| @@ -0,0 +1,724 @@ | ||||
| <?php | ||||
|  | ||||
| use Automattic\Jetpack\Constants; | ||||
|  | ||||
| if ( ! class_exists( 'Featured_Content' ) && isset( $GLOBALS['pagenow'] ) && 'plugins.php' !== $GLOBALS['pagenow'] ) { | ||||
|  | ||||
| 	/** | ||||
| 	 * Featured Content. | ||||
| 	 * | ||||
| 	 * This module will allow users to define a subset of posts to be displayed in a | ||||
| 	 * theme-designated featured content area. | ||||
| 	 * | ||||
| 	 * This feature will only be activated for themes that declare that they support | ||||
| 	 * it. This can be done by adding code similar to the following during the | ||||
| 	 * "after_setup_theme" action: | ||||
| 	 * | ||||
| 	 * add_theme_support( 'featured-content', array( | ||||
| 	 *     'filter'     => 'mytheme_get_featured_content', | ||||
| 	 *     'max_posts'  => 20, | ||||
| 	 *     'post_types' => array( 'post', 'page' ), | ||||
| 	 * ) ); | ||||
| 	 * | ||||
| 	 * For maximum compatibility with different methods of posting users will | ||||
| 	 * designate a featured post tag to associate posts with. Since this tag now has | ||||
| 	 * special meaning beyond that of a normal tags, users will have the ability to | ||||
| 	 * hide it from the front-end of their site. | ||||
| 	 */ | ||||
| 	class Featured_Content { | ||||
|  | ||||
| 		/** | ||||
| 		 * The maximum number of posts that a Featured Content area can contain. We | ||||
| 		 * define a default value here but themes can override this by defining a | ||||
| 		 * "max_posts" entry in the second parameter passed in the call to | ||||
| 		 * add_theme_support( 'featured-content' ). | ||||
| 		 * | ||||
| 		 * @see Featured_Content::init() | ||||
| 		 */ | ||||
| 		public static $max_posts = 15; | ||||
|  | ||||
| 		/** | ||||
| 		 * The registered post types supported by Featured Content. Themes can add | ||||
| 		 * Featured Content support for registered post types by defining a | ||||
| 		 * 'post_types' argument (string|array) in the call to | ||||
| 		 * add_theme_support( 'featured-content' ). | ||||
| 		 * | ||||
| 		 * @see Featured_Content::init() | ||||
| 		 */ | ||||
| 		public static $post_types = array( 'post' ); | ||||
|  | ||||
| 		/** | ||||
| 		 * The tag that is used to mark featured content. Users can define | ||||
| 		 * a custom tag name that will be stored in this variable. | ||||
| 		 * | ||||
| 		 * @see Featured_Content::hide_featured_term | ||||
| 		 */ | ||||
| 		public static $tag; | ||||
|  | ||||
| 		/** | ||||
| 		 * Instantiate. | ||||
| 		 * | ||||
| 		 * All custom functionality will be hooked into the "init" action. | ||||
| 		 */ | ||||
| 		public static function setup() { | ||||
| 			add_action( 'init', array( __CLASS__, 'init' ), 30 ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Conditionally hook into WordPress. | ||||
| 		 * | ||||
| 		 * Themes must declare that they support this module by adding | ||||
| 		 * add_theme_support( 'featured-content' ); during after_setup_theme. | ||||
| 		 * | ||||
| 		 * If no theme support is found there is no need to hook into WordPress. We'll | ||||
| 		 * just return early instead. | ||||
| 		 * | ||||
| 		 * @uses Featured_Content::$max_posts | ||||
| 		 */ | ||||
| 		public static function init() { | ||||
| 			$theme_support = get_theme_support( 'featured-content' ); | ||||
|  | ||||
| 			// Return early if theme does not support featured content. | ||||
| 			if ( ! $theme_support ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			/* | ||||
| 			 * An array of named arguments must be passed as the second parameter | ||||
| 			 * of add_theme_support(). | ||||
| 			 */ | ||||
| 			if ( ! isset( $theme_support[0] ) ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			if ( isset( $theme_support[0]['featured_content_filter'] ) ) { | ||||
| 				$theme_support[0]['filter'] = $theme_support[0]['featured_content_filter']; | ||||
| 				unset( $theme_support[0]['featured_content_filter'] ); | ||||
| 			} | ||||
|  | ||||
| 			// Return early if "filter" has not been defined. | ||||
| 			if ( ! isset( $theme_support[0]['filter'] ) ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			// Theme can override the number of max posts. | ||||
| 			if ( isset( $theme_support[0]['max_posts'] ) ) { | ||||
| 				self::$max_posts = absint( $theme_support[0]['max_posts'] ); | ||||
| 			} | ||||
|  | ||||
| 			add_filter( $theme_support[0]['filter'], array( __CLASS__, 'get_featured_posts' ) ); | ||||
| 			add_action( 'customize_register', array( __CLASS__, 'customize_register' ), 9 ); | ||||
| 			add_action( 'admin_init', array( __CLASS__, 'register_setting' ) ); | ||||
| 			add_action( 'save_post', array( __CLASS__, 'delete_transient' ) ); | ||||
| 			add_action( 'delete_post_tag', array( __CLASS__, 'delete_post_tag' ) ); | ||||
| 			add_action( 'customize_controls_enqueue_scripts', array( __CLASS__, 'enqueue_scripts' ) ); | ||||
| 			add_action( 'pre_get_posts', array( __CLASS__, 'pre_get_posts' ) ); | ||||
| 			add_action( 'switch_theme', array( __CLASS__, 'switch_theme' ) ); | ||||
| 			add_action( 'switch_theme', array( __CLASS__, 'delete_transient' ) ); | ||||
| 			add_action( 'wp_loaded', array( __CLASS__, 'wp_loaded' ) ); | ||||
| 			add_action( 'update_option_featured-content', array( __CLASS__, 'flush_post_tag_cache' ), 10, 2 ); | ||||
| 			add_action( 'delete_option_featured-content', array( __CLASS__, 'flush_post_tag_cache' ), 10, 2 ); | ||||
| 			add_action( 'split_shared_term', array( __CLASS__, 'jetpack_update_featured_content_for_split_terms', 10, 4 ) ); | ||||
|  | ||||
| 			if ( isset( $theme_support[0]['additional_post_types'] ) ) { | ||||
| 				$theme_support[0]['post_types'] = array_merge( array( 'post' ), (array) $theme_support[0]['additional_post_types'] ); | ||||
| 				unset( $theme_support[0]['additional_post_types'] ); | ||||
| 			} | ||||
|  | ||||
| 			// Themes can allow Featured Content pages | ||||
| 			if ( isset( $theme_support[0]['post_types'] ) ) { | ||||
| 				self::$post_types = array_merge( self::$post_types, (array) $theme_support[0]['post_types'] ); | ||||
| 				self::$post_types = array_unique( self::$post_types ); | ||||
|  | ||||
| 				// register post_tag support for each post type | ||||
| 				foreach ( self::$post_types as $post_type ) { | ||||
| 					register_taxonomy_for_object_type( 'post_tag', $post_type ); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Hide "featured" tag from the front-end. | ||||
| 		 * | ||||
| 		 * Has to run on wp_loaded so that the preview filters of the customizer | ||||
| 		 * have a chance to alter the value. | ||||
| 		 */ | ||||
| 		public static function wp_loaded() { | ||||
| 			if ( self::get_setting( 'hide-tag' ) ) { | ||||
| 				$settings = self::get_setting(); | ||||
|  | ||||
| 				// This is done before setting filters for get_terms in order to avoid an infinite filter loop | ||||
| 				self::$tag = get_term_by( 'name', $settings['tag-name'], 'post_tag' ); | ||||
|  | ||||
| 				add_filter( 'get_terms', array( __CLASS__, 'hide_featured_term' ), 10, 3 ); | ||||
| 				add_filter( 'get_the_terms', array( __CLASS__, 'hide_the_featured_term' ), 10, 3 ); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Get featured posts | ||||
| 		 * | ||||
| 		 * This method is not intended to be called directly. Theme developers should | ||||
| 		 * place a filter directly in their theme and then pass its name as a value of | ||||
| 		 * the "filter" key in the array passed as the $args parameter during the call | ||||
| 		 * to: add_theme_support( 'featured-content', $args ). | ||||
| 		 * | ||||
| 		 * @uses Featured_Content::get_featured_post_ids() | ||||
| 		 * | ||||
| 		 * @return array | ||||
| 		 */ | ||||
| 		public static function get_featured_posts() { | ||||
| 			$post_ids = self::get_featured_post_ids(); | ||||
|  | ||||
| 			// No need to query if there is are no featured posts. | ||||
| 			if ( empty( $post_ids ) ) { | ||||
| 				return array(); | ||||
| 			} | ||||
|  | ||||
| 			$featured_posts = get_posts( | ||||
| 				array( | ||||
| 					'include'          => $post_ids, | ||||
| 					'posts_per_page'   => count( $post_ids ), | ||||
| 					'post_type'        => self::$post_types, | ||||
| 					'suppress_filters' => false, | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			return $featured_posts; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Get featured post IDs | ||||
| 		 * | ||||
| 		 * This function will return the an array containing the post IDs of all | ||||
| 		 * featured posts. | ||||
| 		 * | ||||
| 		 * Sets the "featured_content_ids" transient. | ||||
| 		 * | ||||
| 		 * @return array Array of post IDs. | ||||
| 		 */ | ||||
| 		public static function get_featured_post_ids() { | ||||
| 			// Return array of cached results if they exist. | ||||
| 			$featured_ids = get_transient( 'featured_content_ids' ); | ||||
| 			if ( ! empty( $featured_ids ) ) { | ||||
| 				return array_map( | ||||
| 					'absint', | ||||
| 					/** | ||||
| 					* Filter the list of Featured Posts IDs. | ||||
| 					* | ||||
| 					* @module theme-tools | ||||
| 					* | ||||
| 					* @since 2.7.0 | ||||
| 					* | ||||
| 					* @param array $featured_ids Array of post IDs. | ||||
| 					*/ | ||||
| 					apply_filters( 'featured_content_post_ids', (array) $featured_ids ) | ||||
| 				); | ||||
| 			} | ||||
|  | ||||
| 			$settings = self::get_setting(); | ||||
|  | ||||
| 			// Return empty array if no tag name is set. | ||||
| 			$term = get_term_by( 'name', $settings['tag-name'], 'post_tag' ); | ||||
| 			if ( ! $term ) { | ||||
| 				$term = get_term_by( 'id', $settings['tag-id'], 'post_tag' ); | ||||
| 			} | ||||
| 			if ( $term ) { | ||||
| 				$tag = $term->term_id; | ||||
| 			} else { | ||||
| 				/** This action is documented in modules/theme-tools/featured-content.php */ | ||||
| 				return apply_filters( 'featured_content_post_ids', array() ); | ||||
| 			} | ||||
|  | ||||
| 			// Back compat for installs that have the quantity option still set. | ||||
| 			$quantity = isset( $settings['quantity'] ) ? $settings['quantity'] : self::$max_posts; | ||||
|  | ||||
| 			// Query for featured posts. | ||||
| 			$featured = get_posts( | ||||
| 				array( | ||||
| 					'numberposts'      => $quantity, | ||||
| 					'post_type'        => self::$post_types, | ||||
| 					'suppress_filters' => false, | ||||
| 					'tax_query'        => array( | ||||
| 						array( | ||||
| 							'field'    => 'term_id', | ||||
| 							'taxonomy' => 'post_tag', | ||||
| 							'terms'    => $tag, | ||||
| 						), | ||||
| 					), | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			// Return empty array if no featured content exists. | ||||
| 			if ( ! $featured ) { | ||||
| 				/** This action is documented in modules/theme-tools/featured-content.php */ | ||||
| 				return apply_filters( 'featured_content_post_ids', array() ); | ||||
| 			} | ||||
|  | ||||
| 			// Ensure correct format before save/return. | ||||
| 			$featured_ids = wp_list_pluck( (array) $featured, 'ID' ); | ||||
| 			$featured_ids = array_map( 'absint', $featured_ids ); | ||||
|  | ||||
| 			set_transient( 'featured_content_ids', $featured_ids ); | ||||
|  | ||||
| 			/** This action is documented in modules/theme-tools/featured-content.php */ | ||||
| 			return apply_filters( 'featured_content_post_ids', $featured_ids ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Delete Transient. | ||||
| 		 * | ||||
| 		 * Hooks in the "save_post" action. | ||||
| 		 * | ||||
| 		 * @see Featured_Content::validate_settings(). | ||||
| 		 */ | ||||
| 		public static function delete_transient() { | ||||
| 			delete_transient( 'featured_content_ids' ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Flush the Post Tag relationships cache. | ||||
| 		 * | ||||
| 		 * Hooks in the "update_option_featured-content" action. | ||||
| 		 */ | ||||
| 		public static function flush_post_tag_cache( $prev, $opts ) { | ||||
| 			if ( ! empty( $opts ) && ! empty( $opts['tag-id'] ) ) { | ||||
| 				$query = new WP_Query( | ||||
| 					array( | ||||
| 						'tag_id'         => (int) $opts['tag-id'], | ||||
| 						'posts_per_page' => -1, | ||||
| 					) | ||||
| 				); | ||||
| 				foreach ( $query->posts as $post ) { | ||||
| 					wp_cache_delete( $post->ID, 'post_tag_relationships' ); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Exclude featured posts from the blog query when the blog is the front-page, | ||||
| 		 * and user has not checked the "Also display tagged posts outside the Featured Content area" checkbox. | ||||
| 		 * | ||||
| 		 * Filter the home page posts, and remove any featured post ID's from it. | ||||
| 		 * Hooked onto the 'pre_get_posts' action, this changes the parameters of the | ||||
| 		 * query before it gets any posts. | ||||
| 		 * | ||||
| 		 * @uses Featured_Content::get_featured_post_ids(); | ||||
| 		 * @uses Featured_Content::get_setting(); | ||||
| 		 * @param WP_Query $query | ||||
| 		 * @return WP_Query Possibly modified WP_Query | ||||
| 		 */ | ||||
| 		public static function pre_get_posts( $query ) { | ||||
|  | ||||
| 			// Bail if not home or not main query. | ||||
| 			if ( ! $query->is_home() || ! $query->is_main_query() ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			// Bail if the blog page is not the front page. | ||||
| 			if ( 'posts' !== get_option( 'show_on_front' ) ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			$featured = self::get_featured_post_ids(); | ||||
|  | ||||
| 			// Bail if no featured posts. | ||||
| 			if ( ! $featured ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			$settings = self::get_setting(); | ||||
|  | ||||
| 			// Bail if the user wants featured posts always displayed. | ||||
| 			if ( true == $settings['show-all'] ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			// We need to respect post ids already in the blacklist. | ||||
| 			$post__not_in = $query->get( 'post__not_in' ); | ||||
|  | ||||
| 			if ( ! empty( $post__not_in ) ) { | ||||
| 				$featured = array_merge( (array) $post__not_in, $featured ); | ||||
| 				$featured = array_unique( $featured ); | ||||
| 			} | ||||
|  | ||||
| 			$query->set( 'post__not_in', $featured ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Reset tag option when the saved tag is deleted. | ||||
| 		 * | ||||
| 		 * It's important to mention that the transient needs to be deleted, too. | ||||
| 		 * While it may not be obvious by looking at the function alone, the transient | ||||
| 		 * is deleted by Featured_Content::validate_settings(). | ||||
| 		 * | ||||
| 		 * Hooks in the "delete_post_tag" action. | ||||
| 		 * | ||||
| 		 * @see Featured_Content::validate_settings(). | ||||
| 		 * | ||||
| 		 * @param int $tag_id The term_id of the tag that has been deleted. | ||||
| 		 * @return void | ||||
| 		 */ | ||||
| 		public static function delete_post_tag( $tag_id ) { | ||||
| 			$settings = self::get_setting(); | ||||
|  | ||||
| 			if ( empty( $settings['tag-id'] ) || $tag_id != $settings['tag-id'] ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			$settings['tag-id'] = 0; | ||||
| 			$settings           = self::validate_settings( $settings ); | ||||
| 			update_option( 'featured-content', $settings ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Hide featured tag from displaying when global terms are queried from | ||||
| 		 * the front-end. | ||||
| 		 * | ||||
| 		 * Hooks into the "get_terms" filter. | ||||
| 		 * | ||||
| 		 * @uses Featured_Content::get_setting() | ||||
| 		 * | ||||
| 		 * @param array $terms A list of term objects. This is the return value of get_terms(). | ||||
| 		 * @param array $taxonomies An array of taxonomy slugs. | ||||
| 		 * @return array $terms | ||||
| 		 */ | ||||
| 		public static function hide_featured_term( $terms, $taxonomies, $args ) { | ||||
|  | ||||
| 			// This filter is only appropriate on the front-end. | ||||
| 			if ( is_admin() || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) || ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) ) { | ||||
| 				return $terms; | ||||
| 			} | ||||
|  | ||||
| 			// We only want to hide the featured tag. | ||||
| 			if ( ! in_array( 'post_tag', $taxonomies ) ) { | ||||
| 				return $terms; | ||||
| 			} | ||||
|  | ||||
| 			// Bail if no terms were returned. | ||||
| 			if ( empty( $terms ) ) { | ||||
| 				return $terms; | ||||
| 			} | ||||
|  | ||||
| 			// Bail if term objects are unavailable. | ||||
| 			if ( 'all' != $args['fields'] ) { | ||||
| 				return $terms; | ||||
| 			} | ||||
|  | ||||
| 			$settings = self::get_setting(); | ||||
|  | ||||
| 			if ( false !== self::$tag ) { | ||||
| 				foreach ( $terms as $order => $term ) { | ||||
| 					if ( | ||||
| 					is_object( $term ) | ||||
| 					&& ( | ||||
| 						$settings['tag-id'] === $term->term_id | ||||
| 						|| $settings['tag-name'] === $term->name | ||||
| 					) | ||||
| 					) { | ||||
| 						unset( $terms[ $order ] ); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			return $terms; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Hide featured tag from displaying when terms associated with a post object | ||||
| 		 * are queried from the front-end. | ||||
| 		 * | ||||
| 		 * Hooks into the "get_the_terms" filter. | ||||
| 		 * | ||||
| 		 * @uses Featured_Content::get_setting() | ||||
| 		 * | ||||
| 		 * @param array $terms A list of term objects. This is the return value of get_the_terms(). | ||||
| 		 * @param int   $id The ID field for the post object that terms are associated with. | ||||
| 		 * @param array $taxonomy An array of taxonomy slugs. | ||||
| 		 * @return array $terms | ||||
| 		 */ | ||||
| 		public static function hide_the_featured_term( $terms, $id, $taxonomy ) { | ||||
|  | ||||
| 			// This filter is only appropriate on the front-end. | ||||
| 			if ( is_admin() || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) || ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) ) { | ||||
| 				return $terms; | ||||
| 			} | ||||
|  | ||||
| 			// Make sure we are in the correct taxonomy. | ||||
| 			if ( 'post_tag' != $taxonomy ) { | ||||
| 				return $terms; | ||||
| 			} | ||||
|  | ||||
| 			// No terms? Return early! | ||||
| 			if ( empty( $terms ) ) { | ||||
| 				return $terms; | ||||
| 			} | ||||
|  | ||||
| 			$settings = self::get_setting(); | ||||
| 			$tag      = get_term_by( 'name', $settings['tag-name'], 'post_tag' ); | ||||
|  | ||||
| 			if ( false !== $tag ) { | ||||
| 				foreach ( $terms as $order => $term ) { | ||||
| 					if ( $settings['tag-id'] === $term->term_id || $settings['tag-name'] === $term->name ) { | ||||
| 						unset( $terms[ $order ] ); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			return $terms; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Register custom setting on the Settings -> Reading screen. | ||||
| 		 * | ||||
| 		 * @uses Featured_Content::render_form() | ||||
| 		 * @uses Featured_Content::validate_settings() | ||||
| 		 * | ||||
| 		 * @return void | ||||
| 		 */ | ||||
| 		public static function register_setting() { | ||||
| 			add_settings_field( 'featured-content', __( 'Featured Content', 'jetpack' ), array( __class__, 'render_form' ), 'reading' ); | ||||
|  | ||||
| 			// Register sanitization callback for the Customizer. | ||||
| 			register_setting( 'featured-content', 'featured-content', array( __class__, 'validate_settings' ) ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Add settings to the Customizer. | ||||
| 		 * | ||||
| 		 * @param WP_Customize_Manager $wp_customize Theme Customizer object. | ||||
| 		 */ | ||||
| 		public static function customize_register( $wp_customize ) { | ||||
| 			$wp_customize->add_section( | ||||
| 				'featured_content', | ||||
| 				array( | ||||
| 					'title'          => esc_html__( 'Featured Content', 'jetpack' ), | ||||
| 					'description'    => sprintf( __( 'Easily feature all posts with the <a href="%1$s">"featured" tag</a> or a tag of your choice. Your theme supports up to %2$s posts in its featured content area.', 'jetpack' ), admin_url( '/edit.php?tag=featured' ), absint( self::$max_posts ) ), | ||||
| 					'priority'       => 130, | ||||
| 					'theme_supports' => 'featured-content', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			/* | ||||
| 			Add Featured Content settings. | ||||
| 			 * | ||||
| 			 * Sanitization callback registered in Featured_Content::validate_settings(). | ||||
| 			 * See http://themeshaper.com/2013/04/29/validation-sanitization-in-customizer/comment-page-1/#comment-12374 | ||||
| 			 */ | ||||
| 			$wp_customize->add_setting( | ||||
| 				'featured-content[tag-name]', | ||||
| 				array( | ||||
| 					'type'                 => 'option', | ||||
| 					'sanitize_js_callback' => array( __CLASS__, 'delete_transient' ), | ||||
| 				) | ||||
| 			); | ||||
| 			$wp_customize->add_setting( | ||||
| 				'featured-content[hide-tag]', | ||||
| 				array( | ||||
| 					'default'              => true, | ||||
| 					'type'                 => 'option', | ||||
| 					'sanitize_js_callback' => array( __CLASS__, 'delete_transient' ), | ||||
| 				) | ||||
| 			); | ||||
| 			$wp_customize->add_setting( | ||||
| 				'featured-content[show-all]', | ||||
| 				array( | ||||
| 					'default'              => false, | ||||
| 					'type'                 => 'option', | ||||
| 					'sanitize_js_callback' => array( __CLASS__, 'delete_transient' ), | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			// Add Featured Content controls. | ||||
| 			$wp_customize->add_control( | ||||
| 				'featured-content[tag-name]', | ||||
| 				array( | ||||
| 					'label'          => esc_html__( 'Tag name', 'jetpack' ), | ||||
| 					'section'        => 'featured_content', | ||||
| 					'theme_supports' => 'featured-content', | ||||
| 					'priority'       => 20, | ||||
| 				) | ||||
| 			); | ||||
| 			$wp_customize->add_control( | ||||
| 				'featured-content[hide-tag]', | ||||
| 				array( | ||||
| 					'label'          => esc_html__( 'Do not display tag in post details and tag clouds.', 'jetpack' ), | ||||
| 					'section'        => 'featured_content', | ||||
| 					'theme_supports' => 'featured-content', | ||||
| 					'type'           => 'checkbox', | ||||
| 					'priority'       => 30, | ||||
| 				) | ||||
| 			); | ||||
| 			$wp_customize->add_control( | ||||
| 				'featured-content[show-all]', | ||||
| 				array( | ||||
| 					'label'          => esc_html__( 'Also display tagged posts outside the Featured Content area.', 'jetpack' ), | ||||
| 					'section'        => 'featured_content', | ||||
| 					'theme_supports' => 'featured-content', | ||||
| 					'type'           => 'checkbox', | ||||
| 					'priority'       => 40, | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Enqueue the tag suggestion script. | ||||
| 		 */ | ||||
| 		public static function enqueue_scripts() { | ||||
| 			wp_enqueue_script( 'featured-content-suggest', plugins_url( 'js/suggest.js', __FILE__ ), array( 'suggest' ), '20131022', true ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Renders all form fields on the Settings -> Reading screen. | ||||
| 		 */ | ||||
| 		public static function render_form() { | ||||
| 			printf( __( 'The settings for Featured Content have <a href="%s">moved to Appearance → Customize</a>.', 'jetpack' ), admin_url( 'customize.php?#accordion-section-featured_content' ) ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Get settings | ||||
| 		 * | ||||
| 		 * Get all settings recognized by this module. This function will return all | ||||
| 		 * settings whether or not they have been stored in the database yet. This | ||||
| 		 * ensures that all keys are available at all times. | ||||
| 		 * | ||||
| 		 * In the event that you only require one setting, you may pass its name as the | ||||
| 		 * first parameter to the function and only that value will be returned. | ||||
| 		 * | ||||
| 		 * @param string $key The key of a recognized setting. | ||||
| 		 * @return mixed Array of all settings by default. A single value if passed as first parameter. | ||||
| 		 */ | ||||
| 		public static function get_setting( $key = 'all' ) { | ||||
| 			$saved = (array) get_option( 'featured-content' ); | ||||
|  | ||||
| 			/** | ||||
| 			 * Filter Featured Content's default settings. | ||||
| 			 * | ||||
| 			 * @module theme-tools | ||||
| 			 * | ||||
| 			 * @since 2.7.0 | ||||
| 			 * | ||||
| 			 * @param array $args { | ||||
| 			 * Array of Featured Content Settings | ||||
| 			 * | ||||
| 			 *  @type int hide-tag Default is 1. | ||||
| 			 *  @type int tag-id Default is 0. | ||||
| 			 *  @type string tag-name Default is empty. | ||||
| 			 *  @type int show-all Default is 0. | ||||
| 			 * } | ||||
| 			 */ | ||||
| 			$defaults = apply_filters( | ||||
| 				'featured_content_default_settings', | ||||
| 				array( | ||||
| 					'hide-tag' => 1, | ||||
| 					'tag-id'   => 0, | ||||
| 					'tag-name' => '', | ||||
| 					'show-all' => 0, | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$options = wp_parse_args( $saved, $defaults ); | ||||
| 			$options = array_intersect_key( $options, $defaults ); | ||||
|  | ||||
| 			if ( 'all' != $key ) { | ||||
| 				return isset( $options[ $key ] ) ? $options[ $key ] : false; | ||||
| 			} | ||||
|  | ||||
| 			return $options; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Validate settings | ||||
| 		 * | ||||
| 		 * Make sure that all user supplied content is in an expected format before | ||||
| 		 * saving to the database. This function will also delete the transient set in | ||||
| 		 * Featured_Content::get_featured_content(). | ||||
| 		 * | ||||
| 		 * @uses Featured_Content::delete_transient() | ||||
| 		 * | ||||
| 		 * @param array $input | ||||
| 		 * @return array $output | ||||
| 		 */ | ||||
| 		public static function validate_settings( $input ) { | ||||
| 			$output = array(); | ||||
|  | ||||
| 			if ( empty( $input['tag-name'] ) ) { | ||||
| 				$output['tag-id'] = 0; | ||||
| 			} else { | ||||
| 				$term = get_term_by( 'name', $input['tag-name'], 'post_tag' ); | ||||
|  | ||||
| 				if ( $term ) { | ||||
| 					$output['tag-id'] = $term->term_id; | ||||
| 				} else { | ||||
| 					$new_tag = wp_create_tag( $input['tag-name'] ); | ||||
|  | ||||
| 					if ( ! is_wp_error( $new_tag ) && isset( $new_tag['term_id'] ) ) { | ||||
| 						$output['tag-id'] = $new_tag['term_id']; | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				$output['tag-name'] = $input['tag-name']; | ||||
| 			} | ||||
|  | ||||
| 			$output['hide-tag'] = isset( $input['hide-tag'] ) && $input['hide-tag'] ? 1 : 0; | ||||
|  | ||||
| 			$output['show-all'] = isset( $input['show-all'] ) && $input['show-all'] ? 1 : 0; | ||||
|  | ||||
| 			self::delete_transient(); | ||||
|  | ||||
| 			return $output; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Removes the quantity setting from the options array. | ||||
| 		 * | ||||
| 		 * @return void | ||||
| 		 */ | ||||
| 		public static function switch_theme() { | ||||
| 			$option = (array) get_option( 'featured-content' ); | ||||
|  | ||||
| 			if ( isset( $option['quantity'] ) ) { | ||||
| 				unset( $option['quantity'] ); | ||||
| 				update_option( 'featured-content', $option ); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		public static function jetpack_update_featured_content_for_split_terms( $old_term_id, $new_term_id, $term_taxonomy_id, $taxonomy ) { | ||||
| 			$featured_content_settings = get_option( 'featured-content', array() ); | ||||
|  | ||||
| 			// Check to see whether the stored tag ID is the one that's just been split. | ||||
| 			if ( isset( $featured_content_settings['tag-id'] ) && $old_term_id == $featured_content_settings['tag-id'] && 'post_tag' == $taxonomy ) { | ||||
| 				// We have a match, so we swap out the old tag ID for the new one and resave the option. | ||||
| 				$featured_content_settings['tag-id'] = $new_term_id; | ||||
| 				update_option( 'featured-content', $featured_content_settings ); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Adds the featured content plugin to the set of files for which action | ||||
| 	 * handlers should be copied when the theme context is loaded by the REST API. | ||||
| 	 * | ||||
| 	 * @param array $copy_dirs Copy paths with actions to be copied | ||||
| 	 * @return array Copy paths with featured content plugin | ||||
| 	 */ | ||||
| 	function wpcom_rest_api_featured_content_copy_plugin_actions( $copy_dirs ) { | ||||
| 		$copy_dirs[] = __FILE__; | ||||
| 		return $copy_dirs; | ||||
| 	} | ||||
| 	add_action( 'restapi_theme_action_copy_dirs', 'wpcom_rest_api_featured_content_copy_plugin_actions' ); | ||||
|  | ||||
| 	/** | ||||
| 	 * Delayed initialization for API Requests. | ||||
| 	 */ | ||||
| 	function wpcom_rest_request_before_callbacks( $request ) { | ||||
| 		Featured_Content::init(); | ||||
| 		return $request; | ||||
| 	} | ||||
|  | ||||
| 	if ( Constants::is_true( 'IS_WPCOM' ) && Constants::is_true( 'REST_API_REQUEST' ) ) { | ||||
| 		add_filter( 'rest_request_before_callbacks', 'wpcom_rest_request_before_callbacks'); | ||||
| 	} | ||||
|  | ||||
| 	Featured_Content::setup(); | ||||
| } // end if ( ! class_exists( 'Featured_Content' ) && isset( $GLOBALS['pagenow'] ) && 'plugins.php' !== $GLOBALS['pagenow'] ) { | ||||
| @@ -0,0 +1,50 @@ | ||||
| <?php | ||||
| /** | ||||
|  * INFINITE SCROLL | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * Load theme's infinite scroll annotation file, if present in the IS plugin. | ||||
|  * The `setup_theme` action is used because the annotation files should be using `after_setup_theme` to register support for IS. | ||||
|  * | ||||
|  * As released in Jetpack 2.0, a child theme's parent wasn't checked for in the plugin's bundled support, hence the convoluted way the parent is checked for now. | ||||
|  * | ||||
|  * @uses is_admin, wp_get_theme, apply_filters | ||||
|  * @action setup_theme | ||||
|  * @return null | ||||
|  */ | ||||
| function jetpack_load_infinite_scroll_annotation() { | ||||
| 	if ( is_admin() && isset( $_GET['page'] ) && 'jetpack' == $_GET['page'] ) { | ||||
| 			$theme = wp_get_theme(); | ||||
|  | ||||
| 		if ( ! is_a( $theme, 'WP_Theme' ) && ! is_array( $theme ) ) { | ||||
| 			return; | ||||
| 		} | ||||
|  | ||||
| 		/** This filter is already documented in modules/infinite-scroll/infinity.php */ | ||||
| 		$customization_file = apply_filters( 'infinite_scroll_customization_file', dirname( __FILE__ ) . "/infinite-scroll/themes/{$theme['Stylesheet']}.php", $theme['Stylesheet'] ); | ||||
|  | ||||
| 		if ( is_readable( $customization_file ) ) { | ||||
| 			require_once $customization_file; | ||||
| 		} elseif ( ! empty( $theme['Template'] ) ) { | ||||
| 			$customization_file = dirname( __FILE__ ) . "/infinite-scroll/themes/{$theme['Template']}.php"; | ||||
|  | ||||
| 			if ( is_readable( $customization_file ) ) { | ||||
| 				require_once $customization_file; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| add_action( 'setup_theme', 'jetpack_load_infinite_scroll_annotation' ); | ||||
|  | ||||
| /** | ||||
|  * Prevent IS from being activated if theme doesn't support it | ||||
|  * | ||||
|  * @param bool $can_activate | ||||
|  * @filter jetpack_can_activate_infinite-scroll | ||||
|  * @return bool | ||||
|  */ | ||||
| function jetpack_can_activate_infinite_scroll() { | ||||
| 	return (bool) current_theme_supports( 'infinite-scroll' ); | ||||
| } | ||||
| add_filter( 'jetpack_can_activate_infinite-scroll', 'jetpack_can_activate_infinite_scroll' ); | ||||
| @@ -0,0 +1,7 @@ | ||||
| /* global ajaxurl:true */ | ||||
| jQuery( function( $ ) { | ||||
| 	$( '#customize-control-featured-content-tag-name input' ).suggest( | ||||
| 		ajaxurl + '?action=ajax-tag-search&tax=post_tag', | ||||
| 		{ delay: 500, minchars: 2 } | ||||
| 	); | ||||
| } ); | ||||
| @@ -0,0 +1,83 @@ | ||||
| <?php | ||||
| /* | ||||
| Plugin Name: Random Redirect | ||||
| Plugin URI: https://wordpress.org/extend/plugins/random-redirect/ | ||||
| Description: Allows you to create a link to yourblog.example.com/?random which will redirect someone to a random post on your blog, in a StumbleUpon-like fashion. | ||||
| Version: 1.2-wpcom | ||||
| Author: Matt Mullenweg | ||||
| Author URI: http://photomatt.net/ | ||||
| */ | ||||
|  | ||||
| function jetpack_matt_random_redirect() { | ||||
| 	// Verify that the Random Redirect plugin this code is from is not active | ||||
| 	// See http://plugins.trac.wordpress.org/ticket/1898 | ||||
| 	if ( ! ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) { | ||||
| 		require_once ABSPATH . 'wp-admin/includes/plugin.php'; | ||||
| 		if ( is_plugin_active( 'random-redirect/random-redirect.php' ) ) { | ||||
| 			return; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Set default post type. | ||||
| 	$post_type = get_post_type(); | ||||
|  | ||||
| 	// Set default category type | ||||
| 	if ( is_category() ) { | ||||
| 		$category = get_the_category(); | ||||
| 		if ( isset( $category ) && ! empty( $category ) ) { | ||||
| 			$random_cat_id = $category[0]->term_id; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Set author name if we're on an author archive. | ||||
| 	if ( is_author() ) { | ||||
| 		$random_author_name  = get_the_author_meta( 'user_login' ); | ||||
| 		$random_author_query = 'AND user_login = "' . $random_author_name . '"'; | ||||
| 	} else { | ||||
| 		$random_author_query = ''; | ||||
| 	} | ||||
|  | ||||
| 	// Acceptable URL formats: /[...]/?random=[post type], /?random, /&random, /&random=1 | ||||
| 	if ( ! isset( $_GET['random'] ) && ! in_array( strtolower( $_SERVER['REQUEST_URI'] ), array( '/&random', '/&random=1' ) ) ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	// Ignore POST requests. | ||||
| 	if ( ! empty( $_POST ) ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	// Persistent AppEngine abuse.  ORDER BY RAND is expensive. | ||||
| 	if ( strstr( $_SERVER['HTTP_USER_AGENT'], 'AppEngine-Google' ) ) { | ||||
| 		wp_die( 'Please <a href="http://en.support.wordpress.com/contact/" rel="noopener noreferrer" target="_blank">contact support</a>' ); | ||||
| 	} | ||||
|  | ||||
| 	// Set the category ID if the parameter is set. | ||||
| 	if ( isset( $_GET['random_cat_id'] ) ) { | ||||
| 		$random_cat_id = (int) $_GET['random_cat_id']; | ||||
| 	} | ||||
|  | ||||
| 	// Change the post type if the parameter is set. | ||||
| 	if ( isset( $_GET['random_post_type'] ) && post_type_exists( $_GET['random_post_type'] ) ) { | ||||
| 		$post_type = $_GET['random_post_type']; | ||||
| 	} | ||||
|  | ||||
| 	// Don't show a random page if 'page' isn't specified as the post type specifically. | ||||
| 	if ( 'page' === $post_type && is_front_page() && ! isset( $_GET['random_post_type'] ) ) { | ||||
| 		$post_type = 'post'; | ||||
| 	} | ||||
|  | ||||
| 	global $wpdb; | ||||
|  | ||||
| 	if ( isset( $random_cat_id ) ) { | ||||
| 		$random_id = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT ID FROM $wpdb->posts AS p INNER JOIN $wpdb->term_relationships AS tr ON (p.ID = tr.object_id AND tr.term_taxonomy_id = %s) INNER JOIN  $wpdb->term_taxonomy AS tt ON(tr.term_taxonomy_id = tt.term_taxonomy_id AND taxonomy = 'category') WHERE p.post_type = %s AND post_password = '' AND post_status = 'publish' %s ORDER BY RAND() LIMIT 1", $random_cat_id, $post_type, $random_author_query ) ); | ||||
| 	} else { | ||||
| 		$random_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type = %s AND post_password = '' AND post_status = 'publish' %s ORDER BY RAND() LIMIT 1", $post_type, $random_author_query ) ); | ||||
| 	} | ||||
|  | ||||
| 	$permalink = get_permalink( $random_id ); | ||||
| 	wp_safe_redirect( $permalink ); | ||||
| 	exit; | ||||
| } | ||||
|  | ||||
| add_action( 'template_redirect', 'jetpack_matt_random_redirect' ); | ||||
| @@ -0,0 +1,152 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Load the Responsive videos plugin | ||||
|  */ | ||||
| function jetpack_responsive_videos_init() { | ||||
|  | ||||
| 	/* If the doesn't theme support 'jetpack-responsive-videos', don't continue */ | ||||
| 	if ( ! current_theme_supports( 'jetpack-responsive-videos' ) ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	/* If the theme does support 'jetpack-responsive-videos', wrap the videos */ | ||||
| 	add_filter( 'wp_video_shortcode', 'jetpack_responsive_videos_embed_html' ); | ||||
| 	add_filter( 'video_embed_html', 'jetpack_responsive_videos_embed_html' ); | ||||
|  | ||||
| 	/* Only wrap oEmbeds if video */ | ||||
| 	add_filter( 'embed_oembed_html', 'jetpack_responsive_videos_maybe_wrap_oembed', 10, 2 ); | ||||
| 	add_filter( 'embed_handler_html', 'jetpack_responsive_videos_maybe_wrap_oembed', 10, 2 ); | ||||
|  | ||||
| 	/* Wrap videos in Buddypress */ | ||||
| 	add_filter( 'bp_embed_oembed_html', 'jetpack_responsive_videos_embed_html' ); | ||||
|  | ||||
| 	/* Wrap Slideshare shortcodes */ | ||||
| 	add_filter( 'jetpack_slideshare_shortcode', 'jetpack_responsive_videos_embed_html' ); | ||||
|  | ||||
| 	// Remove the Jetpack Responsive video wrapper in embed blocks on sites that support core Responsive embeds. | ||||
| 	if ( current_theme_supports( 'responsive-embeds' ) ) { | ||||
| 		add_filter( 'render_block', 'jetpack_responsive_videos_remove_wrap_oembed', 10, 2 ); | ||||
| 	} | ||||
| } | ||||
| add_action( 'after_setup_theme', 'jetpack_responsive_videos_init', 99 ); | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Adds a wrapper to videos and enqueue script | ||||
|  * | ||||
|  * @return string | ||||
|  */ | ||||
| function jetpack_responsive_videos_embed_html( $html ) { | ||||
| 	if ( empty( $html ) || ! is_string( $html ) ) { | ||||
| 		return $html; | ||||
| 	} | ||||
|  | ||||
| 	// The customizer video widget wraps videos with a class of wp-video | ||||
| 	// mejs as of 4.9 apparently resizes videos too which causes issues | ||||
| 	// skip the video if it is wrapped in wp-video. | ||||
| 	$video_widget_wrapper = 'class="wp-video"'; | ||||
|  | ||||
| 	$mejs_wrapped = strpos( $html, $video_widget_wrapper ); | ||||
|  | ||||
| 	// If this is a video widget wrapped by mejs, return the html. | ||||
| 	if ( false !== $mejs_wrapped ) { | ||||
| 		return $html; | ||||
| 	} | ||||
|  | ||||
| 	if ( defined( 'SCRIPT_DEBUG' ) && true == SCRIPT_DEBUG ) { | ||||
| 		wp_enqueue_script( 'jetpack-responsive-videos-script', plugins_url( 'responsive-videos/responsive-videos.js', __FILE__ ), array( 'jquery' ), '1.3', true ); | ||||
| 	} else { | ||||
| 		wp_enqueue_script( 'jetpack-responsive-videos-min-script', plugins_url( 'responsive-videos/responsive-videos.min.js', __FILE__ ), array( 'jquery' ), '1.3', true ); | ||||
| 	} | ||||
|  | ||||
| 	// Enqueue CSS to ensure compatibility with all themes | ||||
| 	wp_enqueue_style( 'jetpack-responsive-videos-style', plugins_url( 'responsive-videos/responsive-videos.css', __FILE__ ) ); | ||||
|  | ||||
| 	return '<div class="jetpack-video-wrapper">' . $html . '</div>'; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Check if oEmbed is a `$video_patterns` provider video before wrapping. | ||||
|  * | ||||
|  * @param mixed  $html The cached HTML result, stored in post meta. | ||||
|  * @param string $url  he attempted embed URL. | ||||
|  * | ||||
|  * @return string | ||||
|  */ | ||||
| function jetpack_responsive_videos_maybe_wrap_oembed( $html, $url = null ) { | ||||
| 	if ( empty( $html ) || ! is_string( $html ) || ! $url ) { | ||||
| 		return $html; | ||||
| 	} | ||||
|  | ||||
| 	$jetpack_video_wrapper = '<div class="jetpack-video-wrapper">'; | ||||
|  | ||||
| 	$already_wrapped = strpos( $html, $jetpack_video_wrapper ); | ||||
|  | ||||
| 	// If the oEmbed has already been wrapped, return the html. | ||||
| 	if ( false !== $already_wrapped ) { | ||||
| 		return $html; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * oEmbed Video Providers. | ||||
| 	 * | ||||
| 	 * A whitelist of oEmbed video provider Regex patterns to check against before wrapping the output. | ||||
| 	 * | ||||
| 	 * @module theme-tools | ||||
| 	 * | ||||
| 	 * @since 3.8.0 | ||||
| 	 * | ||||
| 	 * @param array $video_patterns oEmbed video provider Regex patterns. | ||||
| 	 */ | ||||
| 	$video_patterns = apply_filters( | ||||
| 		'jetpack_responsive_videos_oembed_videos', | ||||
| 		array( | ||||
| 			'https?://((m|www)\.)?youtube\.com/watch', | ||||
| 			'https?://((m|www)\.)?youtube\.com/playlist', | ||||
| 			'https?://youtu\.be/', | ||||
| 			'https?://(.+\.)?vimeo\.com/', | ||||
| 			'https?://(www\.)?dailymotion\.com/', | ||||
| 			'https?://dai.ly/', | ||||
| 			'https?://(www\.)?hulu\.com/watch/', | ||||
| 			'https?://wordpress.tv/', | ||||
| 			'https?://(www\.)?funnyordie\.com/videos/', | ||||
| 			'https?://vine.co/v/', | ||||
| 			'https?://(www\.)?collegehumor\.com/video/', | ||||
| 			'https?://(www\.|embed\.)?ted\.com/talks/', | ||||
| 		) | ||||
| 	); | ||||
|  | ||||
| 	// Merge patterns to run in a single preg_match call. | ||||
| 	$video_patterns = '(' . implode( '|', $video_patterns ) . ')'; | ||||
|  | ||||
| 	$is_video = preg_match( $video_patterns, $url ); | ||||
|  | ||||
| 	// If the oEmbed is a video, wrap it in the responsive wrapper. | ||||
| 	if ( false === $already_wrapped && 1 === $is_video ) { | ||||
| 		return jetpack_responsive_videos_embed_html( $html ); | ||||
| 	} | ||||
|  | ||||
| 	return $html; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Remove the Jetpack Responsive video wrapper in embed blocks. | ||||
|  * | ||||
|  * @since 7.0.0 | ||||
|  * | ||||
|  * @param string $block_content The block content about to be appended. | ||||
|  * @param array  $block         The full block, including name and attributes. | ||||
|  * | ||||
|  * @return string $block_content String of rendered HTML. | ||||
|  */ | ||||
| function jetpack_responsive_videos_remove_wrap_oembed( $block_content, $block ) { | ||||
| 	if ( | ||||
| 		isset( $block['blockName'] ) | ||||
| 		&& false !== strpos( $block['blockName'], 'core-embed' ) | ||||
| 	) { | ||||
| 		$block_content = preg_replace( '#<div class="jetpack-video-wrapper">(.*?)</div>#', '${1}', $block_content ); | ||||
| 	} | ||||
|  | ||||
| 	return $block_content; | ||||
| } | ||||
| @@ -0,0 +1,10 @@ | ||||
| .jetpack-video-wrapper { | ||||
| 	margin-bottom: 1.6em; | ||||
| } | ||||
|  | ||||
| .jetpack-video-wrapper > embed, | ||||
| .jetpack-video-wrapper > iframe, | ||||
| .jetpack-video-wrapper > object, | ||||
| .jetpack-video-wrapper > .wp-video { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
| @@ -0,0 +1,63 @@ | ||||
| ( function( $ ) { | ||||
| 	var resizeTimer; | ||||
|  | ||||
| 	function responsiveVideos() { | ||||
| 		$( '.jetpack-video-wrapper' ) | ||||
| 			.find( 'embed, iframe, object' ) | ||||
| 			.each( function() { | ||||
| 				var _this, videoWidth, videoHeight, videoRatio, videoWrapper, videoMargin, containerWidth; | ||||
|  | ||||
| 				_this = $( this ); | ||||
| 				videoMargin = 0; | ||||
|  | ||||
| 				if ( | ||||
| 					_this | ||||
| 						.parents( '.jetpack-video-wrapper' ) | ||||
| 						.prev( 'p' ) | ||||
| 						.css( 'text-align' ) === 'center' | ||||
| 				) { | ||||
| 					videoMargin = '0 auto'; | ||||
| 				} | ||||
|  | ||||
| 				if ( ! _this.attr( 'data-ratio' ) ) { | ||||
| 					_this | ||||
| 						.attr( 'data-ratio', this.height / this.width ) | ||||
| 						.attr( 'data-width', this.width ) | ||||
| 						.attr( 'data-height', this.height ) | ||||
| 						.css( { | ||||
| 							display: 'block', | ||||
| 							margin: videoMargin, | ||||
| 						} ); | ||||
| 				} | ||||
|  | ||||
| 				videoWidth = _this.attr( 'data-width' ); | ||||
| 				videoHeight = _this.attr( 'data-height' ); | ||||
| 				videoRatio = _this.attr( 'data-ratio' ); | ||||
| 				videoWrapper = _this.parent(); | ||||
| 				containerWidth = videoWrapper.width(); | ||||
|  | ||||
| 				if ( videoRatio === 'Infinity' ) { | ||||
| 					videoWidth = '100%'; | ||||
| 				} | ||||
|  | ||||
| 				_this.removeAttr( 'height' ).removeAttr( 'width' ); | ||||
|  | ||||
| 				if ( videoWidth > containerWidth ) { | ||||
| 					_this.width( containerWidth ).height( containerWidth * videoRatio ); | ||||
| 				} else { | ||||
| 					_this.width( videoWidth ).height( videoHeight ); | ||||
| 				} | ||||
| 			} ); | ||||
| 	} | ||||
|  | ||||
| 	$( document ).ready( function() { | ||||
| 		$( window ) | ||||
| 			.on( 'load.jetpack', responsiveVideos ) | ||||
| 			.on( 'resize.jetpack', function() { | ||||
| 				clearTimeout( resizeTimer ); | ||||
| 				resizeTimer = setTimeout( responsiveVideos, 500 ); | ||||
| 			} ) | ||||
| 			.on( 'post-load.jetpack', responsiveVideos ) | ||||
| 			.resize(); | ||||
| 	} ); | ||||
| } )( jQuery ); | ||||
							
								
								
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| !function(t){function a(){t(".jetpack-video-wrapper").find("embed, iframe, object").each(function(){var a,e,i,r,h,d,o;a=t(this),d=0,"center"===a.parents(".jetpack-video-wrapper").prev("p").css("text-align")&&(d="0 auto"),a.attr("data-ratio")||a.attr("data-ratio",this.height/this.width).attr("data-width",this.width).attr("data-height",this.height).css({display:"block",margin:d}),e=a.attr("data-width"),i=a.attr("data-height"),r=a.attr("data-ratio"),h=a.parent(),o=h.width(),"Infinity"===r&&(e="100%"),a.removeAttr("height").removeAttr("width"),e>o?a.width(o).height(o*r):a.width(e).height(i)})}var e;t(document).ready(function(){t(window).on("load.jetpack",a).on("resize.jetpack",function(){clearTimeout(e),e=setTimeout(a,500)}).on("post-load.jetpack",a).resize()})}(jQuery); | ||||
| @@ -0,0 +1,79 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Plugin Name: Site Breadcrumbs | ||||
|  * Plugin URI: https://wordpress.com | ||||
|  * Description: Quickly add breadcrumbs to the single view of a hierarchical post type or a hierarchical taxonomy. | ||||
|  * Author: Automattic | ||||
|  * Version: 1.0 | ||||
|  * Author URI: https://wordpress.com | ||||
|  * License: GPL2 or later | ||||
|  */ | ||||
|  | ||||
| function jetpack_breadcrumbs() { | ||||
| 	$taxonomy                 = is_category() ? 'category' : get_query_var( 'taxonomy' ); | ||||
| 	$is_taxonomy_hierarchical = is_taxonomy_hierarchical( $taxonomy ); | ||||
|  | ||||
| 	$post_type                 = is_page() ? 'page' : get_query_var( 'post_type' ); | ||||
| 	$is_post_type_hierarchical = is_post_type_hierarchical( $post_type ); | ||||
|  | ||||
| 	if ( ! ( $is_post_type_hierarchical || $is_taxonomy_hierarchical ) || is_front_page() ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	$breadcrumb = ''; | ||||
|  | ||||
| 	if ( $is_post_type_hierarchical ) { | ||||
| 		$post_id   = get_queried_object_id(); | ||||
| 		$ancestors = array_reverse( get_post_ancestors( $post_id ) ); | ||||
| 		if ( $ancestors ) { | ||||
| 			foreach ( $ancestors as $ancestor ) { | ||||
| 				$breadcrumb .= '<span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="' . esc_url( get_permalink( $ancestor ) ) . '" itemprop="item"><span itemprop="name">' . esc_html( get_the_title( $ancestor ) ) . '</span></a></span>'; | ||||
| 			} | ||||
| 		} | ||||
| 		$breadcrumb .= '<span class="current-page" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><span itemprop="name">' . esc_html( get_the_title( $post_id ) ) . '</span></span>'; | ||||
| 	} elseif ( $is_taxonomy_hierarchical ) { | ||||
| 		$current = get_term( get_queried_object_id(), $taxonomy ); | ||||
|  | ||||
| 		if ( is_wp_error( $current ) ) { | ||||
| 			return; | ||||
| 		} | ||||
|  | ||||
| 		if ( $current->parent ) { | ||||
| 			$breadcrumb = jetpack_get_term_parents( $current->parent, $taxonomy ); | ||||
| 		} | ||||
|  | ||||
| 		$breadcrumb .= '<span class="current-category" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><span itemprop="name">' . esc_html( $current->name ) . '</span></span>'; | ||||
| 	} | ||||
|  | ||||
| 	$home = '<span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="' . esc_url( home_url( '/' ) ) . '" class="home-link" itemprop="item" rel="home"><span itemprop="name">' . esc_html__( 'Home', 'jetpack' ) . '</span></a></span>'; | ||||
|  | ||||
| 	echo '<nav class="entry-breadcrumbs" itemscope itemtype="https://schema.org/BreadcrumbList">' . $home . $breadcrumb . '</nav>'; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Return the parents for a given taxonomy term ID. | ||||
|  * | ||||
|  * @param int    $term Taxonomy term whose parents will be returned. | ||||
|  * @param string $taxonomy Taxonomy name that the term belongs to. | ||||
|  * @param array  $visited Terms already added to prevent duplicates. | ||||
|  * | ||||
|  * @return string A list of links to the term parents. | ||||
|  */ | ||||
| function jetpack_get_term_parents( $term, $taxonomy, $visited = array() ) { | ||||
| 	$parent = get_term( $term, $taxonomy ); | ||||
|  | ||||
| 	if ( is_wp_error( $parent ) ) { | ||||
| 		return $parent; | ||||
| 	} | ||||
|  | ||||
| 	$chain = ''; | ||||
|  | ||||
| 	if ( $parent->parent && ( $parent->parent != $parent->term_id ) && ! in_array( $parent->parent, $visited ) ) { | ||||
| 		$visited[] = $parent->parent; | ||||
| 		$chain    .= jetpack_get_term_parents( $parent->parent, $taxonomy, $visited ); | ||||
| 	} | ||||
|  | ||||
| 	$chain .= '<a href="' . esc_url( get_category_link( $parent->term_id ) ) . '">' . $parent->name . '</a>'; | ||||
|  | ||||
| 	return $chain; | ||||
| } | ||||
							
								
								
									
										46
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| <?php | ||||
| /* | ||||
|  * Site Logo. | ||||
|  * @see http://jetpack.com/support/site-logo/ | ||||
|  * | ||||
|  * This feature will only be activated for themes that declare their support. | ||||
|  * This can be done by adding code similar to the following during the | ||||
|  * 'after_setup_theme' action: | ||||
|  * | ||||
|  * $args = array( | ||||
|  * 	'header-text' => array( | ||||
|  * 		'site-title', | ||||
|  * 		'site-description', | ||||
|  * 	), | ||||
|  * 	'size' => 'medium', | ||||
|  * ); | ||||
|  * add_theme_support( 'site-logo', $args ); | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * Activate the Site Logo plugin. | ||||
|  * | ||||
|  * @uses current_theme_supports() | ||||
|  * @since 3.2 | ||||
|  */ | ||||
| function site_logo_init() { | ||||
| 	// For transferring existing site logo from Jetpack -> Core | ||||
| 	if ( current_theme_supports( 'custom-logo' ) && ! get_theme_mod( 'custom_logo' ) && $jp_logo = get_option( 'site_logo' ) ) { | ||||
| 		set_theme_mod( 'custom_logo', $jp_logo['id'] ); | ||||
| 		delete_option( 'site_logo' ); | ||||
| 	} | ||||
|  | ||||
| 	// Only load our code if our theme declares support, and the standalone plugin is not activated. | ||||
| 	if ( current_theme_supports( 'site-logo' ) && ! class_exists( 'Site_Logo', false ) ) { | ||||
| 		// Load our class for namespacing. | ||||
| 		require dirname( __FILE__ ) . '/site-logo/inc/class-site-logo.php'; | ||||
|  | ||||
| 		// Load template tags. | ||||
| 		require dirname( __FILE__ ) . '/site-logo/inc/functions.php'; | ||||
|  | ||||
| 		// Load backwards-compatible template tags. | ||||
| 		require dirname( __FILE__ ) . '/site-logo/inc/compat.php'; | ||||
| 	} | ||||
| } | ||||
| add_action( 'init', 'site_logo_init' ); | ||||
| @@ -0,0 +1,12 @@ | ||||
| /** | ||||
|  * RTL styles for the Site Logo control. Just swaps the button sides. | ||||
|  */ | ||||
| #customize-control-site_logo .remove { | ||||
| 	float: right; | ||||
| 	margin-left: 3px; | ||||
| } | ||||
|  | ||||
| #customize-control-site_logo .new, | ||||
| #customize-control-site_logo .change { | ||||
| 	float: left; | ||||
| } | ||||
							
								
								
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/css/site-logo-control-rtl.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/css/site-logo-control-rtl.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| #customize-control-site_logo .remove{float:right;margin-left:3px}#customize-control-site_logo .change,#customize-control-site_logo .new{float:left} | ||||
| @@ -0,0 +1,49 @@ | ||||
| /** | ||||
|  * Styles for the Site Logo control. | ||||
|  */ | ||||
| #customize-control-site_logo .current { | ||||
| 	margin-bottom: 6px; | ||||
| } | ||||
|  | ||||
| #customize-control-site_logo .current span { | ||||
| 	border: 1px solid #eee; | ||||
| 	-webkit-border-radius: 2px; | ||||
| 	border-radius:         2px; | ||||
| 	color: #555; | ||||
| 	display: block; | ||||
| 	overflow: hidden; | ||||
| 	line-height: 40px; | ||||
| 	min-height: 40px; | ||||
| 	padding: 0 6px; | ||||
| 	text-align: center; | ||||
| 	text-overflow: ellipsis; | ||||
| 	white-space: nowrap; | ||||
| } | ||||
|  | ||||
| #customize-control-site_logo .current img { | ||||
| 	max-width: 100%; | ||||
| } | ||||
|  | ||||
| #customize-control-site_logo button.new, | ||||
| #customize-control-site_logo button.change, | ||||
| #customize-control-site_logo button.remove { | ||||
| 	height: auto; | ||||
| 	width: 48%; | ||||
| 	white-space: normal; | ||||
| } | ||||
|  | ||||
| #customize-control-site_logo .remove { | ||||
| 	float: left; | ||||
| 	margin-right: 3px; | ||||
| } | ||||
|  | ||||
| #customize-control-site_logo .new, | ||||
| #customize-control-site_logo .change { | ||||
| 	float: right; | ||||
| } | ||||
|  | ||||
| #customize-control-site_logo .customize-control-description { | ||||
| 	display: block; | ||||
| 	clear: both; | ||||
| 	margin-bottom: 10px; | ||||
| } | ||||
							
								
								
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/css/site-logo-control.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/css/site-logo-control.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| #customize-control-site_logo .current{margin-bottom:6px}#customize-control-site_logo .current span{border:1px solid #eee;-webkit-border-radius:2px;border-radius:2px;color:#555;display:block;overflow:hidden;line-height:40px;min-height:40px;padding:0 6px;text-align:center;text-overflow:ellipsis;white-space:nowrap}#customize-control-site_logo .current img{max-width:100%}#customize-control-site_logo button.change,#customize-control-site_logo button.new,#customize-control-site_logo button.remove{height:auto;width:48%;white-space:normal}#customize-control-site_logo .remove{float:left;margin-right:3px}#customize-control-site_logo .change,#customize-control-site_logo .new{float:right}#customize-control-site_logo .customize-control-description{display:block;clear:both;margin-bottom:10px} | ||||
| @@ -0,0 +1,109 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Custom logo uploader control for the Customizer. | ||||
|  * | ||||
|  * @package Jetpack | ||||
|  */ | ||||
| class Site_Logo_Image_Control extends WP_Customize_Control { | ||||
| 	/** | ||||
| 	 * Constructor for our custom control. | ||||
| 	 * | ||||
| 	 * @param object $wp_customize | ||||
| 	 * @param string $control_id | ||||
| 	 * @param array  $args | ||||
| 	 * @uses Site_Logo_Image_Control::l10n() | ||||
| 	 */ | ||||
| 	public function __construct( $wp_customize, $control_id, $args = array() ) { | ||||
| 		// declare these first so they can be overridden | ||||
| 		$this->l10n = array( | ||||
| 			'upload'      => __( 'Add logo', 'jetpack' ), | ||||
| 			'set'         => __( 'Set as logo', 'jetpack' ), | ||||
| 			'choose'      => __( 'Choose logo', 'jetpack' ), | ||||
| 			'change'      => __( 'Change logo', 'jetpack' ), | ||||
| 			'remove'      => __( 'Remove logo', 'jetpack' ), | ||||
| 			'placeholder' => __( 'No logo set', 'jetpack' ), | ||||
| 		); | ||||
|  | ||||
| 		parent::__construct( $wp_customize, $control_id, $args ); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * This will be critical for our JS constructor. | ||||
| 	 */ | ||||
| 	public $type = 'site_logo'; | ||||
|  | ||||
| 	/** | ||||
| 	 * Allows overriding of global labels by a specific control. | ||||
| 	 */ | ||||
| 	public $l10n = array(); | ||||
|  | ||||
| 	/** | ||||
| 	 * The type of files that should be allowed by the media modal. | ||||
| 	 */ | ||||
| 	public $mime_type = 'image'; | ||||
|  | ||||
| 	/** | ||||
| 	 * Enqueue our media manager resources, scripts, and styles. | ||||
| 	 * | ||||
| 	 * @uses wp_enqueue_media() | ||||
| 	 * @uses wp_enqueue_style() | ||||
| 	 * @uses wp_enqueue_script() | ||||
| 	 * @uses plugins_url() | ||||
| 	 */ | ||||
| 	public function enqueue() { | ||||
| 		// Enqueues all needed media resources. | ||||
| 		wp_enqueue_media(); | ||||
|  | ||||
| 		// Enqueue our control script and styles. | ||||
| 		wp_enqueue_style( 'site-logo-control', plugins_url( '../css/site-logo-control.css', __FILE__ ) ); | ||||
| 		wp_enqueue_script( 'site-logo-control', plugins_url( '../js/site-logo-control.js', __FILE__ ), array( 'media-views', 'customize-controls', 'underscore' ), '', true ); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Check if we have an active site logo. | ||||
| 	 * | ||||
| 	 * @uses get_option() | ||||
| 	 * @return boolean | ||||
| 	 */ | ||||
| 	public function has_site_logo() { | ||||
| 		$logo = get_option( 'site_logo' ); | ||||
|  | ||||
| 		if ( empty( $logo['url'] ) ) { | ||||
| 			return false; | ||||
| 		} else { | ||||
| 			return true; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Display our custom control in the Customizer. | ||||
| 	 * | ||||
| 	 * @uses Site_Logo_Image_Control::l10n() | ||||
| 	 * @uses Site_Logo_Image_Control::mime_type() | ||||
| 	 * @uses Site_Logo_Image_Control::label() | ||||
| 	 * @uses Site_Logo_Image_Control::description() | ||||
| 	 * @uses esc_attr() | ||||
| 	 * @uses esc_html() | ||||
| 	 */ | ||||
| 	public function render_content() { | ||||
| 		// We do this to allow the upload control to specify certain labels | ||||
| 		$l10n = json_encode( $this->l10n ); | ||||
|  | ||||
| 		// Control title | ||||
| 		printf( | ||||
| 			'<span class="customize-control-title" data-l10n="%s" data-mime="%s">%s</span>', | ||||
| 			esc_attr( $l10n ), | ||||
| 			esc_attr( $this->mime_type ), | ||||
| 			esc_html( $this->label ) | ||||
| 		); | ||||
|  | ||||
| 		// Control description | ||||
| 		if ( ! empty( $this->description ) ) : ?> | ||||
| 			<span class="description customize-control-description"><?php echo $this->description; ?></span> | ||||
| 		<?php endif; ?> | ||||
|  | ||||
| 		<div class="current"></div> | ||||
| 		<div class="actions"></div> | ||||
| 		<?php | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,377 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Our Site Logo class for managing a theme-agnostic logo through the Customizer. | ||||
|  * | ||||
|  * @package Jetpack | ||||
|  */ | ||||
| class Site_Logo { | ||||
| 	/** | ||||
| 	 * Stores our single instance. | ||||
| 	 */ | ||||
| 	private static $instance; | ||||
|  | ||||
| 	/** | ||||
| 	 * Stores our current logo settings. | ||||
| 	 */ | ||||
| 	public $logo; | ||||
|  | ||||
| 	/** | ||||
| 	 * Return our instance, creating a new one if necessary. | ||||
| 	 * | ||||
| 	 * @uses Site_Logo::$instance | ||||
| 	 * @return object Site_Logo | ||||
| 	 */ | ||||
| 	public static function instance() { | ||||
| 		if ( ! isset( self::$instance ) ) { | ||||
| 			self::$instance = new Site_Logo(); | ||||
| 			self::$instance->register_hooks(); | ||||
| 		} | ||||
|  | ||||
| 		return self::$instance; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Get our current logo settings stored in options. | ||||
| 	 * | ||||
| 	 * @uses get_option() | ||||
| 	 */ | ||||
| 	private function __construct() { | ||||
| 		$this->logo = get_option( 'site_logo', null ); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Register our actions and filters. | ||||
| 	 * | ||||
| 	 * @uses Site_Logo::head_text_styles() | ||||
| 	 * @uses Site_Logo::customize_register() | ||||
| 	 * @uses Site_Logo::preview_enqueue() | ||||
| 	 * @uses Site_Logo::body_classes() | ||||
| 	 * @uses Site_Logo::media_manager_image_sizes() | ||||
| 	 * @uses add_action | ||||
| 	 * @uses add_filter | ||||
| 	 */ | ||||
| 	public function register_hooks() { | ||||
| 		// This would only happen if a theme supports BOTH site-logo and custom-logo for some reason | ||||
| 		if ( current_theme_supports( 'custom-logo' ) ) { | ||||
| 			return; | ||||
| 		} | ||||
|  | ||||
| 		add_action( 'wp_head', array( $this, 'head_text_styles' ) ); | ||||
| 		add_action( 'customize_register', array( $this, 'customize_register' ) ); | ||||
| 		add_action( 'customize_preview_init', array( $this, 'preview_enqueue' ) ); | ||||
| 		add_action( 'delete_attachment', array( $this, 'reset_on_attachment_delete' ) ); | ||||
| 		add_filter( 'body_class', array( $this, 'body_classes' ) ); | ||||
| 		add_filter( 'image_size_names_choose', array( $this, 'media_manager_image_sizes' ) ); | ||||
| 		add_filter( 'display_media_states', array( $this, 'add_media_state' ) ); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Add our logo uploader to the Customizer. | ||||
| 	 * | ||||
| 	 * @param object $wp_customize Customizer object. | ||||
| 	 * @uses current_theme_supports() | ||||
| 	 * @uses current_theme_supports() | ||||
| 	 * @uses WP_Customize_Manager::add_setting() | ||||
| 	 * @uses WP_Customize_Manager::add_control() | ||||
| 	 * @uses Site_Logo::sanitize_checkbox() | ||||
| 	 */ | ||||
| 	public function customize_register( $wp_customize ) { | ||||
| 		// Include our custom control. | ||||
| 		require dirname( __FILE__ ) . '/class-site-logo-control.php'; | ||||
|  | ||||
| 		// Add a setting to hide header text if the theme isn't supporting the feature itself | ||||
| 		if ( ! current_theme_supports( 'custom-header' ) ) { | ||||
| 			$wp_customize->add_setting( | ||||
| 				'site_logo_header_text', | ||||
| 				array( | ||||
| 					'default'           => 1, | ||||
| 					'sanitize_callback' => array( $this, 'sanitize_checkbox' ), | ||||
| 					'transport'         => 'postMessage', | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			$wp_customize->add_control( | ||||
| 				new WP_Customize_Control( | ||||
| 					$wp_customize, | ||||
| 					'site_logo_header_text', | ||||
| 					array( | ||||
| 						'label'    => __( 'Display Header Text', 'jetpack' ), | ||||
| 						'section'  => 'title_tagline', | ||||
| 						'settings' => 'site_logo_header_text', | ||||
| 						'type'     => 'checkbox', | ||||
| 					) | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// Add the setting for our logo value. | ||||
| 		$wp_customize->add_setting( | ||||
| 			'site_logo', | ||||
| 			array( | ||||
| 				'capability'        => 'manage_options', | ||||
| 				'default'           => array( | ||||
| 					'id'    => 0, | ||||
| 					'sizes' => array(), | ||||
| 					'url'   => false, | ||||
| 				), | ||||
| 				'sanitize_callback' => array( $this, 'sanitize_logo_setting' ), | ||||
| 				'transport'         => 'postMessage', | ||||
| 				'type'              => 'option', | ||||
| 			) | ||||
| 		); | ||||
|  | ||||
| 		// Add our image uploader. | ||||
| 		$wp_customize->add_control( | ||||
| 			new Site_Logo_Image_Control( | ||||
| 				$wp_customize, | ||||
| 				'site_logo', | ||||
| 				array( | ||||
| 					'label'    => __( 'Logo', 'jetpack' ), | ||||
| 					'section'  => 'title_tagline', | ||||
| 					'settings' => 'site_logo', | ||||
| 				) | ||||
| 			) | ||||
| 		); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Enqueue scripts for the Customizer live preview. | ||||
| 	 * | ||||
| 	 * @uses wp_enqueue_script() | ||||
| 	 * @uses plugins_url() | ||||
| 	 * @uses current_theme_supports() | ||||
| 	 * @uses Site_Logo::header_text_classes() | ||||
| 	 * @uses wp_localize_script() | ||||
| 	 */ | ||||
| 	public function preview_enqueue() { | ||||
| 		wp_enqueue_script( 'site-logo-preview', plugins_url( '../js/site-logo.js', __FILE__ ), array( 'media-views' ), '', true ); | ||||
|  | ||||
| 		// Don't bother passing in header text classes if the theme supports custom headers. | ||||
| 		if ( ! current_theme_supports( 'custom-header' ) ) { | ||||
| 			$classes = jetpack_sanitize_header_text_classes( $this->header_text_classes() ); | ||||
| 			wp_enqueue_script( 'site-logo-header-text', plugins_url( '../js/site-logo-header-text.js', __FILE__ ), array( 'media-views' ), '', true ); | ||||
| 			wp_localize_script( 'site-logo-header-text', 'site_logo_header_classes', $classes ); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Get header text classes. If not defined in add_theme_support(), defaults from Underscores will be used. | ||||
| 	 * | ||||
| 	 * @uses get_theme_support | ||||
| 	 * @return string String of classes to hide | ||||
| 	 */ | ||||
| 	public function header_text_classes() { | ||||
| 		$args = get_theme_support( 'site-logo' ); | ||||
|  | ||||
| 		if ( isset( $args[0]['header-text'] ) ) { | ||||
| 			// Use any classes defined in add_theme_support(). | ||||
| 			$classes = $args[0]['header-text']; | ||||
| 		} else { | ||||
| 			// Otherwise, use these defaults, which will work with any Underscores-based theme. | ||||
| 			$classes = array( | ||||
| 				'site-title', | ||||
| 				'site-description', | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		// If we've got an array, reduce them to a string for output | ||||
| 		if ( is_array( $classes ) ) { | ||||
| 			$classes = (string) '.' . implode( ', .', $classes ); | ||||
| 		} else { | ||||
| 			$classes = (string) '.' . $classes; | ||||
| 		} | ||||
|  | ||||
| 		return $classes; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Hide header text on front-end if necessary. | ||||
| 	 * | ||||
| 	 * @uses current_theme_supports() | ||||
| 	 * @uses get_theme_mod() | ||||
| 	 * @uses Site_Logo::header_text_classes() | ||||
| 	 * @uses esc_html() | ||||
| 	 */ | ||||
| 	public function head_text_styles() { | ||||
| 		// Bail if our theme supports custom headers. | ||||
| 		if ( current_theme_supports( 'custom-header' ) ) { | ||||
| 			return; | ||||
| 		} | ||||
|  | ||||
| 		// Is Display Header Text unchecked? If so, we need to hide our header text. | ||||
| 		if ( ! get_theme_mod( 'site_logo_header_text', 1 ) ) { | ||||
| 			$classes = $this->header_text_classes(); | ||||
| 			?> | ||||
| 			<!-- Site Logo: hide header text --> | ||||
| 			<style type="text/css"> | ||||
| 			<?php echo jetpack_sanitize_header_text_classes( $classes ); ?> { | ||||
| 				position: absolute; | ||||
| 				clip: rect(1px, 1px, 1px, 1px); | ||||
| 			} | ||||
| 			</style> | ||||
| 			<?php | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Determine image size to use for the logo. | ||||
| 	 * | ||||
| 	 * @uses get_theme_support() | ||||
| 	 * @return string Size specified in add_theme_support declaration, or 'thumbnail' default | ||||
| 	 */ | ||||
| 	public function theme_size() { | ||||
| 		$args        = get_theme_support( 'site-logo' ); | ||||
| 		$valid_sizes = get_intermediate_image_sizes(); | ||||
|  | ||||
| 		// Add 'full' to the list of accepted values. | ||||
| 		$valid_sizes[] = 'full'; | ||||
|  | ||||
| 		// If the size declared in add_theme_support is valid, use it; otherwise, just go with 'thumbnail'. | ||||
| 		$size = ( isset( $args[0]['size'] ) && in_array( $args[0]['size'], $valid_sizes ) ) ? $args[0]['size'] : 'thumbnail'; | ||||
|  | ||||
| 		return $size; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Make custom image sizes available to the media manager. | ||||
| 	 * | ||||
| 	 * @param array $sizes | ||||
| 	 * @uses get_intermediate_image_sizes() | ||||
| 	 * @return array All default and registered custom image sizes. | ||||
| 	 */ | ||||
| 	public function media_manager_image_sizes( $sizes ) { | ||||
| 		// Get an array of all registered image sizes. | ||||
| 		$intermediate = get_intermediate_image_sizes(); | ||||
|  | ||||
| 		// Have we got anything fun to work with? | ||||
| 		if ( is_array( $intermediate ) && ! empty( $intermediate ) ) { | ||||
| 			foreach ( $intermediate as $key => $size ) { | ||||
| 				// If the size isn't already in the $sizes array, add it. | ||||
| 				if ( ! array_key_exists( $size, $sizes ) ) { | ||||
| 					$sizes[ $size ] = $size; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		return $sizes; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Add site logos to media states in the Media Manager. | ||||
| 	 * | ||||
| 	 * @return array The current attachment's media states. | ||||
| 	 */ | ||||
| 	public function add_media_state( $media_states ) { | ||||
| 		// Only bother testing if we have a site logo set. | ||||
| 		if ( $this->has_site_logo() ) { | ||||
| 			global $post; | ||||
|  | ||||
| 			// If our attachment ID and the site logo ID match, this image is the site logo. | ||||
| 			if ( $post->ID == $this->logo['id'] ) { | ||||
| 				$media_states[] = __( 'Site Logo', 'jetpack' ); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		return $media_states; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Reset the site logo if the current logo is deleted in the media manager. | ||||
| 	 * | ||||
| 	 * @param int $site_id | ||||
| 	 * @uses Site_Logo::remove_site_logo() | ||||
| 	 */ | ||||
| 	public function reset_on_attachment_delete( $post_id ) { | ||||
| 		if ( $this->logo['id'] == $post_id ) { | ||||
| 			$this->remove_site_logo(); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Determine if a site logo is assigned or not. | ||||
| 	 * | ||||
| 	 * @uses Site_Logo::$logo | ||||
| 	 * @return boolean True if there is an active logo, false otherwise | ||||
| 	 */ | ||||
| 	public function has_site_logo() { | ||||
| 		return ( isset( $this->logo['id'] ) && 0 !== $this->logo['id'] ) ? true : false; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Reset the site logo option to zero (empty). | ||||
| 	 * | ||||
| 	 * @uses update_option() | ||||
| 	 */ | ||||
| 	public function remove_site_logo() { | ||||
| 		update_option( | ||||
| 			'site_logo', | ||||
| 			array( | ||||
| 				'id'    => (int) 0, | ||||
| 				'sizes' => array(), | ||||
| 				'url'   => '', | ||||
| 			) | ||||
| 		); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Adds custom classes to the array of body classes. | ||||
| 	 * | ||||
| 	 * @uses Site_Logo::has_site_logo() | ||||
| 	 * @return array Array of <body> classes | ||||
| 	 */ | ||||
| 	public function body_classes( $classes ) { | ||||
| 		// Add a class if a Site Logo is active | ||||
| 		if ( $this->has_site_logo() ) { | ||||
| 			$classes[] = 'has-site-logo'; | ||||
| 		} | ||||
|  | ||||
| 		return $classes; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Sanitize our header text Customizer setting. | ||||
| 	 * | ||||
| 	 * @param $input | ||||
| 	 * @return mixed 1 if checked, empty string if not checked. | ||||
| 	 */ | ||||
| 	public function sanitize_checkbox( $input ) { | ||||
| 		return ( 1 == $input ) ? 1 : ''; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Validate and sanitize a new site logo setting. | ||||
| 	 * | ||||
| 	 * @param $input | ||||
| 	 * @return mixed 1 if checked, empty string if not checked. | ||||
| 	 */ | ||||
| 	public function sanitize_logo_setting( $input ) { | ||||
| 		$input['id']  = absint( $input['id'] ); | ||||
| 		$input['url'] = esc_url_raw( $input['url'] ); | ||||
|  | ||||
| 		// If the new setting doesn't point to a valid attachment, just reset the whole thing. | ||||
| 		if ( false == wp_get_attachment_image_src( $input['id'] ) ) { | ||||
| 			$input = array( | ||||
| 				'id'    => (int) 0, | ||||
| 				'sizes' => array(), | ||||
| 				'url'   => '', | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		return $input; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Allow themes and plugins to access Site_Logo methods and properties. | ||||
|  * | ||||
|  * @uses Site_Logo::instance() | ||||
|  * @return object Site_Logo | ||||
|  */ | ||||
| function site_logo() { | ||||
| 	return Site_Logo::instance(); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * One site logo, please. | ||||
|  */ | ||||
| site_logo(); | ||||
| @@ -0,0 +1,44 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Functions for maintaining backwards compatibility with unprefixed template tags from the original Site Logo plugin. | ||||
|  * These should never be used in themes; instead, use the template tags in functions.php. | ||||
|  * See: https://github.com/Automattic/jetpack/pull/956 | ||||
|  * | ||||
|  * @package Jetpack | ||||
|  */ | ||||
|  | ||||
| if ( ! function_exists( 'the_site_logo' ) ) : | ||||
| 	/** | ||||
| 	 * Unprefixed, backwards-compatible function for outputting the site logo. | ||||
| 	 * | ||||
| 	 * @uses jetpack_the_site_logo() | ||||
| 	 */ | ||||
| 	function the_site_logo() { | ||||
| 		jetpack_the_site_logo(); | ||||
| 	} | ||||
| endif; | ||||
|  | ||||
| if ( ! function_exists( 'has_site_logo' ) ) : | ||||
| 	/** | ||||
| 	 * Unprefixed, backwards-compatible function for determining if a site logo has been set. | ||||
| 	 * | ||||
| 	 * @uses   jetpack_has_site_logo() | ||||
| 	 * @return bool True if a site logo is set, false otherwise. | ||||
| 	 */ | ||||
| 	function has_site_logo() { | ||||
| 		return jetpack_has_site_logo(); | ||||
| 	} | ||||
| endif; | ||||
|  | ||||
| if ( ! function_exists( 'get_site_logo' ) ) : | ||||
| 	/** | ||||
| 	 * Unprefixed, backwards-compatible function for getting either the site logo's image URL or its ID. | ||||
| 	 * | ||||
| 	 * @param  string $show Return the site logo URL or ID. | ||||
| 	 * @uses   jetpack_get_site_logo() | ||||
| 	 * @return string Site logo ID or URL (the default). | ||||
| 	 */ | ||||
| 	function get_site_logo( $show = 'url' ) { | ||||
| 		return jetpack_get_site_logo( $show ); | ||||
| 	} | ||||
| endif; | ||||
| @@ -0,0 +1,176 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Functions and template tags for using site logos. | ||||
|  * | ||||
|  * @package Jetpack | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * Retrieve the site logo URL or ID (URL by default). Pass in the string 'id' for ID. | ||||
|  * | ||||
|  * @uses get_option() | ||||
|  * @uses esc_url_raw() | ||||
|  * @uses set_url_scheme() | ||||
|  * @return mixed The URL or ID of our site logo, false if not set | ||||
|  * @since 1.0 | ||||
|  */ | ||||
| function jetpack_get_site_logo( $show = 'url' ) { | ||||
| 	$logo = site_logo()->logo; | ||||
|  | ||||
| 	// Return false if no logo is set | ||||
| 	if ( ! isset( $logo['id'] ) || 0 == $logo['id'] ) { | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	// Return the ID if specified, otherwise return the URL by default | ||||
| 	if ( 'id' == $show ) { | ||||
| 		return $logo['id']; | ||||
| 	} else { | ||||
| 		return esc_url_raw( set_url_scheme( $logo['url'] ) ); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Retrieve an array of the dimensions of the Site Logo. | ||||
|  * | ||||
|  * @uses Site_Logo::theme_size() | ||||
|  * @uses get_option( 'thumbnail_size_w' ) | ||||
|  * @uses get_option( 'thumbnail_size_h' ) | ||||
|  * @uses global $_wp_additional_image_sizes; | ||||
|  * | ||||
|  * @since 3.6.0 | ||||
|  * | ||||
|  * @return array $dimensions { | ||||
|  *      An array of dimensions of the Site Logo. | ||||
|  * | ||||
|  *      @type string $width Width of the logo in pixels. | ||||
|  *      @type string $height Height of the logo in pixels. | ||||
|  * } | ||||
|  */ | ||||
| function jetpack_get_site_logo_dimensions() { | ||||
| 	// Get the image size to use with the logo. | ||||
| 	$size = site_logo()->theme_size(); | ||||
|  | ||||
| 	// If the size is the default `thumbnail`, get its dimensions. Otherwise, get them from $_wp_additional_image_sizes | ||||
| 	if ( empty( $size ) ) { | ||||
| 		return false; | ||||
| 	} elseif ( 'thumbnail' == $size ) { | ||||
| 		$dimensions = array( | ||||
| 			'width'  => get_option( 'thumbnail_size_w' ), | ||||
| 			'height' => get_option( 'thumbnail_size_h' ), | ||||
| 		); | ||||
| 	} else { | ||||
| 		global $_wp_additional_image_sizes; | ||||
|  | ||||
| 		if ( ! isset( $_wp_additional_image_sizes[ $size ] ) ) { | ||||
| 			return false; | ||||
| 		} | ||||
|  | ||||
| 		$dimensions = array( | ||||
| 			'width'  => $_wp_additional_image_sizes[ $size ]['width'], | ||||
| 			'height' => $_wp_additional_image_sizes[ $size ]['height'], | ||||
| 		); | ||||
| 	} | ||||
|  | ||||
| 	return $dimensions; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Determine if a site logo is assigned or not. | ||||
|  * | ||||
|  * @uses get_option | ||||
|  * @return boolean True if there is an active logo, false otherwise | ||||
|  */ | ||||
| function jetpack_has_site_logo() { | ||||
| 	return site_logo()->has_site_logo(); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Output an <img> tag of the site logo, at the size specified | ||||
|  * in the theme's add_theme_support() declaration. | ||||
|  * | ||||
|  * @uses Site_Logo::logo | ||||
|  * @uses Site_Logo::theme_size() | ||||
|  * @uses jetpack_has_site_logo() | ||||
|  * @uses jetpack_is_customize_preview() | ||||
|  * @uses esc_url() | ||||
|  * @uses home_url() | ||||
|  * @uses esc_attr() | ||||
|  * @uses wp_get_attachment_image() | ||||
|  * @uses apply_filters() | ||||
|  * @since 1.0 | ||||
|  */ | ||||
| function jetpack_the_site_logo() { | ||||
| 	$logo    = site_logo()->logo; | ||||
| 	$logo_id = get_theme_mod( 'custom_logo' ); // Check for WP 4.5 Site Logo | ||||
| 	$logo_id = $logo_id ? $logo_id : $logo['id']; // Use WP Core logo if present, otherwise use Jetpack's. | ||||
| 	$size    = site_logo()->theme_size(); | ||||
| 	$html    = ''; | ||||
|  | ||||
| 	// If no logo is set, but we're in the Customizer, leave a placeholder (needed for the live preview). | ||||
| 	if ( ! jetpack_has_site_logo() ) { | ||||
| 		if ( jetpack_is_customize_preview() ) { | ||||
| 			$html = sprintf( | ||||
| 				'<a href="%1$s" class="site-logo-link" style="display:none;"><img class="site-logo" data-size="%2$s" /></a>', | ||||
| 				esc_url( home_url( '/' ) ), | ||||
| 				esc_attr( $size ) | ||||
| 			); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// We have a logo. Logo is go. | ||||
| 	else { | ||||
| 		$html = sprintf( | ||||
| 			'<a href="%1$s" class="site-logo-link" rel="home" itemprop="url">%2$s</a>', | ||||
| 			esc_url( home_url( '/' ) ), | ||||
| 			wp_get_attachment_image( | ||||
| 				$logo_id, | ||||
| 				$size, | ||||
| 				false, | ||||
| 				array( | ||||
| 					'class'     => "site-logo attachment-$size", | ||||
| 					'data-size' => $size, | ||||
| 					'itemprop'  => 'logo', | ||||
| 				) | ||||
| 			) | ||||
| 		); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Filter the Site Logo output. | ||||
| 	 * | ||||
| 	 * @module theme-tools | ||||
| 	 * | ||||
| 	 * @since 3.2.0 | ||||
| 	 * | ||||
| 	 * @param string $html Site Logo HTML output. | ||||
| 	 * @param array $logo Array of Site Logo details. | ||||
| 	 * @param string $size Size specified in add_theme_support declaration, or 'thumbnail' default. | ||||
| 	 */ | ||||
| 	echo apply_filters( 'jetpack_the_site_logo', $html, $logo, $size ); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Whether the site is being previewed in the Customizer. | ||||
|  * Duplicate of core function until 4.0 is released. | ||||
|  * | ||||
|  * @global WP_Customize_Manager $wp_customize Customizer instance. | ||||
|  * @return bool True if the site is being previewed in the Customizer, false otherwise. | ||||
|  */ | ||||
| function jetpack_is_customize_preview() { | ||||
| 	global $wp_customize; | ||||
|  | ||||
| 	return is_a( $wp_customize, 'WP_Customize_Manager' ) && $wp_customize->is_preview(); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Sanitize the string of classes used for header text. | ||||
|  * Limit to A-Z,a-z,0-9,(space),(comma),_,- | ||||
|  * | ||||
|  * @return string Sanitized string of CSS classes. | ||||
|  */ | ||||
| function jetpack_sanitize_header_text_classes( $classes ) { | ||||
| 	$classes = preg_replace( '/[^A-Za-z0-9\,\ ._-]/', '', $classes ); | ||||
|  | ||||
| 	return $classes; | ||||
| } | ||||
| @@ -0,0 +1,160 @@ | ||||
| /** | ||||
|  * JS for handling the Site Logo Customizer control. | ||||
|  */ | ||||
| ( function( wp, $ ) { | ||||
| 	// nice shortcut | ||||
| 	var api = wp.customize; | ||||
| 	/** | ||||
| 	 * The Customizer looks for wp.customizer.controlConstructor[type] functions | ||||
| 	 * where type == the type member of a WP_Customize_Control | ||||
| 	 */ | ||||
| 	api.controlConstructor.site_logo = api.Control.extend( { | ||||
| 		/** | ||||
| 		 * This method is called when the control is ready to run. | ||||
| 		 * Do all of your setup and event binding here. | ||||
| 		 */ | ||||
| 		ready: function() { | ||||
| 			// this.container is a jQuery object of your container | ||||
|  | ||||
| 			// grab the bits of data from the title for specifying this control | ||||
| 			var data = this.container.find( '.customize-control-title' ).data(); | ||||
|  | ||||
| 			// Use specific l10n data for this control where available | ||||
| 			this.l10n = data.l10n; | ||||
| 			// Grab mime type | ||||
| 			this.mime = data.mime; | ||||
|  | ||||
| 			// Set up image container and button elements. Cache for re-use. | ||||
| 			this.$imgContainer = $( '#customize-control-site_logo .current' ); | ||||
| 			this.$btnContainer = $( '#customize-control-site_logo .actions' ); | ||||
| 			this.$img = $( '<img class="site-logo-thumbnail" />' ).prependTo( this.$imgContainer ); | ||||
| 			this.$placeholder = $( '<span>' + this.l10n.placeholder + '</span>' ).prependTo( | ||||
| 				this.$imgContainer | ||||
| 			); | ||||
| 			this.$btnAdd = $( | ||||
| 				'<button type="button" class="button new">' + this.l10n.upload + '</button>' | ||||
| 			).prependTo( this.$btnContainer ); | ||||
| 			this.$btnChange = $( | ||||
| 				'<button type="button" class="button change">' + this.l10n.change + '</button>' | ||||
| 			).prependTo( this.$btnContainer ); | ||||
| 			this.$btnRemove = $( | ||||
| 				'<button type="button" class="button remove">' + this.l10n.remove + '</button>' | ||||
| 			).prependTo( this.$btnContainer ); | ||||
|  | ||||
| 			// handy shortcut so we don't have to us _.bind every time we add a callback | ||||
| 			_.bindAll( this, 'removeImg', 'upload', 'render', 'pick' ); | ||||
|  | ||||
| 			this.$btnAdd.on( 'click', this.upload ); | ||||
| 			this.$btnChange.on( 'click', this.upload ); | ||||
| 			this.$btnRemove.on( 'click', this.removeImg ); | ||||
|  | ||||
| 			// Call render method whenever setting is changed. | ||||
| 			this.setting.bind( 'change', this.render ); | ||||
| 			// Do initial rendering. | ||||
| 			this.render(); | ||||
| 		}, | ||||
| 		/** | ||||
| 		 * Remember that _.bind was used to maintain `this` as the control | ||||
| 		 * object rather than the usual jQuery way of binding to the DOM element. | ||||
| 		 */ | ||||
| 		upload: function( event ) { | ||||
| 			event.preventDefault(); | ||||
|  | ||||
| 			if ( ! this.frame ) { | ||||
| 				this.initFrame(); | ||||
| 			} | ||||
|  | ||||
| 			this.frame.open(); | ||||
| 		}, | ||||
| 		/** | ||||
| 		 * Set the media frame so that it can be reused and accessed when needed. | ||||
| 		 */ | ||||
| 		initFrame: function() { | ||||
| 			this.frame = wp.media( { | ||||
| 				// The title of the media modal | ||||
| 				title: this.l10n.choose, | ||||
| 				// restrict to specified mime type | ||||
| 				library: { | ||||
| 					type: this.mime, | ||||
| 				}, | ||||
| 				// Customize the submit button. | ||||
| 				button: { | ||||
| 					// Set the text of the button. | ||||
| 					text: this.l10n.set, | ||||
| 				}, | ||||
| 				// Just one, thanks. | ||||
| 				multiple: false, | ||||
| 			} ); | ||||
|  | ||||
| 			// When an image is selected, run a callback. | ||||
| 			this.frame.on( 'select', this.pick ); | ||||
| 		}, | ||||
| 		/** | ||||
| 		 * Fired when an image is selected in the media modal. Gets the selected | ||||
| 		 * image information, and sets it within the control. | ||||
| 		 */ | ||||
| 		pick: function() { | ||||
| 			// get the attachment from the modal frame | ||||
| 			var attachment = this.frame | ||||
| 				.state() | ||||
| 				.get( 'selection' ) | ||||
| 				.single(); | ||||
| 			if ( 'image' === attachment.get( 'type' ) ) { | ||||
| 				// set the setting - the callback will take care of rendering | ||||
| 				this.setting( this.reduceMembers( attachment.toJSON() ) ); | ||||
| 			} | ||||
| 		}, | ||||
| 		/** | ||||
| 		 * Reduces the attachment object to just the few desired members. | ||||
| 		 * @param  {object} attachment An attachment object provided by the | ||||
| 		 *                             medial modal. | ||||
| 		 * @return {object}            A reduced media object. | ||||
| 		 */ | ||||
| 		reduceMembers: function( attachment ) { | ||||
| 			var desired = [ 'id', 'sizes', 'url' ], | ||||
| 				output = {}; | ||||
| 			$.each( desired, function( i, key ) { | ||||
| 				output[ key ] = attachment[ key ]; | ||||
| 			} ); | ||||
| 			return output; | ||||
| 		}, | ||||
| 		/** | ||||
| 		 * Called on init and whenever a setting is changed. Shows the thumbnail | ||||
| 		 * when there is one or the upload button when there isn't. | ||||
| 		 */ | ||||
| 		render: function() { | ||||
| 			var value = this.setting(); | ||||
|  | ||||
| 			if ( value && value.url ) { | ||||
| 				this.$placeholder.hide(); | ||||
| 				if ( ! value.sizes || ! value.sizes.medium ) { | ||||
| 					this.$img.attr( 'src', value.url ); | ||||
| 				} else { | ||||
| 					this.$img.attr( 'src', value.sizes.medium.url ); | ||||
| 				} | ||||
| 				this.$img.show(); | ||||
| 				this.$btnRemove.show(); | ||||
| 				this.$btnChange.show(); | ||||
| 				this.$btnAdd.hide(); | ||||
| 			} else { | ||||
| 				this.$img.hide(); | ||||
| 				this.$placeholder.show(); | ||||
| 				this.$btnRemove.hide(); | ||||
| 				this.$btnChange.hide(); | ||||
| 				this.$btnAdd.show(); | ||||
| 			} | ||||
| 		}, | ||||
| 		/** | ||||
| 		 * Called when the "Remove Image" link is clicked. Sets thes setting back | ||||
| 		 * to its default state. | ||||
| 		 * @param  {object} event jQuery Event object from click event | ||||
| 		 */ | ||||
| 		removeImg: function( event ) { | ||||
| 			event.preventDefault(); | ||||
| 			this.setting( { | ||||
| 				url: '', | ||||
| 				id: 0, | ||||
| 			} ); | ||||
| 		}, | ||||
| 	} ); | ||||
| } )( this.wp, jQuery ); | ||||
							
								
								
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-control.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-control.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| (function(a,c){var b=a.customize;b.controlConstructor.site_logo=b.Control.extend({ready:function(){var d=this.container.find(".customize-control-title").data();this.l10n=d.l10n;this.mime=d.mime;this.$imgContainer=c("#customize-control-site_logo .current");this.$btnContainer=c("#customize-control-site_logo .actions");this.$img=c('<img class="site-logo-thumbnail" />').prependTo(this.$imgContainer);this.$placeholder=c("<span>"+this.l10n.placeholder+"</span>").prependTo(this.$imgContainer);this.$btnAdd=c('<button type="button" class="button new">'+this.l10n.upload+"</button>").prependTo(this.$btnContainer);this.$btnChange=c('<button type="button" class="button change">'+this.l10n.change+"</button>").prependTo(this.$btnContainer);this.$btnRemove=c('<button type="button" class="button remove">'+this.l10n.remove+"</button>").prependTo(this.$btnContainer);_.bindAll(this,"removeImg","upload","render","pick");this.$btnAdd.on("click",this.upload);this.$btnChange.on("click",this.upload);this.$btnRemove.on("click",this.removeImg);this.setting.bind("change",this.render);this.render()},upload:function(d){d.preventDefault();if(!this.frame){this.initFrame()}this.frame.open()},initFrame:function(){this.frame=a.media({title:this.l10n.choose,library:{type:this.mime},button:{text:this.l10n.set},multiple:false});this.frame.on("select",this.pick)},pick:function(){var d=this.frame.state().get("selection").first().toJSON();d=this.reduceMembers(d);this.setting(d)},reduceMembers:function(f){var e=["id","sizes","url"],d={};c.each(e,function(h,g){d[g]=f[g]});return d},render:function(){var d=this.setting();if(d&&d.url){this.$placeholder.hide();if(!d.sizes||!d.sizes.medium){this.$img.attr("src",d.url)}else{this.$img.attr("src",d.sizes.medium.url)}this.$img.show();this.$btnRemove.show();this.$btnChange.show();this.$btnAdd.hide()}else{this.$img.hide();this.$placeholder.show();this.$btnRemove.hide();this.$btnChange.hide();this.$btnAdd.show()}},removeImg:function(d){d.preventDefault();this.setting({url:"",id:0})}})})(this.wp,jQuery); | ||||
| @@ -0,0 +1,24 @@ | ||||
| /* global site_logo_header_classes */ | ||||
| /** | ||||
|  * JS for handling the "Display Header Text" setting's realtime preview. | ||||
|  */ | ||||
| ( function( $ ) { | ||||
| 	var api = wp.customize, | ||||
| 		$classes = site_logo_header_classes; | ||||
|  | ||||
| 	api( 'site_logo_header_text', function( value ) { | ||||
| 		value.bind( function( to ) { | ||||
| 			if ( true === to ) { | ||||
| 				$( $classes ).css( { | ||||
| 					position: 'static', | ||||
| 					clip: 'auto', | ||||
| 				} ); | ||||
| 			} else { | ||||
| 				$( $classes ).css( { | ||||
| 					position: 'absolute', | ||||
| 					clip: 'rect(1px 1px 1px 1px)', | ||||
| 				} ); | ||||
| 			} | ||||
| 		} ); | ||||
| 	} ); | ||||
| } )( jQuery ); | ||||
							
								
								
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| !function(t){var i=wp.customize,o=site_logo_header_classes;i("site_logo_header_text",function(i){i.bind(function(i){t(o).css(!0===i?{position:"static",clip:"auto"}:{position:"absolute",clip:"rect(1px 1px 1px 1px)"})})})}(jQuery); | ||||
| @@ -0,0 +1,46 @@ | ||||
| /** | ||||
|  * JS for handling the Site Logo real-time display in the Customizer preview frame. | ||||
|  */ | ||||
| ( function( $ ) { | ||||
| 	var api = wp.customize, | ||||
| 		$body, | ||||
| 		$anchor, | ||||
| 		$logo, | ||||
| 		size; | ||||
|  | ||||
| 	function cacheSelectors() { | ||||
| 		$body = $( 'body' ); | ||||
| 		$anchor = $( '.site-logo-link' ); | ||||
| 		$logo = $( '.site-logo' ); | ||||
| 		size = $logo.attr( 'data-size' ); | ||||
| 	} | ||||
|  | ||||
| 	api( 'site_logo', function( value ) { | ||||
| 		value.bind( function( newVal ) { | ||||
| 			// grab selectors the first time through | ||||
| 			if ( ! $body ) { | ||||
| 				cacheSelectors(); | ||||
| 			} | ||||
|  | ||||
| 			// Let's update our preview logo. | ||||
| 			if ( newVal && newVal.url ) { | ||||
| 				// If the source was smaller than the size required by the theme, give the biggest we've got. | ||||
| 				if ( ! newVal.sizes[ size ] ) { | ||||
| 					size = 'full'; | ||||
| 				} | ||||
|  | ||||
| 				$logo.attr( { | ||||
| 					height: newVal.sizes[ size ].height, | ||||
| 					width: newVal.sizes[ size ].width, | ||||
| 					src: newVal.sizes[ size ].url, | ||||
| 				} ); | ||||
|  | ||||
| 				$anchor.show(); | ||||
| 				$body.addClass( 'has-site-logo' ); | ||||
| 			} else { | ||||
| 				$anchor.hide(); | ||||
| 				$body.removeClass( 'has-site-logo' ); | ||||
| 			} | ||||
| 		} ); | ||||
| 	} ); | ||||
| } )( jQuery ); | ||||
							
								
								
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								wp-content/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| (function(d){var e=wp.customize,c,f,g,a;e("site_logo",function(e){e.bind(function(b){c||(c=d("body"),f=d(".site-logo-link"),g=d(".site-logo"),a=g.attr("data-size"));b&&b.url?(b.sizes[a]||(a="full"),g.attr({height:b.sizes[a].height,width:b.sizes[a].width,src:b.sizes[a].url}),f.show(),c.addClass("has-site-logo")):(f.hide(),c.removeClass("has-site-logo"))})})})(jQuery); | ||||
							
								
								
									
										252
									
								
								wp-content/plugins/jetpack/modules/theme-tools/social-links.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										252
									
								
								wp-content/plugins/jetpack/modules/theme-tools/social-links.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,252 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Social Links. | ||||
|  * | ||||
|  * This feature will only be activated for themes that declare their support. | ||||
|  * This can be done by adding code similar to the following during the | ||||
|  * 'after_setup_theme' action: | ||||
|  * | ||||
|  * add_theme_support( 'social-links', array( | ||||
|  *     'facebook', 'twitter', 'linkedin', 'tumblr', 'google_plus', | ||||
|  * ) ); | ||||
|  */ | ||||
|  | ||||
| function jetpack_theme_supports_social_links() { | ||||
| 	if ( current_theme_supports( 'social-links' ) && function_exists( 'publicize_init' ) ) { | ||||
| 		new Social_Links(); | ||||
| 	} | ||||
| } | ||||
| add_action( 'init', 'jetpack_theme_supports_social_links', 30 ); | ||||
|  | ||||
| if ( ! class_exists( 'Social_Links' ) ) { | ||||
|  | ||||
| 	class Social_Links { | ||||
|  | ||||
| 		/** | ||||
| 		 * The links the user set for each service. | ||||
| 		 * | ||||
| 		 * @var array | ||||
| 		 */ | ||||
| 		private $links; | ||||
|  | ||||
| 		/** | ||||
| 		 * A Publicize object. | ||||
| 		 * | ||||
| 		 * @var Publicize | ||||
| 		 */ | ||||
| 		private $publicize; | ||||
|  | ||||
| 		/** | ||||
| 		 * An array with all services that are supported by both Publicize and the | ||||
| 		 * currently active theme. | ||||
| 		 * | ||||
| 		 * @var array | ||||
| 		 */ | ||||
| 		private $services = array(); | ||||
|  | ||||
| 		/** | ||||
| 		 * An array of the services the theme supports | ||||
| 		 * | ||||
| 		 * @var array | ||||
| 		 */ | ||||
| 		private $theme_supported_services = array(); | ||||
|  | ||||
| 		/** | ||||
| 		 * Constructor. | ||||
| 		 */ | ||||
| 		public function __construct() { | ||||
| 			$theme_support = get_theme_support( 'social-links' ); | ||||
|  | ||||
| 			/* | ||||
| 			An array of named arguments must be passed as the second parameter | ||||
| 			 * of add_theme_support(). | ||||
| 			 */ | ||||
| 			if ( empty( $theme_support[0] ) ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			$this->theme_supported_services = $theme_support[0]; | ||||
| 			$this->links                    = Jetpack_Options::get_option( 'social_links', array() ); | ||||
|  | ||||
| 			$this->admin_setup(); | ||||
|  | ||||
| 			add_filter( 'jetpack_has_social_links', array( $this, 'has_social_links' ) ); | ||||
| 			add_filter( 'jetpack_get_social_links', array( $this, 'get_social_links' ) ); | ||||
|  | ||||
| 			foreach ( $theme_support[0] as $service ) { | ||||
| 				add_filter( "pre_option_jetpack-$service", array( $this, 'get_social_link_filter' ) ); // get_option( 'jetpack-service' ); | ||||
| 				add_filter( "theme_mod_jetpack-$service", array( $this, 'get_social_link_filter' ) ); // get_theme_mod( 'jetpack-service' ); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		public function admin_setup() { | ||||
| 			if ( ! current_user_can( 'manage_options' ) ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			if ( ! is_admin() && ! $this->is_customize_preview() ) { | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			$this->publicize    = publicize_init(); | ||||
| 			$publicize_services = $this->publicize->get_services( 'connected' ); | ||||
| 			$this->services     = array_intersect( array_keys( $publicize_services ), $this->theme_supported_services ); | ||||
|  | ||||
| 			add_action( 'publicize_connected', array( $this, 'check_links' ), 20 ); | ||||
| 			add_action( 'publicize_disconnected', array( $this, 'check_links' ), 20 ); | ||||
| 			add_action( 'customize_register', array( $this, 'customize_register' ) ); | ||||
| 			add_filter( 'sanitize_option_jetpack_options', array( $this, 'sanitize_link' ) ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Compares the currently saved links with the connected services and removes | ||||
| 		 * links from services that are no longer connected. | ||||
| 		 * | ||||
| 		 * @return void | ||||
| 		 */ | ||||
| 		public function check_links() { | ||||
| 			$active_links = array_intersect_key( $this->links, array_flip( $this->services ) ); | ||||
|  | ||||
| 			if ( $active_links !== $this->links ) { | ||||
| 				$this->links = $active_links; | ||||
| 				Jetpack_Options::update_option( 'social_links', $active_links ); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Add social link dropdown to the Customizer. | ||||
| 		 * | ||||
| 		 * @param WP_Customize_Manager $wp_customize Theme Customizer object. | ||||
| 		 */ | ||||
| 		public function customize_register( $wp_customize ) { | ||||
| 			$wp_customize->add_section( | ||||
| 				'jetpack_social_links', | ||||
| 				array( | ||||
| 					'title'    => esc_html__( 'Connect', 'jetpack' ), | ||||
| 					'priority' => 35, | ||||
| 				) | ||||
| 			); | ||||
|  | ||||
| 			foreach ( array_keys( $this->publicize->get_services( 'all' ) ) as $service ) { | ||||
| 				$choices = $this->get_customize_select( $service ); | ||||
|  | ||||
| 				if ( empty( $choices ) ) { | ||||
| 					continue; | ||||
| 				} | ||||
|  | ||||
| 				$wp_customize->add_setting( | ||||
| 					"jetpack_options[social_links][$service]", | ||||
| 					array( | ||||
| 						'type'    => 'option', | ||||
| 						'default' => '', | ||||
| 					) | ||||
| 				); | ||||
|  | ||||
| 				$wp_customize->add_control( | ||||
| 					"jetpack-$service", | ||||
| 					array( | ||||
| 						'label'    => $this->publicize->get_service_label( $service ), | ||||
| 						'section'  => 'jetpack_social_links', | ||||
| 						'settings' => "jetpack_options[social_links][$service]", | ||||
| 						'type'     => 'select', | ||||
| 						'choices'  => $choices, | ||||
| 					) | ||||
| 				); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Sanitizes social links. | ||||
| 		 * | ||||
| 		 * @param array $option The incoming values to be sanitized. | ||||
| 		 * @returns array | ||||
| 		 */ | ||||
| 		public function sanitize_link( $option ) { | ||||
| 			foreach ( $this->services as $service ) { | ||||
| 				if ( ! empty( $option['social_links'][ $service ] ) ) { | ||||
| 					$option['social_links'][ $service ] = esc_url_raw( $option['social_links'][ $service ] ); | ||||
| 				} else { | ||||
| 					unset( $option['social_links'][ $service ] ); | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			return $option; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Returns whether there are any social links set. | ||||
| 		 * | ||||
| 		 * @returns bool | ||||
| 		 */ | ||||
| 		public function has_social_links() { | ||||
| 			return ! empty( $this->links ); | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Return available social links. | ||||
| 		 * | ||||
| 		 * @returns array | ||||
| 		 */ | ||||
| 		public function get_social_links() { | ||||
| 			return $this->links; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Short-circuits get_option and get_theme_mod calls. | ||||
| 		 * | ||||
| 		 * @param string $link The incoming value to be replaced. | ||||
| 		 * @returns string $link The social link that we've got. | ||||
| 		 */ | ||||
| 		public function get_social_link_filter( $link ) { | ||||
| 			if ( preg_match( '/_jetpack-(.+)$/i', current_filter(), $matches ) && ! empty( $this->links[ $matches[1] ] ) ) { | ||||
| 				return $this->links[ $matches[1] ]; | ||||
| 			} | ||||
|  | ||||
| 			return $link; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Puts together an array of choices for a specific service. | ||||
| 		 * | ||||
| 		 * @param string $service The social service. | ||||
| 		 * @return array An associative array with profile links and display names. | ||||
| 		 */ | ||||
| 		private function get_customize_select( $service ) { | ||||
| 			$choices = array( | ||||
| 				'' => __( '— Select —', 'jetpack' ), | ||||
| 			); | ||||
|  | ||||
| 			if ( isset( $this->links[ $service ] ) ) { | ||||
| 				$choices[ $this->links[ $service ] ] = $this->links[ $service ]; | ||||
| 			} | ||||
|  | ||||
| 			$connected_services = $this->publicize->get_services( 'connected' ); | ||||
| 			if ( isset( $connected_services[ $service ] ) ) { | ||||
| 				foreach ( $connected_services[ $service ] as $c ) { | ||||
| 					$profile_link = $this->publicize->get_profile_link( $service, $c ); | ||||
|  | ||||
| 					if ( false === $profile_link ) { | ||||
| 						continue; | ||||
| 					} | ||||
|  | ||||
| 					$choices[ $profile_link ] = $this->publicize->get_display_name( $service, $c ); | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if ( 1 === count( $choices ) ) { | ||||
| 				return array(); | ||||
| 			} | ||||
|  | ||||
| 			return $choices; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 * Back-compat function for versions prior to 4.0. | ||||
| 		 */ | ||||
| 		private function is_customize_preview() { | ||||
| 			global $wp_customize; | ||||
| 			return is_a( $wp_customize, 'WP_Customize_Manager' ) && $wp_customize->is_preview(); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| } // end if ( ! class_exists( 'Social_Links' ) | ||||
							
								
								
									
										113
									
								
								wp-content/plugins/jetpack/modules/theme-tools/social-menu.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								wp-content/plugins/jetpack/modules/theme-tools/social-menu.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,113 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Social Menu. | ||||
|  * | ||||
|  * This feature will only be activated for themes that declare their support. | ||||
|  * This can be done by adding code similar to the following during the | ||||
|  * 'after_setup_theme' action: | ||||
|  * | ||||
|  * add_theme_support( 'jetpack-social-menu' ); | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * Activate the Social Menu plugin. | ||||
|  * | ||||
|  * @uses current_theme_supports() | ||||
|  */ | ||||
| function jetpack_social_menu_init() { | ||||
| 	// Only load our code if our theme declares support | ||||
| 	if ( ! current_theme_supports( 'jetpack-social-menu' ) ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Social Menu description. | ||||
| 	 * | ||||
| 	 * Rename the social menu description. | ||||
| 	 * | ||||
| 	 * @module theme-tools | ||||
| 	 * | ||||
| 	 * @since 3.9.0 | ||||
| 	 * | ||||
| 	 * @param string $social_menu_description Social Menu description | ||||
| 	 */ | ||||
| 	$social_menu_description = apply_filters( 'jetpack_social_menu_description', __( 'Social Menu', 'jetpack' ) ); | ||||
|  | ||||
| 	// Register a new menu location | ||||
| 	register_nav_menus( | ||||
| 		array( | ||||
| 			'jetpack-social-menu' => esc_html( $social_menu_description ), | ||||
| 		) | ||||
| 	); | ||||
|  | ||||
| 	// Enqueue CSS | ||||
| 	add_action( 'wp_enqueue_scripts', 'jetpack_social_menu_style' ); | ||||
|  | ||||
| 	// Load SVG icons related functions and filters | ||||
| 	if ( 'svg' === jetpack_social_menu_get_type() ) { | ||||
| 		require dirname( __FILE__ ) . '/social-menu/icon-functions.php'; | ||||
| 	} | ||||
| } | ||||
| add_action( 'after_setup_theme', 'jetpack_social_menu_init', 99 ); | ||||
|  | ||||
| /** | ||||
|  * Return the type of menu the theme is using. | ||||
|  * | ||||
|  * @uses get_theme_support() | ||||
|  * @return null|string $menu_type | ||||
|  */ | ||||
| function jetpack_social_menu_get_type() { | ||||
| 	$options = get_theme_support( 'jetpack-social-menu' ); | ||||
|  | ||||
| 	if ( empty( $options ) ) { | ||||
| 		$menu_type = null; | ||||
| 	} else { | ||||
| 		$menu_type = ( in_array( $options[0], array( 'genericons', 'svg' ) ) ) ? $options[0] : 'genericons'; | ||||
| 	} | ||||
|  | ||||
| 	return $menu_type; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Function to enqueue the CSS. | ||||
|  */ | ||||
| function jetpack_social_menu_style() { | ||||
| 	$menu_type = jetpack_social_menu_get_type(); | ||||
|  | ||||
| 	if ( ! $menu_type ) { | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	$deps = ( 'genericons' === $menu_type ) ? array( 'genericons' ) : null; | ||||
|  | ||||
| 	if ( has_nav_menu( 'jetpack-social-menu' ) ) { | ||||
| 		wp_enqueue_style( 'jetpack-social-menu', plugins_url( 'social-menu/social-menu.css', __FILE__ ), $deps, '1.0' ); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Create the function for the menu. | ||||
|  */ | ||||
| function jetpack_social_menu() { | ||||
| 	if ( has_nav_menu( 'jetpack-social-menu' ) ) : | ||||
| 		$menu_type  = jetpack_social_menu_get_type(); | ||||
| 		$link_after = '</span>'; | ||||
|  | ||||
| 		if ( 'svg' === $menu_type ) { | ||||
| 			$link_after .= jetpack_social_menu_get_svg( array( 'icon' => 'chain' ) ); | ||||
| 		} ?> | ||||
| 		<nav class="jetpack-social-navigation jetpack-social-navigation-<?php echo esc_attr( $menu_type ); ?>" role="navigation" aria-label="<?php esc_html_e( 'Social Links Menu', 'jetpack' ); ?>"> | ||||
| 			<?php | ||||
| 				wp_nav_menu( | ||||
| 					array( | ||||
| 						'theme_location' => 'jetpack-social-menu', | ||||
| 						'link_before'    => '<span class="screen-reader-text">', | ||||
| 						'link_after'     => $link_after, | ||||
| 						'depth'          => 1, | ||||
| 					) | ||||
| 				); | ||||
| 			?> | ||||
| 		</nav><!-- .jetpack-social-navigation --> | ||||
| 		<?php | ||||
| 	endif; | ||||
| } | ||||
| @@ -0,0 +1,177 @@ | ||||
| <?php | ||||
| /** | ||||
|  * SVG icons related functions and filters | ||||
|  * | ||||
|  * @package Jetpack | ||||
|  */ | ||||
|  | ||||
| if ( ! function_exists( 'jetpack_social_menu_include_svg_icons' ) ) : | ||||
| 	/** | ||||
| 	 * Add SVG definitions to the footer. | ||||
| 	 */ | ||||
| 	function jetpack_social_menu_include_svg_icons() { | ||||
| 		// Define SVG sprite file. | ||||
| 		$svg_icons = dirname( __FILE__ ) . '/social-menu.svg'; | ||||
|  | ||||
| 		// If it exists, include it. | ||||
| 		if ( file_exists( $svg_icons ) ) { | ||||
| 			require_once $svg_icons; | ||||
| 		} | ||||
| 	} | ||||
| 	add_action( 'wp_footer', 'jetpack_social_menu_include_svg_icons', 9999 ); | ||||
| endif; | ||||
|  | ||||
| if ( ! function_exists( 'jetpack_social_menu_get_svg' ) ) : | ||||
| 	/** | ||||
| 	 * Return SVG markup. | ||||
| 	 * | ||||
| 	 * @param array $args { | ||||
| 	 *     Parameters needed to display an SVG. | ||||
| 	 * | ||||
| 	 *     @type string $icon  Required SVG icon filename. | ||||
| 	 * } | ||||
| 	 * @return string SVG markup. | ||||
| 	 */ | ||||
| 	function jetpack_social_menu_get_svg( $args = array() ) { | ||||
| 		// Make sure $args are an array. | ||||
| 		if ( empty( $args ) ) { | ||||
| 			return esc_html__( 'Please define default parameters in the form of an array.', 'jetpack' ); | ||||
| 		} | ||||
|  | ||||
| 		// Define an icon. | ||||
| 		if ( false === array_key_exists( 'icon', $args ) ) { | ||||
| 			return esc_html__( 'Please define an SVG icon filename.', 'jetpack' ); | ||||
| 		} | ||||
|  | ||||
| 		// Set defaults. | ||||
| 		$defaults = array( | ||||
| 			'icon'     => '', | ||||
| 			'fallback' => false, | ||||
| 		); | ||||
|  | ||||
| 		// Parse args. | ||||
| 		$args = wp_parse_args( $args, $defaults ); | ||||
|  | ||||
| 		// Set aria hidden. | ||||
| 		$aria_hidden = ' aria-hidden="true"'; | ||||
|  | ||||
| 		// Begin SVG markup. | ||||
| 		$svg = '<svg class="icon icon-' . esc_attr( $args['icon'] ) . '"' . $aria_hidden . ' role="img">'; | ||||
|  | ||||
| 		/* | ||||
| 		 * Display the icon. | ||||
| 		 * | ||||
| 		 * The whitespace around `<use>` is intentional - it is a work around to a keyboard navigation bug in Safari 10. | ||||
| 		 * | ||||
| 		 * See https://core.trac.wordpress.org/ticket/38387. | ||||
| 		 */ | ||||
| 		$svg .= ' <use href="#icon-' . esc_html( $args['icon'] ) . '" xlink:href="#icon-' . esc_html( $args['icon'] ) . '"></use> '; | ||||
|  | ||||
| 		// Add some markup to use as a fallback for browsers that do not support SVGs. | ||||
| 		if ( $args['fallback'] ) { | ||||
| 			$svg .= '<span class="svg-fallback icon-' . esc_attr( $args['icon'] ) . '"></span>'; | ||||
| 		} | ||||
|  | ||||
| 		$svg .= '</svg>'; | ||||
|  | ||||
| 		return $svg; | ||||
| 	} | ||||
| endif; | ||||
|  | ||||
| if ( ! function_exists( 'jetpack_social_menu_nav_menu_social_icons' ) ) : | ||||
| 	/** | ||||
| 	 * Display SVG icons in social links menu. | ||||
| 	 * | ||||
| 	 * @param  string  $item_output The menu item output. | ||||
| 	 * @param  WP_Post $item        Menu item object. | ||||
| 	 * @param  int     $depth       Depth of the menu. | ||||
| 	 * @param  array   $args        wp_nav_menu() arguments. | ||||
| 	 * @return string  $item_output The menu item output with social icon. | ||||
| 	 */ | ||||
| 	function jetpack_social_menu_nav_menu_social_icons( $item_output, $item, $depth, $args ) { | ||||
| 		// Get supported social icons. | ||||
| 		$social_icons = jetpack_social_menu_social_links_icons(); | ||||
|  | ||||
| 		// Change SVG icon inside social links menu if there is supported URL. | ||||
| 		if ( 'jetpack-social-menu' === $args->theme_location ) { | ||||
| 			foreach ( $social_icons as $attr => $value ) { | ||||
| 				if ( false !== strpos( $item_output, $attr ) ) { | ||||
| 					$item_output = str_replace( $args->link_after, '</span>' . jetpack_social_menu_get_svg( array( 'icon' => esc_attr( $value ) ) ), $item_output ); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		return $item_output; | ||||
| 	} | ||||
| 	add_filter( 'walker_nav_menu_start_el', 'jetpack_social_menu_nav_menu_social_icons', 10, 4 ); | ||||
| endif; | ||||
|  | ||||
| if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) : | ||||
| 	/** | ||||
| 	 * Returns an array of supported social links (URL and icon name). | ||||
| 	 * | ||||
| 	 * @return array $social_links_icons | ||||
| 	 */ | ||||
| 	function jetpack_social_menu_social_links_icons() { | ||||
| 		// Supported social links icons. | ||||
| 		$social_links_icons = array( | ||||
| 			'500px.com'         => '500px', | ||||
| 			'amazon.cn'         => 'amazon', | ||||
| 			'amazon.in'         => 'amazon', | ||||
| 			'amazon.fr'         => 'amazon', | ||||
| 			'amazon.de'         => 'amazon', | ||||
| 			'amazon.it'         => 'amazon', | ||||
| 			'amazon.nl'         => 'amazon', | ||||
| 			'amazon.es'         => 'amazon', | ||||
| 			'amazon.co'         => 'amazon', | ||||
| 			'amazon.ca'         => 'amazon', | ||||
| 			'amazon.com'        => 'amazon', | ||||
| 			'apple.com'         => 'apple', | ||||
| 			'itunes.com'        => 'apple', | ||||
| 			'bandcamp.com'      => 'bandcamp', | ||||
| 			'behance.net'       => 'behance', | ||||
| 			'codepen.io'        => 'codepen', | ||||
| 			'deviantart.com'    => 'deviantart', | ||||
| 			'discord.gg'        => 'discord', | ||||
| 			'discordapp.com'    => 'discord', | ||||
| 			'digg.com'          => 'digg', | ||||
| 			'dribbble.com'      => 'dribbble', | ||||
| 			'dropbox.com'       => 'dropbox', | ||||
| 			'etsy.com'          => 'etsy', | ||||
| 			'facebook.com'      => 'facebook', | ||||
| 			'/feed/'            => 'feed', | ||||
| 			'flickr.com'        => 'flickr', | ||||
| 			'foursquare.com'    => 'foursquare', | ||||
| 			'goodreads.com'     => 'goodreads', | ||||
| 			'google.com'        => 'google', | ||||
| 			'github.com'        => 'github', | ||||
| 			'instagram.com'     => 'instagram', | ||||
| 			'linkedin.com'      => 'linkedin', | ||||
| 			'mailto:'           => 'mail', | ||||
| 			'meetup.com'        => 'meetup', | ||||
| 			'medium.com'        => 'medium', | ||||
| 			'pinterest.'        => 'pinterest', | ||||
| 			'getpocket.com'     => 'pocket', | ||||
| 			'reddit.com'        => 'reddit', | ||||
| 			'skype.com'         => 'skype', | ||||
| 			'skype:'            => 'skype', | ||||
| 			'slideshare.net'    => 'slideshare', | ||||
| 			'snapchat.com'      => 'snapchat', | ||||
| 			'soundcloud.com'    => 'soundcloud', | ||||
| 			'spotify.com'       => 'spotify', | ||||
| 			'stackoverflow.com' => 'stackoverflow', | ||||
| 			'stumbleupon.com'   => 'stumbleupon', | ||||
| 			'tumblr.com'        => 'tumblr', | ||||
| 			'twitch.tv'         => 'twitch', | ||||
| 			'twitter.com'       => 'twitter', | ||||
| 			'vimeo.com'         => 'vimeo', | ||||
| 			'vk.com'            => 'vk', | ||||
| 			'wordpress.org'     => 'wordpress', | ||||
| 			'wordpress.com'     => 'wordpress', | ||||
| 			'yelp.com'          => 'yelp', | ||||
| 			'youtube.com'       => 'youtube', | ||||
| 		); | ||||
|  | ||||
| 		return $social_links_icons; | ||||
| 	} | ||||
| endif; | ||||
| @@ -0,0 +1,197 @@ | ||||
| /*-------------------------------------------------------------- | ||||
| Global | ||||
| --------------------------------------------------------------*/ | ||||
| .jetpack-social-navigation ul { | ||||
| 	display: block; | ||||
| 	margin: 0 0 1.5em; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .jetpack-social-navigation li { | ||||
| 	display: inline-block; | ||||
| 	margin: 0; | ||||
| 	line-height: 1; | ||||
| } | ||||
|  | ||||
| .jetpack-social-navigation a { | ||||
| 	border: 0; | ||||
| 	height: 1em; | ||||
| 	text-decoration: none; | ||||
| 	width: 1em; | ||||
| } | ||||
|  | ||||
| /*-------------------------------------------------------------- | ||||
| SVG | ||||
| --------------------------------------------------------------*/ | ||||
| .jetpack-social-navigation-svg .icon { | ||||
| 	color: inherit; | ||||
| 	fill: currentColor; | ||||
| 	height: 1em; | ||||
| 	vertical-align: middle; | ||||
| 	width: 1em; | ||||
| } | ||||
|  | ||||
| /*-------------------------------------------------------------- | ||||
| Genericons | ||||
| --------------------------------------------------------------*/ | ||||
| .jetpack-social-navigation-genericons a:before { | ||||
| 	-webkit-font-smoothing: antialiased; | ||||
| 	-moz-osx-font-smoothing: grayscale; | ||||
| 	display: inline-block; | ||||
| 	font-family: Genericons; | ||||
| 	font-size: 1em; | ||||
| 	font-style: normal; | ||||
| 	font-weight: normal; | ||||
| 	height: 1em; | ||||
| 	line-height: 1; | ||||
| 	speak: none; | ||||
| 	text-decoration: inherit; | ||||
| 	vertical-align: top; | ||||
| 	width: 1em; | ||||
| } | ||||
|  | ||||
| /* Default */ | ||||
| .jetpack-social-navigation-genericons a:before { | ||||
| 	content: "\f415"; | ||||
| } | ||||
|  | ||||
| /* CodePen */ | ||||
| .jetpack-social-navigation-genericons a[href*="codepen.io"]:before { | ||||
| 	content: "\f216"; | ||||
| } | ||||
|  | ||||
| /* Digg */ | ||||
| .jetpack-social-navigation-genericons a[href*="digg.com"]:before { | ||||
| 	content: "\f221"; | ||||
| } | ||||
|  | ||||
| /* Dribbble */ | ||||
| .jetpack-social-navigation-genericons a[href*="dribbble.com"]:before { | ||||
| 	content: "\f201"; | ||||
| } | ||||
|  | ||||
| /* Dropbox */ | ||||
| .jetpack-social-navigation-genericons a[href*="dropbox.com"]:before { | ||||
| 	content: "\f225"; | ||||
| } | ||||
|  | ||||
| /* Email */ | ||||
| .jetpack-social-navigation-genericons a[href*="mailto:"]:before { | ||||
| 	content: "\f410"; | ||||
| } | ||||
|  | ||||
| /* Facebook */ | ||||
| .jetpack-social-navigation-genericons a[href*="facebook.com"]:before { | ||||
| 	content: "\f203"; | ||||
| } | ||||
|  | ||||
| /* Flickr */ | ||||
| .jetpack-social-navigation-genericons a[href*="flickr.com"]:before { | ||||
| 	content: "\f211"; | ||||
| } | ||||
|  | ||||
| /* Foursquare */ | ||||
| .jetpack-social-navigation-genericons a[href*="foursquare.com"]:before { | ||||
| 	content: "\f226"; | ||||
| } | ||||
|  | ||||
| /* GitHub */ | ||||
| .jetpack-social-navigation-genericons a[href*="github.com"]:before { | ||||
| 	content: "\f200"; | ||||
| } | ||||
|  | ||||
| /* Google Plus */ | ||||
| .jetpack-social-navigation-genericons a[href*="plus.google.com"]:before { | ||||
| 	content: "\f206"; | ||||
| } | ||||
|  | ||||
| /* Instagram */ | ||||
| .jetpack-social-navigation-genericons a[href*="instagram.com"]:before { | ||||
| 	content: "\f215"; | ||||
| } | ||||
|  | ||||
| /* LinkedIn */ | ||||
| .jetpack-social-navigation-genericons a[href*="linkedin.com"]:before { | ||||
| 	content: "\f208"; | ||||
| } | ||||
|  | ||||
| /* Path */ | ||||
| .jetpack-social-navigation-genericons a[href*="path.com"]:before { | ||||
| 	content: "\f219"; | ||||
| } | ||||
|  | ||||
| /* Pinterest */ | ||||
| .jetpack-social-navigation-genericons a[href*="pinterest."]:before { | ||||
| 	content: "\f210"; | ||||
| } | ||||
|  | ||||
| /* Pocket */ | ||||
| .jetpack-social-navigation-genericons a[href*="getpocket.com"]:before { | ||||
| 	content: "\f224"; | ||||
| } | ||||
|  | ||||
| /* Polldaddy */ | ||||
| .jetpack-social-navigation-genericons a[href*="polldaddy.com"]:before { | ||||
| 	content: "\f217"; | ||||
| } | ||||
|  | ||||
| /* Reddit */ | ||||
| .jetpack-social-navigation-genericons a[href*="reddit.com"]:before { | ||||
| 	content: "\f222"; | ||||
| } | ||||
|  | ||||
| /* RSS Feed */ | ||||
| .jetpack-social-navigation-genericons a[href$="/feed/"]:before { | ||||
| 	content: "\f413"; | ||||
| } | ||||
|  | ||||
| /* Skype */ | ||||
| .jetpack-social-navigation-genericons a[href*="skype:"]:before { | ||||
| 	content: "\f220"; | ||||
| } | ||||
|  | ||||
| /* Spotify */ | ||||
| .jetpack-social-navigation-genericons a[href*="spotify.com"]:before { | ||||
| 	content: "\f515"; | ||||
| } | ||||
|  | ||||
| /* StumbleUpon */ | ||||
| .jetpack-social-navigation-genericons a[href*="stumbleupon.com"]:before { | ||||
| 	content: "\f223"; | ||||
| } | ||||
|  | ||||
| /* Tumblr */ | ||||
| .jetpack-social-navigation-genericons a[href*="tumblr.com"]:before { | ||||
| 	content: "\f214"; | ||||
| } | ||||
|  | ||||
| /* Twitch */ | ||||
| .jetpack-social-navigation-genericons a[href*="twitch.tv"]:before { | ||||
| 	content: "\f516"; | ||||
| } | ||||
|  | ||||
| /* Twitter */ | ||||
| .jetpack-social-navigation-genericons a[href*="twitter.com"]:before { | ||||
| 	content: "\f202"; | ||||
| } | ||||
|  | ||||
| /* Vimeo */ | ||||
| .jetpack-social-navigation-genericons a[href*="vimeo.com"]:before { | ||||
| 	content: "\f212"; | ||||
| } | ||||
|  | ||||
| /* Vine */ | ||||
| .jetpack-social-navigation-genericons a[href*="vine.co"]:before { | ||||
| 	content: "\f517"; | ||||
| } | ||||
|  | ||||
| /* WordPress */ | ||||
| .jetpack-social-navigation-genericons a[href*="wordpress.com"]:before, | ||||
| .jetpack-social-navigation-genericons a[href*="wordpress.org"]:before { | ||||
| 	content: "\f205"; | ||||
| } | ||||
|  | ||||
| /* YouTube */ | ||||
| .jetpack-social-navigation-genericons a[href*="youtube.com"]:before { | ||||
| 	content: "\f213"; | ||||
| } | ||||
| @@ -0,0 +1,137 @@ | ||||
| <svg style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
| <defs> | ||||
| <symbol id="icon-500px" viewBox="0 0 24 24"> | ||||
| <path d="M6.94026,15.1412c.00437.01213.108.29862.168.44064a6.55008,6.55008,0,1,0,6.03191-9.09557,6.68654,6.68654,0,0,0-2.58357.51467A8.53914,8.53914,0,0,0,8.21268,8.61344L8.209,8.61725V3.22948l9.0504-.00008c.32934-.0036.32934-.46353.32934-.61466s0-.61091-.33035-.61467L7.47248,2a.43.43,0,0,0-.43131.42692v7.58355c0,.24466.30476.42131.58793.4819.553.11812.68074-.05864.81617-.2457l.018-.02481A10.52673,10.52673,0,0,1,9.32258,9.258a5.35268,5.35268,0,1,1,7.58985,7.54976,5.417,5.417,0,0,1-3.80867,1.56365,5.17483,5.17483,0,0,1-2.69822-.74478l.00342-4.61111a2.79372,2.79372,0,0,1,.71372-1.78792,2.61611,2.61611,0,0,1,1.98282-.89477,2.75683,2.75683,0,0,1,1.95525.79477,2.66867,2.66867,0,0,1,.79656,1.909,2.724,2.724,0,0,1-2.75849,2.748,4.94651,4.94651,0,0,1-.86254-.13719c-.31234-.093-.44519.34058-.48892.48349-.16811.54966.08453.65862.13687.67489a3.75751,3.75751,0,0,0,1.25234.18375,3.94634,3.94634,0,1,0-2.82444-6.742,3.67478,3.67478,0,0,0-1.13028,2.584l-.00041.02323c-.0035.11667-.00579,2.881-.00644,3.78811l-.00407-.00451a6.18521,6.18521,0,0,1-1.0851-1.86092c-.10544-.27856-.34358-.22925-.66857-.12917-.14192.04372-.57386.17677-.47833.489Zm4.65165-1.08338a.51346.51346,0,0,0,.19513.31818l.02276.022a.52945.52945,0,0,0,.3517.18416.24242.24242,0,0,0,.16577-.0611c.05473-.05082.67382-.67812.73287-.738l.69041.68819a.28978.28978,0,0,0,.21437.11032.53239.53239,0,0,0,.35708-.19486c.29792-.30419.14885-.46821.07676-.54751l-.69954-.69975.72952-.73469c.16-.17311.01874-.35708-.12218-.498-.20461-.20461-.402-.25742-.52855-.14083l-.7254.72665-.73354-.73375a.20128.20128,0,0,0-.14179-.05695.54135.54135,0,0,0-.34379.19648c-.22561.22555-.274.38149-.15656.5059l.73374.7315-.72942.73072A.26589.26589,0,0,0,11.59191,14.05782Zm1.59866-9.915A8.86081,8.86081,0,0,0,9.854,4.776a.26169.26169,0,0,0-.16938.22759.92978.92978,0,0,0,.08619.42094c.05682.14524.20779.531.50006.41955a8.40969,8.40969,0,0,1,2.91968-.55484,7.87875,7.87875,0,0,1,3.086.62286,8.61817,8.61817,0,0,1,2.30562,1.49315.2781.2781,0,0,0,.18318.07586c.15529,0,.30425-.15253.43167-.29551.21268-.23861.35873-.4369.1492-.63538a8.50425,8.50425,0,0,0-2.62312-1.694A9.0177,9.0177,0,0,0,13.19058,4.14283ZM19.50945,18.6236h0a.93171.93171,0,0,0-.36642-.25406.26589.26589,0,0,0-.27613.06613l-.06943.06929A7.90606,7.90606,0,0,1,7.60639,18.505a7.57284,7.57284,0,0,1-1.696-2.51537,8.58715,8.58715,0,0,1-.5147-1.77754l-.00871-.04864c-.04939-.25873-.28755-.27684-.62981-.22448-.14234.02178-.5755.088-.53426.39969l.001.00712a9.08807,9.08807,0,0,0,15.406,4.99094c.00193-.00192.04753-.04718.0725-.07436C19.79425,19.16234,19.87422,18.98728,19.50945,18.6236Z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-amazon" viewBox="0 0 24 24"> | ||||
| <path d="M13.582,8.182C11.934,8.367,9.78,8.49,8.238,9.166c-1.781,0.769-3.03,2.337-3.03,4.644 c0,2.953,1.86,4.429,4.253,4.429c2.02,0,3.125-0.477,4.685-2.065c0.516,0.747,0.685,1.109,1.629,1.894 c0.212,0.114,0.483,0.103,0.672-0.066l0.006,0.006c0.567-0.505,1.599-1.401,2.18-1.888c0.231-0.188,0.19-0.496,0.009-0.754 c-0.52-0.718-1.072-1.303-1.072-2.634V8.305c0-1.876,0.133-3.599-1.249-4.891C15.23,2.369,13.422,2,12.04,2 C9.336,2,6.318,3.01,5.686,6.351C5.618,6.706,5.877,6.893,6.109,6.945l2.754,0.298C9.121,7.23,9.308,6.977,9.357,6.72 c0.236-1.151,1.2-1.706,2.284-1.706c0.584,0,1.249,0.215,1.595,0.738c0.398,0.584,0.346,1.384,0.346,2.061V8.182z M13.049,14.088 c-0.451,0.8-1.169,1.291-1.967,1.291c-1.09,0-1.728-0.83-1.728-2.061c0-2.42,2.171-2.86,4.227-2.86v0.615 C13.582,12.181,13.608,13.104,13.049,14.088z M20.683,19.339C18.329,21.076,14.917,22,11.979,22c-4.118,0-7.826-1.522-10.632-4.057 c-0.22-0.199-0.024-0.471,0.241-0.317c3.027,1.762,6.771,2.823,10.639,2.823c2.608,0,5.476-0.541,8.115-1.66 C20.739,18.62,21.072,19.051,20.683,19.339z M21.336,21.043c-0.194,0.163-0.379,0.076-0.293-0.139 c0.284-0.71,0.92-2.298,0.619-2.684c-0.301-0.386-1.99-0.183-2.749-0.092c-0.23,0.027-0.266-0.173-0.059-0.319 c1.348-0.946,3.555-0.673,3.811-0.356C22.925,17.773,22.599,19.986,21.336,21.043z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-apple" viewBox="0 0 24 24"> | ||||
| <path d="M20.07,17.586a10.874,10.874,0,0,1-1.075,1.933,9.822,9.822,0,0,1-1.385,1.674,2.687,2.687,0,0,1-1.78.784,4.462,4.462,0,0,1-1.644-.393,4.718,4.718,0,0,0-1.77-.391,4.878,4.878,0,0,0-1.82.391A4.9,4.9,0,0,1,9.021,22a2.53,2.53,0,0,1-1.82-.8A10.314,10.314,0,0,1,5.752,19.46,11.987,11.987,0,0,1,4.22,16.417a11.143,11.143,0,0,1-.643-3.627,6.623,6.623,0,0,1,.87-3.465A5.1,5.1,0,0,1,6.268,7.483a4.9,4.9,0,0,1,2.463-.695,5.8,5.8,0,0,1,1.9.443,6.123,6.123,0,0,0,1.511.444,9.04,9.04,0,0,0,1.675-.523,5.537,5.537,0,0,1,2.277-.4,4.835,4.835,0,0,1,3.788,1.994,4.213,4.213,0,0,0-2.235,3.827,4.222,4.222,0,0,0,1.386,3.181,4.556,4.556,0,0,0,1.385.909q-.167.483-.353.927ZM16.211,2.4a4.267,4.267,0,0,1-1.094,2.8,3.726,3.726,0,0,1-3.1,1.528A3.114,3.114,0,0,1,12,6.347a4.384,4.384,0,0,1,1.16-2.828,4.467,4.467,0,0,1,1.414-1.061A4.215,4.215,0,0,1,16.19,2a3.633,3.633,0,0,1,.021.4Z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-bandcamp" viewBox="0 0 24 24"> | ||||
| <path d="M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289"/> | ||||
| </symbol> | ||||
| <symbol id="icon-behance" viewBox="0 0 24 24"> | ||||
| <path d="M7.799,5.698c0.589,0,1.12,0.051,1.606,0.156c0.482,0.102,0.894,0.273,1.241,0.507c0.344,0.235,0.612,0.546,0.804,0.938 c0.188,0.387,0.281,0.871,0.281,1.443c0,0.619-0.141,1.137-0.421,1.551c-0.284,0.413-0.7,0.751-1.255,1.014 c0.756,0.218,1.317,0.601,1.689,1.146c0.374,0.549,0.557,1.205,0.557,1.975c0,0.623-0.12,1.161-0.359,1.612 c-0.241,0.457-0.569,0.828-0.973,1.114c-0.408,0.288-0.876,0.5-1.399,0.637C9.052,17.931,8.514,18,7.963,18H2V5.698H7.799 M7.449,10.668c0.481,0,0.878-0.114,1.192-0.345c0.311-0.228,0.463-0.603,0.463-1.119c0-0.286-0.051-0.523-0.152-0.707 C8.848,8.315,8.711,8.171,8.536,8.07C8.362,7.966,8.166,7.894,7.94,7.854c-0.224-0.044-0.457-0.06-0.697-0.06H4.709v2.874H7.449z M7.6,15.905c0.267,0,0.521-0.024,0.759-0.077c0.243-0.053,0.457-0.137,0.637-0.261c0.182-0.12,0.332-0.283,0.441-0.491 C9.547,14.87,9.6,14.602,9.6,14.278c0-0.633-0.18-1.084-0.533-1.357c-0.356-0.27-0.83-0.404-1.413-0.404H4.709v3.388L7.6,15.905z M16.162,15.864c0.367,0.358,0.897,0.538,1.583,0.538c0.493,0,0.92-0.125,1.277-0.374c0.354-0.248,0.571-0.514,0.654-0.79h2.155 c-0.347,1.072-0.872,1.838-1.589,2.299C19.534,18,18.67,18.23,17.662,18.23c-0.701,0-1.332-0.113-1.899-0.337 c-0.567-0.227-1.041-0.544-1.439-0.958c-0.389-0.415-0.689-0.907-0.904-1.484c-0.213-0.574-0.32-1.21-0.32-1.899 c0-0.666,0.11-1.288,0.329-1.863c0.222-0.577,0.529-1.075,0.933-1.492c0.406-0.42,0.885-0.751,1.444-0.994 c0.558-0.241,1.175-0.363,1.857-0.363c0.754,0,1.414,0.145,1.98,0.44c0.563,0.291,1.026,0.686,1.389,1.181 c0.363,0.493,0.622,1.057,0.783,1.69c0.16,0.632,0.217,1.292,0.171,1.983h-6.428C15.557,14.84,15.795,15.506,16.162,15.864 M18.973,11.184c-0.291-0.321-0.783-0.496-1.384-0.496c-0.39,0-0.714,0.066-0.973,0.2c-0.254,0.132-0.461,0.297-0.621,0.491 c-0.157,0.197-0.265,0.405-0.328,0.628c-0.063,0.217-0.101,0.413-0.111,0.587h3.98C19.478,11.969,19.265,11.509,18.973,11.184z M15.057,7.738h4.985V6.524h-4.985L15.057,7.738z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-chain" viewBox="0 0 24 24"> | ||||
| <path d="M19.647,16.706a1.134,1.134,0,0,0-.343-.833l-2.549-2.549a1.134,1.134,0,0,0-.833-.343,1.168,1.168,0,0,0-.883.392l.233.226q.2.189.264.264a2.922,2.922,0,0,1,.184.233.986.986,0,0,1,.159.312,1.242,1.242,0,0,1,.043.337,1.172,1.172,0,0,1-1.176,1.176,1.237,1.237,0,0,1-.337-.043,1,1,0,0,1-.312-.159,2.76,2.76,0,0,1-.233-.184q-.073-.068-.264-.264l-.226-.233a1.19,1.19,0,0,0-.4.895,1.134,1.134,0,0,0,.343.833L15.837,19.3a1.13,1.13,0,0,0,.833.331,1.18,1.18,0,0,0,.833-.318l1.8-1.789a1.12,1.12,0,0,0,.343-.821Zm-8.615-8.64a1.134,1.134,0,0,0-.343-.833L8.163,4.7a1.134,1.134,0,0,0-.833-.343,1.184,1.184,0,0,0-.833.331L4.7,6.473a1.12,1.12,0,0,0-.343.821,1.134,1.134,0,0,0,.343.833l2.549,2.549a1.13,1.13,0,0,0,.833.331,1.184,1.184,0,0,0,.883-.38L8.728,10.4q-.2-.189-.264-.264A2.922,2.922,0,0,1,8.28,9.9a.986.986,0,0,1-.159-.312,1.242,1.242,0,0,1-.043-.337A1.172,1.172,0,0,1,9.254,8.079a1.237,1.237,0,0,1,.337.043,1,1,0,0,1,.312.159,2.761,2.761,0,0,1,.233.184q.073.068.264.264l.226.233a1.19,1.19,0,0,0,.4-.895ZM22,16.706a3.343,3.343,0,0,1-1.042,2.488l-1.8,1.789a3.536,3.536,0,0,1-4.988-.025l-2.525-2.537a3.384,3.384,0,0,1-1.017-2.488,3.448,3.448,0,0,1,1.078-2.561l-1.078-1.078a3.434,3.434,0,0,1-2.549,1.078,3.4,3.4,0,0,1-2.5-1.029L3.029,9.794A3.4,3.4,0,0,1,2,7.294,3.343,3.343,0,0,1,3.042,4.806l1.8-1.789A3.384,3.384,0,0,1,7.331,2a3.357,3.357,0,0,1,2.5,1.042l2.525,2.537a3.384,3.384,0,0,1,1.017,2.488,3.448,3.448,0,0,1-1.078,2.561l1.078,1.078a3.551,3.551,0,0,1,5.049-.049l2.549,2.549A3.4,3.4,0,0,1,22,16.706Z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-codepen" viewBox="0 0 24 24"> | ||||
| <path d="M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-deviantart" viewBox="0 0 24 24"> | ||||
| <path d="M 18.19 5.636 18.19 2 18.188 2 14.553 2 14.19 2.366 12.474 5.636 11.935 6 5.81 6 5.81 10.994 9.177 10.994 9.477 11.357 5.81 18.363 5.81 22 5.811 22 9.447 22 9.81 21.634 11.526 18.364 12.065 18 18.19 18 18.19 13.006 14.823 13.006 14.523 12.641 18.19 5.636z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-digg" viewBox="0 0 24 24"> | ||||
| <path d="M4.5,5.4h2.2V16H1V8.5h3.5V5.4L4.5,5.4z M4.5,14.2v-4H3.2v4H4.5z M7.6,8.5V16h2.2V8.5C9.8,8.5,7.6,8.5,7.6,8.5z M7.6,5.4 v2.2h2.2V5.4C9.8,5.4,7.6,5.4,7.6,5.4z M10.7,8.5h5.7v10.1h-5.7v-1.8h3.5V16h-3.5C10.7,16,10.7,8.5,10.7,8.5z M14.2,14.2v-4h-1.3v4 H14.2z M17.3,8.5H23v10.1h-5.7v-1.8h3.5V16h-3.5C17.3,16,17.3,8.5,17.3,8.5z M20.8,14.2v-4h-1.3v4H20.8z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-discord" viewBox="0 0 24 24"> | ||||
| <path d="M10.227 9.957c-.559 0-1 .48-1 1.063 0 .585.453 1.066 1 1.066.558 0 1-.48 1-1.066.007-.582-.442-1.063-1-1.063zm3.574 0c-.559 0-.996.48-.996 1.063 0 .585.449 1.066.996 1.066.558 0 1-.48 1-1.066 0-.582-.442-1.063-1-1.063zm0 0 M18.563 1.918H5.438c-1.11 0-2.008.879-2.008 1.973v12.957c0 1.093.898 1.972 2.007 1.972h11.11l-.52-1.773 1.254 1.14 1.184 1.075 2.105 1.82V3.891c0-1.094-.898-1.973-2.008-1.973zM14.78 14.434s-.351-.414-.644-.778c1.281-.355 1.773-1.14 1.773-1.14a5.745 5.745 0 0 1-1.129.566c-.488.2-.96.336-1.418.41a7.07 7.07 0 0 1-2.539-.008 8.133 8.133 0 0 1-1.441-.414 6.219 6.219 0 0 1-.715-.324c-.027-.02-.059-.027-.086-.047a.113.113 0 0 1-.039-.031c-.176-.094-.273-.16-.273-.16s.468.765 1.71 1.129c-.293.363-.656.797-.656.797-2.164-.067-2.984-1.457-2.984-1.457 0-3.086 1.41-5.586 1.41-5.586 1.41-1.036 2.75-1.008 2.75-1.008l.098.113c-1.762.5-2.575 1.258-2.575 1.258s.215-.117.579-.277c1.046-.454 1.878-.579 2.222-.606.059-.008.11-.02.168-.02a8.728 8.728 0 0 1 1.977-.019c.933.106 1.93.375 2.949.922 0 0-.773-.719-2.438-1.219l.137-.152s1.34-.028 2.75 1.008c0 0 1.414 2.5 1.414 5.586 0 0-.836 1.39-3 1.457zm0 0"/> | ||||
| </symbol> | ||||
| <symbol id="icon-dribbble" viewBox="0 0 24 24"> | ||||
| <path d="M12,22C6.486,22,2,17.514,2,12S6.486,2,12,2c5.514,0,10,4.486,10,10S17.514,22,12,22z M20.434,13.369 c-0.292-0.092-2.644-0.794-5.32-0.365c1.117,3.07,1.572,5.57,1.659,6.09C18.689,17.798,20.053,15.745,20.434,13.369z M15.336,19.876c-0.127-0.749-0.623-3.361-1.822-6.477c-0.019,0.006-0.038,0.013-0.056,0.019c-4.818,1.679-6.547,5.02-6.701,5.334 c1.448,1.129,3.268,1.803,5.243,1.803C13.183,20.555,14.311,20.313,15.336,19.876z M5.654,17.724 c0.193-0.331,2.538-4.213,6.943-5.637c0.111-0.036,0.224-0.07,0.337-0.102c-0.214-0.485-0.448-0.971-0.692-1.45 c-4.266,1.277-8.405,1.223-8.778,1.216c-0.003,0.087-0.004,0.174-0.004,0.261C3.458,14.207,4.29,16.21,5.654,17.724z M3.639,10.264 c0.382,0.005,3.901,0.02,7.897-1.041c-1.415-2.516-2.942-4.631-3.167-4.94C5.979,5.41,4.193,7.613,3.639,10.264z M9.998,3.709 c0.236,0.316,1.787,2.429,3.187,5c3.037-1.138,4.323-2.867,4.477-3.085C16.154,4.286,14.17,3.471,12,3.471 C11.311,3.471,10.641,3.554,9.998,3.709z M18.612,6.612C18.432,6.855,17,8.69,13.842,9.979c0.199,0.407,0.389,0.821,0.567,1.237 c0.063,0.148,0.124,0.295,0.184,0.441c2.842-0.357,5.666,0.215,5.948,0.275C20.522,9.916,19.801,8.065,18.612,6.612z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-dropbox" viewBox="0 0 24 24"> | ||||
| <path d="M12,6.134L6.069,9.797L2,6.54l5.883-3.843L12,6.134z M2,13.054l5.883,3.843L12,13.459L6.069,9.797L2,13.054z M12,13.459 l4.116,3.439L22,13.054l-4.069-3.257L12,13.459z M22,6.54l-5.884-3.843L12,6.134l5.931,3.663L22,6.54z M12.011,14.2l-4.129,3.426 l-1.767-1.153v1.291l5.896,3.539l5.897-3.539v-1.291l-1.769,1.153L12.011,14.2z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-etsy" viewBox="0 0 24 24"> | ||||
| <path d="M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-facebook" viewBox="0 0 24 24"> | ||||
| <path d="M20.007,3H3.993C3.445,3,3,3.445,3,3.993v16.013C3,20.555,3.445,21,3.993,21h8.621v-6.971h-2.346v-2.717h2.346V9.31 c0-2.325,1.42-3.591,3.494-3.591c0.993,0,1.847,0.074,2.096,0.107v2.43l-1.438,0.001c-1.128,0-1.346,0.536-1.346,1.323v1.734h2.69 l-0.35,2.717h-2.34V21h4.587C20.555,21,21,20.555,21,20.007V3.993C21,3.445,20.555,3,20.007,3z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-feed" viewBox="0 0 24 24"> | ||||
| <path d="M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-flickr" viewBox="0 0 24 24"> | ||||
| <path d="M6.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5S9.25,7,6.5,7z M17.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5 S20.25,7,17.5,7z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-foursquare" viewBox="0 0 24 24"> | ||||
| <path d="M17.573,2c0,0-9.197,0-10.668,0S5,3.107,5,3.805s0,16.948,0,16.948c0,0.785,0.422,1.077,0.66,1.172 c0.238,0.097,0.892,0.177,1.285-0.275c0,0,5.035-5.843,5.122-5.93c0.132-0.132,0.132-0.132,0.262-0.132h3.26 c1.368,0,1.588-0.977,1.732-1.552c0.078-0.318,0.692-3.428,1.225-6.122l0.675-3.368C19.56,2.893,19.14,2,17.573,2z M16.495,7.22 c-0.053,0.252-0.372,0.518-0.665,0.518c-0.293,0-4.157,0-4.157,0c-0.467,0-0.802,0.318-0.802,0.787v0.508 c0,0.467,0.337,0.798,0.805,0.798c0,0,3.197,0,3.528,0s0.655,0.362,0.583,0.715c-0.072,0.353-0.407,2.102-0.448,2.295 c-0.04,0.193-0.262,0.523-0.655,0.523c-0.33,0-2.88,0-2.88,0c-0.523,0-0.683,0.068-1.033,0.503 c-0.35,0.437-3.505,4.223-3.505,4.223c-0.032,0.035-0.063,0.027-0.063-0.015V4.852c0-0.298,0.26-0.648,0.648-0.648 c0,0,8.228,0,8.562,0c0.315,0,0.61,0.297,0.528,0.683L16.495,7.22z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-goodreads" viewBox="0 0 24 24"> | ||||
| <path d="M17.3,17.5c-0.2,0.8-0.5,1.4-1,1.9c-0.4,0.5-1,0.9-1.7,1.2C13.9,20.9,13.1,21,12,21c-0.6,0-1.3-0.1-1.9-0.2 c-0.6-0.1-1.1-0.4-1.6-0.7c-0.5-0.3-0.9-0.7-1.2-1.2c-0.3-0.5-0.5-1.1-0.5-1.7h1.5c0.1,0.5,0.2,0.9,0.5,1.2 c0.2,0.3,0.5,0.6,0.9,0.8c0.3,0.2,0.7,0.3,1.1,0.4c0.4,0.1,0.8,0.1,1.2,0.1c1.4,0,2.5-0.4,3.1-1.2c0.6-0.8,1-2,1-3.5v-1.7h0 c-0.4,0.8-0.9,1.4-1.6,1.9c-0.7,0.5-1.5,0.7-2.4,0.7c-1,0-1.9-0.2-2.6-0.5C8.7,15,8.1,14.5,7.7,14c-0.5-0.6-0.8-1.3-1-2.1 c-0.2-0.8-0.3-1.6-0.3-2.5c0-0.9,0.1-1.7,0.4-2.5c0.3-0.8,0.6-1.5,1.1-2c0.5-0.6,1.1-1,1.8-1.4C10.3,3.2,11.1,3,12,3 c0.5,0,0.9,0.1,1.3,0.2c0.4,0.1,0.8,0.3,1.1,0.5c0.3,0.2,0.6,0.5,0.9,0.8c0.3,0.3,0.5,0.6,0.6,1h0V3.4h1.5V15 C17.6,15.9,17.5,16.7,17.3,17.5z M13.8,14.1c0.5-0.3,0.9-0.7,1.3-1.1c0.3-0.5,0.6-1,0.8-1.6c0.2-0.6,0.3-1.2,0.3-1.9 c0-0.6-0.1-1.2-0.2-1.9c-0.1-0.6-0.4-1.2-0.7-1.7c-0.3-0.5-0.7-0.9-1.3-1.2c-0.5-0.3-1.1-0.5-1.9-0.5s-1.4,0.2-1.9,0.5 c-0.5,0.3-1,0.7-1.3,1.2C8.5,6.4,8.3,7,8.1,7.6C8,8.2,7.9,8.9,7.9,9.5c0,0.6,0.1,1.3,0.2,1.9C8.3,12,8.6,12.5,8.9,13 c0.3,0.5,0.8,0.8,1.3,1.1c0.5,0.3,1.1,0.4,1.9,0.4C12.7,14.5,13.3,14.4,13.8,14.1z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-google" viewBox="0 0 24 24"> | ||||
| <path d="M12.02,10.18v3.72v0.01h5.51c-0.26,1.57-1.67,4.22-5.5,4.22c-3.31,0-6.01-2.75-6.01-6.12s2.7-6.12,6.01-6.12 c1.87,0,3.13,0.8,3.85,1.48l2.84-2.76C16.99,2.99,14.73,2,12.03,2c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.77,0,9.6-4.06,9.6-9.77 c0-0.83-0.11-1.42-0.25-2.05H12.02z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-github" viewBox="0 0 24 24"> | ||||
| <path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 | ||||
| c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-instagram" viewBox="0 0 24 24"> | ||||
| <path d="M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-linkedin" viewBox="0 0 24 24"> | ||||
| <path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-mail" viewBox="0 0 24 24"> | ||||
| <path d="M20,4H4C2.895,4,2,4.895,2,6v12c0,1.105,0.895,2,2,2h16c1.105,0,2-0.895,2-2V6C22,4.895,21.105,4,20,4z M20,8.236l-8,4.882 L4,8.236V6h16V8.236z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-meetup" viewBox="0 0 24 24"> | ||||
| <path d="M19.24775,14.722a3.57032,3.57032,0,0,1-2.94457,3.52073,3.61886,3.61886,0,0,1-.64652.05634c-.07314-.0008-.10187.02846-.12507.09547A2.38881,2.38881,0,0,1,13.49453,20.094a2.33092,2.33092,0,0,1-1.827-.50716.13635.13635,0,0,0-.19878-.00408,3.191,3.191,0,0,1-2.104.60248,3.26309,3.26309,0,0,1-3.00324-2.71993,2.19076,2.19076,0,0,1-.03512-.30865c-.00156-.08579-.03413-.1189-.11608-.13493a2.86421,2.86421,0,0,1-1.23189-.56111,2.945,2.945,0,0,1-1.166-2.05749,2.97484,2.97484,0,0,1,.87524-2.50774.112.112,0,0,0,.02091-.16107,2.7213,2.7213,0,0,1-.36648-1.48A2.81256,2.81256,0,0,1,6.57673,7.58838a.35764.35764,0,0,0,.28869-.22819,4.2208,4.2208,0,0,1,6.02892-1.90111.25161.25161,0,0,0,.22023.0243,3.65608,3.65608,0,0,1,3.76031.90678A3.57244,3.57244,0,0,1,17.95918,8.626a2.97339,2.97339,0,0,1,.01829.57356.10637.10637,0,0,0,.0853.12792,1.97669,1.97669,0,0,1,1.27939,1.33733,2.00266,2.00266,0,0,1-.57112,2.12652c-.05284.05166-.04168.08328-.01173.13489A3.51189,3.51189,0,0,1,19.24775,14.722Zm-6.35959-.27836a1.6984,1.6984,0,0,0,1.14556,1.61113,3.82039,3.82039,0,0,0,1.036.17935,1.46888,1.46888,0,0,0,.73509-.12255.44082.44082,0,0,0,.26057-.44274.45312.45312,0,0,0-.29211-.43375.97191.97191,0,0,0-.20678-.063c-.21326-.03806-.42754-.0701-.63973-.11215a.54787.54787,0,0,1-.50172-.60926,2.75864,2.75864,0,0,1,.1773-.901c.1763-.535.414-1.045.64183-1.55913A12.686,12.686,0,0,0,15.85,10.47863a1.58461,1.58461,0,0,0,.04861-.87208,1.04531,1.04531,0,0,0-.85432-.83981,1.60658,1.60658,0,0,0-1.23654.16594.27593.27593,0,0,1-.36286-.03413c-.085-.0747-.16594-.15379-.24918-.23055a.98682.98682,0,0,0-1.33577-.04933,6.1468,6.1468,0,0,1-.4989.41615.47762.47762,0,0,1-.51535.03566c-.17448-.09307-.35512-.175-.53531-.25665a1.74949,1.74949,0,0,0-.56476-.2016,1.69943,1.69943,0,0,0-1.61654.91787,8.05815,8.05815,0,0,0-.32952.80126c-.45471,1.2557-.82507,2.53825-1.20838,3.81639a1.24151,1.24151,0,0,0,.51532,1.44389,1.42659,1.42659,0,0,0,1.22008.17166,1.09728,1.09728,0,0,0,.66994-.69764c.44145-1.04111.839-2.09989,1.25981-3.14926.11581-.28876.22792-.57874.35078-.86438a.44548.44548,0,0,1,.69189-.19539.50521.50521,0,0,1,.15044.43836,1.75625,1.75625,0,0,1-.14731.50453c-.27379.69219-.55265,1.38236-.82766,2.074a2.0836,2.0836,0,0,0-.14038.42876.50719.50719,0,0,0,.27082.57722.87236.87236,0,0,0,.66145.02739.99137.99137,0,0,0,.53406-.532q.61571-1.20914,1.228-2.42031.28423-.55863.57585-1.1133a.87189.87189,0,0,1,.29055-.35253.34987.34987,0,0,1,.37634-.01265.30291.30291,0,0,1,.12434.31459.56716.56716,0,0,1-.04655.1915c-.05318.12739-.10286.25669-.16183.38156-.34118.71775-.68754,1.43273-1.02568,2.152A2.00213,2.00213,0,0,0,12.88816,14.44366Zm4.78568,5.28972a.88573.88573,0,0,0-1.77139.00465.8857.8857,0,0,0,1.77139-.00465Zm-14.83838-7.296a.84329.84329,0,1,0,.00827-1.68655.8433.8433,0,0,0-.00827,1.68655Zm10.366-9.43673a.83506.83506,0,1,0-.0091,1.67.83505.83505,0,0,0,.0091-1.67Zm6.85014,5.22a.71651.71651,0,0,0-1.433.0093.71656.71656,0,0,0,1.433-.0093ZM5.37528,6.17908A.63823.63823,0,1,0,6.015,5.54483.62292.62292,0,0,0,5.37528,6.17908Zm6.68214,14.80843a.54949.54949,0,1,0-.55052.541A.54556.54556,0,0,0,12.05742,20.98752Zm8.53235-8.49689a.54777.54777,0,0,0-.54027.54023.53327.53327,0,0,0,.532.52293.51548.51548,0,0,0,.53272-.5237A.53187.53187,0,0,0,20.58977,12.49063ZM7.82846,2.4715a.44927.44927,0,1,0,.44484.44766A.43821.43821,0,0,0,7.82846,2.4715Zm13.775,7.60492a.41186.41186,0,0,0-.40065.39623.40178.40178,0,0,0,.40168.40168A.38994.38994,0,0,0,22,10.48172.39946.39946,0,0,0,21.60349,10.07642ZM5.79193,17.96207a.40469.40469,0,0,0-.397-.39646.399.399,0,0,0-.396.405.39234.39234,0,0,0,.39939.389A.39857.39857,0,0,0,5.79193,17.96207Z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-medium" viewBox="0 0 24 24"> | ||||
| <path d="M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-pinterest" viewBox="0 0 24 24"> | ||||
| <path d="M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2"/> | ||||
| </symbol> | ||||
| <symbol id="icon-pocket" viewBox="0 0 24 24"> | ||||
| <path d="M21.927,4.194C21.667,3.48,20.982,3,20.222,3h-0.01h-1.721H3.839C3.092,3,2.411,3.47,2.145,4.17 C2.066,4.378,2.026,4.594,2.026,4.814v6.035l0.069,1.2c0.29,2.73,1.707,5.115,3.899,6.778c0.039,0.03,0.079,0.059,0.119,0.089 l0.025,0.018c1.175,0.859,2.491,1.441,3.91,1.727c0.655,0.132,1.325,0.2,1.991,0.2c0.615,0,1.232-0.057,1.839-0.17 c0.073-0.014,0.145-0.028,0.219-0.044c0.02-0.004,0.042-0.012,0.064-0.023c1.359-0.297,2.621-0.864,3.753-1.691l0.025-0.018 c0.04-0.029,0.08-0.058,0.119-0.089c2.192-1.664,3.609-4.049,3.898-6.778l0.069-1.2V4.814C22.026,4.605,22,4.398,21.927,4.194z M17.692,10.481l-4.704,4.512c-0.266,0.254-0.608,0.382-0.949,0.382c-0.342,0-0.684-0.128-0.949-0.382l-4.705-4.512 C5.838,9.957,5.82,9.089,6.344,8.542c0.524-0.547,1.392-0.565,1.939-0.04l3.756,3.601l3.755-3.601 c0.547-0.524,1.415-0.506,1.939,0.04C18.256,9.089,18.238,9.956,17.692,10.481z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-reddit" viewBox="0 0 24 24"> | ||||
| <path d="M22,11.816c0-1.256-1.021-2.277-2.277-2.277c-0.593,0-1.122,0.24-1.526,0.614c-1.481-0.965-3.455-1.594-5.647-1.69 l1.171-3.702l3.18,0.748c0.008,1.028,0.846,1.862,1.876,1.862c1.035,0,1.877-0.842,1.877-1.878c0-1.035-0.842-1.877-1.877-1.877 c-0.769,0-1.431,0.466-1.72,1.13l-3.508-0.826c-0.203-0.047-0.399,0.067-0.46,0.261l-1.35,4.268 c-2.316,0.038-4.411,0.67-5.97,1.671C5.368,9.765,4.853,9.539,4.277,9.539C3.021,9.539,2,10.56,2,11.816 c0,0.814,0.433,1.523,1.078,1.925c-0.037,0.221-0.061,0.444-0.061,0.672c0,3.292,4.011,5.97,8.941,5.97s8.941-2.678,8.941-5.97 c0-0.214-0.02-0.424-0.053-0.632C21.533,13.39,22,12.661,22,11.816z M18.776,4.394c0.606,0,1.1,0.493,1.1,1.1s-0.493,1.1-1.1,1.1 s-1.1-0.494-1.1-1.1S18.169,4.394,18.776,4.394z M2.777,11.816c0-0.827,0.672-1.5,1.499-1.5c0.313,0,0.598,0.103,0.838,0.269 c-0.851,0.676-1.477,1.479-1.812,2.36C2.983,12.672,2.777,12.27,2.777,11.816z M11.959,19.606c-4.501,0-8.164-2.329-8.164-5.193 S7.457,9.22,11.959,9.22s8.164,2.329,8.164,5.193S16.46,19.606,11.959,19.606z M20.636,13.001c-0.326-0.89-0.948-1.701-1.797-2.384 c0.248-0.186,0.55-0.301,0.883-0.301c0.827,0,1.5,0.673,1.5,1.5C21.223,12.299,20.992,12.727,20.636,13.001z M8.996,14.704 c-0.76,0-1.397-0.616-1.397-1.376c0-0.76,0.637-1.397,1.397-1.397c0.76,0,1.376,0.637,1.376,1.397 C10.372,14.088,9.756,14.704,8.996,14.704z M16.401,13.328c0,0.76-0.616,1.376-1.376,1.376c-0.76,0-1.399-0.616-1.399-1.376 c0-0.76,0.639-1.397,1.399-1.397C15.785,11.931,16.401,12.568,16.401,13.328z M15.229,16.708c0.152,0.152,0.152,0.398,0,0.55 c-0.674,0.674-1.727,1.002-3.219,1.002c-0.004,0-0.007-0.002-0.011-0.002c-0.004,0-0.007,0.002-0.011,0.002 c-1.492,0-2.544-0.328-3.218-1.002c-0.152-0.152-0.152-0.398,0-0.55c0.152-0.152,0.399-0.151,0.55,0 c0.521,0.521,1.394,0.775,2.669,0.775c0.004,0,0.007,0.002,0.011,0.002c0.004,0,0.007-0.002,0.011-0.002 c1.275,0,2.148-0.253,2.669-0.775C14.831,16.556,15.078,16.556,15.229,16.708z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-skype" viewBox="0 0 24 24"> | ||||
| <path d="M10.113,2.699c0.033-0.006,0.067-0.013,0.1-0.02c0.033,0.017,0.066,0.033,0.098,0.051L10.113,2.699z M2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223z M21.275,13.771 c0.007-0.035,0.011-0.071,0.018-0.106c-0.018-0.031-0.033-0.064-0.052-0.095L21.275,13.771z M13.563,21.199 c0.032,0.019,0.065,0.035,0.096,0.053c0.036-0.006,0.071-0.011,0.105-0.017L13.563,21.199z M22,16.386 c0,1.494-0.581,2.898-1.637,3.953c-1.056,1.057-2.459,1.637-3.953,1.637c-0.967,0-1.914-0.251-2.75-0.725 c0.036-0.006,0.071-0.011,0.105-0.017l-0.202-0.035c0.032,0.019,0.065,0.035,0.096,0.053c-0.543,0.096-1.099,0.147-1.654,0.147 c-1.275,0-2.512-0.25-3.676-0.743c-1.125-0.474-2.135-1.156-3.002-2.023c-0.867-0.867-1.548-1.877-2.023-3.002 c-0.493-1.164-0.743-2.401-0.743-3.676c0-0.546,0.049-1.093,0.142-1.628c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103C2.244,9.5,2,8.566,2,7.615c0-1.493,0.582-2.898,1.637-3.953 c1.056-1.056,2.46-1.638,3.953-1.638c0.915,0,1.818,0.228,2.622,0.655c-0.033,0.007-0.067,0.013-0.1,0.02l0.199,0.031 c-0.032-0.018-0.066-0.034-0.098-0.051c0.002,0,0.003-0.001,0.004-0.001c0.586-0.112,1.187-0.169,1.788-0.169 c1.275,0,2.512,0.249,3.676,0.742c1.124,0.476,2.135,1.156,3.002,2.024c0.868,0.867,1.548,1.877,2.024,3.002 c0.493,1.164,0.743,2.401,0.743,3.676c0,0.575-0.054,1.15-0.157,1.712c-0.018-0.031-0.033-0.064-0.052-0.095l0.034,0.201 c0.007-0.035,0.011-0.071,0.018-0.106C21.754,14.494,22,15.432,22,16.386z M16.817,14.138c0-1.331-0.613-2.743-3.033-3.282 l-2.209-0.49c-0.84-0.192-1.807-0.444-1.807-1.237c0-0.794,0.679-1.348,1.903-1.348c2.468,0,2.243,1.696,3.468,1.696 c0.645,0,1.209-0.379,1.209-1.031c0-1.521-2.435-2.663-4.5-2.663c-2.242,0-4.63,0.952-4.63,3.488c0,1.221,0.436,2.521,2.839,3.123 l2.984,0.745c0.903,0.223,1.129,0.731,1.129,1.189c0,0.762-0.758,1.507-2.129,1.507c-2.679,0-2.307-2.062-3.743-2.062 c-0.645,0-1.113,0.444-1.113,1.078c0,1.236,1.501,2.886,4.856,2.886C15.236,17.737,16.817,16.199,16.817,14.138z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-slideshare" viewBox="0 0 24 24"> | ||||
| <path d="M11.738,10.232a2.142,2.142,0,0,1-.721,1.619,2.556,2.556,0,0,1-3.464,0,2.183,2.183,0,0,1,0-3.243,2.572,2.572,0,0,1,3.464,0A2.136,2.136,0,0,1,11.738,10.232Zm5.7,0a2.15,2.15,0,0,1-.715,1.619,2.563,2.563,0,0,1-3.469,0,2.183,2.183,0,0,1,0-3.243,2.58,2.58,0,0,1,3.469,0A2.144,2.144,0,0,1,17.439,10.232Zm2.555,2.045V4.7a2.128,2.128,0,0,0-.363-1.4,1.614,1.614,0,0,0-1.261-.415H5.742a1.656,1.656,0,0,0-1.278.386A2.246,2.246,0,0,0,4.129,4.7v7.643a8.212,8.212,0,0,0,1,.454q.516.193.92.318a6.847,6.847,0,0,0,.92.21q.516.085.806.125a6.615,6.615,0,0,0,.795.045l.665.006q.16,0,.642-.023t.506-.023a1.438,1.438,0,0,1,1.079.307,1.134,1.134,0,0,0,.114.1,7.215,7.215,0,0,0,.693.579q.079-1.033,1.34-.988.057,0,.415.017l.488.023q.13.006.517.011t.6-.011l.619-.051a5.419,5.419,0,0,0,.693-.1l.7-.153a5.353,5.353,0,0,0,.761-.221q.345-.131.766-.307a8.727,8.727,0,0,0,.818-.392Zm1.851-.057a10.4,10.4,0,0,1-4.225,2.862,6.5,6.5,0,0,1-.261,5.281,3.524,3.524,0,0,1-2.078,1.681,2.452,2.452,0,0,1-2.067-.17,1.915,1.915,0,0,1-.931-1.863l-.011-3.7V16.3l-.279-.068q-.188-.045-.267-.057l-.011,3.839a1.9,1.9,0,0,1-.943,1.863,2.481,2.481,0,0,1-2.078.17,3.519,3.519,0,0,1-2.067-1.7,6.546,6.546,0,0,1-.25-5.258A10.4,10.4,0,0,1,2.152,12.22a.56.56,0,0,1-.045-.715q.238-.3.681.011l.125.079a.767.767,0,0,1,.125.091V3.8a1.987,1.987,0,0,1,.534-1.4,1.7,1.7,0,0,1,1.295-.579H19.141a1.7,1.7,0,0,1,1.295.579,1.985,1.985,0,0,1,.534,1.4v7.882l.238-.17q.443-.307.681-.011a.56.56,0,0,1-.045.715Z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-snapchat" viewBox="0 0 24 24"> | ||||
| <path d="M12.065,2a5.526,5.526,0,0,1,3.132.892A5.854,5.854,0,0,1,17.326,5.4a5.821,5.821,0,0,1,.351,2.33q0,.612-.117,2.487a.809.809,0,0,0,.365.091,1.93,1.93,0,0,0,.664-.176,1.93,1.93,0,0,1,.664-.176,1.3,1.3,0,0,1,.729.234.7.7,0,0,1,.351.6.839.839,0,0,1-.41.7,2.732,2.732,0,0,1-.9.41,3.192,3.192,0,0,0-.9.378.728.728,0,0,0-.41.618,1.575,1.575,0,0,0,.156.56,6.9,6.9,0,0,0,1.334,1.953,5.6,5.6,0,0,0,1.881,1.315,5.875,5.875,0,0,0,1.042.3.42.42,0,0,1,.365.456q0,.911-2.852,1.341a1.379,1.379,0,0,0-.143.507,1.8,1.8,0,0,1-.182.605.451.451,0,0,1-.429.241,5.878,5.878,0,0,1-.807-.085,5.917,5.917,0,0,0-.833-.085,4.217,4.217,0,0,0-.807.065,2.42,2.42,0,0,0-.82.293,6.682,6.682,0,0,0-.755.5q-.351.267-.755.527a3.886,3.886,0,0,1-.989.436A4.471,4.471,0,0,1,11.831,22a4.307,4.307,0,0,1-1.256-.176,3.784,3.784,0,0,1-.976-.436q-.4-.26-.749-.527a6.682,6.682,0,0,0-.755-.5,2.422,2.422,0,0,0-.807-.293,4.432,4.432,0,0,0-.82-.065,5.089,5.089,0,0,0-.853.1,5,5,0,0,1-.762.1.474.474,0,0,1-.456-.241,1.819,1.819,0,0,1-.182-.618,1.411,1.411,0,0,0-.143-.521q-2.852-.429-2.852-1.341a.42.42,0,0,1,.365-.456,5.793,5.793,0,0,0,1.042-.3,5.524,5.524,0,0,0,1.881-1.315,6.789,6.789,0,0,0,1.334-1.953A1.575,1.575,0,0,0,6,12.9a.728.728,0,0,0-.41-.618,3.323,3.323,0,0,0-.9-.384,2.912,2.912,0,0,1-.9-.41.814.814,0,0,1-.41-.684.71.71,0,0,1,.338-.593,1.208,1.208,0,0,1,.716-.241,1.976,1.976,0,0,1,.625.169,2.008,2.008,0,0,0,.69.169.919.919,0,0,0,.416-.091q-.117-1.849-.117-2.474A5.861,5.861,0,0,1,6.385,5.4,5.516,5.516,0,0,1,8.625,2.819,7.075,7.075,0,0,1,12.062,2Z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-soundcloud" viewBox="0 0 24 24"> | ||||
| <path d="M8.9,16.1L9,14L8.9,9.5c0-0.1,0-0.1-0.1-0.1c0,0-0.1-0.1-0.1-0.1c-0.1,0-0.1,0-0.1,0.1c0,0-0.1,0.1-0.1,0.1L8.3,14l0.1,2.1 c0,0.1,0,0.1,0.1,0.1c0,0,0.1,0.1,0.1,0.1C8.8,16.3,8.9,16.3,8.9,16.1z M11.4,15.9l0.1-1.8L11.4,9c0-0.1,0-0.2-0.1-0.2 c0,0-0.1,0-0.1,0s-0.1,0-0.1,0c-0.1,0-0.1,0.1-0.1,0.2l0,0.1l-0.1,5c0,0,0,0.7,0.1,2v0c0,0.1,0,0.1,0.1,0.1c0.1,0.1,0.1,0.1,0.2,0.1 c0.1,0,0.1,0,0.2-0.1c0.1,0,0.1-0.1,0.1-0.2L11.4,15.9z M2.4,12.9L2.5,14l-0.2,1.1c0,0.1,0,0.1-0.1,0.1c0,0-0.1,0-0.1-0.1L2.1,14 l0.1-1.1C2.2,12.9,2.3,12.9,2.4,12.9C2.3,12.9,2.4,12.9,2.4,12.9z M3.1,12.2L3.3,14l-0.2,1.8c0,0.1,0,0.1-0.1,0.1 c-0.1,0-0.1,0-0.1-0.1L2.8,14L3,12.2C3,12.2,3,12.2,3.1,12.2C3.1,12.2,3.1,12.2,3.1,12.2z M3.9,11.9L4.1,14l-0.2,2.1 c0,0.1,0,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L3.5,14l0.2-2.1c0-0.1,0-0.1,0.1-0.1C3.9,11.8,3.9,11.8,3.9,11.9z M4.7,11.9L4.9,14 l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L4.3,14l0.2-2.2c0-0.1,0-0.1,0.1-0.1C4.7,11.7,4.7,11.8,4.7,11.9z M5.6,12 l0.2,2l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c0,0-0.1,0-0.1,0c0,0,0-0.1,0-0.1L5.1,14l0.2-2c0,0,0-0.1,0-0.1s0.1,0,0.1,0 C5.5,11.9,5.5,11.9,5.6,12L5.6,12z M6.4,10.7L6.6,14l-0.2,2.1c0,0,0,0.1,0,0.1c0,0-0.1,0-0.1,0c-0.1,0-0.1-0.1-0.2-0.2L5.9,14 l0.2-3.3c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0C6.4,10.7,6.4,10.7,6.4,10.7z M7.2,10l0.2,4.1l-0.2,2.1c0,0,0,0.1,0,0.1 c0,0-0.1,0-0.1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.1-2.1L6.8,10c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0S7.2,9.9,7.2,10z M8,9.6L8.2,14 L8,16.1c0,0.1-0.1,0.2-0.2,0.2c-0.1,0-0.2-0.1-0.2-0.2L7.5,14l0.1-4.4c0-0.1,0-0.1,0.1-0.1c0,0,0.1-0.1,0.1-0.1c0.1,0,0.1,0,0.1,0.1 C8,9.6,8,9.6,8,9.6z M11.4,16.1L11.4,16.1L11.4,16.1z M9.7,9.6L9.8,14l-0.1,2.1c0,0.1,0,0.1-0.1,0.2s-0.1,0.1-0.2,0.1 c-0.1,0-0.1,0-0.1-0.1s-0.1-0.1-0.1-0.2L9.2,14l0.1-4.4c0-0.1,0-0.1,0.1-0.2s0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S9.7,9.5,9.7,9.6 L9.7,9.6z M10.6,9.8l0.1,4.3l-0.1,2c0,0.1,0,0.1-0.1,0.2c0,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c0,0-0.1-0.1-0.1-0.2L10,14 l0.1-4.3c0-0.1,0-0.1,0.1-0.2c0,0,0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S10.6,9.7,10.6,9.8z M12.4,14l-0.1,2c0,0.1,0,0.1-0.1,0.2 c-0.1,0.1-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2l-0.1-1l-0.1-1l0.1-5.5v0c0-0.1,0-0.2,0.1-0.2 c0.1,0,0.1-0.1,0.2-0.1c0,0,0.1,0,0.1,0c0.1,0,0.1,0.1,0.1,0.2L12.4,14z M22.1,13.9c0,0.7-0.2,1.3-0.7,1.7c-0.5,0.5-1.1,0.7-1.7,0.7 h-6.8c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2V8.2c0-0.1,0.1-0.2,0.2-0.3c0.5-0.2,1-0.3,1.6-0.3c1.1,0,2.1,0.4,2.9,1.1 c0.8,0.8,1.3,1.7,1.4,2.8c0.3-0.1,0.6-0.2,1-0.2c0.7,0,1.3,0.2,1.7,0.7C21.8,12.6,22.1,13.2,22.1,13.9L22.1,13.9z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-spotify" viewBox="0 0 24 24"> | ||||
| <path d="M12,2C6.477,2,2,6.477,2,12c0,5.523,4.477,10,10,10c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2 M16.586,16.424 c-0.18,0.295-0.563,0.387-0.857,0.207c-2.348-1.435-5.304-1.76-8.785-0.964c-0.335,0.077-0.67-0.133-0.746-0.469 c-0.077-0.335,0.132-0.67,0.469-0.746c3.809-0.871,7.077-0.496,9.713,1.115C16.673,15.746,16.766,16.13,16.586,16.424 M17.81,13.7 c-0.226,0.367-0.706,0.482-1.072,0.257c-2.687-1.652-6.785-2.131-9.965-1.166C6.36,12.917,5.925,12.684,5.8,12.273 C5.675,11.86,5.908,11.425,6.32,11.3c3.632-1.102,8.147-0.568,11.234,1.328C17.92,12.854,18.035,13.335,17.81,13.7 M17.915,10.865 c-3.223-1.914-8.54-2.09-11.618-1.156C5.804,9.859,5.281,9.58,5.131,9.086C4.982,8.591,5.26,8.069,5.755,7.919 c3.532-1.072,9.404-0.865,13.115,1.338c0.445,0.264,0.59,0.838,0.327,1.282C18.933,10.983,18.359,11.129,17.915,10.865"/> | ||||
| </symbol> | ||||
| <symbol id="icon-stackoverflow" viewBox="0 0 24 24"> | ||||
| <path d="m 17.817128,20.228605 v -5.337217 h 1.771431 V 22 H 3.6 v -7.108612 h 1.771401 v 5.337217 z" /> | ||||
| <path d="m 7.3267845,14.385359 8.6959295,1.817316 0.368168,-1.748385 -8.6959318,-1.817319 z m 1.1503197,-4.140944 8.0517968,3.749872 0.73617,-1.610385 -8.0518344,-3.7728517 z m 2.2315078,-3.9569154 6.832405,5.6822664 1.12738,-1.357316 -6.832576,-5.6822636 z m 4.417,-4.2099019 -1.426448,1.0581864 5.291191,7.1316119 1.426412,-1.0582745 z M 7.1427296,18.434189 h 8.8799844 v -1.7713 H 7.1427296 Z" /> | ||||
| <path d="m 17.817128,20.228605 v -5.337217 h 1.771431 V 22 H 3.6 v -7.108612 h 1.771401 v 5.337217 z" /> | ||||
| <path d="m 7.3267845,14.385359 8.6959295,1.817316 0.368168,-1.748385 -8.6959318,-1.817319 z m 1.1503197,-4.140944 8.0517968,3.749872 0.73617,-1.610385 -8.0518344,-3.7728517 z m 2.2315078,-3.9569154 6.832405,5.6822664 1.12738,-1.357316 -6.832576,-5.6822636 z m 4.417,-4.2099019 -1.426448,1.0581864 5.291191,7.1316119 1.426412,-1.0582745 z M 7.1427296,18.434189 h 8.8799844 v -1.7713 H 7.1427296 Z" /> | ||||
| </symbol> | ||||
| <symbol id="icon-stumbleupon" viewBox="0 0 24 24"> | ||||
| <path d="M12,4.294c-2.469,0-4.471,2.002-4.471,4.471v6.353c0,0.585-0.474,1.059-1.059,1.059c-0.585,0-1.059-0.474-1.059-1.059 v-2.824H2v2.941c0,2.469,2.002,4.471,4.471,4.471c2.469,0,4.471-2.002,4.471-4.471V8.765c0-0.585,0.474-1.059,1.059-1.059 s1.059,0.474,1.059,1.059v1.294l1.412,0.647l2-0.647V8.765C16.471,6.296,14.469,4.294,12,4.294z M13.059,12.353v2.882 c0,2.469,2.002,4.471,4.471,4.471S22,17.704,22,15.235v-2.824h-3.412v2.824c0,0.585-0.474,1.059-1.059,1.059 c-0.585,0-1.059-0.474-1.059-1.059v-2.882l-2,0.647L13.059,12.353z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-tumblr" viewBox="0 0 24 24"> | ||||
| <path d="M16.749,17.396c-0.357,0.17-1.041,0.319-1.551,0.332c-1.539,0.041-1.837-1.081-1.85-1.896V9.847h3.861V6.937h-3.847V2.039 c0,0-2.77,0-2.817,0c-0.046,0-0.127,0.041-0.138,0.144c-0.165,1.499-0.867,4.13-3.783,5.181v2.484h1.945v6.282 c0,2.151,1.587,5.206,5.775,5.135c1.413-0.024,2.982-0.616,3.329-1.126L16.749,17.396z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-twitch" viewBox="0 0 24 24"> | ||||
| <path d="M16.499,8.089h-1.636v4.91h1.636V8.089z M12,8.089h-1.637v4.91H12V8.089z M4.228,3.178L3,6.451v13.092h4.499V22h2.456 l2.454-2.456h3.681L21,14.636V3.178H4.228z M19.364,13.816l-2.864,2.865H12l-2.453,2.453V16.68H5.863V4.814h13.501V13.816z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-twitter" viewBox="0 0 24 24"> | ||||
| <path d="M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-vimeo" viewBox="0 0 24 24"> | ||||
| <path d="M22.396,7.164c-0.093,2.026-1.507,4.799-4.245,8.32C15.322,19.161,12.928,21,10.97,21c-1.214,0-2.24-1.119-3.079-3.359 c-0.56-2.053-1.119-4.106-1.68-6.159C5.588,9.243,4.921,8.122,4.206,8.122c-0.156,0-0.701,0.328-1.634,0.98L1.594,7.841 c1.027-0.902,2.04-1.805,3.037-2.708C6.001,3.95,7.03,3.327,7.715,3.264c1.619-0.156,2.616,0.951,2.99,3.321 c0.404,2.557,0.685,4.147,0.841,4.769c0.467,2.121,0.981,3.181,1.542,3.181c0.435,0,1.09-0.688,1.963-2.065 c0.871-1.376,1.338-2.422,1.401-3.142c0.125-1.187-0.343-1.782-1.401-1.782c-0.498,0-1.012,0.115-1.541,0.341 c1.023-3.35,2.977-4.977,5.862-4.884C21.511,3.066,22.52,4.453,22.396,7.164z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-vk" viewBox="0 0 24 24"> | ||||
| <path d="M22,7.1c0.2,0.4-0.4,1.5-1.6,3.1c-0.2,0.2-0.4,0.5-0.7,0.9c-0.5,0.7-0.9,1.1-0.9,1.4c-0.1,0.3-0.1,0.6,0.1,0.8 c0.1,0.1,0.4,0.4,0.8,0.9h0l0,0c1,0.9,1.6,1.7,2,2.3c0,0,0,0.1,0.1,0.1c0,0.1,0,0.1,0.1,0.3c0,0.1,0,0.2,0,0.4 c0,0.1-0.1,0.2-0.3,0.3c-0.1,0.1-0.4,0.1-0.6,0.1l-2.7,0c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.4-0.1-0.5-0.2l-0.2-0.1 c-0.2-0.1-0.5-0.4-0.7-0.7s-0.5-0.6-0.7-0.8c-0.2-0.2-0.4-0.4-0.6-0.6C14.8,15,14.6,15,14.4,15c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.2 c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.2,0.5c-0.1,0.2-0.1,0.5-0.1,0.8c0,0.1,0,0.2,0,0.3c0,0.1-0.1,0.2-0.1,0.2l0,0.1 c-0.1,0.1-0.3,0.2-0.6,0.2h-1.2c-0.5,0-1,0-1.5-0.2c-0.5-0.1-1-0.3-1.4-0.6s-0.7-0.5-1.1-0.7s-0.6-0.4-0.7-0.6l-0.3-0.3 c-0.1-0.1-0.2-0.2-0.3-0.3s-0.4-0.5-0.7-0.9s-0.7-1-1.1-1.6c-0.4-0.6-0.8-1.3-1.3-2.2C2.9,9.4,2.5,8.5,2.1,7.5C2,7.4,2,7.3,2,7.2 c0-0.1,0-0.1,0-0.2l0-0.1c0.1-0.1,0.3-0.2,0.6-0.2l2.9,0c0.1,0,0.2,0,0.2,0.1S5.9,6.9,5.9,7L6,7c0.1,0.1,0.2,0.2,0.3,0.3 C6.4,7.7,6.5,8,6.7,8.4C6.9,8.8,7,9,7.1,9.2l0.2,0.3c0.2,0.4,0.4,0.8,0.6,1.1c0.2,0.3,0.4,0.5,0.5,0.7s0.3,0.3,0.4,0.4 c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0,0,0.1-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.1-0.5c0-0.2,0.1-0.5,0.1-0.8 c0-0.4,0-0.8,0-1.3c0-0.3,0-0.5-0.1-0.8c0-0.2-0.1-0.4-0.1-0.5L9.6,7.6C9.4,7.3,9.1,7.2,8.7,7.1C8.6,7.1,8.6,7,8.7,6.9 C8.9,6.7,9,6.6,9.1,6.5c0.4-0.2,1.2-0.3,2.5-0.3c0.6,0,1,0.1,1.4,0.1c0.1,0,0.3,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.3 c0,0.1,0.1,0.2,0.1,0.3s0,0.3,0,0.5c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.7c0,0.3,0,0.6,0,0.9c0,0.1,0,0.2,0,0.4c0,0.2,0,0.4,0,0.5 c0,0.1,0,0.3,0,0.4s0.1,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.3-0.1c0.1-0.1,0.2-0.2,0.4-0.4 s0.3-0.4,0.5-0.7c0.2-0.3,0.5-0.7,0.7-1.1c0.4-0.7,0.8-1.5,1.1-2.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.1,0.1-0.1l0,0l0.1,0 c0,0,0,0,0.1,0s0.2,0,0.2,0l3,0c0.3,0,0.5,0,0.7,0S21.9,7,21.9,7L22,7.1z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-wordpress" viewBox="0 0 24 24"> | ||||
| <path d="M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-yelp" viewBox="0 0 24 24"> | ||||
| <path d="M12.271,16.718v1.417q-.011,3.257-.067,3.4a.707.707,0,0,1-.569.446,4.637,4.637,0,0,1-2.024-.424A4.609,4.609,0,0,1,7.8,20.565a.844.844,0,0,1-.19-.4.692.692,0,0,1,.044-.29,3.181,3.181,0,0,1,.379-.524q.335-.412,2.019-2.409.011,0,.669-.781a.757.757,0,0,1,.44-.274.965.965,0,0,1,.552.039.945.945,0,0,1,.418.324.732.732,0,0,1,.139.468Zm-1.662-2.8a.783.783,0,0,1-.58.781l-1.339.435q-3.067.981-3.257.981a.711.711,0,0,1-.6-.4,2.636,2.636,0,0,1-.19-.836,9.134,9.134,0,0,1,.011-1.857,3.559,3.559,0,0,1,.335-1.389.659.659,0,0,1,.625-.357,22.629,22.629,0,0,1,2.253.859q.781.324,1.283.524l.937.379a.771.771,0,0,1,.4.34A.982.982,0,0,1,10.609,13.917Zm9.213,3.313a4.467,4.467,0,0,1-1.021,1.8,4.559,4.559,0,0,1-1.512,1.417.671.671,0,0,1-.7-.078q-.156-.112-2.052-3.2l-.524-.859a.761.761,0,0,1-.128-.513.957.957,0,0,1,.217-.513.774.774,0,0,1,.926-.29q.011.011,1.327.446,2.264.736,2.7.887a2.082,2.082,0,0,1,.524.229.673.673,0,0,1,.245.68Zm-7.5-7.049q.056,1.137-.6,1.361-.647.19-1.272-.792L6.237,4.08a.7.7,0,0,1,.212-.691,5.788,5.788,0,0,1,2.314-1,5.928,5.928,0,0,1,2.5-.352.681.681,0,0,1,.547.5q.034.2.245,3.407T12.327,10.181Zm7.384,1.2a.679.679,0,0,1-.29.658q-.167.112-3.67.959-.747.167-1.015.257l.011-.022a.769.769,0,0,1-.513-.044.914.914,0,0,1-.413-.357.786.786,0,0,1,0-.971q.011-.011.836-1.137,1.394-1.908,1.673-2.275a2.423,2.423,0,0,1,.379-.435A.7.7,0,0,1,17.435,8a4.482,4.482,0,0,1,1.372,1.489,4.81,4.81,0,0,1,.9,1.868v.034Z"/> | ||||
| </symbol> | ||||
| <symbol id="icon-youtube" viewBox="0 0 24 24"> | ||||
| <path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"/> | ||||
| </symbol> | ||||
| </defs> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 47 KiB | 
		Reference in New Issue
	
	Block a user