aboutsummaryrefslogtreecommitdiff
path: root/themes/docsy/assets/js
diff options
context:
space:
mode:
Diffstat (limited to 'themes/docsy/assets/js')
-rw-r--r--themes/docsy/assets/js/anchor.js49
-rw-r--r--themes/docsy/assets/js/base.js65
-rw-r--r--themes/docsy/assets/js/search.js43
3 files changed, 157 insertions, 0 deletions
diff --git a/themes/docsy/assets/js/anchor.js b/themes/docsy/assets/js/anchor.js
new file mode 100644
index 0000000..9d8a0e6
--- /dev/null
+++ b/themes/docsy/assets/js/anchor.js
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2018 Google LLC
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+(function ($) {
+ 'use strict';
+
+ // Headers' anchor link that shows on hover
+ $(function () {
+ // append anchor links to headings in markdown.
+ var article = document.getElementsByTagName('main')[0];
+ if (!article) {
+ return;
+ }
+ var headings = article.querySelectorAll('h1, h2, h3, h4, h5, h6');
+ headings.forEach(function (heading) {
+ if (heading.id) {
+ var a = document.createElement('a');
+ // set visibility: hidden, not display: none to avoid layout change
+ a.style.visibility = 'hidden';
+ // [a11y] hide this from screen readers, etc..
+ a.setAttribute('aria-hidden', 'true');
+ // material insert_link icon in svg format
+ a.innerHTML = ' <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>';
+ a.href = '#' + heading.id;
+ heading.insertAdjacentElement('beforeend', a);
+ heading.addEventListener('mouseenter', function () {
+ a.style.visibility = 'initial';
+ });
+ heading.addEventListener('mouseleave', function () {
+ a.style.visibility = 'hidden';
+ });
+ }
+ });
+ });
+
+}(jQuery));
diff --git a/themes/docsy/assets/js/base.js b/themes/docsy/assets/js/base.js
new file mode 100644
index 0000000..49f27d0
--- /dev/null
+++ b/themes/docsy/assets/js/base.js
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2018 Google LLC
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+(function($) {
+
+ 'use strict';
+
+ $(function() {
+ $('[data-toggle="tooltip"]').tooltip();
+ $('[data-toggle="popover"]').popover();
+
+ $('.popover-dismiss').popover({
+ trigger: 'focus'
+ })
+ });
+
+
+ function bottomPos(element) {
+ return element.offset().top + element.outerHeight();
+ }
+
+ // Bootstrap Fixed Header
+ $(function() {
+ var promo = $(".js-td-cover");
+ if (!promo.length) {
+ return
+ }
+
+ var promoOffset = bottomPos(promo);
+ var navbarOffset = $('.js-navbar-scroll').offset().top;
+
+ var threshold = Math.ceil($('.js-navbar-scroll').outerHeight());
+ if ((promoOffset - navbarOffset) < threshold) {
+ $('.js-navbar-scroll').addClass('navbar-bg-onscroll');
+ }
+
+
+ $(window).on('scroll', function() {
+ var navtop = $('.js-navbar-scroll').offset().top - $(window).scrollTop();
+ var promoOffset = bottomPos($('.js-td-cover'));
+ var navbarOffset = $('.js-navbar-scroll').offset().top;
+ if ((promoOffset - navbarOffset) < threshold) {
+ $('.js-navbar-scroll').addClass('navbar-bg-onscroll');
+ } else {
+ $('.js-navbar-scroll').removeClass('navbar-bg-onscroll');
+ $('.js-navbar-scroll').addClass('navbar-bg-onscroll--fade');
+ }
+ });
+ });
+
+
+}(jQuery));
diff --git a/themes/docsy/assets/js/search.js b/themes/docsy/assets/js/search.js
new file mode 100644
index 0000000..83fbb15
--- /dev/null
+++ b/themes/docsy/assets/js/search.js
@@ -0,0 +1,43 @@
+/*
+Copyright 2018 Google LLC
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+(function($) {
+
+ 'use strict';
+
+ var Search = {
+ init: function() {
+ $(document).ready(function() {
+ $(document).on('keypress', '.td-search-input', function(e) {
+ if (e.keyCode !== 13) {
+ return
+ }
+
+ var query = $(this).val();
+ var searchPage = "{{ "search/" | absURL }}?q=" + query;
+ document.location = searchPage;
+
+ return false;
+ });
+
+ });
+ },
+ };
+
+ Search.init();
+
+
+}(jQuery));