From 951d7a124c5c96689aa765e0604d2d585518d161 Mon Sep 17 00:00:00 2001 From: Quentin Fortier Date: Thu, 18 Aug 2022 11:31:59 +0200 Subject: [PATCH] Add basthon support Co-authored-by: Chris Holdgraf Co-authored-by: Angus Hollands --- docs/conf.py | 1 + docs/content/launch.md | 18 ++++++++++++++++++ .../header_buttons/launch.py | 14 ++++++++++++++ .../static/images/logo_basthon.png | Bin 0 -> 10282 bytes tests/sites/base/conf.py | 1 + tests/test_build/build__header-article.html | 10 ++++++++++ tests/test_build/test_header_launchbtns.html | 10 ++++++++++ 7 files changed, 54 insertions(+) create mode 100644 src/sphinx_book_theme/theme/sphinx_book_theme/static/images/logo_basthon.png diff --git a/docs/conf.py b/docs/conf.py index c050d7d2..441e4f34 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -113,6 +113,7 @@ "binderhub_url": "https://mybinder.org", "colab_url": "https://colab.research.google.com/", "deepnote_url": "https://deepnote.com/", + "basthon_url": "https://notebook.basthon.fr/", "notebook_interface": "jupyterlab", "thebe": True, # "jupyterhub_url": "https://datahub.berkeley.edu", # For testing diff --git a/docs/content/launch.md b/docs/content/launch.md index 8c851c34..288a3d69 100644 --- a/docs/content/launch.md +++ b/docs/content/launch.md @@ -67,6 +67,7 @@ html_theme_options = { ... } ``` + ## Deepnote To add [Deepnote](https://deepnote.com) links to your page, add the following configuration: @@ -85,6 +86,23 @@ html_theme_options = { This will create a new Deepnote project every time you click the launch button. ``` +## Basthon + +To add [Basthon](https://basthon.fr/) links to your page, add the following configuration: + +```python +html_theme_options = { + ... + "launch_buttons": { + "basthon_url": "https://notebook.basthon.fr" + }, + ... +} +``` + +```{tip} +By default, a Python kernel is used. You can add "/sql" or "/ocaml" to basthon_url to run a notebook with another language. +``` ## Live code cells with Thebe diff --git a/src/sphinx_book_theme/header_buttons/launch.py b/src/sphinx_book_theme/header_buttons/launch.py index 112872d8..5c254e79 100644 --- a/src/sphinx_book_theme/header_buttons/launch.py +++ b/src/sphinx_book_theme/header_buttons/launch.py @@ -114,6 +114,7 @@ def add_launch_buttons( jupyterhub_url = launch_buttons.get("jupyterhub_url", "").strip("/") binderhub_url = launch_buttons.get("binderhub_url", "").strip("/") colab_url = launch_buttons.get("colab_url", "").strip("/") + basthon_url = launch_buttons.get("basthon_url", "").strip("/") deepnote_url = launch_buttons.get("deepnote_url", "").strip("/") # Loop through each provider and add a button for it if needed @@ -188,6 +189,19 @@ def add_launch_buttons( } ) + if basthon_url: + gh = "https://raw.githubusercontent.com" + url = f"{basthon_url}/?from={gh}/{org}/{repo}/{branch}/{path_rel_repo}" + launch_buttons_list.append( + { + "type": "link", + "text": "Basthon", + "tooltip": "Launch on Basthon", + "icon": "_static/images/logo_basthon.png", + "url": url, + } + ) + # Add thebe flag in context if launch_buttons.get("thebe", False): launch_buttons_list.append( diff --git a/src/sphinx_book_theme/theme/sphinx_book_theme/static/images/logo_basthon.png b/src/sphinx_book_theme/theme/sphinx_book_theme/static/images/logo_basthon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a440aade2bcdd06b472dcc7c4c7da7fd89100b4 GIT binary patch literal 10282 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

(140OHur@4H*1QEJHmtM0BiEV9w)pp19$3XH nzu@hgIShO(luw5)JW>dB?3cT*MczUD$N*@n>cPsC?*;uoM&ZET literal 0 HcmV?d00001 diff --git a/tests/sites/base/conf.py b/tests/sites/base/conf.py index 63f37fe8..13ef23f4 100644 --- a/tests/sites/base/conf.py +++ b/tests/sites/base/conf.py @@ -27,6 +27,7 @@ "jupyterhub_url": "https://datahub.berkeley.edu", "colab_url": "https://colab.research.google.com", "deepnote_url": "https://deepnote.com", + "basthon_url": "https://notebook.basthon.fr", "notebook_interface": "jupyterlab", "thebe": True, }, diff --git a/tests/test_build/build__header-article.html b/tests/test_build/build__header-article.html index bbac6fd6..242ac023 100644 --- a/tests/test_build/build__header-article.html +++ b/tests/test_build/build__header-article.html @@ -57,6 +57,16 @@ +

  • + + + + + + Basthon + + +
  • +
  • + + + + + + Basthon + + +