Merge branch 'master' into blendify/kbd

This commit is contained in:
Aaron Carlisle 2021-04-03 17:51:09 -04:00 committed by GitHub
commit a5b0dc2a75
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 1304 additions and 1692 deletions

View File

@ -1,9 +1,11 @@
version: 2 version: 2
python: python:
version: 3 version: 3.8
install: install:
- requirements: docs/requirements.txt - requirements: docs/requirements.txt
- method: pip
path: .
sphinx: sphinx:
configuration: docs/conf.py configuration: docs/conf.py

View File

@ -5,6 +5,40 @@ Changelog
master master
====== ======
v1.0.0
======
Incompatible Changes
--------------------
* The minimum supported python version is now 2.7 or 3.4 and greater (#1093)
* The minimum supported Sphinx version is now 1.6 (#1091)
Deprecated
----------
* Support for sphinx's html4 writer is deprecated and will be removed in version 2.0 (#1091)
Other Changes
-------------
* Update npm development dependencies (#1096)
* Don't require npm to build from source (#1039)
* Use regular toctree instead of toc for singlehtml builder (#507)
* Templates: Cleanup Whitespace (#1060)
Fixes
-----
* Javascript: Add support for deep toc levels (#1089)
* Use Proper Sass Syntax (#1069)
* Nav: Fix right padding on level2+ (#1068)
* Fix Nav Buttons Size (#1067)
* Fix: wrap inline literals (#1050)
* Fix aria label (#1056)
* Respect tab order for prev/next buttons (#1051)
* Nav: Don't toggle terminal nodes (#1049)
v0.5.1 v0.5.1
====== ======

View File

@ -41,7 +41,7 @@ pygments_style = 'default'
intersphinx_mapping = { intersphinx_mapping = {
'rtd': ('https://docs.readthedocs.io/en/stable/', None), 'rtd': ('https://docs.readthedocs.io/en/stable/', None),
'sphinx': ('https://www.sphinx-doc.org/en/stable/', None), 'sphinx': ('https://www.sphinx-doc.org/en/master/', None),
} }
html_theme = 'sphinx_rtd_theme' html_theme = 'sphinx_rtd_theme'

View File

@ -37,49 +37,49 @@ documentation navigation.
.. confval:: collapse_navigation .. confval:: collapse_navigation
:type: boolean
:default: ``True``
With this enabled, navigation entries are not expandable -- the ``[+]`` With this enabled, navigation entries are not expandable -- the ``[+]``
icons next to each entry are removed. icons next to each entry are removed.
:type: boolean
:default: ``True``
.. note::
Setting :confval:`collapse_navigation` to ``False`` and using a high value
for :confval:`navigation_depth` on projects with many files and a deep file
structure can cause long compilation times and can result in HTML files that
are significantly larger in file size.
.. confval:: sticky_navigation .. confval:: sticky_navigation
Scroll the navigation with the main page content as you scroll the page.
:type: boolean :type: boolean
:default: ``True`` :default: ``True``
Scroll the navigation with the main page content as you scroll the page.
.. confval:: navigation_depth .. confval:: navigation_depth
:type: integer
:default: ``4``
The maximum depth of the table of contents tree. Set The maximum depth of the table of contents tree. Set
this to ``-1`` to allow unlimited depth. this to ``-1`` to allow unlimited depth.
.. confval:: includehidden :type: integer
:default: ``4``
:type: boolean .. confval:: includehidden
:default: ``True``
Specifies if the navigation includes hidden table(s) of contents -- that is, Specifies if the navigation includes hidden table(s) of contents -- that is,
any :rst:dir:`sphinx:toctree` directive that is marked with the ``:hidden:`` any :rst:dir:`sphinx:toctree` directive that is marked with the ``:hidden:``
option. option.
.. confval:: titles_only
:type: boolean :type: boolean
:default: False :default: ``True``
.. confval:: titles_only
When enabled, page subheadings are not included in the When enabled, page subheadings are not included in the
navigation. navigation.
.. note:: :type: boolean
Setting :confval:`collapse_navigation` to ``False`` and using a high value :default: False
for :confval:`navigation_depth` on projects with many files and a deep file
structure can cause long compilation times and can result in HTML files that
are significantly larger in file size.
.. _table of contents configuration options: http://www.sphinx-doc.org/en/stable/templating.html#toctree .. _table of contents configuration options: http://www.sphinx-doc.org/en/stable/templating.html#toctree
@ -96,28 +96,28 @@ Miscellaneous options
.. confval:: analytics_id .. confval:: analytics_id
:type: string
If specified, Google Analytics' javascript is included in your pages. If specified, Google Analytics' javascript is included in your pages.
Set the value to the ID provided to you by google (like ``UA-XXXXXXX``). Set the value to the ID provided to you by google (like ``UA-XXXXXXX``).
:type: string
.. confval:: analytics_anonymize_ip .. confval:: analytics_anonymize_ip
Anonymize visitor IP addresses in Google Analytics.
:type: boolean :type: boolean
:default: ``False`` :default: ``False``
Anonymize visitor IP addresses in Google Analytics.
.. confval:: canonical_url .. confval:: canonical_url
:type: URL
This will specify a `canonical URL`_ meta link element to tell search This will specify a `canonical URL`_ meta link element to tell search
engines which URL should be ranked as the primary URL for your engines which URL should be ranked as the primary URL for your
documentation. This is important if you have multiple URLs that your documentation. This is important if you have multiple URLs that your
documentation is available through. The URL points to the root path of the documentation is available through. The URL points to the root path of the
documentation and requires a trailing slash. documentation and requires a trailing slash.
:type: URL
.. deprecated:: 0.6.0 .. deprecated:: 0.6.0
Use :confval:`sphinx:html_baseurl` instead. Use :confval:`sphinx:html_baseurl` instead.
@ -126,51 +126,52 @@ Miscellaneous options
.. confval:: display_version .. confval:: display_version
If ``True``, the version number is shown at the top of the sidebar.
:type: boolean :type: boolean
:default: ``True`` :default: ``True``
If ``True``, the version number is shown at the top of the sidebar.
.. confval:: logo_only .. confval:: logo_only
:type: boolean
:default: ``False``
Only display the logo image, do not display the project name at the top of Only display the logo image, do not display the project name at the top of
the sidebar the sidebar
.. confval:: prev_next_buttons_location :type: boolean
:default: ``False``
:type: string .. confval:: prev_next_buttons_location
:default: ``bottom``
Location to display :guilabel:`Next` and :guilabel:`Previous` buttons. This Location to display :guilabel:`Next` and :guilabel:`Previous` buttons. This
can be either ``bottom``, ``top``, ``both`` , or ``None``. can be either ``bottom``, ``top``, ``both`` , or ``None``.
:type: string
:default: ``bottom``
.. confval:: style_external_links .. confval:: style_external_links
Add an icon next to external links.
:type: boolean :type: boolean
:default: ``False`` :default: ``False``
Add an icon next to external links.
.. confval:: vcs_pageview_mode .. confval:: vcs_pageview_mode
:type: string
:default: ``blob`` or ``view``
Changes how to view files when using ``display_github``, ``display_gitlab``, Changes how to view files when using ``display_github``, ``display_gitlab``,
etc. When using GitHub or GitLab this can be: ``blob`` (default), ``edit``, etc. When using GitHub or GitLab this can be: ``blob`` (default), ``edit``,
or ``raw``. On Bitbucket, this can be either: ``view`` (default) or or ``raw``. On Bitbucket, this can be either: ``view`` (default) or
``edit``. ``edit``.
:type: string
:default: ``blob`` or ``view``
.. confval:: style_nav_header_background .. confval:: style_nav_header_background
Changes the background of the search area in the navigation bar. The value
can be anything valid in a CSS `background` property.
:type: string :type: string
:default: ``#2980B9`` :default: ``#2980B9``
Changes the background of the search area in the navigation bar. The value
can be anything valid in a CSS `background` property.
File-wide metadata File-wide metadata
================== ==================
@ -190,7 +191,6 @@ The following options can be used as :ref:`file-wide metadata
Force the :guilabel:`Edit on GitLab` button to use the configured URL. Force the :guilabel:`Edit on GitLab` button to use the configured URL.
Other configuration Other configuration
=================== ===================

View File

@ -101,17 +101,17 @@ To release a new version of the theme, core team will take the following steps:
#. Update the changelog (``docs/changelog.rst``) with the version information. #. Update the changelog (``docs/changelog.rst``) with the version information.
#. Run ``python setup.py update_translations`` to compile new translation files #. Run ``python setup.py update_translations`` to compile new translation files
and update Transifex. and update Transifex.
#. Run ``python setup.py build`` to rebuild all the theme assets and the Python #. Run ``python setup.py build_assets`` to rebuild all the theme assets and the Python
package. package.
#. Commit these changes. #. Commit these changes.
#. Tag the release in git: ``git tag $NEW_VERSION``. #. Tag the release in git: ``git tag $NEW_VERSION``.
#. Push the tag to GitHub: ``git push --tags origin``. #. Push the tag to GitHub: ``git push --tags origin``.
#. Upload the package to PyPI: #. Upload the package to PyPI:
.. code:: console .. code:: console
$ rm -rf dist/ $ rm -rf dist/
$ python setup.py sdist bdist_wheel $ python setup.py sdist bdist_wheel
$ twine upload --sign --identity security@readthedocs.org dist/* $ twine upload --sign --identity security@readthedocs.org dist/*
.. _PEP440: https://www.python.org/dev/peps/pep-0440/ .. _PEP440: https://www.python.org/dev/peps/pep-0440/

View File

@ -23,14 +23,20 @@ In your ``conf.py`` file:
.. note:: .. note::
Adding this theme as an extension is what enables localization of theme
strings in your translated output. If these strings are not translated in Adding this theme as an extension is what enables localization of theme
your output, either we lack the localized strings for your locale, or you strings in your translated output. If these strings are not translated in
are using an old version of the theme. your output, either we lack the localized strings for your locale, or you
are using an old version of the theme.
Via Git or Download Via Git or Download
=================== ===================
.. warning::
Installing directly from the repo is deprecated.
Static assets won't be included in the repo in a future release.
Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into your documentation at Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into your documentation at
``docs/_themes/sphinx_rtd_theme`` then add the following two settings to your Sphinx ``docs/_themes/sphinx_rtd_theme`` then add the following two settings to your Sphinx
``conf.py`` file: ``conf.py`` file:
@ -39,3 +45,11 @@ Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into you
html_theme = "sphinx_rtd_theme" html_theme = "sphinx_rtd_theme"
html_theme_path = ["_themes", ] html_theme_path = ["_themes", ]
Compatibility
=============
``sphinx_rtd_theme`` depends on at least Sphinx 1.6 although,
we recommend at least Sphinx 2 to take advantage of the html5 writer.
The html4 writer is still supported however,
it is deprecated and support will be removed in the near future.

2724
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -7,30 +7,40 @@
"build": "webpack --config webpack.prod.js", "build": "webpack --config webpack.prod.js",
"preinstall": "bin/preinstall.js" "preinstall": "bin/preinstall.js"
}, },
"repository": {
"type": "git",
"url": "https://github.com/readthedocs/sphinx_rtd_theme.git"
},
"author": "Read the Docs",
"license": "MIT",
"bugs": {
"url": "https://github.com/readthedocs/sphinx_rtd_theme/issues"
},
"homepage": "https://github.com/readthedocs/sphinx_rtd_theme",
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
"bourbon": "~4.3", "bourbon": "~4.3",
"bourbon-neat": "~1.9", "bourbon-neat": "~1.9",
"copy-webpack-plugin": "^5.1.1", "copy-webpack-plugin": "^5.1.2",
"css-loader": "^3.1.0", "css-loader": "^3.6.0",
"file-loader": "^3.0.1", "file-loader": "^3.0.1",
"font-awesome": "^4.7.0", "font-awesome": "^4.7.0",
"html5shiv": "^3.7.3", "html5shiv": "^3.7.3",
"imports-loader": "^0.8.0", "imports-loader": "^0.8.0",
"jquery": "^3.4.1", "jquery": "^3.6.0",
"lato-font": "^3.0.0", "lato-font": "^3.0.0",
"mini-css-extract-plugin": "^0.6.0", "mini-css-extract-plugin": "^0.6.0",
"node-sass": "^4.13.1", "node-sass": "^4.13.1",
"optimize-css-assets-webpack-plugin": "^5.0.3", "optimize-css-assets-webpack-plugin": "^5.0.4",
"roboto-fontface": "^0.10.0", "roboto-fontface": "^0.10.0",
"sass-loader": "^7.3.0", "sass-loader": "^7.3.0",
"style-loader": "^0.23.1", "style-loader": "^0.23.1",
"webpack": "^4.30.0", "webpack": "^4.46.0",
"webpack-cli": "^3.3.1", "webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.3.1", "webpack-dev-server": "^3.11.2",
"webpack-merge": "^4.2.1", "webpack-merge": "^4.2.1",
"webpack-shell-plugin": "^0.5.0", "webpack-shell-plugin": "^0.5.0",
"webpack-watch-files-plugin": "^1.0.3", "webpack-watch-files-plugin": "^1.1.0",
"wyrm": "^1.0.9" "wyrm": "^1.0.9"
} }
} }

View File

@ -1,27 +1,29 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
"""`sphinx_rtd_theme` lives on `Github`_.
.. _github: https://github.com/readthedocs/sphinx_rtd_theme
"""
import distutils.cmd
import os import os
import subprocess import subprocess
import distutils.cmd
import setuptools.command.build_py
from io import open from io import open
from setuptools import setup from setuptools import setup
class WebpackBuildCommand(setuptools.command.build_py.build_py): class WebpackBuildCommand(distutils.cmd.Command):
"""Prefix Python build with Webpack asset build""" description = "Generate static assets"
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self): def run(self):
if not 'CI' in os.environ and not 'TOX_ENV_NAME' in os.environ: if not 'CI' in os.environ and not 'TOX_ENV_NAME' in os.environ:
subprocess.run(['npm', 'install'], check=True) subprocess.run(['npm', 'install'], check=True)
subprocess.run(['node_modules/.bin/webpack', '--config', 'webpack.prod.js'], check=True) subprocess.run(['node_modules/.bin/webpack', '--config', 'webpack.prod.js'], check=True)
setuptools.command.build_py.build_py.run(self)
class WebpackDevelopCommand(distutils.cmd.Command): class WebpackDevelopCommand(distutils.cmd.Command):
@ -95,7 +97,7 @@ setup(
cmdclass={ cmdclass={
'update_translations': UpdateTranslationsCommand, 'update_translations': UpdateTranslationsCommand,
'transifex': TransifexCommand, 'transifex': TransifexCommand,
'build_py': WebpackBuildCommand, 'build_assets': WebpackBuildCommand,
'watch': WebpackDevelopCommand, 'watch': WebpackDevelopCommand,
}, },
zip_safe=False, zip_safe=False,
@ -115,7 +117,7 @@ setup(
] ]
}, },
install_requires=[ install_requires=[
'sphinx' 'sphinx>=1.6'
], ],
tests_require=[ tests_require=[
'pytest', 'pytest',
@ -137,12 +139,17 @@ setup(
'Intended Audience :: Developers', 'Intended Audience :: Developers',
'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Operating System :: OS Independent', 'Operating System :: OS Independent',
'Topic :: Documentation', 'Topic :: Documentation',
'Topic :: Software Development :: Documentation', 'Topic :: Software Development :: Documentation',
], ],
project_urls={
'Homepage': 'https://sphinx-rtd-theme.readthedocs.io/',
'Source Code': 'https://github.com/readthedocs/sphinx_rtd_theme',
'Issue Tracker': 'https://github.com/readthedocs/sphinx_rtd_theme/issues',
},
) )

View File

@ -5,15 +5,11 @@ From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
""" """
from os import path from os import path
from sys import version_info as python_version
from sphinx import version_info from sphinx import version_info as sphinx_version
from sphinx.locale import _ from sphinx.locale import _
from sphinx.util.logging import getLogger
try:
# Avaliable from Sphinx 1.6
from sphinx.util.logging import getLogger
except ImportError:
from logging import getLogger
__version__ = '0.5.1' __version__ = '0.5.1'
@ -38,11 +34,21 @@ def config_initiated(app, config):
# See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package # See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package
def setup(app): def setup(app):
if version_info >= (1, 6, 0): if python_version[0] < 3:
# Register the theme that can be referenced without adding a theme path logger.warning("Python 2 is deprecated with sphinx_rtd_theme, update to Python 3")
app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__))) app.require_sphinx('1.6')
if sphinx_version <= (2, 0, 0):
logger.warning("Sphinx 1.x is deprecated with sphinx_rtd_theme, update to Sphinx 2.x or greater")
if not app.config.html_experimental_html5_writer:
logger.warning("'html4_writer' is deprecated with sphinx_rtd_theme")
else:
if app.config.html4_writer:
logger.warning("'html4_writer' is deprecated with sphinx_rtd_theme")
if version_info >= (1, 8, 0): # Register the theme that can be referenced without adding a theme path
app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))
if sphinx_version >= (1, 8, 0):
# Add Sphinx message catalog for newer versions of Sphinx # Add Sphinx message catalog for newer versions of Sphinx
# See http://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_message_catalog # See http://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_message_catalog
rtd_locale_path = path.join(path.abspath(path.dirname(__file__)), 'locale') rtd_locale_path = path.join(path.abspath(path.dirname(__file__)), 'locale')

View File

@ -1,11 +1,3 @@
{#- Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #}
{%- if page_source_suffix %}
{%- set suffix = page_source_suffix %}
{%- else %}
{%- set suffix = source_suffix %}
{%- endif %}
{%- if meta is defined and meta is not none %} {%- if meta is defined and meta is not none %}
{%- set check_meta = True %} {%- set check_meta = True %}
{%- else %} {%- else %}
@ -43,24 +35,24 @@
<!-- User defined GitHub URL --> <!-- User defined GitHub URL -->
<a href="{{ meta['github_url'] }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a> <a href="{{ meta['github_url'] }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
{%- else %} {%- else %}
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a> <a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
{%- endif %} {%- endif %}
{%- elif display_bitbucket %} {%- elif display_bitbucket %}
{%- if check_meta and 'bitbucket_url' in meta %} {%- if check_meta and 'bitbucket_url' in meta %}
<!-- User defined Bitbucket URL --> <!-- User defined Bitbucket URL -->
<a href="{{ meta['bitbucket_url'] }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a> <a href="{{ meta['bitbucket_url'] }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
{%- else %} {%- else %}
<a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ suffix }}?mode={{ theme_vcs_pageview_mode or "view" }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a> <a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}?mode={{ theme_vcs_pageview_mode or "view" }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
{%- endif %} {%- endif %}
{%- elif display_gitlab %} {%- elif display_gitlab %}
{%- if check_meta and 'gitlab_url' in meta %} {%- if check_meta and 'gitlab_url' in meta %}
<!-- User defined GitLab URL --> <!-- User defined GitLab URL -->
<a href="{{ meta['gitlab_url'] }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a> <a href="{{ meta['gitlab_url'] }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
{%- else %} {%- else %}
<a href="https://{{ gitlab_host|default("gitlab.com") }}/{{ gitlab_user }}/{{ gitlab_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ gitlab_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a> <a href="https://{{ gitlab_host|default("gitlab.com") }}/{{ gitlab_user }}/{{ gitlab_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ gitlab_version }}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
{%- endif %} {%- endif %}
{%- elif show_source and source_url_prefix %} {%- elif show_source and source_url_prefix %}
<a href="{{ source_url_prefix }}{{ pagename }}{{ suffix }}">{{ _('View page source') }}</a> <a href="{{ source_url_prefix }}{{ pagename }}{{ page_source_suffix }}">{{ _('View page source') }}</a>
{%- elif show_source and has_source and sourcename %} {%- elif show_source and has_source and sourcename %}
<a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a> <a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a>
{%- endif %} {%- endif %}

File diff suppressed because one or more lines are too long

View File

@ -146,13 +146,10 @@ function ThemeNav () {
if (link.length > 0) { if (link.length > 0) {
$('.wy-menu-vertical .current').removeClass('current'); $('.wy-menu-vertical .current').removeClass('current');
link.addClass('current'); link.addClass('current');
link.closest('li.toctree-l1').addClass('current');
link.closest('li.toctree-l1').parent().addClass('current'); link.closest('li.toctree-l1').parent().addClass('current');
link.closest('li.toctree-l1').addClass('current'); for (let i = 1; i <= 10; i++) {
link.closest('li.toctree-l2').addClass('current'); link.closest('li.toctree-l' + i).addClass('current');
link.closest('li.toctree-l3').addClass('current'); }
link.closest('li.toctree-l4').addClass('current');
link.closest('li.toctree-l5').addClass('current');
link[0].scrollIntoView(); link[0].scrollIntoView();
} }
} }