| 
1 |  | -From 5bffbe38302c695123779f87300d84090b4bd118 Mon Sep 17 00:00:00 2001  | 
 | 1 | +From 7951c3183b422bc7afe115952ef7ae15b79e45d3 Mon Sep 17 00:00:00 2001  | 
2 | 2 | From: Kwankyu Lee < [email protected]>  | 
3 | 3 | Date: Mon, 28 Aug 2023 00:18:59 +0900  | 
4 | 4 | Subject: [PATCH] Patch for sage live doc  | 
5 | 5 | 
 
  | 
6 | 6 | ---  | 
7 | 7 |  jupyter_sphinx/__init__.py |  4 ++--  | 
8 |  | - jupyter_sphinx/execute.py  | 11 +++++++++++  | 
9 |  | - 2 files changed, 13 insertions(+), 2 deletions(-)  | 
 | 8 | + jupyter_sphinx/execute.py  | 17 +++++++++++++++++  | 
 | 9 | + 2 files changed, 19 insertions(+), 2 deletions(-)  | 
10 | 10 | 
 
  | 
11 | 11 | diff --git a/jupyter_sphinx/__init__.py b/jupyter_sphinx/__init__.py  | 
12 |  | -index 34af884..b7ca8ee 100644  | 
 | 12 | +index 34af884..920131c 100644  | 
13 | 13 | --- a/jupyter_sphinx/__init__.py  | 
14 | 14 | +++ b/jupyter_sphinx/__init__.py  | 
15 | 15 | @@ -31,7 +31,7 @@ from .thebelab import ThebeButton, ThebeButtonNode, ThebeOutputNode, ThebeSource  | 
16 | 16 |  REQUIRE_URL_DEFAULT = (  | 
17 | 17 |      "https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"  | 
18 | 18 |  )  | 
19 | 19 | -THEBELAB_URL_DEFAULT = "https://unpkg.com/thebelab@^0.4.0"  | 
20 |  | -+THEBELAB_URL_DEFAULT = "https://unpkg.com/thebe@latest/lib/index.js"  | 
21 |  | -   | 
 | 20 | ++THEBELAB_URL_DEFAULT = "https://unpkg.com/thebe@0.8.2/lib/index.js"  | 
 | 21 | + | 
22 | 22 |  logger = logging.getLogger(__name__)  | 
23 |  | -   | 
 | 23 | + | 
24 | 24 | @@ -186,7 +186,7 @@ def setup(app):  | 
25 | 25 |      app.add_config_value("jupyter_sphinx_embed_url", None, "html")  | 
26 |  | -   | 
 | 26 | + | 
27 | 27 |      # thebelab config, can be either a filename or a dict  | 
28 | 28 | -    app.add_config_value("jupyter_sphinx_thebelab_config", None, "html")  | 
29 | 29 | +    app.add_config_value("jupyter_sphinx_thebelab_config", None, "env")  | 
30 | 30 |      app.add_config_value("jupyter_sphinx_thebelab_url", THEBELAB_URL_DEFAULT, "html")  | 
31 |  | -   | 
 | 31 | + | 
32 | 32 |      # linenos config  | 
33 | 33 | diff --git a/jupyter_sphinx/execute.py b/jupyter_sphinx/execute.py  | 
34 |  | -index 558a26b..de44455 100644  | 
 | 34 | +index cb473cf..898d86b 100644  | 
35 | 35 | --- a/jupyter_sphinx/execute.py  | 
36 | 36 | +++ b/jupyter_sphinx/execute.py  | 
37 |  | -@@ -152,6 +152,17 @@ class ExecuteJupyterCells(SphinxTransform):  | 
 | 37 | +@@ -152,6 +152,23 @@ class ExecuteJupyterCells(SphinxTransform):  | 
38 | 38 |                  kernel_name = default_kernel  | 
39 | 39 |                  file_name = next(default_names)  | 
40 |  | -   | 
 | 40 | + | 
41 | 41 | +            # Save time when jupyter notebook execution is not necessary  | 
42 |  | -+            if not any(not "execute" in node or node["execute"] for node in nodes):  | 
43 |  | -+                # mimics empty cell output for each node  | 
 | 42 | ++            if all("execute" in node and not node["execute"] for node in nodes):  | 
 | 43 | ++                notebook = blank_nb(kernel_name)  | 
 | 44 | ++                try:  | 
 | 45 | ++                    cm_language = notebook.metadata.language_info.codemirror_mode.name  | 
 | 46 | ++                except AttributeError:  | 
 | 47 | ++                    cm_language = notebook.metadata.kernelspec.language  | 
 | 48 | ++                # Mimic empty cell output for each node  | 
44 | 49 | +                for node in nodes:  | 
45 | 50 | +                    source = node.children[0]  | 
46 | 51 | +                    source.attributes["classes"].append("code_cell")  | 
47 |  | -+                    node.attributes["cm_language"] = kernel_name  | 
48 |  | -+                    node += CellOutputNode(classes=["cell_output"])  | 
 | 52 | ++                    node.attributes["cm_language"] = cm_language  | 
 | 53 | ++                    if len(node.children) < 2:  | 
 | 54 | ++                        node += CellOutputNode(classes=["cell_output"])  | 
49 | 55 | +                    apply_styling(node, thebe_config)  | 
50 | 56 | +                continue  | 
51 | 57 | +  | 
52 | 58 |              # Add empty placeholder cells for non-executed nodes so nodes  | 
53 | 59 |              # and cells can be zipped and the provided input/output  | 
54 | 60 |              # can be inserted later  | 
55 |  | ---   | 
56 |  | -2.42.0  | 
 | 61 | +--  | 
 | 62 | +2.44.0  | 
57 | 63 | 
 
  | 
0 commit comments