adding copy buttons to code blocks

This commit is contained in:
Chris Holdgraf
2018-07-05 17:51:51 -07:00
parent 4fcf41a6c6
commit c6fbf47774
8 changed files with 70 additions and 13 deletions

22
docs/_static/custom.css vendored Normal file
View File

@@ -0,0 +1,22 @@
button.copybtn {
webkit-transition: opacity .3s ease-in-out;
-o-transition: opacity .3s ease-in-out;
transition: opacity .3s ease-in-out;
opacity: 0;
padding: 2px 6px;
position: absolute;
right: 4px;
top: 4px;
}
div.highlight:hover .copybtn, div.highlight .copybtn:focus {
opacity: .3;
}
div.highlight .copybtn:hover {
opacity: 1;
}
div.highlight {
position: relative;
}

25
docs/_static/custom.js vendored Normal file
View File

@@ -0,0 +1,25 @@
// Set up copy/paste for code blocks
function addCopyButtonToCode(){
// get all <code> elements
var allCodeBlocksElements = $( "div.highlight pre" );
allCodeBlocksElements.each(function(ii) {
// add different id for each code block
// target
var currentId = "codeblock" + (ii + 1);
$(this).attr('id', currentId);
//trigger
var clipButton = '<button class="btn copybtn" data-clipboard-target="#' + currentId + '"><img src="https://clipboardjs.com/assets/images/clippy.svg" width="13" alt="Copy to clipboard"></button>';
$(this).after(clipButton);
});
new Clipboard('.btn');
}
$(document).ready(function () {
// Highlight current page in sidebar
console.log('hi');
addCopyButtonToCode();
});

View File

@@ -10,6 +10,12 @@ version = ''
# The full version, including alpha/beta/rc tags # The full version, including alpha/beta/rc tags
release = 'v0.1' release = 'v0.1'
# Add custom CSS/Javascript
def setup(app):
app.add_javascript("custom.js")
app.add_stylesheet("custom.css")
app.add_javascript("https://cdn.jsdelivr.net/npm/clipboard@1/dist/clipboard.min.js")
# Enable MathJax for Math # Enable MathJax for Math
extensions = ['sphinx.ext.mathjax'] extensions = ['sphinx.ext.mathjax']

View File

@@ -7,9 +7,9 @@ In The Littlest JupyterHub, we try to allow users to do as many administrative
tasks as possible within JupyterHub itself. Admin users can: tasks as possible within JupyterHub itself. Admin users can:
1. Have full root access with passwordless ``sudo`` 1. Have full root access with passwordless ``sudo``
2. Install systemwide packages with ``apt`` 2. Install system-wide packages with ``apt``
3. Install ``conda`` / ``pip`` packages for all JupyterHub 3. Install ``conda`` / ``pip`` packages for all JupyterHub users
4. Change amount of RAM / CPU available to each user and more! 4. Change the amount of RAM / CPU available to each user, and more!
By default, there are no admin users. You should add some after installation. By default, there are no admin users. You should add some after installation.
@@ -17,7 +17,8 @@ Adding admin users
================== ==================
Admin users are specified in the `YAML <https://en.wikipedia.org/wiki/YAML>`_ Admin users are specified in the `YAML <https://en.wikipedia.org/wiki/YAML>`_
config file at ``/opt/tljh/config.yaml``. config file at ``/opt/tljh/config.yaml``. This file is created upon installing
tljh.
1. Open the ``config.yaml`` file for editing. 1. Open the ``config.yaml`` file for editing.

View File

@@ -15,7 +15,7 @@ The quick way to install The Littlest JupyterHub (tljh) is:
This takes 2-5 minutes to run. When completed, you can access your new JupyterHub This takes 2-5 minutes to run. When completed, you can access your new JupyterHub
at the public IP of your server! at the public IP of your server!
You should probably add yourself as an `admin user <admin.md>`_ You should probably add yourself as an `admin user <admin.rst>`_
after installation. after installation.
Slightly less quick installation Slightly less quick installation

View File

@@ -10,7 +10,7 @@ interfaces you can use:
1. `JupyterLab <http://jupyterlab.readthedocs.io/en/stable/>`_ 1. `JupyterLab <http://jupyterlab.readthedocs.io/en/stable/>`_
2. `nteract <https://nteract.io/>`_ 2. `nteract <https://nteract.io/>`_
Both these interfaces are also shipped with TLJH by default. You can try them Both these interfaces are also shipped with tljh by default. You can try them
temporarily, or set them to be the default interface whenever you login. temporarily, or set them to be the default interface whenever you login.
Trying alternate interface tempoarily Trying alternate interface tempoarily
@@ -20,13 +20,12 @@ When you log in & start your server, by default the URL in your browser
will be something like ``/user/<username>/tree``. The ``/tree`` is what tells will be something like ``/user/<username>/tree``. The ``/tree`` is what tells
the notebook server to give you the classic notebook interface. the notebook server to give you the classic notebook interface.
If you change ``/tree`` to ``/lab``, you will get the JupyterLab interface. * **For the JupyterLab interface**: change ``/tree`` to ``/lab``.
* **For the nteract interface**: change ``/tree`` to ``/nteract``
If you change ``/tree`` to ``/nteract``, you will get the nteract interface.
You can play around with them and see what fits your use cases best. You can play around with them and see what fits your use cases best.
Changing default notebook interface Changing the default user interface
----------------------------------- -----------------------------------
You can change the default interface users get when they log in by modifying You can change the default interface users get when they log in by modifying

View File

@@ -7,7 +7,7 @@ Looking at Logs
They contain a forensic record of what individual pieces of software were doing They contain a forensic record of what individual pieces of software were doing
before things went bad, and can help us understand the problem so we can fix it. before things went bad, and can help us understand the problem so we can fix it.
TLJH collects logs from JupyterHub, Configurable HTTP Proxy & from each individual TLJH collects logs from JupyterHub, Configurable HTTP Proxy, & from each individual
user's notebook server. All the logs are accessible via `journalctl <https://www.freedesktop.org/software/systemd/man/journalctl.html>`_. user's notebook server. All the logs are accessible via `journalctl <https://www.freedesktop.org/software/systemd/man/journalctl.html>`_.
.. warning:: .. warning::
@@ -58,8 +58,9 @@ problems after that.
sudo journalctl -u jupyter-<name-of-user> sudo journalctl -u jupyter-<name-of-user>
This command displays logs from the given user's notebook server. See :ref:`journalctl_tips` This command displays logs from the given user's notebook server. You can get a
for tips on navigating the logs. list of all users from the "users" button at the top-right of the Admin page.
See :ref:`journalctl_tips` for tips on navigating the logs.
.. _journalctl_tips: .. _journalctl_tips:

View File

@@ -82,6 +82,9 @@ Let's create the server on which we can run JupyterHub.
.. image:: ../images/providers/google/machine-type-advanced.png .. image:: ../images/providers/google/machine-type-advanced.png
:alt: Select a customized VM size :alt: Select a customized VM size
For more guidance on the different options available to you, as well as
pricing considerations on Google Cloud, see the `GCP Choosing a VM Guide <https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type?hl=en_US>`_.
#. Under **Boot Disk**, click the **Change** button. This lets us change the #. Under **Boot Disk**, click the **Change** button. This lets us change the
operating system and the size of your disk. operating system and the size of your disk.