From 4bd0514a72682e96ddeb7f07562d7cca13a734ed Mon Sep 17 00:00:00 2001
From: douden <d.denouden-vanderhorst@tudelft.nl>
Date: Mon, 18 Nov 2024 14:46:34 +0100
Subject: [PATCH] large improvement for themes and grasple
---
.gitlab-ci.yml.bak | 27 ---
.gitmodules | 3 -
Chapter1/Inner_Product.md | 4 +-
Chapter2/LinearIndependence.md | 12 +-
Chapter2/SolutionSets.md | 12 +-
Chapter3/Injectivity_and_surjectivity.md | 30 ++-
Chapter3/Linear_Transformations.md | 2 +-
Colophon/Acknowledgements.md | 2 +-
README.md.bak | 122 ------------
_config.yml | 3 +-
_static/extra_css_config.css | 241 -----------------------
install.sh | 1 -
requirements.txt | 4 +-
sphinx-grasple | 1 -
14 files changed, 43 insertions(+), 421 deletions(-)
delete mode 100644 .gitlab-ci.yml.bak
delete mode 100644 README.md.bak
delete mode 160000 sphinx-grasple
diff --git a/.gitlab-ci.yml.bak b/.gitlab-ci.yml.bak
deleted file mode 100644
index 9a5c6ed..0000000
--- a/.gitlab-ci.yml.bak
+++ /dev/null
@@ -1,27 +0,0 @@
-stages:
- - build
- - deploy
-variables:
- GIT_SUBMODULE_STRATEGY: recursive
-
-jupyter-build:
- stage: build
- image: python:slim
- script:
- - sh install.sh
- - jupyter-book clean .
- - jupyter-book build .
- artifacts:
- paths:
- - _build/
-
-pages:
- stage: deploy
- image: busybox:latest
- script:
- - mv _build/html public
- artifacts:
- paths:
- - public
- rules:
- - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
diff --git a/.gitmodules b/.gitmodules
index 6f834eb..e69de29 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +0,0 @@
-[submodule "sphinx-grasple"]
- path = sphinx-grasple
- url = https://github.com/TeachBooks/Sphinx-Grasple-public.git
\ No newline at end of file
diff --git a/Chapter1/Inner_Product.md b/Chapter1/Inner_Product.md
index 3c8e934..b67a2d5 100644
--- a/Chapter1/Inner_Product.md
+++ b/Chapter1/Inner_Product.md
@@ -501,7 +501,7 @@ may seem counterintuitive to you. The following example illustrates a situation
:label: Ex:PerpendicularLine
Let $\mathbf{n}$ be any nonzero vector in the plane.
-The set of vectors that are orthogonal to $\mathbf{n}$ all lie on a line through the origin. (See {numref}`Figure %s <Fig:InnerProduct:PerpendicularLine>`.) If we agree that $\mathbf{0}\perp\mathbf{n}$, it will be the whole line.
+The set of vectors that are orthogonal to $\mathbf{n}$ all lie on a line $\mathcal{L}$ through the origin. (See {numref}`Figure %s <Fig:InnerProduct:PerpendicularLine>`.) If we agree that $\mathbf{0}\perp\mathbf{n}$, it will be the whole line.
The vector $\mathbf{n}$ is often said to be a _normal_ vector to the line.
```{applet}
@@ -510,7 +510,7 @@ The vector $\mathbf{n}$ is often said to be a _normal_ vector to the line.
:name: Fig:InnerProduct:PerpendicularLine
:class: dark-light
-Vectors orthogonal to a nonzero vector $\mathbf{n}$ in the plane.
+The line $\mathcal{L}$ of vectors orthogonal to a nonzero vector $\mathbf{n}$ in the plane.
```
::::
diff --git a/Chapter2/LinearIndependence.md b/Chapter2/LinearIndependence.md
index 22e6e7e..f9739ac 100644
--- a/Chapter2/LinearIndependence.md
+++ b/Chapter2/LinearIndependence.md
@@ -131,12 +131,14 @@ $$
but now the subset $\left\lbrace\mathbf{v}_{1},\mathbf{v}_{4}\right\rbrace$ is a linearly dependent subset of $S$. On the other hand, the subsets $\left\lbrace\mathbf{v}_{1},\mathbf{v}_{2}\right\rbrace$ and $\left\lbrace\mathbf{v}_{2},\mathbf{v}_{4}\right\rbrace$ are linearly independent.
-::::{figure} Images/Fig-LinInd-Examplein2D.svg
+```{applet}
+:url: linear_independence/linind_example_in_2d
+:fig: Images/Fig-LinInd-Examplein2D.svg
:name: Fig:LinInd:Examplein2D
:class: dark-light
The vectors from [i.](#Item:LinInd:LinDepExin2D) on the left and from [ii.](#Item:LinInd:LinDepandIndDepExin2D) on the right. On the left, there is no vector which is a multiple of another vector, so every set of two vectors is linearly independent. On the right this is not the case. The vectors $\mathbf{v}_{1}$ and $\mathbf{v}_{4}$ are multiples of each other and therefore $\left\lbrace\mathbf{v}_{1},\mathbf{v}_{4}\right\rbrace$ is linearly dependent.
-::::
+```
</li>
<li id="Item:LinInd:LinDepExin3D">
@@ -153,12 +155,14 @@ $$
The set $\left\lbrace\mathbf{w}_{1},\mathbf{w}_{2},\mathbf{w}_{3}\right\rbrace$ is linearly dependent. The set $\left\lbrace\mathbf{w}_{1},\mathbf{w}_{2},\mathbf{w}_{4}\right\rbrace$, however, is not. This is illustrated in {numref}`Figure %s <Fig:LinInd:Examplein3D>`.
-::::{figure} Images/Fig-LinInd-Examplein3D.svg
+```{applet}
+:url: linear_independence/linind_example_in_3d
+:fig: Images/Fig-LinInd-Examplein3D.svg
:name: Fig:LinInd:Examplein3D
:class: dark-light
The four vectors from [iii.](#Item:LinInd:LinDepExin3D). Note that $\mathbf{w}_{3}$ lies in the plane spanned by $\mathbf{w}_{1}$ and $\mathbf{w}_{2}$ but $\mathbf{w}_{4}$ does not. This means that $\left\lbrace\mathbf{w}_{1},\mathbf{w}_{2},\mathbf{w}_{3}\right\rbrace$ is linearly dependent but $\left\lbrace\mathbf{w}_{1},\mathbf{w}_{2},\mathbf{w}_{4}\right\rbrace$ is not.
-::::
+```
</li>
</ol>
diff --git a/Chapter2/SolutionSets.md b/Chapter2/SolutionSets.md
index 671d243..9535d3f 100644
--- a/Chapter2/SolutionSets.md
+++ b/Chapter2/SolutionSets.md
@@ -30,10 +30,10 @@ x_{1}&+&x_{2}&+&x_{3}&=&0
:::
-If we apply {prf:ref}`Alg:LinSystems:ElimMethod`, we find that we can take $x_{3}$ as a free variable. So for every $t$ in $\mathbb{R}$ we can put $x_{3}=t$ and find a solution: $x_{1}=-4t$, $x_{2}=3t$, $x_{3}=t$. The solution set $S$ of our linear system can therefore be written in the following way:
+If we apply {prf:ref}`Alg:LinSystems:ElimMethod`, we find that we can take $x_{3}$ as a free variable. So for every $t$ in $\mathbb{R}$ we can put $x_{3}=t$ and find a solution: $x_{1}=-4t$, $x_{2}=3t$, $x_{3}=t$. The solution set $\mathcal{L}_{1}$ of our linear system can therefore be written in the following way:
$$
- S=\left\{\begin{bmatrix}-4t\\3t\\t\end{bmatrix}\mid t\in\mathbb{R}\right\}=
+ \mathcal{L}_{1}=\left\{\begin{bmatrix}-4t\\3t\\t\end{bmatrix}\mid t\in\mathbb{R}\right\}=
\left\{t
\begin{bmatrix}-4\\3\\1\end{bmatrix}\mid t\in\mathbb{R}\right\}.
$$
@@ -60,10 +60,10 @@ Consider the system
:::
for some $a\in\mathbb{R}$. Compared to {prf:ref}`Example:SolSet:TwoLinesinR3`, the only difference is that the right-hand side of the first equation is now $a$
-instead of $0$. Applying the same algorithm as there, we find again that $x_{3}$ is free. So for every $t$ in $\mathbb{R}$ we can put $x_{3}=t$ and find a solution: $x_{1}=-4t-a$, $x_{2}=3t+a$, $x_{3}=t$. The solution set $S$ can therefore be written as follows:
+instead of $0$. Applying the same algorithm as there, we find again that $x_{3}$ is free. So for every $t$ in $\mathbb{R}$ we can put $x_{3}=t$ and find a solution: $x_{1}=-4t-a$, $x_{2}=3t+a$, $x_{3}=t$. The solution set $\mathcal{L}_{2}$ can therefore be written as follows:
$$
- S=\left\{\begin{bmatrix}-4t-a\\3t+a\\t\end{bmatrix}\mid t\in\mathbb{R}\right\}=
+ \mathcal{L}_{2}=\left\{\begin{bmatrix}-4t-a\\3t+a\\t\end{bmatrix}\mid t\in\mathbb{R}\right\}=
\left\{\begin{bmatrix}
-a\\a\\0
\end{bmatrix}
@@ -136,7 +136,7 @@ Consider the following linear system:
We find two free variables and the following solution set:
$$
- \left\{\begin{bmatrix}-3s+t\\s\\t\end{bmatrix}\mid s,t\in\mathbb{R}\right\}=
+ \mathcal{P}_{1}=\left\{\begin{bmatrix}-3s+t\\s\\t\end{bmatrix}\mid s,t\in\mathbb{R}\right\}=
\left\{s
\begin{bmatrix}-3\\1\\0\end{bmatrix}
+t
@@ -157,7 +157,7 @@ What happens if we make the constant terms non-zero? Let us change the right han
The solution set now becomes
$$
-\left\{\begin{bmatrix}-3s+t+a\\s\\t\end{bmatrix}\mid s,t\in\mathbb{R}\right\}=\left\{
+\mathcal{P}_{2}=\left\{\begin{bmatrix}-3s+t+a\\s\\t\end{bmatrix}\mid s,t\in\mathbb{R}\right\}=\left\{
\begin{bmatrix}a\\0\\0\end{bmatrix}
+s
\begin{bmatrix}-3\\1\\0\end{bmatrix}+
diff --git a/Chapter3/Injectivity_and_surjectivity.md b/Chapter3/Injectivity_and_surjectivity.md
index f7cab90..84b2677 100644
--- a/Chapter3/Injectivity_and_surjectivity.md
+++ b/Chapter3/Injectivity_and_surjectivity.md
@@ -90,7 +90,7 @@ $$
There are no free variables, so if there is a solution to the system $A\vect{x}=\vect{v}$ (which, in this case, is true for all $\vect{v}$) it will be unique. This means that there is only one $\mathbf{x}$ with $T(\mathbf{x})=A\mathbf{x}=\mathbf{u}$, hence $T$ is injective.
```{applet}
-:url: injectivity_and_surjectivity/injsurj-injex
+:url: injectivity_and_surjectivity/injsurj-injex-example3
:fig: Images/Fig-InjSurj-InjEx.svg
:name: Fig:InjSurj:InjEx
:class: dark-light
@@ -133,15 +133,19 @@ has, when it is consistent, a unique solution as there are no free variables.
::::::
+::::{exercise}
+
```{applet}
:url: injectivity_and_surjectivity/injsurj-injex-example
:fig: Images/Fig-InjSurj-InjEx.svg
:name: Fig:InjSurj:InjExExample
:class: dark-light
-TODO: with call to action
+ You can select any of three transformations using the dropdown menu on the bottom. Find out which of these are injective by seeing whether you can find vectors $\vect{v}_{1}\neq \vect{v}_{2}$ that have the same image under $T$ by dragging the vectors on the left.
```
+::::
+
If we perform two actions which can both be undone, then we should be able to undo the combination of those two actions. That this intuitive rule really does hold is essentially the content of {prf:ref}`Prop:InjSurj:InjafterInjisInj`.
::::::{prf:proposition}
@@ -179,14 +183,6 @@ Note that $S$ is injective by {prf:ref}`Ex:InjSurj:InjEx` [iii.](#Item:InjSurj:I
::::::
-```{applet}
-:url: injectivity_and_surjectivity/injsurj-injex-example2
-:fig: Images/Fig-InjSurj-InjEx.svg
-:name: Fig:InjSurj:InjExExample
-:class: dark-light
-
-TODO: with call to action
-```
::::::{prf:proposition}
:label: Prop:InjSurj:CompInjFirstInj
@@ -359,6 +355,20 @@ The transformation $T$ from {prf:ref}`Ex:InjSurj:SurjEx` [ii.](#Item:InjSurj:Sur
::::::
+
+::::{exercise}
+
+```{applet}
+:url: injectivity_and_surjectivity/injsurj-injex-example2
+:fig: Images/Fig-InjSurj-InjEx.svg
+:name: Fig:InjSurj:InjExExample
+:class: dark-light
+
+ You can select any of three transformations using the dropdown menu on the bottom. Find out for which of these $\vect{u}$ is in the range of $T$ by dragging the vector on the left.
+```
+
+::::
+
::::::{prf:proposition}
:label: Prop:InjSurj:SurjafterSurjisSurj
diff --git a/Chapter3/Linear_Transformations.md b/Chapter3/Linear_Transformations.md
index 824cf5c..aa26f00 100644
--- a/Chapter3/Linear_Transformations.md
+++ b/Chapter3/Linear_Transformations.md
@@ -1333,7 +1333,7 @@ $$
## Grasple Exercises
%::::::{grasple}
-:iframeclass: dark-light
+%:iframeclass: dark-light
%:url: https://embed.grasple.com/exercises/97a589a8-54f9-4688-bd4d-a17a9585813b?id=69465
%:label: grasple_exercise_3_1_1
%:dropdown:
diff --git a/Colophon/Acknowledgements.md b/Colophon/Acknowledgements.md
index c1ba70d..ff78fef 100644
--- a/Colophon/Acknowledgements.md
+++ b/Colophon/Acknowledgements.md
@@ -27,7 +27,7 @@ Below you can find a list of contributors to this book. The contributors are gro
[R.C.M. (Rens) Dur BSc](https://www.linkedin.com/in/rensdur/)
-[B.E. (Beryl) van Gelderen BSc](https://www.linkedin.com/in/berylvg/)
+[B.E. (Beryl) van Gelderen MSc](https://www.linkedin.com/in/berylvg/)
[P.F. (Pauline) Hengst](https://www.linkedin.com/in/p-hengst/)
diff --git a/README.md.bak b/README.md.bak
deleted file mode 100644
index adb7446..0000000
--- a/README.md.bak
+++ /dev/null
@@ -1,122 +0,0 @@
-# Linear Algebra
-
-The book can be read at
-https://prime.pages.ewi.tudelft.nl/openlabook-published
-
-# Setup
-
-Clone the repository:
-
-```bash
-git clone --recursive https://gitlab.ewi.tudelft.nl/prime/openlabook.git
-```
-
-Or if the repository is already cloned, download the Grasple submodule like this:
-
-```bash
-git submodule init
-git submodule update
-```
-
-
-
-Then install the packages:
-
-```bash
-pip install -r requirements.txt
-pip install sphinx-grasple/
-```
-
-(^ Don't forget the trailing slash)
-
-# Usage
-
-To run once and see the result:
-
-```bash
-jupyter-book build .
-```
-
-To run with local applets once:
-
-```bash
-BASE_URL=http://localhost:5173/applet/ jupyter-book build .
-# Or some other port
-```
-
-To run the book with 'hot-reload':
-
-```bash
-watchexec -e py,md -- jupyter-book build --all .
-
-# Or with local applets
-watchexec -e py,md -- BASE_URL=http://localhost:5173/applet/ jupyter-book build .
-jupyter-book build --all .
-```
-
-## Applet directive
-
-````md
-```{applet}
-:url: lines_and_planes/normal_equation_plane_origin
-:fig: Images/image_shown_in_print_version.svg
-:name: name_that_is_used_to_refer_to_this_figure
-:status: approved
-:title: This title is shown when you full-screen the applet
-
-A plane through the point $P$.
-```
-````
-
-> ⚠️ The `url` parameter should be the part of the URL after `/applet/`. So if the full URL is `https://openla.ewi.tudelft.nl/applet/lines_and_planes/normal_equation_plane_origin`, you should set the parameter to `lines_and_planes/normal_equation_plane_origin`.
-
-## Parameters for an applet
-
-Some parameters can be set for an applet. Only the `url`, `fig` and `name` parameters are required; the rest is optional. It is recommended to add a `status` to the applet, which can be `unreviewed`, `in-review` or `reviewed`.
-
-````md
-```{applet}
-:url: lines_and_planes/normal_equation_plane_origin # Required url
-:fig: Images/lines_and_planes/normal_equation_plane_origin.svg # Image shown in print version
-:status: reviewed # default is "unreviewed". Other options are "in-review" and "reviewed"
-:name: Fig:InnerProduct:ProjectionVectorLine
-
-A title that describes the applet
-```
-````
-
-### Optional parameters
-
-| Parameter | Description | Default |
-| ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------ |
-| `iframe` | This parameter is added by default and set to true for each applet in this book. |
-| \ Therefore, this parameter is not configurable for this book. When using an applet in different context will change the bahaviour. | false |
-| `title` | A string that will be shown as the title of the applet when the applet is in fullscreen mode | "" |
-| `status` | The status of the applet. Can be `unreviewed`, `in-review` or `reviewed` | `unreviewed` |
-| `width` | The width of the applet in pixels | 100% |
-| `height` | The height of the applet in pixels | 400px |
-
-### Control parameters
-
-> [!WARNING]
-> Work in progress
-
-### 2D Specific parameters
-
-> [!TIP]
-> You should add split-\* before the parameter to make it apply to the right scene
-
-| Parameter | Description | Default |
-| ---------- | -------------------------------------------- | ------- |
-| position2D | The position of the applet in the 2D plane | 0,0 |
-| zoom2D | The zoom level of the applet in the 2D plane | 1 |
-
-### 3D Specific parameters
-
-> [!TIP]
-> You should add split-\* before the parameter to make it apply to the right scene
-
-| Parameter | Description | Default |
-| ---------- | -------------------------------------------- | ------- |
-| position3D | The position of the applet in the 3D plane | 0,0,0 |
-| zoom3D | The zoom level of the applet in the 3D plane | 1 |
diff --git a/_config.yml b/_config.yml
index d773c3c..3356b3b 100644
--- a/_config.yml
+++ b/_config.yml
@@ -116,8 +116,9 @@ sphinx:
- sphinx_proof
- sphinx_togglebutton
- sphinx_exercise
- - sphinx_grasple
+ - teachbooks_sphinx_grasple
- sphinx.ext.imgconverter
+ - sphinx_tudelft_theme
latex:
latex_engine: pdflatex
diff --git a/_static/extra_css_config.css b/_static/extra_css_config.css
index 02123aa..661640d 100644
--- a/_static/extra_css_config.css
+++ b/_static/extra_css_config.css
@@ -1,55 +1,3 @@
-:root {
- --raspberry: rgb(165,0,52);
- --raspberry-min: rgb(165,0,52,3%);
- --raspberry-mid: rgb(165,0,52,20%);
- --yellow: #FFB81C;
- --yellow-min: #FFB81C05;
- --yellow-mid: #FFB81C20;
- --darkGreen: #009B77;
- --darkGreen-min: #009B7710;
- --darkGreen-mid: #009B7725;
- --blue: #0076C2;
- --blue-min: #0076C210;
- --blue-mid: #0076C225;
- --black: var(--pst-color-text-base);
- --black-min: #56565605;
- --black-mid: #56565625;
- --orange: #EC6842;
- --orange-min: #EC684210;
- --orange-mid: #EC684225;
- --cyan: #00A6D6;
- --gray: #7d7d7d;
- --gray-min: #7d7d7d05;
- --gray-mid: #7d7d7d20;
- --purple: #6f1d77;
- --purple-min: #6f1d7705;
- --purple-mid: #6f1d7720;
- --pink: #EF60A3;
- --pink-min: #EF60A310;
- --pink-mid: #EF60A325;
- --red: #E03C31;
- --red-min: #E03C3110;
- --red-mid: #E03C3125;
- --green: #6CC24A;
- --green-min: #6CC24A10;
- --green-mid: #6CC24A25;
-}
-
-/* Two div's to make default any other admonition a weird colour and symbol we just do not want to use*/
-div.admonition {
- border-color: var(--pink);
- background-color: var(--pink-min);
-}
-
-div.admonition > .admonition-title {
- background-color: var(--pink-mid);
-}
-
-div.admonition > .admonition-title::after {
- color: var(--pink);
- content: "\f6e8";
-}
-
.applet {
height: 500px;
}
@@ -76,195 +24,6 @@ div.admonition > .admonition-title::after {
}
}
-
-div.grasple p.admonition-title::after {
- content: "\f12e";
- color: var(--raspberry);
-}
-div.grasple p.admonition-title::before {
- content: "";
-}
-div.grasple {
- border-color: var(--raspberry);
- background-color: var(--raspberry-min);
-}
-div.grasple > p.admonition-title {
- background-color: var(--raspberry-mid);
-}
-
-div.exercise p.admonition-title::after {
- content: "\f12e";
- color: var(--raspberry);
-}
-div.exercise p.admonition-title::before {
- content: "";
-}
-div.exercise {
- border-color: var(--raspberry);
- background-color: var(--raspberry-min);
-}
-div.exercise > p.admonition-title {
- background-color: var(--raspberry-mid);
-}
-
-
-div.definition p.admonition-title::after {
- content: "\f02d";
- color: var(--blue);
-}
-div.definition {
- border-color: var(--blue);
- background-color: var(--blue-min);
-}
-div.definition > p.admonition-title {
- background-color: var(--blue-mid);
-}
-
-div.theorem p.admonition-title::after,
-div.proposition p.admonition-title::after,
-div.corollary p.admonition-title::after {
- content: "\f51b";
- color: var(--darkGreen);
-}
-div.theorem, div.proposition, div.corollary {
- border-color: var(--darkGreen);
- background-color: var(--darkGreen-min);
-}
-div.theorem > p.admonition-title,
- div.proposition > p.admonition-title,
- div.corollary >p.admonition-title {
- background-color: var(--darkGreen-mid);
-}
-
-div.example {
- border-color: var(--yellow);
- background-color: var(--yellow-min);
-}
-div.example > p.admonition-title {
- background-color: var(--yellow-mid);
- /* color: white; */
-}
-div.example p.admonition-title::after {
- content: "\f002";
- transform: scale(-1, 1);
- color: var(--yellow);
-}
-
-div.admonition.solution {
- border-color: var(--purple);
- background-color: var(--purple-min);
-}
-
-div.admonition.solution > .admonition-title {
- background-color: var(--purple-mid);
- /* color: white; */
-}
-
-div.admonition.solution > .admonition-title::after {
- content: "\e5a0";
- color: var(--purple);
-}
-
-div.admonition.myproof {
- border-color: var(--darkGreen);
- background-color: var(--gray-min);
-}
-
-div.admonition.myproof > .admonition-title {
- background-color: var(--gray-mid);
-}
-
-div.admonition.myproof > .admonition-title::after {
- content: "\f51c";
- color: var(--gray);
-}
-
-div.algorithm > .admonition-title::after {
- content: "\f051";
- color: var(--black);
-}
-
-div.algorithm {
- border-color: var(--black);
- background-color: var(--black-min);
-}
-
-div.algorithm > .admonition-title {
- background-color: var(--black-mid);
-}
-
-div.admonition.bonus {
- border-color: var(--gray);
- background-color: var(--gray-min);
-}
-
-div.admonition.bonus > .admonition-title {
- background-color: var(--gray-mid);
-}
-
-div.admonition.bonus > .admonition-title::after {
- content: "\f06b";
- color: var(--gray);
-}
-
-div.admonition.caution, div.admonition.warning, div.admonition.attention, div.admonition.important {
- border-color: var(--orange);
- background-color: var(--orange-min);
-}
-
-div.admonition.caution > .admonition-title,
- div.admonition.warning > .admonition-title,
- div.admonition.attention > .admonition-title,
- div.admonition.important > .admonition-title {
- background-color: var(--orange-mid);
-}
-
-div.admonition.caution > .admonition-title::after,
- div.admonition.warning > .admonition-title::after,
- div.admonition.attention > .admonition-title::after,
- div.admonition.important > .admonition-title::after {
- color: var(--orange);
-}
-
-div.admonition.danger, div.admonition.error {
- border-color: var(--red);
- background-color: var(--red-min);
-}
-
-div.admonition.danger > .admonition-title,
- div.admonition.error > .admonition-title {
- background-color: var(--red-mid);
-}
-
-div.admonition.danger > .admonition-title::after,
- div.admonition.error > .admonition-title::after {
- color: var(--red);
-}
-
-div.admonition.hint, div.admonition.note, div.admonition.seealso, div.admonition.tip, div.admonition.remark, div.admonition.observation {
- border-color: var(--green);
- background-color: var(--green-min);
-}
-
-div.admonition.hint > .admonition-title,
- div.admonition.note > .admonition-title,
- div.admonition.seealso > .admonition-title,
- div.admonition.tip > .admonition-title,
- div.admonition.remark > .admonition-title,
- div.admonition.observation > .admonition-title {
- background-color: var(--green-mid);
-}
-
-div.admonition.hint > .admonition-title::after,
- div.admonition.note > .admonition-title::after,
- div.admonition.seealso > .admonition-title::after,
- div.admonition.tip > .admonition-title::after,
- div.admonition.remark > .admonition-title::after,
- div.admonition.observation > .admonition-title::after {
- color: var(--green);
- content: "\f249";
-}
-
html[data-theme="dark"] .dark-light {
filter: invert(1) hue-rotate(180deg) saturate(1.5);
}
diff --git a/install.sh b/install.sh
index a28e31b..3f96a7b 100644
--- a/install.sh
+++ b/install.sh
@@ -3,6 +3,5 @@
echo "Installing dependencies..."
pip install -r requirements.txt
-pip install sphinx-grasple/
echo "Ready!"
diff --git a/requirements.txt b/requirements.txt
index 536ef33..12abf2d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,4 +6,6 @@ Sphinx
sphinx-proof
sphinx-exercise
TexSoup
-sphinx-book-theme==1.1.0
\ No newline at end of file
+sphinx-book-theme==1.1.0
+teachbooks-sphinx-grasple
+sphinx-tudelft-theme
\ No newline at end of file
diff --git a/sphinx-grasple b/sphinx-grasple
deleted file mode 160000
index 5ad7a03..0000000
--- a/sphinx-grasple
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5ad7a03721f94b1f1e067a5396d6214430138406
--
GitLab