summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYury German <blueknight@gentoo.org>2022-01-23 18:37:36 -0500
committerYury German <blueknight@gentoo.org>2022-01-23 18:37:36 -0500
commitf18b23a3a9378fb0a98856d436aa9ebf94e47429 (patch)
treee418433e22854ebd2d77eaa869d5d0470a973317 /plugins/jetpack/modules/theme-tools
parentAdd classic-editor 1.5 (diff)
downloadblogs-gentoo-f18b23a3a9378fb0a98856d436aa9ebf94e47429.tar.gz
blogs-gentoo-f18b23a3a9378fb0a98856d436aa9ebf94e47429.tar.bz2
blogs-gentoo-f18b23a3a9378fb0a98856d436aa9ebf94e47429.zip
Updating Classic Editor, Google Authenticatior, Jetpack, Public Post Preview, Table of Contents, Wordpress Importer
Signed-off-by: Yury German <blueknight@gentoo.org>
Diffstat (limited to 'plugins/jetpack/modules/theme-tools')
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css2
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentynineteen.css2
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentynineteen.php84
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css2
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwenty.css54
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwenty.php118
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwentyone-rtl.css1
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwentyone.css98
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwentyone.php77
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/blog-display.php32
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/customizer.js26
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/featured-images.php18
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/post-details.php15
-rw-r--r--plugins/jetpack/modules/theme-tools/devicepx.php2
-rw-r--r--plugins/jetpack/modules/theme-tools/featured-content.php8
-rw-r--r--plugins/jetpack/modules/theme-tools/js/suggest.js2
-rw-r--r--plugins/jetpack/modules/theme-tools/responsive-videos.php7
-rw-r--r--plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js13
-rw-r--r--plugins/jetpack/modules/theme-tools/site-breadcrumbs.php22
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo.php46
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php97
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php2
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php98
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js8
-rw-r--r--plugins/jetpack/modules/theme-tools/social-links.php2
-rw-r--r--plugins/jetpack/modules/theme-tools/social-menu.php8
-rw-r--r--plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php16
-rw-r--r--plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg35
28 files changed, 755 insertions, 140 deletions
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css b/plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css
index 2cf7d0bb..e2065083 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css
+++ b/plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css
@@ -1 +1 @@
-.infinite-scroll .pagination,.infinite-scroll .posts-navigation,.infinite-scroll.neverending .site-footer{display:none}.infinity-end.neverending .site-footer{display:block}.infinite-loader{margin:calc(3 * 1rem) auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}.site-main #infinite-handle{margin:calc(2 * 1rem) auto}.site-main #infinite-handle span{background:100% 0;display:block;font-size:.8888888889em;text-align:center}.site-main #infinite-handle span button,.site-main #infinite-handle span button:focus,.site-main #infinite-handle span button:hover{transition:background 150ms ease-in-out;background:#0073aa;border:none;border-radius:5px;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:.8888888889em;font-weight:600;line-height:1.2;outline:0;padding:.66rem 1rem}.site-main #infinite-handle span button:hover{cursor:pointer}.site-main #infinite-handle span button:focus,.site-main #infinite-handle span button:hover{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)}.entry .jetpack-video-wrapper{margin-bottom:1.75em}.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:-.02em;line-height:1.2;margin-bottom:.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:-.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}.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:-.02em;line-height:1.2;margin-bottom:.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 .jp-relatedposts-post,.entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1em;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span a,.entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title a{font-weight:700}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-excerpt,.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title{margin-top:.5em;margin-bottom:.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}#wpstats{display:none}.comments-area .comments-title-wrap+.comment-respond .comment-reply-title{display:none}.widget_author_grid ul,.widget_authors ul,.widget_jp_blogs_i_follow ul,.widget_links ul,.widget_rss_links ul{list-style:none;padding-right:0;padding-left:0}.widget_jp_blogs_i_follow li,.widget_links 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:.5rem;margin-bottom:.5rem}.widget.widget_authors ul li>ul{list-style-type:disc;padding-right:4.25rem}.rtl .widget.widget_authors ul li>ul{padding-right:0;padding-left: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:right;margin-left:1em}.widget_authors li>ul{clear:both}.widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4{font-size:100%;margin:1rem 0}.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 div[class^=gr_custom_author],.widget_goodreads h2[class^=gr_custom_header]{font-size:inherit;line-height:1.15}.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:.68182em;padding:.5rem 1rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1em;padding:10px 12px}.widget_rss li a.rsswidget{display:block;margin:1rem 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 .rss-date,.widget_rss cite{color:#9c9c9c;display:block;font-size:.71111em;font-weight:500;margin:.5rem 0}.widget_rss cite{font-style:normal}.widget_rss cite:before{content:"\2014\00a0"}.widget_top-posts .widgets-list-layout-links{float:inherit;margin-right:calc(40px + 1rem);width:inherit}@media only screen and (min-width:600px){.widget.widget_search .search-field{max-width:calc(50vw - 20%)}}.twentynineteen-customizer .entry .entry-footer>span,.twentynineteen-customizer .entry .entry-meta>span{display:inline} \ No newline at end of file
+.infinite-scroll .pagination,.infinite-scroll .posts-navigation,.infinite-scroll.neverending .site-footer{display:none}.infinity-end.neverending .site-footer{display:block}.infinite-loader{margin:calc(3 * 1rem) auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}.site-main #infinite-handle{margin:calc(2 * 1rem) auto}.site-main #infinite-handle span{background:100% 0;display:block;font-size:.8888888889em;text-align:center}.site-main #infinite-handle span button,.site-main #infinite-handle span button:focus,.site-main #infinite-handle span button:hover{transition:background 150ms ease-in-out;background:#2271b1;border:none;border-radius:5px;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:.8888888889em;font-weight:600;line-height:1.2;outline:0;padding:.66rem 1rem}.site-main #infinite-handle span button:hover{cursor:pointer}.site-main #infinite-handle span button:focus,.site-main #infinite-handle span button:hover{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)}.entry .jetpack-video-wrapper{margin-bottom:1.75em}.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:-.02em;line-height:1.2;margin-bottom:.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:-.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}.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:-.02em;line-height:1.2;margin-bottom:.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 .jp-relatedposts-post,.entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1em;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span a,.entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title a{font-weight:700}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-excerpt,.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title{margin-top:.5em;margin-bottom:.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}#wpstats{display:none}.comments-area .comments-title-wrap+.comment-respond .comment-reply-title{display:none}.widget_author_grid ul,.widget_authors ul,.widget_jp_blogs_i_follow ul,.widget_links ul,.widget_rss_links ul{list-style:none;padding-right:0;padding-left:0}.widget_jp_blogs_i_follow li,.widget_links 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:.5rem;margin-bottom:.5rem}.widget.widget_authors ul li>ul{list-style-type:disc;padding-right:4.25rem}.rtl .widget.widget_authors ul li>ul{padding-right:0;padding-left: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:right;margin-left:1em}.widget_authors li>ul{clear:both}.widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4{font-size:100%;margin:1rem 0}.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 div[class^=gr_custom_author],.widget_goodreads h2[class^=gr_custom_header]{font-size:inherit;line-height:1.15}.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:.68182em;padding:.5rem 1rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1em;padding:10px 12px}.widget_rss li a.rsswidget{display:block;margin:1rem 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 .rss-date,.widget_rss cite{color:#9c9c9c;display:block;font-size:.71111em;font-weight:500;margin:.5rem 0}.widget_rss cite{font-style:normal}.widget_rss cite:before{content:"\2014\00a0"}.widget_top-posts .widgets-list-layout-links{float:inherit;margin-right:calc(40px + 1rem);width:inherit}@media only screen and (min-width:600px){.widget.widget_search .search-field{max-width:calc(50vw - 20%)}}.twentynineteen-customizer .entry .entry-footer>span,.twentynineteen-customizer .entry .entry-meta>span{display:inline} \ No newline at end of file
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentynineteen.css b/plugins/jetpack/modules/theme-tools/compat/twentynineteen.css
index 4ba953f0..75655939 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentynineteen.css
+++ b/plugins/jetpack/modules/theme-tools/compat/twentynineteen.css
@@ -37,7 +37,7 @@
.site-main #infinite-handle span button:hover,
.site-main #infinite-handle span button:focus {
transition: background 150ms ease-in-out;
- background: #0073aa;
+ background: #2271b1;
border: none;
border-radius: 5px;
box-sizing: border-box;
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentynineteen.php b/plugins/jetpack/modules/theme-tools/compat/twentynineteen.php
index 12d9b74a..23692325 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentynineteen.php
+++ b/plugins/jetpack/modules/theme-tools/compat/twentynineteen.php
@@ -124,3 +124,87 @@ function twentynineteen_jetpack_body_classes( $classes ) {
return $classes;
}
add_filter( 'body_class', 'twentynineteen_jetpack_body_classes' );
+
+/**
+ * Load AMP theme specific hooks for infinite scroll.
+ *
+ * @return void
+ */
+function amp_twentynineteen_infinite_scroll_render_hooks() {
+ add_filter( 'jetpack_amp_infinite_footers', 'twentynineteen_amp_infinite_footers', 10, 2 );
+ add_filter( 'jetpack_amp_infinite_output', 'twentynineteen_amp_infinite_output' );
+ add_filter( 'jetpack_amp_infinite_older_posts', 'twentynineteen_amp_infinite_older_posts' );
+}
+
+/**
+ * Get the theme specific footers.
+ *
+ * @param array $footers The footers of the themes.
+ * @param string $buffer Contents of the output buffer.
+ *
+ * @return mixed
+ */
+function twentynineteen_amp_infinite_footers( $footers, $buffer ) {
+ // Collect the footer wrapper.
+ preg_match(
+ '/<footer id="colophon".*<!-- #colophon -->/s',
+ $buffer,
+ $footer
+ );
+ $footers[] = reset( $footer );
+
+ return $footers;
+}
+
+/**
+ * Hide and remove various elements from next page load.
+ *
+ * @param string $buffer Contents of the output buffer.
+ *
+ * @return string
+ */
+function twentynineteen_amp_infinite_output( $buffer ) {
+ // Hide site header on next page load.
+ $buffer = preg_replace(
+ '/id="masthead"/',
+ '$0 next-page-hide',
+ $buffer
+ );
+
+ // Hide pagination on next page load.
+ $buffer = preg_replace(
+ '/class=".*navigation pagination.*"/',
+ '$0 next-page-hide hidden',
+ $buffer
+ );
+
+ // Remove the footer as it will be added back to amp next page footer.
+ $buffer = preg_replace(
+ '/<footer id="colophon".*<!-- #colophon -->/s',
+ '',
+ $buffer
+ );
+
+ return $buffer;
+}
+
+/**
+ * Filter the AMP infinite scroll older posts button
+ *
+ * @return string
+ */
+function twentynineteen_amp_infinite_older_posts() {
+ ob_start();
+ ?>
+<div id="infinite-handle" style="text-align: center;">
+ <span>
+ <a href="{{url}}">
+ <button>
+ <?php esc_html_e( 'Older posts', 'jetpack' ); ?>
+ </button>
+ </a>
+ </span>
+</div>
+ <?php
+ return ob_get_clean();
+}
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css b/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css
index abf474eb..b8d95c0d 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css
@@ -1 +1 @@
-#infinite-footer{z-index:1}.infinite-scroll .pagination-wrapper,.infinite-scroll.neverending #site-footer,.infinite-scroll.neverending .footer-nav-widgets-wrapper{display:none}.infinite-end.neverending .footer-nav-widgets-wrapper,.infinity-end.neverending #site-footer{display:block}.infinity-end.neverending #site-footer{margin:8rem 0 0}.infinite-loader{margin:5rem auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}#site-content #infinite-handle{margin:5rem auto;max-width:58rem;width:calc(100% - 8rem)}#site-content #infinite-handle span{background:100% 0;display:block;font-size:1.7rem;text-align:center}#site-content #infinite-handle span button,#site-content #infinite-handle span button:focus,#site-content #infinite-handle span button:hover{-webkit-appearance:none;-moz-appearance:none;border:none;background:#cd2653;border-radius:0;color:#fff;cursor:pointer;display:inline-block;font-size:1.5rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;margin:0;opacity:1;padding:1.1em 1.44em;text-align:center;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}#site-content #infinite-handle span button:hover{text-decoration:underline}#site-content .infinite-wrap .hentry:first-of-type{padding:4rem 0 0}.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:2.8rem;font-weight:700;letter-spacing:-.016875em;line-height:1.5}@media (min-width:700px){.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:4rem}}.entry-content div.sharedaddy h3.sd-title:before,.entry-content h3.sd-title:before{border:0 none}.entry-content #jp-relatedposts h3.jp-relatedposts-headline em:before{border:0 none}.widget_authors ul{list-style:none;margin-right:0}.widget_authors li{margin-top:1rem;list-style:none}.widget_authors li:first-child{margin-top:2rem}.widget_flickr .flickr-size-thumbnail .flickr-images{justify-content:left}.widget_eu_cookie_law_widget #eu-cookie-law,.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.6rem;font-weight:500;padding:2rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.4rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;padding:1.1em 1.44em;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}@media (max-width:600px){.widget_eu_cookie_law_widget #eu-cookie-law{font-size:1.4rem;padding:1.5rem 1.5rem 6.5rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.2rem;bottom:1.5rem;left:auto;right:1.5rem;padding:1rem;margin:0}}.entry-content #jp-relatedposts{max-width:120rem;margin:1em auto;width:calc(100% - 4rem)}@media (min-width:700px){.entry-content #jp-relatedposts{width:calc(100% - 8rem)}}#jp-relatedposts .jp-relatedposts-grid{display:flex;flex-grow:1;flex-basis:0;justify-content:space-between;box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:calc(33% - 2rem);margin-right:0;margin-left:0}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-grid{flex-direction:column}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:100%}}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:0}#jp-relatedposts#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:inherit;line-height:1.5}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img{width:100%}.entry-content .tiled-gallery{margin:0 auto 1.5em}.entry-content .jetpack-recipe{margin:1em auto}.jp-related-posts-i2__post li{margin:0}.wp-block-jetpack-gif{margin:1em auto!important} \ No newline at end of file
+#infinite-footer{z-index:1}.infinite-scroll .pagination-wrapper,.infinite-scroll.neverending #site-footer,.infinite-scroll.neverending .footer-nav-widgets-wrapper{display:none}.infinite-end.neverending .footer-nav-widgets-wrapper,.infinity-end.neverending #site-footer{display:block}.infinity-end.neverending #site-footer{margin:8rem 0 0}.infinite-loader{margin:5rem auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}#site-content #infinite-handle{margin:5rem auto;max-width:58rem;width:calc(100% - 8rem)}#site-content #infinite-handle span{background:100% 0;display:block;font-size:1.7rem;text-align:center}#site-content #infinite-handle span button,#site-content #infinite-handle span button:focus,#site-content #infinite-handle span button:hover{-webkit-appearance:none;-moz-appearance:none;border:none;background:#cd2653;border-radius:0;color:#fff;cursor:pointer;display:inline-block;font-size:1.5rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;margin:0;opacity:1;padding:1.1em 1.44em;text-align:center;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}#site-content #infinite-handle span button:hover{text-decoration:underline}#site-content .infinite-wrap .hentry:first-of-type{padding:4rem 0 0}.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:2.8rem;font-weight:700;letter-spacing:-.016875em;line-height:1.5}@media (min-width:700px){.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:4rem}}.entry-content div.sharedaddy h3.sd-title:before,.entry-content h3.sd-title:before{border:0 none}.entry-content #jp-relatedposts h3.jp-relatedposts-headline em:before{border:0 none}.widget_authors ul{list-style:none;margin-right:0}.widget_authors li{margin-top:1rem;list-style:none}.widget_authors li:first-child{margin-top:2rem}.widget_flickr .flickr-size-thumbnail .flickr-images{justify-content:left}.widget_eu_cookie_law_widget #eu-cookie-law,.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.6rem;font-weight:500;padding:2rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.4rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;padding:1.1em 1.44em;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}@media (max-width:600px){.widget_eu_cookie_law_widget #eu-cookie-law{font-size:1.4rem;padding:1.5rem 1.5rem 6.5rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.2rem;bottom:1.5rem;left:auto;right:1.5rem;padding:1rem;margin:0}}.jetpack_subscription_widget .widget-title label{font-size:2.8rem;font-weight:700;margin:0}@media (min-width:700px){.jetpack_subscription_widget .widget-title label{font-size:4rem}}.widget_blog_subscription form p:not(#subscribe-email) input[type=text]{padding:1.5rem 1.8rem!important;width:100%!important}.entry-content #jp-relatedposts{max-width:120rem;margin:1em auto;width:calc(100% - 4rem)}@media (min-width:700px){.entry-content #jp-relatedposts{width:calc(100% - 8rem)}}#jp-relatedposts .jp-relatedposts-grid{display:flex;flex-grow:1;flex-basis:0;justify-content:space-between;box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:calc(33% - 2rem);margin-right:0;margin-left:0}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-grid{flex-direction:column}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:100%}}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:0}#jp-relatedposts#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:inherit;line-height:1.5}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img{width:100%}.entry-content .tiled-gallery{margin:0 auto 1.5em}.entry-content .jetpack-recipe{margin:1em auto}.entry-content .fb-video{display:block}.jp-related-posts-i2__post li{margin:0}.wp-block-jetpack-gif{margin:1em auto!important}.entry-content img.latex{display:inline}iframe#wpnt-notes-iframe2.wide{width:auto!important}.admin-bar{position:unset!important}.screen-reader-text{position:absolute} \ No newline at end of file
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css
index 6474bf35..9d88c7fe 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css
@@ -163,6 +163,28 @@
}
}
+/* Subscriptions Widget */
+
+.jetpack_subscription_widget .widget-title label {
+ font-size: 2.8rem;
+ font-weight: 700;
+ margin: 0;
+}
+@media ( min-width: 700px ) {
+ .jetpack_subscription_widget .widget-title label {
+ font-size: 4rem;
+ }
+}
+
+/*
+ * This overwrites inline styles added to the wpcom widget,
+ * hence the use of !important
+ */
+.widget_blog_subscription form p:not(#subscribe-email) input[type="text"] {
+ padding: 1.5rem 1.8rem !important;
+ width: 100% !important;
+}
+
/* Related Posts */
.entry-content #jp-relatedposts {
@@ -235,6 +257,11 @@
margin: 1em auto;
}
+/* Facebook */
+.entry-content .fb-video {
+ display: block;
+}
+
/**
* Blocks
*/
@@ -249,3 +276,30 @@
/* !important because the gif block styles are loaded in the footer after this file */
margin: 1em auto !important;
}
+
+/**
+ * Images
+ */
+
+/* Beautiful Math */
+.entry-content img.latex {
+ display: inline;
+}
+
+/**
+ * .com Toolbar
+ */
+
+/* fix wordpress.com notification iframe width */
+iframe#wpnt-notes-iframe2.wide {
+ width: auto !important;
+}
+
+/* fix site position when overflow nav modal */
+.admin-bar {
+ position: unset !important;
+}
+
+.screen-reader-text {
+ position: absolute;
+}
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php
index e7ea998f..f2afadb6 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php
@@ -3,7 +3,7 @@
* Jetpack Compatibility File
* See: https://jetpack.com/
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -51,9 +51,6 @@ function twentytwenty_jetpack_setup() {
)
);
- // Social Menu.
- add_theme_support( 'jetpack-social-menu', 'svg' );
-
/**
* Add theme support for geo-location.
*/
@@ -160,3 +157,116 @@ function twentytwenty_infinity_accent_color_css() {
wp_add_inline_style( 'twentytwenty-jetpack', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'twentytwenty_infinity_accent_color_css' );
+
+/**
+ * Load AMP theme specific hooks for infinite scroll.
+ *
+ * @return void
+ */
+function amp_twentytwenty_infinite_scroll_render_hooks() {
+ add_filter( 'jetpack_amp_infinite_footers', 'twentytwenty_amp_infinite_footers', 10, 2 );
+ add_filter( 'jetpack_amp_infinite_output', 'twentytwenty_amp_infinite_output' );
+ add_filter( 'jetpack_amp_infinite_separator', 'twentytwenty_amp_infinite_separator' );
+ add_filter( 'jetpack_amp_infinite_older_posts', 'twentytwenty_amp_infinite_older_posts' );
+}
+
+/**
+ * Get the theme specific footers.
+ *
+ * @param array $footers The footers of the themes.
+ * @param string $buffer Contents of the output buffer.
+ *
+ * @return mixed
+ */
+function twentytwenty_amp_infinite_footers( $footers, $buffer ) {
+ // Collect the footer wrapper.
+ preg_match(
+ '/<div class="footer-nav-widgets-wrapper.*<!-- .footer-nav-widgets-wrapper -->/s',
+ $buffer,
+ $footer
+ );
+ $footers[] = reset( $footer );
+
+ // Collect the footer wrapper.
+ preg_match(
+ '/<footer id="site-footer".*<!-- #site-footer -->/s',
+ $buffer,
+ $footer
+ );
+ $footers[] = reset( $footer );
+
+ return $footers;
+}
+
+/**
+ * Hide and remove various elements from next page load.
+ *
+ * @param string $buffer Contents of the output buffer.
+ *
+ * @return string
+ */
+function twentytwenty_amp_infinite_output( $buffer ) {
+ // Hide site header on next page load.
+ $buffer = preg_replace(
+ '/id="site-header"/',
+ '$0 next-page-hide',
+ $buffer
+ );
+
+ // Hide pagination on next page load.
+ $buffer = preg_replace(
+ '/class=".*pagination-wrapper.*"/',
+ '$0 next-page-hide hidden',
+ $buffer
+ );
+
+ // Remove the footer as it will be added back to amp next page footer.
+ $buffer = preg_replace(
+ '/<div class="footer-nav-widgets-wrapper.*<!-- .footer-nav-widgets-wrapper -->/s',
+ '',
+ $buffer
+ );
+
+ // Remove the footer as it will be added back to amp next page footer.
+ $buffer = preg_replace(
+ '/<footer id="site-footer".*<!-- #site-footer -->/s',
+ '',
+ $buffer
+ );
+
+ return $buffer;
+}
+
+/**
+ * Filter the AMP infinite scroll separator
+ *
+ * @return string
+ */
+function twentytwenty_amp_infinite_separator() {
+ ob_start();
+ ?>
+<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true">
+ <?php
+ return ob_get_clean();
+}
+
+/**
+ * Filter the AMP infinite scroll older posts button
+ *
+ * @return string
+ */
+function twentytwenty_amp_infinite_older_posts() {
+ ob_start();
+ ?>
+<div id="infinite-handle" class="read-more-button-wrap">
+ <span>
+ <a href="{{url}}" class="more-link" rel="amphtml">
+ <span class="faux-button">
+ <?php esc_html_e( 'Older posts', 'jetpack' ); ?>
+ </span>
+ </a>
+ </span>
+</div>
+ <?php
+ return ob_get_clean();
+}
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwentyone-rtl.css b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone-rtl.css
new file mode 100644
index 00000000..e130386d
--- /dev/null
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone-rtl.css
@@ -0,0 +1 @@
+.entry-content #jp-relatedposts{max-width:var(--responsive--aligndefault-width);margin-right:auto;margin-left:auto}.infinite-scroll .pagination,.infinite-scroll.neverending .widget-area,.infinite-scroll.neverending footer#colophon{display:none}.infinity-end.neverending .widget-area,.infinity-end.neverending footer#colophon{display:block}body[class*=" infinity-"] main#main>article:last-of-type .entry-footer{border-bottom:var(--separator--height) solid var(--separator--border-color)}body.infinity-end .site-main>div:last-of-type>article:last-of-type .entry-footer,body:not(.infinity-end) .site-main>div:nth-last-child(2)>article:last-of-type .entry-footer{border:none}.site-main>.infinite-wrap>article>.entry-footer{margin-top:var(--global--spacing-vertical);padding-top:var(--global--spacing-unit);padding-bottom:calc(3 * var(--global--spacing-vertical));border-bottom:var(--separator--height) solid var(--separator--border-color)}.site-main>.infinite-wrap>*{margin-top:calc(3 * var(--global--spacing-vertical));margin-bottom:calc(3 * var(--global--spacing-vertical))}#infinite-handle{text-align:center}.infinite-loader{margin:calc(3 * 1rem) auto}#infinite-handle span{color:var(--global--color-background);background-color:var(--global--color-secondary);font-family:var(--global--font-primary);font-size:var(--global--font-size-base);font-weight:500;line-height:1.5;border-width:3px;border-radius:0;padding:15px calc(2 * var(--button--padding-vertical));max-width:170px;margin:auto}#infinite-handle span:hover{color:var(--global--color-secondary);background-color:var(--global--color-background);border-color:var(--global--color-secondary);border-style:solid}#infinite-handle span:active{color:var(--global--color-secondary);background-color:var(--global--color-background);border-color:var(--global--color-secondary)}.widget-area .widget_block{min-width:0}@media only screen and (min-width:1024px){.widget-area{grid-template-columns:repeat(3,minmax(0,1fr))}} \ No newline at end of file
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.css b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.css
new file mode 100644
index 00000000..f8d6dd56
--- /dev/null
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.css
@@ -0,0 +1,98 @@
+/**
+ * Related Posts
+ */
+
+.entry-content #jp-relatedposts {
+ max-width: var(--responsive--aligndefault-width);
+ margin-left: auto;
+ margin-right: auto;
+}
+
+/**
+ * Infinite Scroll
+ */
+
+/* Globally hidden elements when Infinite Scroll is supported and in use. */
+.infinite-scroll .pagination,
+.infinite-scroll.neverending .widget-area,
+.infinite-scroll.neverending footer#colophon {
+ /* 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 .widget-area,
+.infinity-end.neverending footer#colophon {
+ display: block;
+}
+
+body[class*=" infinity-"] main#main > article:last-of-type .entry-footer {
+ border-bottom: var(--separator--height) solid var(--separator--border-color);
+}
+
+body:not(.infinity-end) .site-main > div:nth-last-child(2) > article:last-of-type .entry-footer,
+body.infinity-end .site-main > div:last-of-type > article:last-of-type .entry-footer {
+ border: none;
+}
+
+.site-main > .infinite-wrap > article > .entry-footer {
+ margin-top: var(--global--spacing-vertical);
+ padding-top: var(--global--spacing-unit);
+ padding-bottom: calc(3 * var(--global--spacing-vertical));
+ border-bottom: var(--separator--height) solid var(--separator--border-color);
+}
+
+.site-main > .infinite-wrap > * {
+ margin-top: calc(3 * var(--global--spacing-vertical));
+ margin-bottom: calc(3 * var(--global--spacing-vertical));
+}
+
+#infinite-handle {
+ text-align: center;
+}
+
+.infinite-loader {
+ margin: calc(3 * 1rem) auto;
+}
+
+#infinite-handle span {
+ color: var(--global--color-background);
+ background-color: var(--global--color-secondary);;
+ font-family: var(--global--font-primary);
+ font-size: var(--global--font-size-base);
+ font-weight: 500;
+ line-height: 1.5;
+ border-width: 3px;
+ border-radius: 0;
+ padding: 15px calc(2 * var(--button--padding-vertical));
+ max-width: 170px;
+ margin: auto;
+}
+
+#infinite-handle span:hover {
+ color: var(--global--color-secondary);
+ background-color: var(--global--color-background);
+ border-color: var(--global--color-secondary);
+ border-style: solid;
+}
+
+#infinite-handle span:active {
+ color: var(--global--color-secondary);
+ background-color: var(--global--color-background);
+ border-color: var(--global--color-secondary);
+}
+
+/* Customizer */
+.widget-area .widget_block {
+ min-width: 0;
+}
+
+@media only screen and (min-width: 1024px) {
+ .widget-area {
+ /*
+ Fix: minimum width of 0
+ See: https://css-tricks.com/preventing-a-grid-blowout/
+ */
+ grid-template-columns: repeat( 3, minmax(0, 1fr) );
+ }
+}
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.php b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.php
new file mode 100644
index 00000000..e6f6ca6f
--- /dev/null
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Jetpack Compatibility File
+ * See: https://jetpack.com/
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Add Jetpack extra functionality to Twenty Twenty One.
+ */
+function twentytwentyone_jetpack_setup() {
+
+ /**
+ * Add theme support for Infinite Scroll.
+ */
+ add_theme_support(
+ 'infinite-scroll',
+ array(
+ 'type' => 'click',
+ 'container' => 'main',
+ 'render' => 'twentytwentyone_infinite_scroll_render',
+ 'footer' => 'main',
+ )
+ );
+
+ /**
+ * 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' => 'twenty-twenty-one-style',
+ 'date' => '.posted-on',
+ 'categories' => '.cat-links',
+ ),
+ 'featured-images' => array(
+ 'archive' => true,
+ 'post' => true,
+ 'page' => true,
+ ),
+ )
+ );
+}
+add_action( 'after_setup_theme', 'twentytwentyone_jetpack_setup' );
+
+/**
+ * Custom render function for Infinite Scroll.
+ */
+function twentytwentyone_infinite_scroll_render() {
+ while ( have_posts() ) {
+ the_post();
+ get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
+ }
+}
+
+/**
+ * Add our compat CSS file for custom styles.
+ * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production
+ * or skip it entirely for wpcom.
+ */
+function twentytwentyone_enqueue_jetpack_style() {
+ $version = Jetpack::is_development_version()
+ ? filemtime( JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwentyone.css' )
+ : JETPACK__VERSION;
+
+ wp_enqueue_style( 'twentytwentyone-jetpack', plugins_url( 'twentytwentyone.css', __FILE__ ), array(), $version );
+ wp_style_add_data( 'twentytwentyone-jetpack', 'rtl', 'replace' );
+}
+add_action( 'wp_enqueue_scripts', 'twentytwentyone_enqueue_jetpack_style' );
diff --git a/plugins/jetpack/modules/theme-tools/content-options/blog-display.php b/plugins/jetpack/modules/theme-tools/content-options/blog-display.php
index a3f74d0b..66273b12 100644
--- a/plugins/jetpack/modules/theme-tools/content-options/blog-display.php
+++ b/plugins/jetpack/modules/theme-tools/content-options/blog-display.php
@@ -30,9 +30,25 @@ if ( ! in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ) ) ) {
/**
* Apply Content filters.
+ *
+ * @since 9.7.0 Deprecated $content parameter.
+ *
+ * @param string $content Post content. Deprecated.
*/
-function jetpack_blog_display_custom_excerpt( $content ) {
+function jetpack_blog_display_custom_excerpt( $content = '' ) {
+ if ( ! empty( $content ) ) {
+ _doing_it_wrong(
+ 'jetpack_blog_display_custom_excerpt',
+ esc_html__( 'You do not need to pass a $content parameter anymore.', 'jetpack' ),
+ 'jetpack-9.7.0'
+ );
+ }
+
$post = get_post();
+ if ( empty( $post ) ) {
+ return '';
+ }
+
if ( empty( $post->post_excerpt ) ) {
$text = strip_shortcodes( $post->post_content );
$text = str_replace( ']]>', ']]&gt;', $text );
@@ -47,7 +63,7 @@ function jetpack_blog_display_custom_excerpt( $content ) {
* 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' ) ) ) {
+ if ( strpos( _x( 'words', 'Word count type. Do not translate!', 'jetpack' ), '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 );
@@ -76,12 +92,16 @@ function jetpack_blog_display_custom_excerpt( $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' ) );
+ $excerpt = 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 );
+ $excerpt = jetpack_blog_display_custom_excerpt();
}
}
- return $content;
+ if ( empty( $excerpt ) ) {
+ return $content;
+ } else {
+ return $excerpt;
+ }
}
/**
@@ -118,7 +138,7 @@ function jetpack_the_content_customizer( $content ) {
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 );
+ $excerpt = jetpack_blog_display_custom_excerpt();
}
}
if ( empty( $excerpt ) ) {
diff --git a/plugins/jetpack/modules/theme-tools/content-options/customizer.js b/plugins/jetpack/modules/theme-tools/content-options/customizer.js
index afe7b492..5e383bc3 100644
--- a/plugins/jetpack/modules/theme-tools/content-options/customizer.js
+++ b/plugins/jetpack/modules/theme-tools/content-options/customizer.js
@@ -8,9 +8,9 @@
* Contains handlers to make Theme Customizer preview reload changes asynchronously.
*/
-( function( $ ) {
+( function ( $ ) {
// Blog Display
- wp.customize( 'jetpack_content_blog_display', function( value ) {
+ 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)',
@@ -47,7 +47,7 @@
position: 'relative',
} );
}
- value.bind( function( to ) {
+ value.bind( function ( to ) {
if ( 'content' === to ) {
$( '.jetpack-blog-display.jetpack-the-excerpt' ).css( {
clip: 'rect(1px, 1px, 1px, 1px)',
@@ -91,8 +91,8 @@
} );
// Post Details: Date.
- wp.customize( 'jetpack_content_post_details_date', function( value ) {
- value.bind( function( to ) {
+ 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)',
@@ -116,8 +116,8 @@
} );
// Post Details: Categories.
- wp.customize( 'jetpack_content_post_details_categories', function( value ) {
- value.bind( function( to ) {
+ 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)',
@@ -141,8 +141,8 @@
} );
// Post Details: Tags.
- wp.customize( 'jetpack_content_post_details_tags', function( value ) {
- value.bind( function( to ) {
+ 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)',
@@ -166,8 +166,8 @@
} );
// Post Details: Author.
- wp.customize( 'jetpack_content_post_details_author', function( value ) {
- value.bind( function( to ) {
+ 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)',
@@ -191,8 +191,8 @@
} );
// Post Details: Comment link.
- wp.customize( 'jetpack_content_post_details_comment', function( value ) {
- value.bind( function( to ) {
+ 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)',
diff --git a/plugins/jetpack/modules/theme-tools/content-options/featured-images.php b/plugins/jetpack/modules/theme-tools/content-options/featured-images.php
index d6855f6c..af2dd585 100644
--- a/plugins/jetpack/modules/theme-tools/content-options/featured-images.php
+++ b/plugins/jetpack/modules/theme-tools/content-options/featured-images.php
@@ -5,8 +5,22 @@
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 ) ) {
+ /**
+ * Allow featured images to be displayed at all times for specific CPTs.
+ *
+ * @module theme-tools
+ *
+ * @since 9.1.0
+ *
+ * @param array $excluded_post_types Array of excluded post types.
+ */
+ $excluded_post_types = apply_filters(
+ 'jetpack_content_options_featured_image_exclude_cpt',
+ array( 'jp_pay_product' )
+ );
+
+ // Automatically return metadata for specific post types, when we don't want to hide the Featured Image.
+ if ( in_array( get_post_type( $object_id ), $excluded_post_types, true ) ) {
return $metadata;
}
diff --git a/plugins/jetpack/modules/theme-tools/content-options/post-details.php b/plugins/jetpack/modules/theme-tools/content-options/post-details.php
index 7851a5be..b5f5c64a 100644
--- a/plugins/jetpack/modules/theme-tools/content-options/post-details.php
+++ b/plugins/jetpack/modules/theme-tools/content-options/post-details.php
@@ -40,6 +40,11 @@ function jetpack_post_details_enqueue_scripts() {
$elements[] = $comment;
}
+ // If the Elements array is empty, return without setting custom CSS.
+ if ( empty( $elements ) ) {
+ return;
+ }
+
// Get the list of classes.
$elements = implode( ', ', $elements );
@@ -132,11 +137,11 @@ function jetpack_post_details_should_run() {
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 );
+ $date_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_date', 1 );
+ $categories_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_categories', 1 );
+ $tags_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_tags', 1 );
+ $author_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_author', 1 );
+ $comment_option = Jetpack_Options::get_option_and_ensure_autoload( '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 );
diff --git a/plugins/jetpack/modules/theme-tools/devicepx.php b/plugins/jetpack/modules/theme-tools/devicepx.php
index fb243e56..fc95eb15 100644
--- a/plugins/jetpack/modules/theme-tools/devicepx.php
+++ b/plugins/jetpack/modules/theme-tools/devicepx.php
@@ -8,6 +8,8 @@
* 'after_setup_theme' action:
*
* add_theme_support( 'jetpack-devicepx' );
+ *
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/theme-tools/featured-content.php b/plugins/jetpack/modules/theme-tools/featured-content.php
index c70408c8..5eca3369 100644
--- a/plugins/jetpack/modules/theme-tools/featured-content.php
+++ b/plugins/jetpack/modules/theme-tools/featured-content.php
@@ -334,7 +334,7 @@ if ( ! class_exists( 'Featured_Content' ) && isset( $GLOBALS['pagenow'] ) && 'pl
return;
}
- // We need to respect post ids already in the blacklist.
+ // We need to respect post ids already in the blocklist.
$post__not_in = $query->get( 'post__not_in' );
if ( ! empty( $post__not_in ) ) {
@@ -390,6 +390,12 @@ if ( ! class_exists( 'Featured_Content' ) && isset( $GLOBALS['pagenow'] ) && 'pl
return $terms;
}
+ // WordPress defines the parameter as `array`, but it passes null if `get_terms( $args )` was called
+ // without a 'taxonomy' in $args.
+ if ( ! is_array( $taxonomies ) ) {
+ return $terms;
+ }
+
// We only want to hide the featured tag.
if ( ! in_array( 'post_tag', $taxonomies ) ) {
return $terms;
diff --git a/plugins/jetpack/modules/theme-tools/js/suggest.js b/plugins/jetpack/modules/theme-tools/js/suggest.js
index 4d6c8794..24ee1ff9 100644
--- a/plugins/jetpack/modules/theme-tools/js/suggest.js
+++ b/plugins/jetpack/modules/theme-tools/js/suggest.js
@@ -1,5 +1,5 @@
/* global ajaxurl:true */
-jQuery( function( $ ) {
+jQuery( function ( $ ) {
$( '#customize-control-featured-content-tag-name input' ).suggest(
ajaxurl + '?action=ajax-tag-search&tax=post_tag',
{ delay: 500, minchars: 2 }
diff --git a/plugins/jetpack/modules/theme-tools/responsive-videos.php b/plugins/jetpack/modules/theme-tools/responsive-videos.php
index 9bd35dae..32cee5e9 100644
--- a/plugins/jetpack/modules/theme-tools/responsive-videos.php
+++ b/plugins/jetpack/modules/theme-tools/responsive-videos.php
@@ -101,7 +101,7 @@ function jetpack_responsive_videos_maybe_wrap_oembed( $html, $url = null ) {
/**
* oEmbed Video Providers.
*
- * A whitelist of oEmbed video provider Regex patterns to check against before wrapping the output.
+ * An allowed list of oEmbed video provider Regex patterns to check against before wrapping the output.
*
* @module theme-tools
*
@@ -153,7 +153,10 @@ function jetpack_responsive_videos_maybe_wrap_oembed( $html, $url = null ) {
function jetpack_responsive_videos_remove_wrap_oembed( $block_content, $block ) {
if (
isset( $block['blockName'] )
- && false !== strpos( $block['blockName'], 'core-embed' )
+ && (
+ false !== strpos( $block['blockName'], 'core-embed' ) // pre-WP 5.6 embeds (multiple embed blocks starting with 'core-embed').
+ || 'core/embed' === $block['blockName'] // WP 5.6 embed block format (single embed block w/ block variations).
+ )
) {
$block_content = preg_replace( '#<div class="jetpack-video-wrapper">(.*?)</div>#', '${1}', $block_content );
}
diff --git a/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js b/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js
index 668cc7a0..ab8cbd77 100644
--- a/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js
+++ b/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js
@@ -1,20 +1,17 @@
-( function( $ ) {
+( function ( $ ) {
var resizeTimer;
function responsiveVideos() {
$( '.jetpack-video-wrapper' )
.find( 'embed, iframe, object' )
- .each( function() {
+ .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'
+ _this.parents( '.jetpack-video-wrapper' ).prev( 'p' ).css( 'text-align' ) === 'center'
) {
videoMargin = '0 auto';
}
@@ -50,10 +47,10 @@
} );
}
- $( document ).ready( function() {
+ $( document ).ready( function () {
$( window )
.on( 'load.jetpack', responsiveVideos )
- .on( 'resize.jetpack', function() {
+ .on( 'resize.jetpack', function () {
clearTimeout( resizeTimer );
resizeTimer = setTimeout( responsiveVideos, 500 );
} )
diff --git a/plugins/jetpack/modules/theme-tools/site-breadcrumbs.php b/plugins/jetpack/modules/theme-tools/site-breadcrumbs.php
index 2f266738..ce713ad1 100644
--- a/plugins/jetpack/modules/theme-tools/site-breadcrumbs.php
+++ b/plugins/jetpack/modules/theme-tools/site-breadcrumbs.php
@@ -7,8 +7,16 @@
* Version: 1.0
* Author URI: https://wordpress.com
* License: GPL2 or later
+ * Text Domain: jetpack
+ *
+ * @package automattic/jetpack
*/
+/**
+ * Echos a set of breadcrumbs.
+ *
+ * Themes can call this function where the breadcrumbs should be outputted.
+ */
function jetpack_breadcrumbs() {
$taxonomy = is_category() ? 'category' : get_query_var( 'taxonomy' );
$is_taxonomy_hierarchical = is_taxonomy_hierarchical( $taxonomy );
@@ -21,16 +29,18 @@ function jetpack_breadcrumbs() {
}
$breadcrumb = '';
+ $position = 1;
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 itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><meta itemprop="position" content="' . esc_attr( $position ) . '"><a href="' . esc_url( get_permalink( $ancestor ) ) . '" itemprop="item"><span itemprop="name">' . esc_html( get_the_title( $ancestor ) ) . '</span></a></span>';
+ $position++;
}
}
- $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>';
+ $breadcrumb .= '<span class="current-page" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><meta itemprop="position" content="' . esc_attr( $position ) . '"><span itemprop="name">' . esc_html( get_the_title( $post_id ) ) . '</span></span>';
} elseif ( $is_taxonomy_hierarchical ) {
$current = get_term( get_queried_object_id(), $taxonomy );
@@ -42,12 +52,12 @@ function jetpack_breadcrumbs() {
$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>';
+ $breadcrumb .= '<span class="current-category" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><meta property="position" content="' . esc_attr( $position ) . '"><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>';
+ $home = '<span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><meta itemprop="position" content="' . esc_attr( $position ) . '"><meta itemprop="position" content="0"><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>';
+ echo '<nav class="entry-breadcrumbs" itemscope itemtype="https://schema.org/BreadcrumbList">' . $home . $breadcrumb . '</nav>'; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
@@ -68,7 +78,7 @@ function jetpack_get_term_parents( $term, $taxonomy, $visited = array() ) {
$chain = '';
- if ( $parent->parent && ( $parent->parent != $parent->term_id ) && ! in_array( $parent->parent, $visited ) ) {
+ if ( $parent->parent && ( $parent->parent !== $parent->term_id ) && ! in_array( $parent->parent, $visited, true ) ) {
$visited[] = $parent->parent;
$chain .= jetpack_get_term_parents( $parent->parent, $taxonomy, $visited );
}
diff --git a/plugins/jetpack/modules/theme-tools/site-logo.php b/plugins/jetpack/modules/theme-tools/site-logo.php
index cef77e69..78f69ba1 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo.php
+++ b/plugins/jetpack/modules/theme-tools/site-logo.php
@@ -22,15 +22,10 @@
* Activate the Site Logo plugin.
*
* @uses current_theme_supports()
- * @since 3.2
+ * @since 3.2.0
+ * @since 9.9.0 Uses Core site_logo option format universally.
*/
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.
@@ -44,3 +39,40 @@ function site_logo_init() {
}
}
add_action( 'init', 'site_logo_init' );
+
+/**
+ * When switching from a legacy theme that uses `site-logo` to a theme that uses `custom-logo`,
+ * update the theme's custom logo if it doesn't already have one.
+ *
+ * @return void
+ */
+function jetpack_update_custom_logo_from_site_logo() {
+ $site_logo = get_option( 'site_logo' );
+
+ if ( current_theme_supports( 'custom-logo' ) && ! get_theme_mod( 'custom_logo' ) && $site_logo ) {
+ set_theme_mod( 'custom_logo', $site_logo );
+ }
+}
+add_action( 'after_switch_theme', 'jetpack_update_custom_logo_from_site_logo', 10, 0 );
+
+/**
+ * Transforms the legacy site_logo array, when present, into an attachment ID.
+ *
+ * The attachment ID is the format used for the site_logo option by the Site Logo block,
+ * and the updated Jetpack site-logo feature.
+ *
+ * @since 9.9.0
+ *
+ * @param int|array $site_logo Option.
+ * @return int
+ */
+function jetpack_site_logo_block_compat( $site_logo ) {
+ if ( isset( $site_logo['id'] ) ) {
+ remove_filter( 'option_site_logo', 'jetpack_site_logo_block_compat', 1 );
+ update_option( 'site_logo', $site_logo['id'] );
+ return $site_logo['id'];
+ }
+
+ return $site_logo;
+}
+add_filter( 'option_site_logo', 'jetpack_site_logo_block_compat', 1 );
diff --git a/plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php b/plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php
index 75fe80b1..6793bf0a 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php
+++ b/plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php
@@ -2,7 +2,7 @@
/**
* Our Site Logo class for managing a theme-agnostic logo through the Customizer.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
class Site_Logo {
/**
@@ -11,7 +11,7 @@ class Site_Logo {
private static $instance;
/**
- * Stores our current logo settings.
+ * Stores the attachment ID of the site logo.
*/
public $logo;
@@ -36,7 +36,7 @@ class Site_Logo {
* @uses get_option()
*/
private function __construct() {
- $this->logo = get_option( 'site_logo', null );
+ $this->logo = (int) get_option( 'site_logo', null );
}
/**
@@ -76,9 +76,6 @@ class Site_Logo {
* @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(
@@ -109,29 +106,58 @@ class Site_Logo {
'site_logo',
array(
'capability' => 'manage_options',
- 'default' => array(
- 'id' => 0,
- 'sizes' => array(),
- 'url' => false,
- ),
+ 'default' => 0,
'sanitize_callback' => array( $this, 'sanitize_logo_setting' ),
'transport' => 'postMessage',
'type' => 'option',
)
);
+ // By default, not setting width and height will suggest a square crop.
+ $width = null;
+ $height = null;
+ $logo_size = jetpack_get_site_logo_dimensions();
+
+ // Only suggested a different crop if the theme declares both dimensions.
+ if ( false !== $logo_size && $logo_size['width'] && $logo_size['height'] ) {
+ $width = $logo_size['width'];
+ $height = $logo_size['height'];
+ }
+
// Add our image uploader.
$wp_customize->add_control(
- new Site_Logo_Image_Control(
+ new WP_Customize_Cropped_Image_Control(
$wp_customize,
'site_logo',
array(
- 'label' => __( 'Logo', 'jetpack' ),
- 'section' => 'title_tagline',
- 'settings' => 'site_logo',
+ 'label' => __( 'Logo', 'jetpack' ),
+ 'section' => 'title_tagline',
+ 'settings' => 'site_logo',
+ 'width' => $width,
+ 'height' => $height,
+ 'flex_width' => true,
+ 'flex_height' => true,
+ 'button_labels' => array(
+ 'select' => __( 'Add logo', 'jetpack' ),
+ 'change' => __( 'Change logo', 'jetpack' ),
+ 'remove' => __( 'Remove logo', 'jetpack' ),
+ 'placeholder' => __( 'No logo set', 'jetpack' ),
+ 'frame_title' => __( 'Set as logo', 'jetpack' ),
+ 'frame_button' => __( 'Choose logo', 'jetpack' ),
+ ),
)
)
);
+
+ $wp_customize->selective_refresh->add_partial(
+ 'site_logo',
+ array(
+ 'settings' => 'site_logo',
+ 'selector' => '.site-logo-link',
+ 'render_callback' => array( $this, 'customizer_preview' ),
+ 'container_inclusive' => true,
+ )
+ );
}
/**
@@ -144,13 +170,11 @@ class Site_Logo {
* @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 );
+ wp_localize_script( 'site-logo-header-text', 'site_logo_header_classes', array( 'classes' => $classes ) );
}
}
@@ -267,7 +291,7 @@ class 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'] ) {
+ if ( $post && $post->ID === $this->logo ) {
$media_states[] = __( 'Site Logo', 'jetpack' );
}
}
@@ -282,7 +306,7 @@ class Site_Logo {
* @uses Site_Logo::remove_site_logo()
*/
public function reset_on_attachment_delete( $post_id ) {
- if ( $this->logo['id'] == $post_id ) {
+ if ( $this->logo === $post_id ) {
$this->remove_site_logo();
}
}
@@ -294,7 +318,7 @@ class Site_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;
+ return (bool) $this->logo;
}
/**
@@ -303,14 +327,7 @@ class Site_Logo {
* @uses update_option()
*/
public function remove_site_logo() {
- update_option(
- 'site_logo',
- array(
- 'id' => (int) 0,
- 'sizes' => array(),
- 'url' => '',
- )
- );
+ update_option( 'site_logo', null );
}
/**
@@ -345,20 +362,26 @@ class Site_Logo {
* @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'] );
+ $input = absint( $input );
// 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' => '',
- );
+ if ( false === wp_get_attachment_image_src( $input ) ) {
+ $input = 0;
}
return $input;
}
+
+ /**
+ * This function returns the updated HTML in the Customizer preview when the logo is added, updated, or removed.
+ *
+ * @return string
+ */
+ public function customizer_preview() {
+ ob_start();
+ jetpack_the_site_logo();
+ return ob_get_clean();
+ }
}
/**
diff --git a/plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php b/plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php
index d1098536..436e12de 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php
+++ b/plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php
@@ -4,7 +4,7 @@
* 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
+ * @package automattic/jetpack
*/
if ( ! function_exists( 'the_site_logo' ) ) :
diff --git a/plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php b/plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php
index 3b27b32f..22e6c942 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php
+++ b/plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php
@@ -2,7 +2,7 @@
/**
* Functions and template tags for using site logos.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -15,18 +15,19 @@
* @since 1.0
*/
function jetpack_get_site_logo( $show = 'url' ) {
- $logo = site_logo()->logo;
+ $logo_id = site_logo()->logo;
// Return false if no logo is set
- if ( ! isset( $logo['id'] ) || 0 == $logo['id'] ) {
+ if ( ! $logo_id ) {
return false;
}
// Return the ID if specified, otherwise return the URL by default
- if ( 'id' == $show ) {
- return $logo['id'];
+ if ( 'id' === $show ) {
+ return $logo_id;
} else {
- return esc_url_raw( set_url_scheme( $logo['url'] ) );
+ $logo_url = wp_get_attachment_url( $logo_id );
+ return esc_url_raw( set_url_scheme( $logo_url ) );
}
}
@@ -101,41 +102,46 @@ function jetpack_has_site_logo() {
* @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 = '';
+ $size = site_logo()->theme_size();
// 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(
+ if (
+ ! jetpack_has_site_logo()
+ && jetpack_is_customize_preview()
+ ) {
+ /*
+ * Reason: the output is escaped in the sprintf.
+ * phpcs:disable WordPress.Security.EscapeOutput
+ */
+ /** This filter is documented in modules/theme-tools/site-logo/inc/functions.php */
+ echo apply_filters(
+ 'jetpack_the_site_logo',
+ 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 )
- );
- }
+ ),
+ array(),
+ $size
+ );
+ /* phpcs:enable WordPress.Security.EscapeOutput */
+ return;
}
- // 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',
- )
- )
- );
+ // Check for WP 4.5 Site Logo and Jetpack logo.
+ $logo_id = get_theme_mod( 'custom_logo' );
+ // Get the option directly so the updated logo can be injected into customizer previews.
+ $jetpack_logo_id = get_option( 'site_logo' );
+
+ // Use WP Core logo if present and is an id (of an attachment), otherwise use Jetpack's.
+ if ( ! is_numeric( $logo_id ) && $jetpack_logo_id ) {
+ $logo_id = $jetpack_logo_id;
}
+ /*
+ * Reason: the output is escaped in the sprintf.
+ * phpcs:disable WordPress.Security.EscapeOutput
+ */
/**
* Filter the Site Logo output.
*
@@ -144,10 +150,34 @@ function jetpack_the_site_logo() {
* @since 3.2.0
*
* @param string $html Site Logo HTML output.
- * @param array $logo Array of Site Logo details.
+ * @param array $jetpack_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 );
+ echo apply_filters(
+ 'jetpack_the_site_logo',
+ 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',
+ )
+ )
+ ),
+ // Return array format in filter for back compatibility.
+ array(
+ 'id' => $jetpack_logo_id,
+ 'url' => wp_get_attachment_url( $jetpack_logo_id ),
+ 'sizes' => array(),
+ ),
+ $size
+ );
+ /* phpcs:enable WordPress.Security.EscapeOutput */
}
/**
diff --git a/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js b/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js
index 82673a7e..37e0d862 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js
+++ b/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js
@@ -2,12 +2,12 @@
/**
* JS for handling the "Display Header Text" setting's realtime preview.
*/
-( function( $ ) {
+( function ( $ ) {
var api = wp.customize,
- $classes = site_logo_header_classes;
+ $classes = site_logo_header_classes.classes;
- api( 'site_logo_header_text', function( value ) {
- value.bind( function( to ) {
+ api( 'site_logo_header_text', function ( value ) {
+ value.bind( function ( to ) {
if ( true === to ) {
$( $classes ).css( {
position: 'static',
diff --git a/plugins/jetpack/modules/theme-tools/social-links.php b/plugins/jetpack/modules/theme-tools/social-links.php
index 44b2cbc8..98bac2d4 100644
--- a/plugins/jetpack/modules/theme-tools/social-links.php
+++ b/plugins/jetpack/modules/theme-tools/social-links.php
@@ -7,7 +7,7 @@
* 'after_setup_theme' action:
*
* add_theme_support( 'social-links', array(
- * 'facebook', 'twitter', 'linkedin', 'tumblr', 'google_plus',
+ * 'facebook', 'twitter', 'linkedin', 'tumblr',
* ) );
*/
diff --git a/plugins/jetpack/modules/theme-tools/social-menu.php b/plugins/jetpack/modules/theme-tools/social-menu.php
index 16c66b6a..abb5070c 100644
--- a/plugins/jetpack/modules/theme-tools/social-menu.php
+++ b/plugins/jetpack/modules/theme-tools/social-menu.php
@@ -49,6 +49,7 @@ function jetpack_social_menu_init() {
}
}
add_action( 'after_setup_theme', 'jetpack_social_menu_init', 99 );
+add_action( 'restapi_theme_init', 'jetpack_social_menu_init' );
/**
* Return the type of menu the theme is using.
@@ -59,10 +60,13 @@ add_action( 'after_setup_theme', 'jetpack_social_menu_init', 99 );
function jetpack_social_menu_get_type() {
$options = get_theme_support( 'jetpack-social-menu' );
- if ( empty( $options ) ) {
+ if ( ! $options ) {
$menu_type = null;
} else {
- $menu_type = ( in_array( $options[0], array( 'genericons', 'svg' ) ) ) ? $options[0] : 'genericons';
+ $menu_type = 'genericons';
+ if ( is_array( $options ) && isset( $options[0] ) ) {
+ $menu_type = ( in_array( $options[0], array( 'genericons', 'svg' ), true ) ) ? $options[0] : 'genericons';
+ }
}
return $menu_type;
diff --git a/plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php b/plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php
index 9a8a1dd6..3a2e5f2c 100644
--- a/plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php
+++ b/plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php
@@ -2,7 +2,7 @@
/**
* SVG icons related functions and filters
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
if ( ! function_exists( 'jetpack_social_menu_include_svg_icons' ) ) :
@@ -11,7 +11,7 @@ if ( ! function_exists( 'jetpack_social_menu_include_svg_icons' ) ) :
*/
function jetpack_social_menu_include_svg_icons() {
// Define SVG sprite file.
- $svg_icons = dirname( __FILE__ ) . '/social-menu.svg';
+ $svg_icons = __DIR__ . '/social-menu.svg';
// If it exists, include it.
if ( file_exists( $svg_icons ) ) {
@@ -130,6 +130,8 @@ if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) :
'itunes.com' => 'apple',
'bandcamp.com' => 'bandcamp',
'behance.net' => 'behance',
+ 'blogger.com' => 'blogger',
+ 'blogspot.com' => 'blogger',
'codepen.io' => 'codepen',
'deviantart.com' => 'deviantart',
'discord.gg' => 'discord',
@@ -138,10 +140,12 @@ if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) :
'dribbble.com' => 'dribbble',
'dropbox.com' => 'dropbox',
'etsy.com' => 'etsy',
+ 'eventbrite.com' => 'eventbrite',
'facebook.com' => 'facebook',
'/feed/' => 'feed',
'flickr.com' => 'flickr',
'foursquare.com' => 'foursquare',
+ 'ghost.org' => 'ghost',
'goodreads.com' => 'goodreads',
'google.com' => 'google',
'github.com' => 'github',
@@ -150,8 +154,10 @@ if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) :
'mailto:' => 'mail',
'meetup.com' => 'meetup',
'medium.com' => 'medium',
+ 'patreon.com' => 'patreon',
'pinterest.' => 'pinterest',
'getpocket.com' => 'pocket',
+ 'ravelry.com' => 'ravelry',
'reddit.com' => 'reddit',
'skype.com' => 'skype',
'skype:' => 'skype',
@@ -160,15 +166,21 @@ if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) :
'soundcloud.com' => 'soundcloud',
'spotify.com' => 'spotify',
'stackoverflow.com' => 'stackoverflow',
+ 'strava.com' => 'strava',
'stumbleupon.com' => 'stumbleupon',
+ 'telegram.me' => 'telegram',
+ 'tiktok.com' => 'tiktok',
'tumblr.com' => 'tumblr',
'twitch.tv' => 'twitch',
'twitter.com' => 'twitter',
'vimeo.com' => 'vimeo',
'vk.com' => 'vk',
+ 'whatsapp.com' => 'whatsapp',
+ 'woocommerce.com' => 'woocommerce',
'wordpress.org' => 'wordpress',
'wordpress.com' => 'wordpress',
'yelp.com' => 'yelp',
+ 'xanga.com' => 'xanga',
'youtube.com' => 'youtube',
);
diff --git a/plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg b/plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg
index 333dc504..4c5833dc 100644
--- a/plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg
+++ b/plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg
@@ -15,6 +15,9 @@
<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-blogger" viewBox="0 0 24 24">
+<path d="M14.722,14.019c0,0.361-0.293,0.654-0.654,0.654H9.977c-0.361,0-0.654-0.293-0.654-0.654s0.293-0.654,0.654-0.654h4.091C14.429,13.365,14.722,13.658,14.722,14.019z M9.981,10.698h2.038c0.382,0,0.692-0.31,0.692-0.692c0-0.382-0.31-0.692-0.692-0.692H9.981c-0.382,0-0.692,0.31-0.692,0.692C9.289,10.388,9.599,10.698,9.981,10.698z M21,5v14c0,1.105-0.895,2-2,2H5c-1.105,0-2-0.895-2-2V5c0-1.105,0.895-2,2-2h14C20.105,3,21,3.895,21,5z M17.544,11.39c0-0.398-0.322-0.72-0.72-0.72h-0.607l-0.013,0.001c-0.38,0-0.692-0.295-0.718-0.668l-0.001-0.008c0-1.988-1.611-3.599-3.599-3.599h-1.816c-1.988,0-3.599,1.611-3.599,3.599v3.947c0,1.987,1.611,3.599,3.599,3.599h3.874c1.988,0,3.599-1.611,3.599-3.599L17.544,11.39z"/>
+</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>
@@ -39,8 +42,11 @@
<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-eventbrite" viewBox="0 0 24 24">
+<path style="fill-rule:evenodd;clip-rule:evenodd;" d="M18.041,3.931L5.959,3C4.325,3,3,4.325,3,5.959v12.083C3,19.675,4.325,21,5.959,21l12.083-0.931C19.699,19.983,21,18.744,21,17.11V6.89C21,5.256,19.741,4.027,18.041,3.931zM16.933,8.17c-0.082,0.215-0.192,0.432-0.378,0.551c-0.188,0.122-0.489,0.132-0.799,0.132c-1.521,0-3.062-0.048-4.607-0.048c-0.152,0.708-0.304,1.416-0.451,2.128c0.932-0.004,1.873,0.005,2.81,0.005c0.726,0,1.462-0.069,1.586,0.525c0.04,0.189-0.001,0.426-0.052,0.615c-0.105,0.38-0.258,0.676-0.625,0.783c-0.185,0.054-0.408,0.058-0.646,0.058c-1.145,0-2.345,0.017-3.493,0.02c-0.169,0.772-0.328,1.553-0.489,2.333c1.57-0.005,3.067-0.041,4.633-0.058c0.627-0.007,1.085,0.194,1.009,0.85c-0.031,0.262-0.098,0.497-0.211,0.725c-0.102,0.208-0.248,0.376-0.488,0.452c-0.237,0.075-0.541,0.064-0.862,0.078c-0.304,0.014-0.614,0.008-0.924,0.016c-0.309,0.009-0.619,0.022-0.919,0.022c-1.253,0-2.429,0.08-3.683,0.073c-0.603-0.004-1.014-0.249-1.124-0.757c-0.059-0.273-0.018-0.58,0.036-0.841c0.541-2.592,1.083-5.176,1.629-7.763c0.056-0.265,0.114-0.511,0.225-0.714C9.279,7.051,9.534,6.834,9.9,6.735c0.368-0.099,0.883-0.047,1.344-0.047c0.305,0,0.612,0.008,0.914,0.016c0.925,0.026,1.817,0.03,2.747,0.053c0.304,0.007,0.615,0.016,0.915,0.016c0.621,0,1.17,0.073,1.245,0.614C17.104,7.675,17.014,7.954,16.933,8.17z"/>
+</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"/>
+<path d="M12,2C6.5,2,2,6.5,2,12c0,5,3.7,9.1,8.4,9.9v-7H7.9V12h2.5V9.8c0-2.5,1.5-3.9,3.8-3.9c1.1,0,2.2,0.2,2.2,0.2v2.5h-1.3 c-1.2,0-1.6,0.8-1.6,1.6V12h2.8l-0.4,2.9h-2.3v7C18.3,21.1,22,17,22,12C22,6.5,17.5,2,12,2z"/>
</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"/>
@@ -51,6 +57,9 @@
<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-ghost" viewBox="0 0 24 24">
+<path d="M10.203,20.997H3.005v-3.599h7.198V20.997z M20.995,17.398h-7.193v3.599h7.193V17.398z M20.998,10.2H3v3.599h17.998V10.2zM13.803,3.003H3.005v3.599h10.798V3.003z M21,3.003h-3.599v3.599H21V3.003z"/>
+</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>
@@ -76,12 +85,18 @@ 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
<symbol id="icon-medium" viewBox="0 0 24 24">
<path d="M5.727 8.027a.623.623 0 0 0-.204-.527L4.02 5.687v-.273H8.69l3.614 7.926 3.175-7.926h4.457v.274l-1.285 1.234a.367.367 0 0 0-.144.36v9.066a.374.374 0 0 0 .144.363l1.258 1.234v.27h-6.324v-.27l1.3-1.265c.13-.13.13-.164.13-.36V8.988l-3.621 9.196h-.489L6.691 8.988v6.164c-.035.258.051.52.235.707l1.691 2.055v.27h-4.8v-.27l1.69-2.055a.814.814 0 0 0 .22-.707zm0 0"/>
</symbol>
+<symbol id="icon-patreon" viewBox="0 0 24 24">
+<path d="M13.975 5a5.05 5.05 0 00-5.041 5.046c0 2.774 2.261 5.03 5.04 5.03A5.034 5.034 0 0019 10.047C19 7.264 16.746 5 13.975 5zM5 18.44h2.461V5H5v13.44z"/>
+</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-ravelry" viewBox="0 0 23 20">
+<path d="M12.098 19.34a.25.25 0 01-.118-.043 13.986 13.986 0 01-.394-.258c-.164-.11-.477-.352-.934-.723-.46-.375-.882-.761-1.27-1.168-.39-.406-.796-.925-1.218-1.562a8.521 8.521 0 01-.976-1.926c-.125-.023-.758-.16-1.907-.414A8.785 8.785 0 007.84 17.29a8.152 8.152 0 004.258 2.05zm-6.98-6.762l1.831.313A13.424 13.424 0 016.5 11.02a16.216 16.216 0 01-.207-1.622l-.043-.593c-.61.61-1.047 1.445-1.316 2.5.035.484.097.91.183 1.273zm1.198-6.797a9.064 9.064 0 00-.84 1.653c.32-.344.59-.598.81-.758zm15.649 4.844a8.8 8.8 0 00-.676-3.426 8.85 8.85 0 00-1.824-2.812 8.614 8.614 0 00-2.727-1.883 8.115 8.115 0 00-3.312-.695 8.131 8.131 0 00-3.059.586A8.412 8.412 0 007.754 4.05c-.219.433-.383 1.027-.488 1.785a5.407 5.407 0 011.554-.93 7.481 7.481 0 011.727-.48 16.642 16.642 0 011.558-.153c.489-.02.883-.015 1.18.012l.438.035c.238.008.43.063.574.172a.66.66 0 01.27.367c.03.141.054.278.07.414a.8.8 0 01-.012.317 12.781 12.781 0 00-2.477-.004 7.093 7.093 0 00-1.992.484 9.6 9.6 0 00-1.554.801A12.46 12.46 0 007.176 7.97c.031.27.07.613.125 1.031.054.422.183 1.082.386 1.988.204.903.43 1.57.676 2.004.895.043 1.793-.012 2.696-.164.902-.152 1.683-.351 2.336-.598a20.681 20.681 0 001.77-.746c.526-.254.925-.472 1.19-.66l.407-.265c.156-.121.3-.196.43-.23a.367.367 0 01.331.058c.094.07.157.199.184.383.102.722-.039 1.171-.426 1.351-1.508.723-3.203 1.219-5.086 1.496-.976.149-2.129.207-3.449.176a7.673 7.673 0 001.195 1.973c.504.597 1 1.07 1.493 1.418.496.343.968.636 1.421.878.454.243.825.407 1.106.489l.426.133c1.039.171 1.992.113 2.863-.168 1.414-.739 2.555-1.813 3.418-3.227.867-1.414 1.297-2.969 1.297-4.664zm.805-.414c-.102 1.004-.247 1.793-.434 2.367-.508 1.547-1.168 2.836-1.977 3.867-.808 1.032-1.964 1.973-3.468 2.828-.348.247-.645.41-.895.493-.52.195-1.113.254-1.773.18-.262.019-.528.03-.797.03-2.055 0-3.883-.64-5.492-1.93-1.61-1.288-2.68-2.929-3.22-4.933-.007 0-.019 0-.042-.004-.024-.004-.04-.007-.055-.007-.043.375-.035.793.028 1.257.062.465.156.891.285 1.282.125.39.254.757.39 1.093.133.34.25.606.344.801l.152.29c.059.09.254.394.586.913a4.327 4.327 0 01-1.355-1.187 5.669 5.669 0 01-.856-1.563 14.087 14.087 0 01-.43-1.531 9.012 9.012 0 01-.19-1.2l-.02-.468c-.035-.016-.16-.059-.367-.137-.207-.078-.383-.148-.528-.203-.144-.054-.336-.133-.578-.226a9.221 9.221 0 01-.625-.282c-.176-.09-.36-.183-.543-.285-.187-.097-.34-.199-.465-.3a1.27 1.27 0 01-.27-.286c.138.075.321.172.548.285.23.118.64.286 1.23.508.594.223 1.121.364 1.586.426l.023-.36c.079-1.109.418-2.187 1.024-3.234A9.226 9.226 0 016.5 4.621c.203-.855.5-1.652.883-2.39.11-.208.226-.376.347-.5.125-.13.305-.247.536-.36 1.148-.55 2.25-.937 3.304-1.16A9.935 9.935 0 0114.86.09c1.136.14 2.25.5 3.34 1.082 1.593.855 2.804 2.105 3.624 3.75.82 1.644 1.137 3.406.946 5.289zm0 0"/>
+</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>
@@ -106,9 +121,18 @@ 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
<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-strava" viewBox="0 0 24 24">
+<path d="M15.387 17.944l-2.089-4.116h-3.065L15.387 24l5.15-10.172h-3.066m-7.008-5.599l2.836 5.598h4.172L10.463 0l-7 13.828h4.169"/>
+</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-telegram" viewBox="0 0 24 24">
+<path d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm3.08 14.757s-.25.625-.936.325l-2.541-1.949-1.63 1.486s-.127.096-.266.036c0 0-.12-.011-.27-.486-.15-.475-.911-2.972-.911-2.972L6 12.349s-.387-.137-.425-.438c-.037-.3.437-.462.437-.462l10.03-3.934s.824-.362.824.238l-1.786 9.004z"/>
+</symbol>
+<symbol id="icon-tiktok" viewBox="0 0 24 24">
+<path d="M12.22 2H15.64C15.64 2 15.4502 6.39351 20.3898 6.70186V10.0981C20.3898 10.0981 17.7537 10.2636 15.64 8.64957L15.6769 15.6615C15.6769 16.9151 15.3052 18.1406 14.6087 19.1829C13.9123 20.2253 12.9224 21.0377 11.7642 21.5175C10.606 21.9972 9.33162 22.1228 8.10209 21.8782C6.87257 21.6337 5.74316 21.0301 4.85669 20.1437C3.97022 19.2573 3.3665 18.1279 3.12186 16.8984C2.87723 15.6689 3.00267 14.3945 3.48233 13.2363C3.96199 12.0781 4.77432 11.0881 5.8166 10.3916C6.85888 9.69502 8.0843 9.32318 9.33791 9.32307H10.2271V12.7231V12.7954C9.64757 12.6147 9.02578 12.6217 8.45043 12.8152C7.87508 13.0088 7.37556 13.3792 7.02314 13.8734C6.67071 14.3677 6.48338 14.9606 6.48786 15.5677C6.49235 16.1747 6.68842 16.7648 7.04811 17.2538C7.40781 17.7428 7.91274 18.1057 8.49089 18.2908C9.06903 18.4758 9.69086 18.4736 10.2676 18.2843C10.8444 18.0951 11.3467 17.7285 11.7029 17.2369C12.059 16.7454 12.2508 16.1538 12.2509 15.5468L12.22 2Z"/>
+</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>
@@ -124,12 +148,21 @@ 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
<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-whatsapp" viewBox="0 0 24 24">
+<path d="M2.048,22l1.406-5.136c-0.867-1.503-1.324-3.208-1.323-4.955C2.133,6.446,6.579,2,12.042,2c2.651,0.001,5.14,1.033,7.011,2.906c1.871,1.873,2.901,4.363,2.9,7.011c-0.002,5.464-4.448,9.91-9.91,9.91c0,0,0,0,0,0h-0.004c-1.659-0.001-3.288-0.417-4.736-1.206L2.048,22z M7.545,18.828l0.301,0.179c1.265,0.751,2.714,1.148,4.193,1.148h0.003c4.54,0,8.235-3.695,8.237-8.237c0.001-2.201-0.855-4.271-2.41-5.828c-1.555-1.557-3.623-2.415-5.824-2.416c-4.544,0-8.239,3.695-8.241,8.237c-0.001,1.556,0.435,3.072,1.259,4.384l0.196,0.312l-0.832,3.04L7.545,18.828z M17.035,14.274c-0.062-0.103-0.227-0.165-0.475-0.289c-0.248-0.124-1.465-0.723-1.692-0.806c-0.227-0.083-0.392-0.124-0.557,0.124c-0.165,0.248-0.64,0.806-0.784,0.971c-0.144,0.165-0.289,0.186-0.536,0.062c-0.248-0.124-1.046-0.385-1.991-1.229c-0.736-0.657-1.233-1.468-1.378-1.715c-0.144-0.248-0.015-0.382,0.109-0.505c0.111-0.111,0.248-0.289,0.371-0.434c0.124-0.145,0.165-0.248,0.248-0.413c0.083-0.165,0.041-0.31-0.021-0.434c-0.062-0.124-0.557-1.343-0.763-1.839C9.364,7.284,9.159,7.35,9.007,7.342c-0.144-0.007-0.31-0.009-0.475-0.009c-0.165,0-0.433,0.062-0.66,0.31C7.646,7.891,7.006,8.49,7.006,9.709c0,1.219,0.887,2.396,1.011,2.562c0.124,0.165,1.746,2.666,4.23,3.739c0.591,0.255,1.052,0.408,1.412,0.522c0.593,0.189,1.133,0.162,1.56,0.098c0.476-0.071,1.465-0.599,1.671-1.177C17.096,14.873,17.096,14.378,17.035,14.274z"/>
+</symbol>
+<symbol id="icon-woocommerce" viewBox="0 0 24 24">
+<path d="M19,2H5C3.3,2,2,3.3,2,5v11c0,1.7,1.3,3,3,3h4l6,3l-1-3h5c1.7,0,3-1.3,3-3V5C22,3.3,20.7,2,19,2z M17.4,6.5c-0.4,0.8-0.8,2.1-1,3.9c-0.3,1.8-0.4,3.1-0.3,4.1c0,0.3,0,0.5-0.1,0.7s-0.3,0.4-0.6,0.4s-0.6-0.1-0.9-0.4c-1-1-1.8-2.6-2.4-4.6c-0.7,1.4-1.2,2.4-1.6,3.1c-0.6,1.2-1.2,1.8-1.6,1.9c-0.3,0-0.5-0.2-0.8-0.7C7.6,13.5,7,10.7,6.4,6.7c0-0.3,0-0.5,0.2-0.7C6.7,5.8,7,5.7,7.3,5.6c0.5,0,0.9,0.2,0.9,0.8c0.3,2.3,0.7,4.2,1.1,5.7l2.4-4.5C11.9,7.2,12.1,7,12.5,7c0.5,0,0.8,0.3,0.9,0.9c0.3,1.4,0.6,2.6,1,3.7c0.3-2.7,0.8-4.7,1.4-5.9c0.2-0.3,0.4-0.5,0.7-0.5c0.2,0,0.5,0.1,0.7,0.2c0.2,0.2,0.3,0.4,0.3,0.6S17.5,6.4,17.4,6.5z"/>
+</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-xanga" viewBox="0 0 24 24">
+<path d="M9,9h6v6H9V9z M3,9h6V3H3V9z M15,9h6V3h-6V9z M15,21h6v-6h-6V21z M3,21h6v-6H3V21z"/>
+</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>