Skip to main content

add custom launch buttons to jupyter-book

Project description

Custom launch buttons

Introduction

The custom launch button extension allows you to create a customizable button in the top right of your jupyter book. This may have many applications, one of them being that you can create different language versions of the book available for the user.

What does it do?

This extension add a button to the top bar which allows you to link to other website. In combination with a translated book on another branch you can use this to create multilingual books.

Installation

  1. Install the sphinx-launch-buttons package using pip if you'd like to build your book locally:
pip install sphinx-launch-buttons
  1. Make sure that the package is included in your project's requirements.txt to track the dependency:
sphinx-launch-buttons
  1. To use the extension in your book, add the extension to the list of Sphinx extra extensions in your _config.yml file, (important: underscore, not dash this time):
sphinx:
  extra_extensions:
    - custom-launch-buttons

Usage

This section will explain how to create a "Languages" button, like you might be used to seeing on just about any website. The use of the button, however, is completely customizable and may be used in many different ways.

  1. Include a _launch_buttons.yml file in the same location (root directory of your book) as your _config.yml file. The following code cell shows the main structure of that file.
buttons:
  - type : dropdown

  - type : button

Here, buttons is an array of launch buttons, each can be identified using 2 types: 'dropdown' or 'button'. The cell above shows 2 buttons, one of type dropdown and one of type button.

The button/dropdown can be visualized using either an svg icon or text.

buttons:
  - type : dropdown
    label: Language
  - type : button
    icon : <svg> ... 
            </svg> 
  1. Lastly you need to specify the items of your button. So assuming you want to have different language versions, each item will be one of the languages.
buttons:
  - type : dropdown
    label: Language

  - type : button
    icon : <svg> ... 
            </svg> 
    items:
      - label: English
        url: url of branch
      - label: Nederlands
        url: url of branch

As you can see in the items: line, each dropdown option links to the branch of the repository in the respective language.

Setting up your repository for multilingual book

For the implementation to your book, it is handy to create a branch for each language version you want to offer. Make a new branch using for example main as a source. Assuming we want to create a dutch version of you can call this branch Dutch or Nederlands.

You will then need to translate the content in the dutch branch to dutch which can take some time. From experience, DeepL is a good tool for this but any AI chatbot might be helpful as well. Make sure to proofread the translation.

You'll need to add (merge) the updated _config.yml and the new _launch_buttons.yml to all of your branches.

Example

buttons:
  - type: dropdown
    icon: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-globe" viewBox="0 0 16 16">
            <path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8m7.5-6.923c-.67.204-1.335.82-1.887 1.855A8 8 0 0 0 5.145 4H7.5zM4.09 4a9.3 9.3 0 0 1 .64-1.539 7 7 0 0 1 .597-.933A7.03 7.03 0 0 0 2.255 4zm-.582 3.5c.03-.877.138-1.718.312-2.5H1.674a7 7 0 0 0-.656 2.5zM4.847 5a12.5 12.5 0 0 0-.338 2.5H7.5V5zM8.5 5v2.5h2.99a12.5 12.5 0 0 0-.337-2.5zM4.51 8.5a12.5 12.5 0 0 0 .337 2.5H7.5V8.5zm3.99 0V11h2.653c.187-.765.306-1.608.338-2.5zM5.145 12q.208.58.468 1.068c.552 1.035 1.218 1.65 1.887 1.855V12zm.182 2.472a7 7 0 0 1-.597-.933A9.3 9.3 0 0 1 4.09 12H2.255a7 7 0 0 0 3.072 2.472M3.82 11a13.7 13.7 0 0 1-.312-2.5h-2.49c.062.89.291 1.733.656 2.5zm6.853 3.472A7 7 0 0 0 13.745 12H11.91a9.3 9.3 0 0 1-.64 1.539 7 7 0 0 1-.597.933M8.5 12v2.923c.67-.204 1.335-.82 1.887-1.855q.26-.487.468-1.068zm3.68-1h2.146c.365-.767.594-1.61.656-2.5h-2.49a13.7 13.7 0 0 1-.312 2.5m2.802-3.5a7 7 0 0 0-.656-2.5H12.18c.174.782.282 1.623.312 2.5zM11.27 2.461c.247.464.462.98.64 1.539h1.835a7 7 0 0 0-3.072-2.472c.218.284.418.598.597.933M10.855 4a8 8 0 0 0-.468-1.068C9.835 1.897 9.17 1.282 8.5 1.077V4z"/>
          </svg>
    items:
      - label: English
        url: https://teachbooks.github.io/files-and-folders/EN
      - label: Nederlands
        url: https://teachbooks.github.io/files-and-folders/NL

The code in the above cell is the _launch_buttons.yml file of a repository called "files-and-folders". The buttons created look like this:

Custom button

Contribute

This tool's repository is stored on GitHub. The README.md of the branch manual is also part of the TeachBooks manual as a submodule. If you'd like to contribute, you can create a fork and open a pull request on the GitHub repository. To update the README.md shown in the TeachBooks manual, create a fork and open a merge request for the GitHub repository of the manual. If you intent to clone the manual including its submodules, clone using: git clone --recurse-submodulesgit@github.com:TeachBooks/manual.git.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinx_launch_buttons-1.0.3.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphinx_launch_buttons-1.0.3-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file sphinx_launch_buttons-1.0.3.tar.gz.

File metadata

  • Download URL: sphinx_launch_buttons-1.0.3.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for sphinx_launch_buttons-1.0.3.tar.gz
Algorithm Hash digest
SHA256 aaa60a91ee0ca3192b9bcbbfd4760b9e4d21e6bd2ef253a74ae1d7b07a8ca98f
MD5 acf55ea39664d177c42db4ebefb42a65
BLAKE2b-256 2514aaf13733c284bbbbb999be10415b3563689a22b795d1e1193c7407592ef6

See more details on using hashes here.

Provenance

The following attestation bundles were made for sphinx_launch_buttons-1.0.3.tar.gz:

Publisher: python-publish.yml on TeachBooks/Sphinx-launch-buttons

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sphinx_launch_buttons-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for sphinx_launch_buttons-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b31d177af1de50a638cdf6d4f5617aeb72cf9a08700309d60ee90f6c670d3600
MD5 b6cfa03410f44602ce7aca99ed69d99b
BLAKE2b-256 b868f0ac83ad79eef2cd1027fe1bd06db6585ce0ad6386b3b958d6378200fd15

See more details on using hashes here.

Provenance

The following attestation bundles were made for sphinx_launch_buttons-1.0.3-py3-none-any.whl:

Publisher: python-publish.yml on TeachBooks/Sphinx-launch-buttons

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page