Compare commits

...

1033 commits

Author SHA1 Message Date
Tom van Woudenberg
1c071cb733
Merge pull request #248 from TeachBooks/dependabot/pip/teachbooks-0.2.7
Some checks failed
call-deploy-book / call-workflow (push) Has been cancelled
Bump teachbooks from 0.2.5 to 0.2.7
2026-11-09 06:57:24 +01:00
dependabot[bot]
56d1e0c5b3
Bump teachbooks from 0.2.5 to 0.2.7
Bumps [teachbooks](https://github.com/teachbooks/teachbooks) from 0.2.5 to 0.2.7.
- [Release notes](https://github.com/teachbooks/teachbooks/releases)
- [Changelog](https://github.com/TeachBooks/TeachBooks/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/teachbooks/teachbooks/compare/v0.2.5...v0.2.7)

---
updated-dependencies:
- dependency-name: teachbooks
  dependency-version: 0.2.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-08 23:02:30 +00:00
Tom van Woudenberg
8ea59e8f72
Merge pull request #246 from rlanzafame/release
typo in link
2026-09-02 09:23:33 +02:00
Robert Lanzafame
bc0bf4bdbf
typo in link
`book/features/draft-release.md`
2026-09-01 10:16:07 -07:00
FreekPols
e5593f3734 Revert "first description of pixi incl pixi.toml file"
This reverts commit ab43185bb2.
2026-08-28 22:47:42 +02:00
FreekPols
ab43185bb2 first description of pixi incl pixi.toml file 2026-08-28 22:38:10 +02:00
Tom van Woudenberg
5b852588b7
Merge pull request #244 from TeachBooks/dependabot/pip/teachbooks-0.2.5
Bump teachbooks from 0.2.4 to 0.2.5
2026-08-03 11:21:00 +10:00
dependabot[bot]
1caadbdee8
Bump teachbooks from 0.2.4 to 0.2.5
Bumps [teachbooks](https://github.com/teachbooks/teachbooks) from 0.2.4 to 0.2.5.
- [Release notes](https://github.com/teachbooks/teachbooks/releases)
- [Changelog](https://github.com/TeachBooks/TeachBooks/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/teachbooks/teachbooks/compare/v0.2.4...v0.2.5)

---
updated-dependencies:
- dependency-name: teachbooks
  dependency-version: 0.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-26 23:02:54 +00:00
Tom van Woudenberg
8425979752
Merge pull request #243 from TeachBooks/FreekPols-patch-1
Fix typos
2026-07-03 09:31:41 +02:00
Freek Pols
989cc196f0
Fix typos
Corrected typos and improved clarity in the tools documentation.
2026-07-03 09:18:09 +02:00
Tom van Woudenberg
4b8c70df5f
Merge pull request #242 from TeachBooks/Add-to-do
Add to do extension
2026-06-19 10:17:21 +02:00
Tom van Woudenberg
454b78682c
Fix link formatting for Sphinx to do extension 2026-06-19 09:59:18 +02:00
Dennis den Ouden-van der Horst
c43def7e22
Merge pull request #241 from TeachBooks/fetching_fetch
Fetching fetch
2026-05-13 11:35:30 +02:00
Dennis den Ouden-van der Horst
8d147d71f8 Reorder TeachBooks-Fetch entry in book TOC
Update book/_toc.yml to move the TeachBooks-Fetch MANUAL.md external entry into the features/visuals section and remove the duplicate entry later in the file. This tidies the table of contents and ensures the Fetch manual is grouped with the visuals-related externals.
2026-05-13 11:30:02 +02:00
Dennis den Ouden-van der Horst
7b1b7dfe1c Add TeachBooks-Fetch links to docs
Include TeachBooks-Fetch in the documentation and favourites list: add its MANUAL external link to book/_toc.yml and add a favourites entry in book/features/favourites.md so the extension is discoverable from the docs.
2026-05-13 11:22:42 +02:00
Dennis den Ouden-van der Horst
9b3beca216
Merge pull request #240 from TeachBooks/update_questions
Fix formatting for TeachBooks-Favourites dependency
2026-05-07 16:18:20 +02:00
Dennis den Ouden-van der Horst
93a15a64a0
Fix formatting for TeachBooks-Favourites dependency 2026-05-07 16:12:45 +02:00
Tom van Woudenberg
6be993f447
Merge pull request #238 from TeachBooks/sticky-margin
Add Sticky margin
2026-03-30 09:43:54 +02:00
Tom van Woudenberg
470472294b
Add Sphinx Sticky Margin to favourites list
Added Sphinx Sticky Margin to the list of features.
2026-03-30 09:42:02 +02:00
Tom van Woudenberg
1f7947bdc7
Clean up external links in _toc.yml
Removed comments from external links in the table of contents.
2026-03-30 09:33:15 +02:00
Tom van Woudenberg
033ec8a566
Remove unused Sphinx extensions
Removed unused Sphinx extensions from the configuration.
2026-03-30 09:30:04 +02:00
Tom van Woudenberg
41e456bf7f
Fix external link for Sphinx-Sticky-Margin
Updated external link to Sphinx-Sticky-Margin manual.
2026-03-30 09:27:49 +02:00
Tom van Woudenberg
12ae94d2db
Remove Sphinx-Sticky-Margin from requirements
Removed git dependency for Sphinx-Sticky-Margin.
2026-03-30 09:21:55 +02:00
Tom van Woudenberg
9f10e241b3
Update requirements.txt 2026-03-25 15:54:14 +01:00
Tom van Woudenberg
4f3bf5ef01
Update requirements.txt 2026-03-25 14:36:35 +01:00
Tom van Woudenberg
e11ca55ef3
Update requirements.txt 2026-03-25 14:22:22 +01:00
Tom van Woudenberg
3a80124957
Update _toc.yml 2026-03-25 14:05:20 +01:00
Tom van Woudenberg
a35f111abf
Update _toc.yml 2026-03-25 14:02:38 +01:00
Tom van Woudenberg
ff071b7ce5
Update external link comment in _toc.yml 2026-03-25 08:53:21 +01:00
Tom van Woudenberg
49fa68ec0f
Update requirements.txt 2026-03-25 08:45:41 +01:00
Tom van Woudenberg
ccf0330cdb
Update requirements.txt 2026-03-25 08:29:05 +01:00
Tom van Woudenberg
860cad0375
Update _toc.yml 2026-03-25 08:02:55 +01:00
Tom van Woudenberg
1cb1e16d51
Add sphinx_sticky_margin to configuration 2026-03-25 07:45:41 +01:00
Tom van Woudenberg
4b4e66abf6
Update requirements.txt 2026-03-25 07:45:25 +01:00
Tom van Woudenberg
3a5d610f0f
Add external link to Sphinx-Sticky-Margin manual 2026-03-25 07:44:44 +01:00
Tom van Woudenberg
622296fd07
Update requirements.txt 2026-03-16 15:16:43 +01:00
Tom van Woudenberg
05f51b1c7b
Merge pull request #237 from TeachBooks/add_questions
Add TeachBooks-Questions and update favourites
2026-03-13 09:43:16 +01:00
Dennis den Ouden-van der Horst
deea65c2b6 Add TeachBooks-Questions and update favourites
Add TeachBooks-Questions to the book TOC and TeachBooks Favourites list, and include Sphinx Gated Directives and TeachBooks Zoomies in the favourites page. Also tidy requirements.txt by removing an inline bump comment from the TeachBooks-Favourites git dependency. Changes touch book/_toc.yml, book/features/favourites.md, and requirements.txt to surface the new/manual links and clean up metadata.
2026-03-13 09:32:59 +01:00
Tom van Woudenberg
5537db2ec5
Update TeachBooks-Favourites dependency with comment
Updated dependency to include a comment for version bump.
2026-02-28 13:44:22 +01:00
Tom van Woudenberg
0242cf27ee
Fix formatting of git dependency in requirements.txt 2026-02-28 13:38:24 +01:00
Dennis den Ouden-van der Horst
2674c68ba9
Merge pull request #236 from TeachBooks/bump-patch
Bump TeachBooks-Favourites dependency version
2026-01-22 10:53:17 +01:00
Dennis den Ouden-van der Horst
79f62e3008
Bump TeachBooks-Favourites dependency version
Updated the TeachBooks-Favourites dependency to the latest version.
2026-01-22 10:49:02 +01:00
Tom van Woudenberg
f51792ff18
Merge pull request #235 from TeachBooks/update-external-toc
Remove Sphinx External ToC link from favourites
2026-01-16 14:36:56 +01:00
Dennis den Ouden-van der Horst
59865009f1 Remove Sphinx External ToC link from favourites
Deleted the reference to Sphinx External ToC from the list of related resources in the favourites documentation.
2026-01-16 14:35:15 +01:00
Tom van Woudenberg
9f99a7cc4b
Update links to Sphinx exercises and contributions 2026-01-14 14:00:07 +01:00
Tom van Woudenberg
ff6367f5af
Annotate external link with '#BUMP'
Added a comment '#BUMP' to the external link for Sphinx-Gated-Directives.
2026-01-13 09:19:36 +01:00
Tom van Woudenberg
e3c0583a13 Update sphinx-autobuild.sh 2026-01-12 15:51:48 +01:00
Tom van Woudenberg
2f1e088d02 Create remove_author.css 2026-01-12 13:37:40 +01:00
Tom van Woudenberg
1a4518f6c1 added all authors 2026-01-12 13:36:57 +01:00
Tom van Woudenberg
a9170a5011 Update .gitignore 2026-01-12 13:27:11 +01:00
Tom van Woudenberg
c51586746c Create sphinx-autobuild.sh 2026-01-12 13:23:56 +01:00
Tom van Woudenberg
6f44de51c0
Update versions_URLs.md 2026-01-09 11:29:35 +01:00
Tom van Woudenberg
ea27d7af04
Merge pull request #234 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-99aeda4
Bump book/external/JupyterBook-Patches from `c5cb27a` to `99aeda4`
2026-01-08 11:52:05 +01:00
dependabot[bot]
d257d56838
Bump book/external/JupyterBook-Patches from c5cb27a to 99aeda4
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `c5cb27a` to `99aeda4`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](c5cb27a87b...99aeda40ae)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-version: 99aeda40ae0cfa06eb290ba5c3a6b9b81eb3992d
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-08 10:51:02 +00:00
Tom van Woudenberg
6802366a19
Merge pull request #233 from fmeer/release
Update plotly HTML instructions
2026-01-06 06:56:05 +01:00
Frans van der Meer
a639f14b94 Update plotly HTML instructions 2026-01-05 20:16:03 +01:00
Dennis den Ouden-van der Horst
fca8533e97 Update teachbooks to version 0.2.4 in requirements
Replaces the previous git-based install of teachbooks with the released version 0.2.4 in requirements.txt for improved stability and reproducibility.
2026-01-05 16:14:59 +01:00
Tom van Woudenberg
aa5843df88
Remove sphinx-gated-directives from requirements 2026-01-05 09:27:10 +01:00
Tom van Woudenberg
d6888adecb
Merge pull request #232 from TeachBooks/test-gates
Added Gated Directives
2026-01-05 09:18:39 +01:00
Tom van Woudenberg
684b9c84a4
Fix matplotlib entry in requirements.txt 2026-01-05 09:15:20 +01:00
Dennis den Ouden-van der Horst
aacc7368e2 Update teachbooks dependency source
Switched teachbooks dependency to use a specific Git branch (issue-127) instead of the released version. This allows for testing or using unreleased changes from the repository.
2026-01-04 18:03:01 +01:00
Dennis den Ouden-van der Horst
46d70c1578 Remove unused Sphinx config options
Cleaned up book/_config.yml by removing unused or unnecessary Sphinx configuration options related to sphinx_gated_directives and sphinx_codex. This helps simplify the configuration file.
2026-01-04 17:56:08 +01:00
Dennis den Ouden-van der Horst
c7f7917fe2 Remove sphinx_tudelft_theme from Sphinx extensions
The sphinx_tudelft_theme extension has been removed from the list of Sphinx extensions in the configuration file, possibly because it is no longer needed or has been replaced.
2026-01-04 17:54:12 +01:00
Dennis den Ouden-van der Horst
ee8777516e Remove custom YAML extension and update requirements
Deleted the custom 'include_remove_yaml' Sphinx extension and its configuration. Cleaned up YAML front matter from intro.md. Updated requirements.txt to use released teachbooks package, added sphinx-gated-directives, and removed duplicate or outdated dependencies.
2026-01-04 17:53:12 +01:00
Dennis den Ouden-van der Horst
68cf7ca756 Add extension to remove YAML front matter from includes
Introduced a custom Sphinx extension 'include_remove_yaml' to strip YAML front matter from included files. Updated _config.yml to register the extension, and added YAML front matter to intro.md for demonstration.
2026-01-04 17:41:29 +01:00
Dennis den Ouden-van der Horst
a4cb6d7090 Remove obsolete instruction notebooks and update ToC
Deleted instructie.ipynb, instructie_2.ipynb, and lesoefeningen.ipynb from the book. Updated _toc.yml to remove references to these files and moved the Sphinx-Gated-Directives manual link to the correct section. Minor update to intro.md.
2026-01-04 16:51:14 +01:00
Dennis den Ouden-van der Horst
ab38930bb3 Update TOC and requirements for TeachBooks changes
Added an external manual link to the table of contents. Updated requirements to use TeachBooks from the 'issue-127' branch and adjusted comments for clarity.
2026-01-04 16:20:16 +01:00
Dennis den Ouden-van der Horst
804bae0dee Add note inside axiom-end directive in intro
Inserted a line of text within the prf:axiom-end directive in intro.md to clarify that this text will not be rendered.
2026-01-04 13:05:52 +01:00
Dennis den Ouden-van der Horst
dda9732246 Update comment for TeachBooks-Favourites dependency
Changed the comment for the TeachBooks-Favourites git dependency from 'bump patches' to 'bump codex' to clarify the purpose of the dependency update.
2026-01-04 12:26:58 +01:00
Dennis den Ouden-van der Horst
abec15b938 Switch sphinx_gated_directives to external package
Removed the local sphinx_gated_directives extension and updated configuration to use the external package. Added Sphinx-Gated-Directives as a dependency in requirements.txt and adjusted _config.yml to load it as an extra extension.
2026-01-04 11:57:49 +01:00
Dennis den Ouden-van der Horst
688c16fe71 Remove custom code alignment CSS and update requirements
Deleted the code-align.css file that enforced left alignment for docutils code cells. Updated the requirements.txt comment for TeachBooks-Favourites to reference 'patches' instead of 'codex'.
2026-01-04 11:23:45 +01:00
Dennis den Ouden-van der Horst
c6e968a947 Update requirements.txt 2026-01-04 11:06:32 +01:00
Dennis den Ouden-van der Horst
3f6d1f1d1b Update _config.yml 2026-01-04 11:04:17 +01:00
Tom van Woudenberg
29fe49b63c zonder override 2026-01-03 15:46:57 +01:00
Tom van Woudenberg
2a78126224 change labels 2026-01-03 15:42:01 +01:00
Tom van Woudenberg
e22ea50d6d added gates 2026-01-03 15:35:40 +01:00
Dennis den Ouden-van der Horst
1ac94844a3 Refactor directive name construction for clarity
Extracted suffix_separator, suffix_start, and suffix_end from cfg to local variables for improved readability and maintainability in directive name construction.
2026-01-03 12:50:11 +01:00
Dennis den Ouden-van der Horst
e12183af9e Refactor _should_skip_name for clarity and efficiency
Extracted suffix_separator, suffix_start, and suffix_end from cfg at the start of the function to avoid repeated dictionary lookups and improve code readability.
2026-01-03 12:48:34 +01:00
Dennis den Ouden-van der Horst
f4ea60d42c Enhance sphinx_gated_directives with configurable suffixes and override logic
Refactor the sphinx_gated_directives extension to support configurable suffixes and separator for start/end directives, and add an 'override_existing' option for more flexible directive registration. Update the registry naming and logic throughout the extension, add configuration validation, and update the book config and intro to demonstrate new exercise directives and nesting.
2026-01-03 12:45:24 +01:00
Dennis den Ouden-van der Horst
144c7a95be Refactor sphinx_gated_directives and update intro.md examples
Improved code structure and comments in sphinx_gated_directives/__init__.py, clarified logic, and removed unused/legacy code. Updated intro.md to remove commented-out directive examples and replaced them with active ones for better demonstration and testing.
2026-01-03 10:30:39 +01:00
Dennis den Ouden-van der Horst
f481588509 Update child theorem to axiom and add Sphinx theme
Changed the label from 'A child theorem' to 'A child axiom' in the intro.md file for clarity. Added 'sphinx-tudelft-theme==1.2.1' to requirements.txt to specify the documentation theme.
2026-01-02 20:08:02 +01:00
Dennis den Ouden-van der Horst
f9e4a0f0b7 Improve gated directive nesting validation and docs
Added a robust validate_SE function to check for correct nesting of start and end directives, with detailed error reporting. Updated the CheckGatedDirectivesTransform to use this validation and improved error messages for mismatched or incorrectly nested directives. Extended intro.md with comprehensive examples of nested directives, including both valid and invalid cases, to document and test the new behavior. Also added the sphinx_tudelft_theme extension in _config.yml.
2026-01-02 20:05:44 +01:00
Dennis den Ouden-van der Horst
a5f014ddf6 Replace logo figure with nothing.svg in intro
Added a new SVG file 'nothing.svg' and updated the intro.md to use this image in place of the previous logo-wide.svg. Adjusted figure attributes and alt text accordingly.
2026-01-02 17:55:31 +01:00
Dennis den Ouden-van der Horst
bd47d63475 Remove debug logging and update intro content
Debug logging statements were removed from MergeGatedDirectivesTransform in sphinx_gated_directives. The intro.md file was updated to include new theorem and figure directive examples, code cells, and additional documentation content.
2026-01-02 17:40:03 +01:00
Dennis den Ouden-van der Horst
fddd493e39 Comment out legacy registry logic in sphinx_gated_directives
Commented out the code related to the 'sphinx_gated_directives_registry' in favor of using only the 'sphinx_gated_directives_super_registry'. Updated purge and transform logic accordingly. Added clarifying comments to code-align.css regarding left alignment enforcement.
2026-01-02 17:18:18 +01:00
Dennis den Ouden-van der Horst
c7486c0b42 Add sphinx_gated_directives extension and code-align CSS
Introduces the custom Sphinx extension 'sphinx_gated_directives' for start/end directive gating and validation, registering it in the Sphinx local extensions. Also adds a CSS file to enforce left alignment for code cells. Updates _config.yml to configure the new extension and set the documentation language to English.
2026-01-02 17:09:33 +01:00
Tom van Woudenberg
7533ef1c0b
Merge pull request #231 from TeachBooks/test-metadata-prerelease
Update requirements and fix BibTeX formatting
2025-12-23 16:02:16 +01:00
Tom van Woudenberg
233df5631e
BUMP without fixing versoin 2025-12-23 16:01:43 +01:00
Dennis den Ouden-van der Horst
b56ad3336b Update requirements and fix BibTeX formatting
Pinned TeachBooks-Favourites to version v1.7.3 in requirements.txt for reproducibility. Added a missing comma and newline in references.bib to correct BibTeX formatting.
2025-12-23 15:51:43 +01:00
Dennis den Ouden-van der Horst
64c1647ca5
Update references.bib 2025-12-23 13:23:12 +01:00
Tom van Woudenberg
70727a502e
Merge pull request #229 from TeachBooks/metadata-bibtex-support
Add TeachBooks logo reference to bibliography
2025-12-21 10:10:20 +01:00
Dennis den Ouden-van der Horst
0bac6738ea
Add TeachBooks logo reference to bibliography 2025-12-19 16:27:34 +01:00
Tom van Woudenberg
b3469006d4
reorder 2025-12-19 13:55:25 +01:00
Tom van Woudenberg
88c67fe4cd
fix url 2025-12-19 13:48:14 +01:00
Tom van Woudenberg
025b2ff5c7
Update plotyl instructions 2025-12-19 13:32:17 +01:00
Tom van Woudenberg
bd4516c25e
Merge pull request #228 from TeachBooks/add-last-updated-by-git
Add Sphinx last updated by git to favourites list
2025-12-17 13:16:14 +01:00
Dennis den Ouden-van der Horst
eeb71c404d
Update favourites.md 2025-12-17 13:10:24 +01:00
Tom van Woudenberg
ff67aa5572
Add Sphinx last updated by git to favourites list 2025-12-15 18:08:27 +01:00
Dennis den Ouden-van der Horst
9ac3763de0
Add comment to external link in _toc.yml 2025-12-09 10:51:46 +01:00
Dennis den Ouden-van der Horst
1311109ba3
Merge pull request #227 from TeachBooks/test-glue-disable
Test glue disable
2025-12-09 10:46:03 +01:00
Dennis den Ouden-van der Horst
ce760deb7b
Remove comment from external link in _toc.yml 2025-12-09 10:41:55 +01:00
Dennis den Ouden-van der Horst
7330aae9fd
Update external link in _toc.yml 2025-12-09 10:37:13 +01:00
Tom van Woudenberg
00e40c5be7
Update external link comment in _toc.yml 2025-12-08 20:32:06 +01:00
Tom van Woudenberg
774882515e
Update external link comment in _toc.yml 2025-12-08 20:17:03 +01:00
Tom van Woudenberg
19120550e9
Add comment to external link in _toc.yml 2025-12-08 20:10:25 +01:00
Tom van Woudenberg
2d7633c496
Fix link for Sphinx Metadata Figure in favourites.md
Updated the link for Sphinx Metadata Figure to point to the correct manual file format.
2025-12-08 20:08:47 +01:00
Tom van Woudenberg
a0636f0bc8
Update TeachBooks-Favourites dependency version
Updated the TeachBooks-Favourites dependency to a new version.
2025-12-08 20:05:50 +01:00
Tom van Woudenberg
45b20ffdc6 Update sphinx-iframes 2025-12-05 11:31:42 +01:00
Dennis den Ouden-van der Horst
5e55e84522
Merge pull request #225 from TeachBooks/test_metadata
Updates to fit with new notebook in figure-metadata
2025-12-03 14:29:39 +01:00
Tom van Woudenberg
73a4095358 Update _toc.yml 2025-12-03 12:38:47 +01:00
Tom van Woudenberg
0f48b93776 prepare for updates 2025-12-03 12:37:47 +01:00
Tom van Woudenberg
d42f4efa49 Merge branch 'test_metadata' of https://github.com/TeachBooks/manual into test_metadata 2025-12-03 12:31:18 +01:00
Tom van Woudenberg
c83987b8be Update requirements.txt 2025-12-03 12:30:49 +01:00
Tom van Woudenberg
9bdbb866dc
Change execute_notebooks setting to 'auto' 2025-12-03 12:19:19 +01:00
Tom van Woudenberg
6b868f3d8e Update _toc.yml 2025-12-03 12:14:00 +01:00
Tom van Woudenberg
a2eb698b21 Update _toc.yml 2025-12-03 12:03:07 +01:00
Tom van Woudenberg
b4b78f6eea Update requirements.txt 2025-12-03 11:59:27 +01:00
Tom van Woudenberg
91a861c307 fix 2025-12-03 11:59:17 +01:00
Tom van Woudenberg
8ce33ecfee test 2025-12-03 11:57:21 +01:00
Tom van Woudenberg
2a35f37935
Merge pull request #224 from TeachBooks/Tom-van-Woudenberg-patch-1
Update _toc.yml
2025-12-01 09:16:05 +01:00
Tom van Woudenberg
b4fbdd90b2
Update _toc.yml 2025-12-01 09:15:51 +01:00
Tom van Woudenberg
eb219bfa06
Add Sphinx Metadata Figure to favourites list 2025-12-01 09:02:37 +01:00
Tom van Woudenberg
57ac568c2e
Merge pull request #223 from TeachBooks/dependabot/pip/sphinx-metadata-figure-1.0.3
Bump sphinx-metadata-figure from 1.0.2 to 1.0.3
2025-12-01 08:51:22 +01:00
Tom van Woudenberg
49a5d1af6b
Merge pull request #222 from TeachBooks/dependabot/submodules/book/external/sphinx-iframes-b0fcde7
Bump book/external/sphinx-iframes from `d92bc03` to `b0fcde7`
2025-12-01 08:51:11 +01:00
dependabot[bot]
268ac7142e
Bump sphinx-metadata-figure from 1.0.2 to 1.0.3
Bumps [sphinx-metadata-figure](https://github.com/TeachBooks/Sphinx-Metadata-Figure) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/TeachBooks/Sphinx-Metadata-Figure/releases)
- [Commits](https://github.com/TeachBooks/Sphinx-Metadata-Figure/compare/v1.0.2...v1.0.3)

---
updated-dependencies:
- dependency-name: sphinx-metadata-figure
  dependency-version: 1.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-30 22:05:47 +00:00
dependabot[bot]
61b5773818
Bump book/external/sphinx-iframes from d92bc03 to b0fcde7
Bumps [book/external/sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from `d92bc03` to `b0fcde7`.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](d92bc03af5...b0fcde7e89)

---
updated-dependencies:
- dependency-name: book/external/sphinx-iframes
  dependency-version: b0fcde7e8957babcbda79bf861f6c2e2885c0df4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-30 22:05:40 +00:00
Tom van Woudenberg
a27da88f79
Fix formatting in requirements.txt 2025-11-28 17:09:26 +01:00
Tom van Woudenberg
33613846f6
Update sphinx-metadata-figure version to 1.0.2 2025-11-28 16:28:51 +01:00
Tom van Woudenberg
02eeb024d5
Merge pull request #221 from TeachBooks/metadata-figure
Metadata figure
2025-11-28 15:26:08 +01:00
Tom van Woudenberg
130a5e3755
Add style settings for metadata figure placement 2025-11-28 15:16:16 +01:00
Dennis den Ouden-van der Horst
58ec1c78ad Update Sphinx Metadata Figure dependency
Replaces the git-based Sphinx-Metadata-Figure dependency with the PyPI package sphinx-metadata-figure version 1.0.0 in requirements.txt.
2025-11-28 14:31:47 +01:00
Tom van Woudenberg
256163c70b
Add external link to Sphinx-Metadata-Figure manual 2025-11-28 11:22:56 +01:00
Tom van Woudenberg
00c79afade
Update _config.yml 2025-11-28 11:22:19 +01:00
Tom van Woudenberg
0142fbfbfb
Update requirements.txt 2025-11-28 11:20:10 +01:00
Tom van Woudenberg
1a746af473
Merge pull request #220 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-c5cb27a
Bump book/external/JupyterBook-Patches from `13aa698` to `c5cb27a`
2025-11-25 08:39:47 +01:00
dependabot[bot]
ebaa8a329a
Bump book/external/JupyterBook-Patches from 13aa698 to c5cb27a
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `13aa698` to `c5cb27a`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](13aa6988c6...c5cb27a87b)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-version: c5cb27a87b193228c45edb95580f9ee2d82b27df
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 07:38:23 +00:00
Tom van Woudenberg
ec654605c9
Update requirements.txt
@douden
2025-11-20 15:39:41 +01:00
Tom van Woudenberg
85b8168dfc
Merge pull request #219 from TeachBooks/add_sphinx-github-alert_to_favourites
Add Sphinx GitHub Alerts to favourites list
2025-11-20 15:34:22 +01:00
Tom van Woudenberg
7f6d421370
Add Sphinx GitHub Alerts to favourites list 2025-11-20 15:33:31 +01:00
Tom van Woudenberg
f69789e4e5
Merge pull request #218 from TeachBooks/github-alerts
Add sphinx-github-alerts extension support
2025-11-20 15:27:39 +01:00
Dennis den Ouden-van der Horst
44b912e01f Add sphinx-github-alerts extension support
Integrated the sphinx-github-alerts extension into the Sphinx configuration, requirements, and documentation table of contents to enable GitHub alerts functionality.
2025-11-20 15:10:35 +01:00
Tom van Woudenberg
67cdf76937
Merge pull request #217 from TeachBooks/apa-note-previous-fix
update apa page
2025-11-19 09:41:11 +01:00
Robert Lanzafame
8f41fb6429
update apa page 2025-11-18 21:23:04 -08:00
Tom van Woudenberg
09d810d834
Merge pull request #216 from TeachBooks/apa-extension
Apa extension
2025-11-17 17:42:03 +01:00
Dennis den Ouden-van der Horst
9e531c7e5f Remove custom bibtex styles and add APA warning info
Removed custom bibtex style settings from _config.yml. Added documentation in apa.md about handling duplicate label warnings in APA references, including advice on adding letters to years in .bib files.
2025-11-17 17:08:31 +01:00
Dennis den Ouden-van der Horst
7117d92eed Switch to sphinx-apa-references extension for APA style
Removed local APA style extensions and related static files, updated _config.yml to use the sphinx_apa_references extension, and revised documentation in apa.md to reflect installation and usage of the new package. Added sphinx-apa-references to requirements.txt and references.bib now includes a multi-author example for APA citation demonstration.
2025-11-17 16:48:07 +01:00
Tom van Woudenberg
6315eedc2d
Add files via upload 2025-11-14 10:16:54 +01:00
Tom van Woudenberg
7de255e2a5
Update apastyle.css 2025-11-14 10:15:45 +01:00
Tom van Woudenberg
99f08414f7
Merge pull request #215 from TeachBooks/dependabot/pip/teachbooks-0.2.3
Bump teachbooks from 0.2.2 to 0.2.3
2025-11-10 08:17:41 +01:00
dependabot[bot]
54225de824
Bump teachbooks from 0.2.2 to 0.2.3
Bumps [teachbooks](https://github.com/teachbooks/teachbooks) from 0.2.2 to 0.2.3.
- [Release notes](https://github.com/teachbooks/teachbooks/releases)
- [Changelog](https://github.com/TeachBooks/TeachBooks/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/teachbooks/teachbooks/compare/v0.2.2...v0.2.3)

---
updated-dependencies:
- dependency-name: teachbooks
  dependency-version: 0.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-09 22:05:21 +00:00
Tom van Woudenberg
d6c590ea69
Merge pull request #214 from TeachBooks/dependabot/submodules/book/external/Download-Link-Replacer-03feccf
Bump book/external/Download-Link-Replacer from `be4b093` to `03feccf`
2025-11-08 15:22:51 +01:00
Tom van Woudenberg
25cbfb6bc0
Merge pull request #213 from TeachBooks/dependabot/submodules/book/external/Sphinx-PRIME-applets-cf88491
Bump book/external/Sphinx-PRIME-applets from `6217c86` to `cf88491`
2025-11-08 15:22:42 +01:00
dependabot[bot]
391bb36a38
Bump book/external/Download-Link-Replacer from be4b093 to 03feccf
Bumps [book/external/Download-Link-Replacer](https://github.com/TeachBooks/Download-Link-Replacer) from `be4b093` to `03feccf`.
- [Release notes](https://github.com/TeachBooks/Download-Link-Replacer/releases)
- [Commits](be4b09352b...03feccf6ef)

---
updated-dependencies:
- dependency-name: book/external/Download-Link-Replacer
  dependency-version: 03feccf6efa55d14da78cf4259cedb8a7585ad91
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-08 14:18:55 +00:00
dependabot[bot]
e399e60845
Bump book/external/Sphinx-PRIME-applets from 6217c86 to cf88491
Bumps [book/external/Sphinx-PRIME-applets](https://github.com/TeachBooks/Sphinx-PRIME-applets) from `6217c86` to `cf88491`.
- [Release notes](https://github.com/TeachBooks/Sphinx-PRIME-applets/releases)
- [Commits](6217c86263...cf8849136e)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-PRIME-applets
  dependency-version: cf8849136e1303e1a2fa2a8ed7296cde6b3b2d68
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-08 14:18:53 +00:00
Tom van Woudenberg
b1b9d673b2
Fix formatting in TeachBooks manual introduction 2025-11-04 08:53:59 +01:00
Tom van Woudenberg
9fd92d870a
Fix HTML tags in the TeachBooks manual introduction 2025-11-04 08:50:53 +01:00
Tom van Woudenberg
6dfb4e8b73
Revise introduction for clarity and detail
Updated the introduction to clarify the purpose of the TeachBooks manual and its resources.
2025-11-04 08:47:37 +01:00
Tom van Woudenberg
55e432d30c
Add files via upload 2025-11-04 08:45:57 +01:00
Tom van Woudenberg
fdf2d7c5ef Jupyterbook v1 and teachbooks 2025-11-03 17:48:38 +01:00
Tom van Woudenberg
4311f11d16 Merge branch 'release' of https://github.com/TeachBooks/manual into release 2025-11-03 13:58:28 +01:00
Tom van Woudenberg
816d782626 Fix borken jupyterbook links 2025-11-03 13:58:19 +01:00
Tom van Woudenberg
5126a57e67 Update documentation for collaborative book editing 2025-11-02 08:58:15 +01:00
Tom van Woudenberg
838dea61a2
Merge pull request #211 from TeachBooks/Tom-van-Woudenberg-patch-1
Update documentation for publishing book versions
2025-11-02 08:56:56 +01:00
Tom van Woudenberg
a78f2f0af5
Update documentation for publishing book versions 2025-11-02 08:56:36 +01:00
Tom van Woudenberg
f94a9862d4
Merge pull request #210 from TeachBooks/dependabot/submodules/book/external/template-6401393
Bump book/external/template from `5183c16` to `6401393`
2025-11-02 08:35:56 +01:00
Tom van Woudenberg
ae2b2c7d56
Merge pull request #208 from TeachBooks/dependabot/submodules/book/external/deploy-book-workflow-6801dcf
Bump book/external/deploy-book-workflow from `65010c7` to `6801dcf`
2025-11-02 08:35:40 +01:00
dependabot[bot]
beeb6f775e
Bump book/external/template from 5183c16 to 6401393
Bumps [book/external/template](https://github.com/TeachBooks/template) from `5183c16` to `6401393`.
- [Commits](5183c16169...6401393f8d)

---
updated-dependencies:
- dependency-name: book/external/template
  dependency-version: 6401393f8d50cc66ecba1e923cdbb221b7db0b3e
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 07:35:17 +00:00
Tom van Woudenberg
739cd512a4 typos 2025-11-02 08:35:12 +01:00
dependabot[bot]
582aa690b1
Bump book/external/deploy-book-workflow from 65010c7 to 6801dcf
Bumps [book/external/deploy-book-workflow](https://github.com/TeachBooks/deploy-book-workflow) from `65010c7` to `6801dcf`.
- [Release notes](https://github.com/TeachBooks/deploy-book-workflow/releases)
- [Commits](65010c7dc0...6801dcfaed)

---
updated-dependencies:
- dependency-name: book/external/deploy-book-workflow
  dependency-version: 6801dcfaedd1baf88ab51ebe360241e4eaf39ed2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 07:35:09 +00:00
Tom van Woudenberg
d55376cda4 update margins 2025-11-02 08:29:38 +01:00
Tom van Woudenberg
d49d4ecacf Update teachbooks_intro.md 2025-11-01 17:45:24 +01:00
Tom van Woudenberg
ade15bd760 Update teachbooks_intro.md 2025-11-01 17:41:00 +01:00
Tom van Woudenberg
e54aad5536 fix 2025-11-01 17:38:26 +01:00
Tom van Woudenberg
11f2cead3e reformat margin 2025-11-01 17:36:23 +01:00
Tom van Woudenberg
f8fd924734 added icons 2025-11-01 17:32:38 +01:00
Tom van Woudenberg
51f8bd72b6
Merge pull request #207 from TeachBooks/apa-fix
Fix APA and docutills issue
2025-10-24 07:14:35 +02:00
Robert Lanzafame
72b4199ebf
remove _static include 2025-10-23 13:56:42 -07:00
Robert Lanzafame
5e15786d2f
missing _ 2025-10-23 10:34:32 -07:00
Robert Lanzafame
58cfcc523c
update Manual page 2025-10-23 10:30:04 -07:00
Robert Lanzafame
abe5f2206a
unpin docutils 2025-10-23 10:05:32 -07:00
Robert Lanzafame
d9b063eec9
add fix: CSS rule to hide label spans 2025-10-23 10:03:55 -07:00
Tom van Woudenberg
c15681c2dc
Update Sphinx exercise link description 2025-10-23 10:20:51 +02:00
Tom van Woudenberg
5652952479
Merge pull request #206 from TeachBooks/Add-sphinx-external-toc
Update Sphinx proof link and add new contributions
2025-10-20 15:48:40 +02:00
Tom van Woudenberg
223983d370
Update Sphinx proof link and add new contributions 2025-10-20 15:40:51 +02:00
Tom van Woudenberg
9504bd9922
Merge pull request #205 from thom-vdv/patch-1
Fix a small comment error in html example
2025-10-19 16:12:28 +02:00
T.P. van der Ven
d85db4da1f
Clarify SVG selection in D3 example 2025-10-19 14:25:32 +02:00
Tom van Woudenberg
4c51053011
Add external link to Sphinx-ref-graph README 2025-10-14 08:52:51 +02:00
Tom van Woudenberg
fb0f0c783a
Update external links in _toc.yml 2025-10-14 08:44:20 +02:00
Tom van Woudenberg
409025478d
Update favourites.md with extension compatibility info
Added note about compatibility of 'Open in new tab' extension.
2025-10-13 11:05:50 +02:00
Tom van Woudenberg
37919cb957
Remove Sphinx new tab link from favourites
Removed the Sphinx new tab link from the favourites list.
2025-10-13 11:02:48 +02:00
Tom van Woudenberg
b86a62c3b1
Merge pull request #203 from TeachBooks/dependabot/submodules/book/external/sphinx-iframes-d92bc03
Bump book/external/sphinx-iframes from `69e6028` to `d92bc03`
2025-10-13 11:00:19 +02:00
Tom van Woudenberg
3bef06dd68
Merge pull request #204 from TeachBooks/dependabot/pip/teachbooks-0.2.2
Bump teachbooks from 0.2.1 to 0.2.2
2025-10-13 10:59:44 +02:00
dependabot[bot]
5efe4d0458
Bump teachbooks from 0.2.1 to 0.2.2
Bumps [teachbooks](https://github.com/teachbooks/teachbooks) from 0.2.1 to 0.2.2.
- [Release notes](https://github.com/teachbooks/teachbooks/releases)
- [Changelog](https://github.com/TeachBooks/TeachBooks/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/teachbooks/teachbooks/compare/v0.2.1...v0.2.2)

---
updated-dependencies:
- dependency-name: teachbooks
  dependency-version: 0.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-12 22:04:52 +00:00
dependabot[bot]
68f4531d12
Bump book/external/sphinx-iframes from 69e6028 to d92bc03
Bumps [book/external/sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from `69e6028` to `d92bc03`.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](69e6028e79...d92bc03af5)

---
updated-dependencies:
- dependency-name: book/external/sphinx-iframes
  dependency-version: d92bc03af5f067453caf104a424e0cc0ebdbf04b
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-12 22:04:50 +00:00
Tom van Woudenberg
1551e9b5cb
Update TeachBooks-Favourites dependency version 2025-10-10 17:53:38 +02:00
Tom van Woudenberg
731063b0b5
Update TeachBooks-Favourites version in requirements 2025-10-10 17:47:59 +02:00
Tom van Woudenberg
ec814ee8ab
Remove specific version for sphinx-inline-tabs 2025-10-10 17:46:05 +02:00
Tom van Woudenberg
33c7ead7b6
Merge pull request #196 from TeachBooks/dependabot/submodules/book/external/Useful_python_code-c80863d
Bump book/external/Useful_python_code from `81e9235` to `c80863d`
2025-10-10 17:03:13 +02:00
Tom van Woudenberg
4671ab6c9a
Merge pull request #197 from TeachBooks/dependabot/submodules/book/external/Sphinx-Grasple-public-2ca3894
Bump book/external/Sphinx-Grasple-public from `9f6f68a` to `2ca3894`
2025-10-10 17:01:17 +02:00
Tom van Woudenberg
c92e6b5496
Merge pull request #198 from TeachBooks/dependabot/submodules/book/external/Sphinx-TUDelft-theme-86f5772
Bump book/external/Sphinx-TUDelft-theme from `2ab5d1d` to `86f5772`
2025-10-10 17:00:47 +02:00
Tom van Woudenberg
06b5fedb18
Merge pull request #199 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-fe2dd75
Bump book/external/JupyterBook-Patches from `eb505b3` to `fe2dd75`
2025-10-10 17:00:29 +02:00
Tom van Woudenberg
3ae808fa2e
Merge pull request #200 from TeachBooks/dependabot/submodules/book/external/Sphinx-launch-buttons-63d5397
Bump book/external/Sphinx-launch-buttons from `e6070de` to `63d5397`
2025-10-10 17:00:10 +02:00
Tom van Woudenberg
1e11478d4d
Add Sphinx new tab link to favourites
Added a new link to the Sphinx new tab link project in the favourites section.
2025-10-10 16:58:34 +02:00
Tom van Woudenberg
a51764237d
Merge pull request #194 from TeachBooks/favourites
Add favourites
2025-09-30 06:32:51 +02:00
Tom van Woudenberg
58217a6cd8
Merge pull request #201 from TeachBooks/favourites-robert
Favourites - additions from robert
2025-09-29 20:05:04 +02:00
Robert Lanzafame
83256dda73
sphinx proof text - copy updated format of exercise 2025-09-29 10:17:08 -07:00
Robert Lanzafame
75221ef14d
favourites text 2025-09-29 10:12:09 -07:00
Robert Lanzafame
708f14a621
sphinx exercise text 2025-09-29 10:10:00 -07:00
Robert Lanzafame
2fa1592de4
scripts page text 2025-09-29 10:02:06 -07:00
Robert Lanzafame
1b4b25461c
fix figmaker text 2025-09-29 09:59:51 -07:00
Robert Lanzafame
1cb1b805f8
basic-features/overview update 2025-09-29 09:02:19 -07:00
Robert Lanzafame
12e5182597
feature overview page 2025-09-29 08:59:46 -07:00
dependabot[bot]
5671439b2b
Bump book/external/Sphinx-launch-buttons from e6070de to 63d5397
Bumps [book/external/Sphinx-launch-buttons](https://github.com/TeachBooks/Sphinx-launch-buttons) from `e6070de` to `63d5397`.
- [Release notes](https://github.com/TeachBooks/Sphinx-launch-buttons/releases)
- [Commits](e6070ded6c...63d539763e)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-launch-buttons
  dependency-version: 63d539763e9b9ce13f4dab2ef4c4a17c46e953ef
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-28 22:05:41 +00:00
dependabot[bot]
877d05cae3
Bump book/external/JupyterBook-Patches from eb505b3 to fe2dd75
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `eb505b3` to `fe2dd75`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](eb505b3013...fe2dd75143)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-version: fe2dd75143631d9b3d6501eb0294b94ba3348e3c
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-28 22:05:40 +00:00
dependabot[bot]
ac0dbd7331
Bump book/external/Sphinx-TUDelft-theme from 2ab5d1d to 86f5772
Bumps [book/external/Sphinx-TUDelft-theme](https://github.com/TeachBooks/Sphinx-TUDelft-theme) from `2ab5d1d` to `86f5772`.
- [Release notes](https://github.com/TeachBooks/Sphinx-TUDelft-theme/releases)
- [Commits](2ab5d1d708...86f5772bed)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-TUDelft-theme
  dependency-version: 86f5772bedd64ccbb2ab9ab16577215803ef238c
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-28 22:05:38 +00:00
dependabot[bot]
37492149f2
Bump book/external/Sphinx-Grasple-public from 9f6f68a to 2ca3894
Bumps [book/external/Sphinx-Grasple-public](https://github.com/TeachBooks/Sphinx-Grasple-public) from `9f6f68a` to `2ca3894`.
- [Release notes](https://github.com/TeachBooks/Sphinx-Grasple-public/releases)
- [Commits](9f6f68a8ea...2ca3894ef2)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Grasple-public
  dependency-version: 2ca3894ef285f238cae1ba120ccf2c0f36e73b31
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-28 22:05:36 +00:00
dependabot[bot]
5c21367b7a
Bump book/external/Useful_python_code from 81e9235 to c80863d
Bumps [book/external/Useful_python_code](https://github.com/TeachBooks/Useful_python_code) from `81e9235` to `c80863d`.
- [Commits](81e923516e...c80863d19f)

---
updated-dependencies:
- dependency-name: book/external/Useful_python_code
  dependency-version: c80863d19f7fde7a452200baa4b4fafe12debc95
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-28 22:05:34 +00:00
Tom van Woudenberg
cc6cccd366 Typos 2025-09-27 16:53:28 +02:00
Tom van Woudenberg
40cd85952b Update template 2025-09-27 16:51:17 +02:00
Tom van Woudenberg
0a525a1fb8 fixes 2025-09-27 16:47:00 +02:00
Tom van Woudenberg
6acc689794 fixes 2025-09-27 16:44:14 +02:00
Tom van Woudenberg
1501b290cd fix relative links 2025-09-27 16:40:56 +02:00
Tom van Woudenberg
3e4eb3e9ec Update deploy-book-workflow 2025-09-27 16:05:23 +02:00
Tom van Woudenberg
6fb1d7231f Update feature docs for clarity and links
Improved the overview and write_online feature documentation by clarifying the description of the TeachBook template and updating its link. Also refined the summary section to specify error reporting per branch and release location.
2025-09-27 16:03:55 +02:00
Tom van Woudenberg
476b2f5fc6 Update favourites.md 2025-09-27 16:02:42 +02:00
Tom van Woudenberg
be4473842a Add exercise and proof feature documentation
Added new pages for Sphinx exercise and Sphinx proof extensions, including installation and usage instructions. Updated references, credits, and feature pages to reflect inclusion in TeachBooks Template and Favourites. Improved consistency of external links and badges, and updated submodules to latest versions.
2025-09-27 15:57:36 +02:00
Tom van Woudenberg
113c4a86a4 Merge branch 'release' into favourites 2025-09-27 15:06:08 +02:00
Tom van Woudenberg
f34b176742 WIP 2025-09-27 14:52:35 +02:00
Tom van Woudenberg
f263562006 Update 2025-09-27 14:50:47 +02:00
Tom van Woudenberg
e7c48faf2d Add lnks to general tools 2025-09-27 14:02:37 +02:00
Tom van Woudenberg
f075c648cf typo 2025-09-27 14:02:30 +02:00
Tom van Woudenberg
627f2f28b5 Refactor and reorganize _toc.yml structure
Moved basic features into a new 'Original Jupyter Book and Sphinx Features' section, consolidated and reordered feature sections, and updated references to external documentation. This improves the logical organization and clarity of the table of contents.
2025-09-27 14:00:43 +02:00
Tom van Woudenberg
76ab30859c Refactor features overview and add intro pages
Split the TeachBooks Python Package and Deploy Book Workflow documentation into dedicated intro pages (teachbooks_intro.md, DBW_intro.md), update references and links throughout feature pages, and revise the _toc.yml structure to include new sections. Added clarifications to favourites and live_code features, improving organization and navigation for users.
2025-09-27 13:36:41 +02:00
Tom van Woudenberg
16b12087c6 Update favourites.md 2025-09-27 13:23:54 +02:00
Tom van Woudenberg
a777ee6fbe
Merge pull request #195 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-eb505b3
Bump book/external/JupyterBook-Patches from `9ce68e1` to `eb505b3`
2025-09-22 07:45:54 +02:00
dependabot[bot]
2bdfcff7c1
Bump book/external/JupyterBook-Patches from 9ce68e1 to eb505b3
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `9ce68e1` to `eb505b3`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](9ce68e10be...eb505b3013)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-version: eb505b3013d4019e01e448495e3eb1586f573a00
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-21 22:05:56 +00:00
Tom van Woudenberg
77da9807d2 WIP add favourites 2025-09-14 09:08:58 +02:00
Tom van Woudenberg
1cbb112432
Add teachbooks_sphinx_grasple to extra_extensions 2025-09-06 07:45:55 +02:00
Tom van Woudenberg
804c646569
Add teachbooks-sphinx-grasple to requirements 2025-09-06 07:45:33 +02:00
Tom van Woudenberg
302bd8d635
Merge pull request #193 from TeachBooks/patterns
Patterns
2025-09-04 19:23:25 +02:00
Dennis den Ouden-van der Horst
d84f7b680f
Fix formatting of external link in _toc.yml 2025-09-04 19:11:42 +02:00
Dennis den Ouden-van der Horst
8084df3897 Update external links in _toc.yml
Removed a comment from the Sphinx-Indexed-Definitions link and added a new external link to Sphinx-NB-Execution-Patterns in the table of contents.
2025-09-04 19:05:05 +02:00
Tom van Woudenberg
17974a8899 replace extensions by favourites 2025-09-01 10:07:59 +02:00
Tom van Woudenberg
cd62b39c6d
Update _config.yml 2025-08-27 16:10:53 +02:00
Tom van Woudenberg
7ed5c12545
Add teachbooks-sphinx-tippy to requirements 2025-08-27 16:10:13 +02:00
Tom van Woudenberg
15a7b63070
Merge pull request #191 from TeachBooks/accessibility
Add sphinx-accessibility extension and docs link
2025-08-27 14:48:14 +02:00
Dennis den Ouden-van der Horst
f0b989617a Add sphinx-accessibility extension and docs link
Included the sphinx-accessibility extension in the Sphinx configuration and requirements. Updated the table of contents to reference the Sphinx-Accessibility manual for improved documentation coverage.
2025-08-27 14:07:19 +02:00
Tom van Woudenberg
29be0833c6
Merge pull request #190 from TeachBooks/dependabot/pip/teachbooks-sphinx-grasple-1.2.3
Bump teachbooks-sphinx-grasple from 1.2.2 to 1.2.3
2025-08-26 14:39:56 +02:00
dependabot[bot]
892755a502
Bump teachbooks-sphinx-grasple from 1.2.2 to 1.2.3
Bumps [teachbooks-sphinx-grasple](https://github.com/TeachBooks/Sphinx-Grasple-public) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/TeachBooks/Sphinx-Grasple-public/releases)
- [Changelog](https://github.com/TeachBooks/Sphinx-Grasple-public/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TeachBooks/Sphinx-Grasple-public/compare/v1.2.2...v1.2.3)

---
updated-dependencies:
- dependency-name: teachbooks-sphinx-grasple
  dependency-version: 1.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-24 22:21:32 +00:00
Tom van Woudenberg
098bb72ac1
Update sphinx-iframes version to 1.0.7 2025-08-23 21:22:10 +02:00
Tom van Woudenberg
82b78f1df7
Update sphinx-code-examples version to 1.2.0 2025-08-23 21:13:24 +02:00
Tom van Woudenberg
934027783a
Merge pull request #189 from TeachBooks/dependabot/submodules/book/external/sphinx-iframes-583163e
Bump book/external/sphinx-iframes from `89f544c` to `583163e`
2025-08-23 21:07:52 +02:00
dependabot[bot]
a67eb47965
Bump book/external/sphinx-iframes from 89f544c to 583163e
Bumps [book/external/sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from `89f544c` to `583163e`.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](89f544c46c...583163ebf9)

---
updated-dependencies:
- dependency-name: book/external/sphinx-iframes
  dependency-version: 583163ebf970a83ff45d80bb9ace9922d1e1615b
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-23 19:06:22 +00:00
Tom van Woudenberg
f53722da5f
Update versioning.md 2025-08-20 09:45:23 +02:00
Tom van Woudenberg
8a005fcbad
Merge pull request #188 from TeachBooks/dependabot/submodules/book/external/deploy-book-workflow-ceb2bdb
Bump book/external/deploy-book-workflow from `d90524b` to `ceb2bdb`
2025-08-18 10:26:04 +02:00
dependabot[bot]
e12006158e
Bump book/external/deploy-book-workflow from d90524b to ceb2bdb
Bumps [book/external/deploy-book-workflow](https://github.com/TeachBooks/deploy-book-workflow) from `d90524b` to `ceb2bdb`.
- [Release notes](https://github.com/TeachBooks/deploy-book-workflow/releases)
- [Commits](d90524baa6...ceb2bdbe9b)

---
updated-dependencies:
- dependency-name: book/external/deploy-book-workflow
  dependency-version: ceb2bdbe9bed7d7d81ea7342c4bb93044f3879d5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-10 22:15:28 +00:00
Tom van Woudenberg
0c9b2dc3d7
Merge pull request #187 from TeachBooks/dependabot/pip/jupyterbook-patches-1.7.0
Bump jupyterbook-patches from 1.6.2 to 1.7.0
2025-08-04 07:38:16 +02:00
Tom van Woudenberg
8430e4288a
Merge pull request #186 from TeachBooks/dependabot/pip/teachbooks-sphinx-grasple-1.2.2
Bump teachbooks-sphinx-grasple from 1.1.5 to 1.2.2
2025-08-04 07:38:04 +02:00
dependabot[bot]
4fbe511a20
Bump jupyterbook-patches from 1.6.2 to 1.7.0
Bumps [jupyterbook-patches](https://github.com/TeachBooks/JupyterBook-Patches) from 1.6.2 to 1.7.0.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](https://github.com/TeachBooks/JupyterBook-Patches/compare/v1.6.2...v1.7.0)

---
updated-dependencies:
- dependency-name: jupyterbook-patches
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-03 22:15:13 +00:00
dependabot[bot]
98fcc7c8bd
Bump teachbooks-sphinx-grasple from 1.1.5 to 1.2.2
Bumps [teachbooks-sphinx-grasple](https://github.com/TeachBooks/Sphinx-Grasple-public) from 1.1.5 to 1.2.2.
- [Release notes](https://github.com/TeachBooks/Sphinx-Grasple-public/releases)
- [Changelog](https://github.com/TeachBooks/Sphinx-Grasple-public/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TeachBooks/Sphinx-Grasple-public/compare/v1.1.5...v1.2.2)

---
updated-dependencies:
- dependency-name: teachbooks-sphinx-grasple
  dependency-version: 1.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-03 22:15:10 +00:00
Tom van Woudenberg
b6676ae83c
Merge pull request #185 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-9ce68e1
Bump book/external/JupyterBook-Patches from `91dbbcb` to `9ce68e1`
2025-08-01 14:14:47 +02:00
dependabot[bot]
1a82eebbee
Bump book/external/JupyterBook-Patches from 91dbbcb to 9ce68e1
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `91dbbcb` to `9ce68e1`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](91dbbcbc5b...9ce68e10be)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-version: 9ce68e10be18c7b51f53f92375169fbee64f65d8
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-01 12:13:54 +00:00
Tom van Woudenberg
9005d03d6c
Create CODEOWNERS 2025-07-30 14:14:23 +02:00
Tom van Woudenberg
0071b7b3b3
Merge pull request #184 from TeachBooks/dependabot/submodules/book/external/Nested-Books-9436769
Bump book/external/Nested-Books from `70dfd28` to `9436769`
2025-07-30 14:13:06 +02:00
dependabot[bot]
fda97facee
Bump book/external/Nested-Books from 70dfd28 to 9436769
Bumps [book/external/Nested-Books](https://github.com/TeachBooks/Nested-Books) from `70dfd28` to `9436769`.
- [Commits](70dfd28f5f...943676969d)

---
updated-dependencies:
- dependency-name: book/external/Nested-Books
  dependency-version: 943676969d6e42b9c6d9c25d5313d9c0fbceea97
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 12:12:45 +00:00
Tom van Woudenberg
2fc33e1bf7
Merge pull request #183 from TeachBooks/dependabot/submodules/book/external/Sphinx-Grasple-public-9f6f68a
Bump book/external/Sphinx-Grasple-public from `ce057a2` to `9f6f68a`
2025-07-28 11:10:48 +02:00
dependabot[bot]
9d45844418
Bump book/external/Sphinx-Grasple-public from ce057a2 to 9f6f68a
Bumps [book/external/Sphinx-Grasple-public](https://github.com/TeachBooks/Sphinx-Grasple-public) from `ce057a2` to `9f6f68a`.
- [Release notes](https://github.com/TeachBooks/Sphinx-Grasple-public/releases)
- [Commits](ce057a20bb...9f6f68a8ea)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Grasple-public
  dependency-version: 9f6f68a8eaf28952c996fa3604f9201e7c40f271
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-27 22:15:20 +00:00
Dennis den Ouden-van der Horst
f578df2c3a
Merge pull request #182 from TeachBooks/code-examples
Added Sphinx Extension for Code Examples
2025-07-26 22:23:25 +02:00
Dennis den Ouden-van der Horst
854f558aaa
Update requirements.txt 2025-07-26 21:34:39 +02:00
Dennis den Ouden-van der Horst
bf7cee0b35
Merge branch 'release' into code-examples 2025-07-25 14:38:29 +02:00
Dennis den Ouden-van der Horst
243f1dd3af
Merge pull request #181 from TeachBooks/dependabot/submodules/book/external/sphinx-iframes-89f544c
Bump book/external/sphinx-iframes from `e21273d` to `89f544c`
2025-07-25 14:32:42 +02:00
Dennis den Ouden-van der Horst
92baff0ddb Add sphinx-code-examples to requirements and docs
Added 'sphinx-code-examples' to requirements.txt and updated live_code.ipynb to mention Sphinx-Exercises and Sphinx-Code-Examples for including executable code in exercises and examples. Cleaned up requirements.txt by removing a duplicate git reference.
2025-07-25 14:29:14 +02:00
Dennis den Ouden-van der Horst
9d091ac6a1 Add sphinx-code-examples extension to project
Integrated the sphinx-code-examples extension by updating _config.yml, _toc.yml, and requirements.txt. This adds support for code example features and links to its manual in the table of contents.
2025-07-24 17:06:24 +02:00
dependabot[bot]
7ed9839172
Bump book/external/sphinx-iframes from e21273d to 89f544c
Bumps [book/external/sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from `e21273d` to `89f544c`.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](e21273da13...89f544c46c)

---
updated-dependencies:
- dependency-name: book/external/sphinx-iframes
  dependency-version: 89f544c46ca36b9e57e3f0b724fcc81667c083bf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-20 22:51:45 +00:00
Tom van Woudenberg
626d982c64
Merge pull request #180 from TeachBooks/dependabot/pip/teachbooks-sphinx-grasple-1.1.5
Bump teachbooks-sphinx-grasple from 1.1.2 to 1.1.5
2025-07-07 09:26:27 +02:00
dependabot[bot]
47e4cc60b3
Bump teachbooks-sphinx-grasple from 1.1.2 to 1.1.5
Bumps [teachbooks-sphinx-grasple](https://github.com/TeachBooks/Sphinx-Grasple-public) from 1.1.2 to 1.1.5.
- [Release notes](https://github.com/TeachBooks/Sphinx-Grasple-public/releases)
- [Changelog](https://github.com/TeachBooks/Sphinx-Grasple-public/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TeachBooks/Sphinx-Grasple-public/compare/v1.1.2...v1.1.5)

---
updated-dependencies:
- dependency-name: teachbooks-sphinx-grasple
  dependency-version: 1.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-06 22:48:26 +00:00
Tom van Woudenberg
1e8a3997de
Merge pull request #179 from TeachBooks/dropdowns
Dropdown toggle added to manual
2025-07-02 14:40:26 +02:00
Dennis den Ouden-van der Horst
f7efec93ee
Update requirements.txt 2025-07-02 14:33:08 +02:00
Dennis den Ouden-van der Horst
7facf23ecb
Update requirements.txt 2025-07-02 14:22:46 +02:00
Dennis den Ouden-van der Horst
906fa93976
Update _config.yml 2025-07-02 14:16:56 +02:00
Dennis den Ouden-van der Horst
d2e2a4d2b6
Update requirements.txt 2025-07-02 14:16:23 +02:00
Dennis den Ouden-van der Horst
68d3cecc53
Update _toc.yml 2025-07-02 14:10:42 +02:00
Tom van Woudenberg
0e444c1be0
Update git-setup_local.md 2025-07-02 09:58:54 +02:00
Tom van Woudenberg
b958dff900
Merge pull request #178 from TeachBooks/dependabot/pip/teachbooks-sphinx-grasple-1.1.2
Bump teachbooks-sphinx-grasple from 1.1.1 to 1.1.2
2025-06-30 10:58:43 +02:00
dependabot[bot]
50e20fba06
Bump teachbooks-sphinx-grasple from 1.1.1 to 1.1.2
Bumps [teachbooks-sphinx-grasple](https://github.com/TeachBooks/Sphinx-Grasple-public) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/TeachBooks/Sphinx-Grasple-public/releases)
- [Changelog](https://github.com/TeachBooks/Sphinx-Grasple-public/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TeachBooks/Sphinx-Grasple-public/compare/v1.1.1...v1.1.2)

---
updated-dependencies:
- dependency-name: teachbooks-sphinx-grasple
  dependency-version: 1.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-29 22:55:28 +00:00
Tom van Woudenberg
24cf56a74a
Update tools.md 2025-06-12 15:11:45 +02:00
Tom van Woudenberg
284be08718
Typo
Fixes #174 from @xtinamark
2025-06-12 12:30:20 +02:00
Tom van Woudenberg
9e180be444
Merge pull request #173 from TeachBooks/dependabot/pip/jupyterbook-patches-1.6.2
Bump jupyterbook-patches from 1.6.1 to 1.6.2
2025-06-11 13:23:11 +02:00
Tom van Woudenberg
edd0f4235d
Merge pull request #176 from TeachBooks/dependabot/pip/teachbooks-sphinx-grasple-1.1.1
Bump teachbooks-sphinx-grasple from 1.0.5 to 1.1.1
2025-06-11 13:22:18 +02:00
Tom van Woudenberg
3fff6511f8
Update tools.md 2025-06-09 11:22:00 +02:00
dependabot[bot]
f2daa9cc2c
Bump teachbooks-sphinx-grasple from 1.0.5 to 1.1.1
Bumps [teachbooks-sphinx-grasple](https://github.com/TeachBooks/Sphinx-Grasple-public) from 1.0.5 to 1.1.1.
- [Release notes](https://github.com/TeachBooks/Sphinx-Grasple-public/releases)
- [Changelog](https://github.com/TeachBooks/Sphinx-Grasple-public/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TeachBooks/Sphinx-Grasple-public/compare/v1.0.5...v1.1.1)

---
updated-dependencies:
- dependency-name: teachbooks-sphinx-grasple
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-08 22:42:43 +00:00
dependabot[bot]
10543a9eef
Bump jupyterbook-patches from 1.6.1 to 1.6.2
Bumps [jupyterbook-patches](https://github.com/TeachBooks/JupyterBook-Patches) from 1.6.1 to 1.6.2.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](https://github.com/TeachBooks/JupyterBook-Patches/compare/v1.6.1...v1.6.2)

---
updated-dependencies:
- dependency-name: jupyterbook-patches
  dependency-version: 1.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-18 22:28:01 +00:00
Tom van Woudenberg
bcba8bd07c
formatting fix 2025-05-14 09:39:36 +02:00
Tom van Woudenberg
8d569821d5
Merge pull request #172 from TeachBooks/dependabot/pip/jupyterbook-patches-1.6.1
Bump jupyterbook-patches from 1.6.0 to 1.6.1
2025-05-12 10:19:33 +02:00
dependabot[bot]
6ced994619
Bump jupyterbook-patches from 1.6.0 to 1.6.1
Bumps [jupyterbook-patches](https://github.com/TeachBooks/JupyterBook-Patches) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](https://github.com/TeachBooks/JupyterBook-Patches/compare/v1.6.0...v1.6.1)

---
updated-dependencies:
- dependency-name: jupyterbook-patches
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-11 22:03:58 +00:00
Tom van Woudenberg
51f2d62ee5
Update _toc.yml 2025-05-09 11:28:41 +02:00
Tom van Woudenberg
1ce104d3ea
Merge pull request #170 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-91dbbcb
Bump book/external/JupyterBook-Patches from `22cba56` to `91dbbcb`
2025-05-08 08:40:10 +02:00
Tom van Woudenberg
aeb489dd3b
Merge pull request #171 from TeachBooks/dependabot/pip/jupyterbook-patches-1.6.0
Bump jupyterbook-patches from 1.5.0 to 1.6.0
2025-05-08 08:37:29 +02:00
dependabot[bot]
ec7744a556
Bump jupyterbook-patches from 1.5.0 to 1.6.0
Bumps [jupyterbook-patches](https://github.com/TeachBooks/JupyterBook-Patches) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](https://github.com/TeachBooks/JupyterBook-Patches/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: jupyterbook-patches
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 06:36:18 +00:00
dependabot[bot]
ce9e1cf2af
Bump book/external/JupyterBook-Patches from 22cba56 to 91dbbcb
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `22cba56` to `91dbbcb`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](22cba56474...91dbbcbc5b)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-version: 91dbbcbc5bbf8387bc1ad4ed3b4d06479ff6c1e9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 06:36:00 +00:00
Tom van Woudenberg
f87faaeb66
Merge pull request #169 from TeachBooks/Tom-van-Woudenberg-patch-1
configure teachbooks external stuff
2025-05-06 08:45:00 +02:00
Tom van Woudenberg
805d624f19
Update _config.yml 2025-05-03 09:02:02 +02:00
Tom van Woudenberg
709aeda6b8
Update requirements.txt 2025-05-03 09:01:22 +02:00
Tom van Woudenberg
839a57ddd7
Merge pull request #159 from TeachBooks/external_toc
Added configuration options for teachbooks external
2025-05-03 08:46:19 +02:00
Tom van Woudenberg
93ddfc1491
Update external_toc.md 2025-05-02 14:26:29 +02:00
Tom van Woudenberg
04e44069d1
BUMP 2025-05-02 11:46:53 +02:00
Tom van Woudenberg
c9a8aee6c8
remove warning 2025-05-02 11:08:00 +02:00
Tom van Woudenberg
4f9e428c62
Update publisher.md 2025-05-02 11:02:56 +02:00
Tom van Woudenberg
e3475b60fd
Merge pull request #168 from TeachBooks/dependabot/pip/jupyterbook-patches-1.5.0
Bump jupyterbook-patches from 1.4.4 to 1.5.0
2025-05-02 10:25:50 +02:00
Tom van Woudenberg
74c7179d65
Merge pull request #167 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-22cba56
Bump book/external/JupyterBook-Patches from `8346c8c` to `22cba56`
2025-05-02 10:25:30 +02:00
dependabot[bot]
507c38a425
Bump jupyterbook-patches from 1.4.4 to 1.5.0
Bumps [jupyterbook-patches](https://github.com/TeachBooks/JupyterBook-Patches) from 1.4.4 to 1.5.0.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](https://github.com/TeachBooks/JupyterBook-Patches/compare/v1.4.4...v1.5.0)

---
updated-dependencies:
- dependency-name: jupyterbook-patches
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-02 08:24:13 +00:00
dependabot[bot]
c16b2afa29
Bump book/external/JupyterBook-Patches from 8346c8c to 22cba56
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `8346c8c` to `22cba56`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](8346c8c3c8...22cba56474)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-version: 22cba56474f18574fbeecdf996e0d4028ce24608
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-02 08:23:57 +00:00
Tom van Woudenberg
f9dc5756f8
Merge pull request #163 from TeachBooks/ref-graph
add ref-graph
2025-05-02 09:02:21 +02:00
Tom van Woudenberg
f15a92e7e3 Update .gitignore 2025-05-02 09:01:42 +02:00
Tom van Woudenberg
77042864be Merge branch 'ref-graph' of https://github.com/TeachBooks/manual into ref-graph 2025-05-02 08:59:23 +02:00
Tom van Woudenberg
188e04dda2 Merge branch 'release' of https://github.com/TeachBooks/manual into ref-graph 2025-05-02 08:58:59 +02:00
Dennis den Ouden-van der Horst
72e394a104 Oops 2025-05-02 08:25:11 +02:00
Dennis den Ouden-van der Horst
4f814bea7e Force update 2025-05-02 08:18:02 +02:00
Tom van Woudenberg
d7d1b0490d
Merge pull request #166 from TeachBooks/dependabot/submodules/book/external/deploy-book-workflow-d90524b
Bump book/external/deploy-book-workflow from `427215f` to `d90524b`
2025-05-01 15:21:45 +02:00
dependabot[bot]
e48a170f8e
Bump book/external/deploy-book-workflow from 427215f to d90524b
Bumps [book/external/deploy-book-workflow](https://github.com/TeachBooks/deploy-book-workflow) from `427215f` to `d90524b`.
- [Commits](427215f1cc...d90524baa6)

---
updated-dependencies:
- dependency-name: book/external/deploy-book-workflow
  dependency-version: d90524baa6d989dc2f49ee3d5d2ae1885fe679a9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-01 13:20:05 +00:00
Tom van Woudenberg
c0c5551c08
Update draft-release.md 2025-05-01 15:17:24 +02:00
Tom van Woudenberg
a92bb1a578 add blend to demo 2025-05-01 10:32:10 +02:00
Tom van Woudenberg
abb1fae9a8 other colour 2025-05-01 10:29:58 +02:00
Tom van Woudenberg
a9c6621ccb small t in logo 2025-05-01 10:27:20 +02:00
Tom van Woudenberg
9e00076255 Merge branch 'release' of https://github.com/TeachBooks/manual into release 2025-05-01 09:58:09 +02:00
Tom van Woudenberg
bd12c6476d updated figure in intro book 2025-05-01 09:57:55 +02:00
Tom van Woudenberg
37c4c5b88a
Make distinction teachbooks and jupyter book etc more clear 2025-05-01 09:34:47 +02:00
Tom van Woudenberg
11322915b7
Update intro.md 2025-05-01 09:31:13 +02:00
Tom van Woudenberg
6b73abdde5
Update _config.yml 2025-05-01 09:28:56 +02:00
Tom van Woudenberg
1bcb7b057a
Merge pull request #164 from TeachBooks/dependabot/submodules/book/external/Sphinx-Image-Inverter-eb21e6a
Bump book/external/Sphinx-Image-Inverter from `573bb66` to `eb21e6a`
2025-05-01 09:28:32 +02:00
dependabot[bot]
d8463bf9d7
Bump book/external/Sphinx-Image-Inverter from 573bb66 to eb21e6a
Bumps [book/external/Sphinx-Image-Inverter](https://github.com/TeachBooks/Sphinx-Image-Inverter) from `573bb66` to `eb21e6a`.
- [Release notes](https://github.com/TeachBooks/Sphinx-Image-Inverter/releases)
- [Commits](573bb66332...eb21e6a80e)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Image-Inverter
  dependency-version: eb21e6a80ed33f0102f9025b9ee983148370d753
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-01 07:23:50 +00:00
Tom van Woudenberg
560913c233
Update h5p.md 2025-05-01 09:12:53 +02:00
Tom van Woudenberg
70e582105e Update template 2025-05-01 09:07:38 +02:00
Tom van Woudenberg
02ed115c76
Merge branch 'release' into external_toc 2025-04-30 14:18:31 +02:00
Tom van Woudenberg
128d382d93 Update credits.md 2025-04-30 14:15:43 +02:00
Tom van Woudenberg
590917d08f Merge branch 'release' into ref-graph 2025-04-30 14:14:29 +02:00
Tom van Woudenberg
da92178a8b added indexed defintions to credits 2025-04-30 14:14:18 +02:00
Tom van Woudenberg
140c6e6418 reference exercises in template 2025-04-30 14:11:37 +02:00
Tom van Woudenberg
8c0551b106 add ref-graph 2025-04-30 13:55:38 +02:00
Tom van Woudenberg
7317c0e6d0
Merge pull request #160 from TeachBooks/indexed-definitions
Added shpinx-indexed-defintions
2025-04-30 13:42:28 +02:00
Tom van Woudenberg
84358418fb
Update requirements.txt 2025-04-30 13:38:00 +02:00
Tom van Woudenberg
7459a7b420
Merge pull request #162 from TeachBooks/dependabot/submodules/book/external/Sphinx-TUDelft-theme-2ab5d1d
Bump book/external/Sphinx-TUDelft-theme from `d845f78` to `2ab5d1d`
2025-04-30 13:36:59 +02:00
Tom van Woudenberg
daa16239de
Merge pull request #161 from TeachBooks/dependabot/submodules/book/external/sphinx-iframes-e21273d
Bump book/external/sphinx-iframes from `062c54a` to `e21273d`
2025-04-30 13:36:40 +02:00
dependabot[bot]
811afc0059
Bump book/external/Sphinx-TUDelft-theme from d845f78 to 2ab5d1d
Bumps [book/external/Sphinx-TUDelft-theme](https://github.com/TeachBooks/Sphinx-TUDelft-theme) from `d845f78` to `2ab5d1d`.
- [Release notes](https://github.com/TeachBooks/Sphinx-TUDelft-theme/releases)
- [Commits](d845f78e04...2ab5d1d708)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-TUDelft-theme
  dependency-version: 2ab5d1d708aed595b9630c94081e05c11a84b18c
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-30 11:36:20 +00:00
dependabot[bot]
a9ade696a8
Bump book/external/sphinx-iframes from 062c54a to e21273d
Bumps [book/external/sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from `062c54a` to `e21273d`.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](062c54a679...e21273da13)

---
updated-dependencies:
- dependency-name: book/external/sphinx-iframes
  dependency-version: e21273da134cbf4753da5faf9adc277b8f1c3a1c
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-30 11:36:18 +00:00
Tom van Woudenberg
535c681808 Added shpinx-indexed-defintions 2025-04-30 13:31:30 +02:00
Tom van Woudenberg
b1c95eacd4 move text 2025-04-24 15:37:11 +02:00
Tom van Woudenberg
b0c9f6c22e
Update _config.yml 2025-04-24 15:36:32 +02:00
Tom van Woudenberg
a38cd11ccd update license pages with full instructions 2025-04-24 15:34:22 +02:00
Tom van Woudenberg
ff32af1ddc Added custom admonition configuration 2025-04-24 15:28:01 +02:00
Tom van Woudenberg
9100ec5bce
Merge pull request #158 from TeachBooks/recombiner
Add recombiner to share content page
2025-04-23 17:03:44 +02:00
Tom van Woudenberg
c2f38e8c41
Update book/features/external_toc.md
Co-authored-by: Bart Schilperoort <b.schilperoort@gmail.com>
2025-04-23 17:03:29 +02:00
Tom van Woudenberg
8e14206038
Update book/features/external_toc.md
Co-authored-by: Bart Schilperoort <b.schilperoort@gmail.com>
2025-04-23 17:03:15 +02:00
Tom van Woudenberg
59d2320eee typo fix 2025-04-23 15:57:44 +02:00
Tom van Woudenberg
d90c0287f5 Update external_toc.md 2025-04-23 15:57:23 +02:00
Tom van Woudenberg
b5baeca981 Add recombiner to share content page 2025-04-23 15:52:53 +02:00
Tom van Woudenberg
8f7006bd80 Update live_code.ipynb 2025-04-23 15:44:02 +02:00
Tom van Woudenberg
f5188478c1
Merge pull request #157 from TeachBooks/dependabot/submodules/book/external/deploy-book-workflow-910542a
Bump book/external/deploy-book-workflow from `c534383` to `910542a`
2025-04-22 15:42:06 +02:00
dependabot[bot]
937acab401
Bump book/external/deploy-book-workflow from c534383 to 910542a
Bumps [book/external/deploy-book-workflow](https://github.com/TeachBooks/deploy-book-workflow) from `c534383` to `910542a`.
- [Commits](c534383e37...910542a3ac)

---
updated-dependencies:
- dependency-name: book/external/deploy-book-workflow
  dependency-version: 910542a3ac426020f738dfb0de313f66d9d3f43f
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 13:41:43 +00:00
Tom van Woudenberg
2df1be74cb
Update overview.md 2025-04-22 15:31:46 +02:00
Tom van Woudenberg
a25f820a93
Merge pull request #156 from TeachBooks/dependabot/submodules/book/external/Download-Link-Replacer-10ff656
Bump book/external/Download-Link-Replacer from `6318fd9` to `10ff656`
2025-04-14 11:32:40 +02:00
Tom van Woudenberg
1a52bdf87d
Update students.md 2025-04-14 11:32:29 +02:00
dependabot[bot]
e25245ff00
Bump book/external/Download-Link-Replacer from 6318fd9 to 10ff656
Bumps [book/external/Download-Link-Replacer](https://github.com/TeachBooks/Download-Link-Replacer) from `6318fd9` to `10ff656`.
- [Release notes](https://github.com/TeachBooks/Download-Link-Replacer/releases)
- [Commits](6318fd9db4...10ff656dc4)

---
updated-dependencies:
- dependency-name: book/external/Download-Link-Replacer
  dependency-version: 10ff656dc4b871330dd2271d00d2e8b9a9a57613
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 09:29:10 +00:00
Tom van Woudenberg
80522ec89a
Merge pull request #155 from TeachBooks/dependabot/submodules/book/external/template-352ce20
Bump book/external/template from `17b99b2` to `352ce20`
2025-04-14 11:28:05 +02:00
dependabot[bot]
17ef250435
Bump book/external/template from 17b99b2 to 352ce20
Bumps [book/external/template](https://github.com/TeachBooks/template) from `17b99b2` to `352ce20`.
- [Commits](17b99b2de4...352ce2076e)

---
updated-dependencies:
- dependency-name: book/external/template
  dependency-version: 352ce2076e32e852f0d718f8f4ed414898821365
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 09:26:14 +00:00
Tom van Woudenberg
3b45ce2f45
Update draft-release.md 2025-04-14 11:25:55 +02:00
Tom van Woudenberg
036ab6fd54
Merge pull request #154 from TeachBooks/dependabot/submodules/book/external/Sphinx-TUDelft-theme-d845f78
Bump book/external/Sphinx-TUDelft-theme from `103caec` to `d845f78`
2025-04-14 09:44:04 +02:00
dependabot[bot]
6663cc56bd
Bump book/external/Sphinx-TUDelft-theme from 103caec to d845f78
Bumps [book/external/Sphinx-TUDelft-theme](https://github.com/TeachBooks/Sphinx-TUDelft-theme) from `103caec` to `d845f78`.
- [Release notes](https://github.com/TeachBooks/Sphinx-TUDelft-theme/releases)
- [Commits](103caecd48...d845f78e04)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-TUDelft-theme
  dependency-version: d845f78e04bc0a4feca0c917f88599bdd1f02ecb
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 07:37:07 +00:00
Tom van Woudenberg
2abcf6f962
Merge pull request #152 from TeachBooks/dependabot/submodules/book/external/deploy-book-workflow-c534383
Bump book/external/deploy-book-workflow from `ea450f3` to `c534383`
2025-04-08 09:02:33 +02:00
dependabot[bot]
9430b2de5b
Bump book/external/deploy-book-workflow from ea450f3 to c534383
Bumps [book/external/deploy-book-workflow](https://github.com/TeachBooks/deploy-book-workflow) from `ea450f3` to `c534383`.
- [Commits](ea450f3c0c...c534383e37)

---
updated-dependencies:
- dependency-name: book/external/deploy-book-workflow
  dependency-version: c534383e3726f8c40bae223052b13bf98f8caa75
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 07:00:38 +00:00
Tom van Woudenberg
306cb1defa
Update versioning.md 2025-04-08 08:38:45 +02:00
Robert Lanzafame
96b5daaa96
Merge pull request #131 from TeachBooks/external-content-teachbooks-v0.2.0
Prepare for teachbooks v0.2.0
https://github.com/TeachBooks/TeachBooks/releases/tag/v0.2.0
2025-04-07 15:50:38 +02:00
Robert Lanzafame
b3183b8e85
note build commands 2025-04-05 06:12:07 +02:00
Robert Lanzafame
4dfffb1206
clarify that an venv issue will be 1 week max 2025-04-05 06:03:52 +02:00
Tom van Woudenberg
f6f8164f9b
User type in margin 2025-04-04 17:14:51 +02:00
Tom van Woudenberg
e5bed622e0
remove duplicate text 2025-04-04 17:13:32 +02:00
Robert Lanzafame
b7352c2d6a
add note about deleting cache 2025-04-04 16:54:45 +02:00
Robert Lanzafame
a9d7fab8b4
remove warning on external toc page 2025-04-04 16:54:34 +02:00
Robert Lanzafame
a6045e7d1e
DBW and packages note ready 2025-04-04 16:49:13 +02:00
Tom van Woudenberg
ed03441951
Update credits.md 2025-04-03 14:30:05 +02:00
Tom van Woudenberg
2a52bf3c05
Update collab.md 2025-04-03 14:28:26 +02:00
Tom van Woudenberg
8d18777177
Update collaboration.md 2025-04-03 14:26:54 +02:00
Tom van Woudenberg
c5bee6c133
Update tools.md 2025-04-03 14:25:51 +02:00
Robert Lanzafame
374bd794d2
last check didnt work. this one will confirm that requirements.txt change makes new venv created 2025-04-02 14:20:01 +02:00
Robert Lanzafame
31d96bd25b
meaningless change to book: should result in new venv created, even though requirements not changed 2025-04-02 14:11:37 +02:00
Robert Lanzafame
bc23d90ccc
meaningless bump: should reuse cache but still check dependencies 2025-04-02 14:03:37 +02:00
Robert Lanzafame
6f3294e66f
overview update 2025-04-02 06:51:15 +02:00
Robert Lanzafame
6d3e647a94
update updated_env text for clarity 2025-04-02 06:14:24 +02:00
Robert Lanzafame
89fe14cc34 Merge branch 'release' into external-content-teachbooks-v0.2.0 2025-04-02 05:52:17 +02:00
Robert Lanzafame
4cc865170a
update teachbooks text on overview 2025-04-02 05:43:32 +02:00
Tom van Woudenberg
b5eb1b2531
Merge pull request #148 from TeachBooks/dependabot/submodules/book/external/Sphinx-launch-buttons-e6070de
Bump book/external/Sphinx-launch-buttons from `f6435cb` to `e6070de`
2025-04-01 21:42:11 +02:00
dependabot[bot]
19f5791471
Bump book/external/Sphinx-launch-buttons from f6435cb to e6070de
Bumps [book/external/Sphinx-launch-buttons](https://github.com/TeachBooks/Sphinx-launch-buttons) from `f6435cb` to `e6070de`.
- [Release notes](https://github.com/TeachBooks/Sphinx-launch-buttons/releases)
- [Commits](f6435cb0a7...e6070ded6c)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-launch-buttons
  dependency-version: e6070ded6ca77662a3a951893cafe265fa333e5e
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-01 19:41:54 +00:00
Tom van Woudenberg
ae4f209be2 user types in margins 2025-04-01 15:00:43 +02:00
Tom van Woudenberg
748f68d6d9 attributions in margin 2025-04-01 13:57:19 +02:00
Tom van Woudenberg
0c579a229a attribution in margin 2025-04-01 13:47:03 +02:00
Tom van Woudenberg
e41e6744dc update attributions 2025-04-01 13:36:53 +02:00
Tom van Woudenberg
f48ce67247
Merge pull request #147 from TeachBooks/dependabot/pip/jupyterbook-patches-1.4.4
Bump jupyterbook-patches from 1.4.2 to 1.4.4
2025-03-31 08:00:27 +02:00
Tom van Woudenberg
69021495e3
Merge pull request #146 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-aa93fc5
Bump book/external/JupyterBook-Patches from `763b59d` to `aa93fc5`
2025-03-31 08:00:15 +02:00
dependabot[bot]
7e53a8d5bb
Bump jupyterbook-patches from 1.4.2 to 1.4.4
Bumps [jupyterbook-patches](https://github.com/TeachBooks/JupyterBook-Patches) from 1.4.2 to 1.4.4.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](https://github.com/TeachBooks/JupyterBook-Patches/compare/v1.4.2...v1.4.4)

---
updated-dependencies:
- dependency-name: jupyterbook-patches
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-30 22:40:07 +00:00
dependabot[bot]
e434477333
Bump book/external/JupyterBook-Patches from 763b59d to aa93fc5
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `763b59d` to `aa93fc5`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](763b59d720...aa93fc51bf)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-30 22:27:09 +00:00
Tom van Woudenberg
00bf8ae251 Merge branch 'release' of https://github.com/TeachBooks/manual into release 2025-03-28 15:59:26 +01:00
Tom van Woudenberg
3e24d22280 Revert "Update credits.md"
This reverts commit 5bb1d3275c.
2025-03-28 15:59:14 +01:00
Tom van Woudenberg
3c6620ba1a
Create WAIVER 2025-03-28 15:21:15 +01:00
Tom van Woudenberg
ffdecc307d
Update CITATION.cff 2025-03-28 11:47:39 +01:00
Tom van Woudenberg
5bb1d3275c
Update credits.md 2025-03-28 11:46:12 +01:00
Tom van Woudenberg
49e396a296
Update intro.md 2025-03-28 11:44:34 +01:00
Tom van Woudenberg
5c61c64b0e
Update README.md 2025-03-28 11:44:19 +01:00
Tom van Woudenberg
f95a2b4e2a
Update CITATION.cff 2025-03-28 11:32:41 +01:00
Tom van Woudenberg
95134f24b4 Create CITATION.cff 2025-03-28 11:04:05 +01:00
Tom van Woudenberg
62ab877b51
Merge pull request #145 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-763b59d
Bump book/external/JupyterBook-Patches from `3a1ed37` to `763b59d`
2025-03-27 11:26:20 +01:00
dependabot[bot]
4213bdc587
Bump book/external/JupyterBook-Patches from 3a1ed37 to 763b59d
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `3a1ed37` to `763b59d`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](3a1ed37386...763b59d720)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-27 10:24:48 +00:00
Tom van Woudenberg
f97d420839 small fixes 2025-03-27 09:49:52 +01:00
Tom van Woudenberg
3a08f5cf8c fix link 2025-03-27 09:46:56 +01:00
Tom van Woudenberg
eb87bd47f5 fix relative link 2025-03-27 09:46:13 +01:00
Tom van Woudenberg
9665fb5027 add script to move images 2025-03-27 09:42:42 +01:00
Tom van Woudenberg
9cb3724878
Update collab.md 2025-03-24 09:04:17 +01:00
Tom van Woudenberg
c4fd4092fe
Merge pull request #144 from TeachBooks/dependabot/submodules/book/external/deploy-book-workflow-26afa87
Bump book/external/deploy-book-workflow from `01eef2d` to `26afa87`
2025-03-23 19:34:24 +01:00
Tom van Woudenberg
5d7ddb2707
Update versions_URLs.md 2025-03-23 19:33:08 +01:00
dependabot[bot]
761b6572ae
Bump book/external/deploy-book-workflow from 01eef2d to 26afa87
Bumps [book/external/deploy-book-workflow](https://github.com/TeachBooks/deploy-book-workflow) from `01eef2d` to `26afa87`.
- [Commits](01eef2d619...26afa87f90)

---
updated-dependencies:
- dependency-name: book/external/deploy-book-workflow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-23 18:30:22 +00:00
Robert Lanzafame
9b74a256e1
teachbooks info on overview page and manual/features/teachbooks URL breaks
Update teachbooks.md
2025-03-23 08:35:08 +01:00
Tom van Woudenberg
62ddb348f6
Update local_server.md 2025-03-22 22:05:08 +01:00
Tom van Woudenberg
55b68627bb
Update external_toc.md 2025-03-22 22:04:44 +01:00
Tom van Woudenberg
e1f25a8a48
Update draft-release.md 2025-03-22 22:04:14 +01:00
Tom van Woudenberg
fac95545db
Update local_server.md 2025-03-22 22:00:38 +01:00
Tom van Woudenberg
b33bd13be5
Update external_toc.md 2025-03-22 22:00:14 +01:00
Tom van Woudenberg
05f0045b40
Update draft-release.md 2025-03-22 21:59:52 +01:00
Tom van Woudenberg
ef4b94c9ce
Update _toc.yml 2025-03-22 21:58:45 +01:00
Tom van Woudenberg
3f77301b61
Delete book/features/teachbooks.md 2025-03-22 21:57:21 +01:00
Tom van Woudenberg
9b82c05b55
Update overview.md 2025-03-22 21:50:40 +01:00
Tom van Woudenberg
d572a0fd64
Update teachbooks.md 2025-03-22 21:49:37 +01:00
Tom van Woudenberg
b78aa6ac84
Update teachbooks.md 2025-03-22 21:46:25 +01:00
Tom van Woudenberg
de6ba9e0fa
Update teachbooks.md 2025-03-22 21:42:56 +01:00
Tom van Woudenberg
50131ee847
Update teachbooks.md 2025-03-22 21:37:47 +01:00
Tom van Woudenberg
92b026d905
Update overview.md 2025-03-22 21:34:06 +01:00
Tom van Woudenberg
2229dd7a7b
Update teachbooks.md 2025-03-22 21:32:39 +01:00
Robert Lanzafame
40c9f63cb9 WIP 2025-03-22 17:10:41 +01:00
Tom van Woudenberg
6a7bc680df
Merge pull request #142 from TeachBooks/dependabot/submodules/book/external/deploy-book-workflow-01eef2d
Bump book/external/deploy-book-workflow from `b655fb1` to `01eef2d`
2025-03-22 08:21:56 +01:00
Tom van Woudenberg
14fe314700
Merge pull request #141 from TeachBooks/dependabot/submodules/book/external/template-1a29a78
Bump book/external/template from `43f37f9` to `1a29a78`
2025-03-22 08:21:44 +01:00
dependabot[bot]
3b8f143ad3
Bump book/external/deploy-book-workflow from b655fb1 to 01eef2d
Bumps [book/external/deploy-book-workflow](https://github.com/TeachBooks/deploy-book-workflow) from `b655fb1` to `01eef2d`.
- [Commits](b655fb125d...01eef2d619)

---
updated-dependencies:
- dependency-name: book/external/deploy-book-workflow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 07:21:11 +00:00
dependabot[bot]
a8915bfcaf
Bump book/external/template from 43f37f9 to 1a29a78
Bumps [book/external/template](https://github.com/TeachBooks/template) from `43f37f9` to `1a29a78`.
- [Commits](43f37f9baf...1a29a7826b)

---
updated-dependencies:
- dependency-name: book/external/template
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 07:21:09 +00:00
Tom van Woudenberg
88fd03fea5 add jupyterboko-patcches backin 2025-03-22 08:19:57 +01:00
Tom van Woudenberg
2bd4db8be3 rm submodule JupyterBook-Patches 2025-03-22 08:18:36 +01:00
Tom van Woudenberg
241c935bab
Merge pull request #140 from TeachBooks/update-with-gh_pat-book-workflow
update manual with private repo simplification
2025-03-22 07:37:54 +01:00
Robert Lanzafame
e5426cc81e small notes sphinx-extrensions page 2025-03-22 07:26:52 +01:00
Tom van Woudenberg
25044d4c93 Update Nested-Books 2025-03-21 15:25:37 +01:00
Tom van Woudenberg
9270ac543b update manual 2025-03-21 15:12:00 +01:00
Tom van Woudenberg
8867006428 add script for live code 2025-03-20 11:23:21 +01:00
Tom van Woudenberg
2322687660 added user types 2025-03-18 13:09:55 +01:00
Tom van Woudenberg
1d180409d0
Merge pull request #137 from TeachBooks/dependabot/pip/sphinx-prime-applets-1.0.2
Bump sphinx-prime-applets from 1.0.1 to 1.0.2
2025-03-17 12:56:12 +01:00
Tom van Woudenberg
559c0548b1
Merge pull request #136 from TeachBooks/dependabot/pip/jupyterbook-patches-1.4.2
Bump jupyterbook-patches from 1.4.1 to 1.4.2
2025-03-17 12:56:05 +01:00
Tom van Woudenberg
fabd4cd82e
Merge pull request #135 from TeachBooks/dependabot/pip/sphinx-proof-0.2.1
Bump sphinx-proof from 0.2.0 to 0.2.1
2025-03-17 12:55:55 +01:00
dependabot[bot]
d4e07ee233
Bump sphinx-prime-applets from 1.0.1 to 1.0.2
Bumps [sphinx-prime-applets](https://github.com/TeachBooks/Sphinx-PRIME-applets) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/TeachBooks/Sphinx-PRIME-applets/releases)
- [Commits](https://github.com/TeachBooks/Sphinx-PRIME-applets/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: sphinx-prime-applets
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-16 22:05:39 +00:00
dependabot[bot]
d0d881a9c0
Bump jupyterbook-patches from 1.4.1 to 1.4.2
Bumps [jupyterbook-patches](https://github.com/TeachBooks/JupyterBook-Patches) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](https://github.com/TeachBooks/JupyterBook-Patches/compare/v1.4.1...v1.4.2)

---
updated-dependencies:
- dependency-name: jupyterbook-patches
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-16 22:05:36 +00:00
dependabot[bot]
66ddef3612
Bump sphinx-proof from 0.2.0 to 0.2.1
Bumps [sphinx-proof](https://github.com/executablebooks/sphinx-proof) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/executablebooks/sphinx-proof/releases)
- [Changelog](https://github.com/executablebooks/sphinx-proof/blob/main/CHANGELOG.md)
- [Commits](https://github.com/executablebooks/sphinx-proof/compare/v0.2.0...v0.2.1)

---
updated-dependencies:
- dependency-name: sphinx-proof
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-16 22:05:34 +00:00
Robert Lanzafame
9f8bf5fc9f
Merge pull request #134 from sanderrenes/patch-1
Update licenses.md
2025-03-14 08:53:20 +01:00
Tom van Woudenberg
9e34a2e08c set height 2025-03-12 08:56:38 +01:00
Tom van Woudenberg
9847050bd6 Update h5p_examples.md 2025-03-12 08:51:14 +01:00
Tom van Woudenberg
de6e00b151 Update example_gumbel.ipynb 2025-03-12 08:35:29 +01:00
Tom van Woudenberg
9ff4e4f03f update 2025-03-12 08:34:01 +01:00
Tom van Woudenberg
f2deda3f88 moved examples h5p to explanation itself 2025-03-12 08:13:28 +01:00
Sander Renes
682f6a9aef
Update licenses.md
changed a typo and added a sentence on copyleft licences
2025-03-11 12:05:16 +01:00
Tom van Woudenberg
6f1d6e558f
Merge pull request #133 from TeachBooks/dependabot/pip/jupyterbook-patches-1.4.1
Bump jupyterbook-patches from 1.3.0 to 1.4.1
2025-03-10 10:45:35 +01:00
dependabot[bot]
f0bd518db5
Bump jupyterbook-patches from 1.3.0 to 1.4.1
Bumps [jupyterbook-patches](https://github.com/TeachBooks/JupyterBook-Patches) from 1.3.0 to 1.4.1.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](https://github.com/TeachBooks/JupyterBook-Patches/compare/v1.3.0...v1.4.1)

---
updated-dependencies:
- dependency-name: jupyterbook-patches
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-09 22:45:45 +00:00
Robert Lanzafame
53fdeda760 add draft-release page ref 2025-03-09 07:45:36 +01:00
Robert Lanzafame
a25cdfe4c5 filename change 2025-03-09 07:31:57 +01:00
Robert Lanzafame
22eacbfe27 typo 2025-03-09 07:31:47 +01:00
Robert Lanzafame
f6afbfcd58 prep note for v0.2.0 2025-03-09 07:28:48 +01:00
Robert Lanzafame
b2404ad48b
External Contents Pages
Docs external toc
2025-03-07 16:50:35 +01:00
Tom van Woudenberg
271b4924fe
Merge branch 'release' into docs_external_toc 2025-03-06 07:47:34 +01:00
Tom van Woudenberg
857dbd5d61
Mention explicitly missing features 2025-03-06 07:36:43 +01:00
Robert Lanzafame
65687a36a1 simplify submodules part and clarify not in workflow 2025-03-06 06:15:00 +01:00
Robert Lanzafame
e86e597715 pip install teachbooks>=0.2.0 2025-03-06 05:57:45 +01:00
Robert Lanzafame
bd141d0c69 clarify teachbooks package button and improve general explanation 2025-03-06 05:26:36 +01:00
Tom van Woudenberg
97b5eacb44
Merge pull request #129 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-3a1ed37
Bump book/external/JupyterBook-Patches from `370986c` to `3a1ed37`
2025-03-05 14:24:33 +01:00
dependabot[bot]
fabdef87ef
Bump book/external/JupyterBook-Patches from 370986c to 3a1ed37
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `370986c` to `3a1ed37`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](370986ca6f...3a1ed37386)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-05 13:24:18 +00:00
Tom van Woudenberg
93b74fda6c
Update book/features/external_toc.md
Co-authored-by: Bart Schilperoort <b.schilperoort@gmail.com>
2025-03-05 07:16:23 +01:00
Tom van Woudenberg
36aafe5c59
Update book/features/external_toc.md
Co-authored-by: Bart Schilperoort <b.schilperoort@gmail.com>
2025-03-05 07:13:34 +01:00
Tom van Woudenberg
b82e6b9c19
Update book/features/external_toc.md
Co-authored-by: Bart Schilperoort <b.schilperoort@gmail.com>
2025-03-05 07:13:10 +01:00
Tom van Woudenberg
7c8af85603
Update template.md 2025-03-04 11:07:47 +01:00
Tom van Woudenberg
18b966af83
Update versions_URLs.md 2025-03-04 11:00:46 +01:00
Tom van Woudenberg
6c0ea9a1e3
Merge pull request #128 from TeachBooks/git-explanation-improvement
git explanation improvement
2025-03-04 10:45:15 +01:00
Tom van Woudenberg
c2beaec0f2
Clarified TU Delft internal part 2025-03-04 10:44:57 +01:00
Robert Lanzafame
d470c60f26
why git? tips 2025-03-04 09:35:42 +01:00
Robert Lanzafame
1d168f85c1
Merge pull request #121 from TeachBooks/reorder_teachbooks
Reorder teachbooks chapters: Separate local server and draft-release workflow fully
2025-03-04 09:07:32 +01:00
Robert Lanzafame
76a3070889
remove duplicate header 2025-03-04 09:06:50 +01:00
Tom van Woudenberg
df5c655be5
Merge pull request #126 from TeachBooks/dependabot/pip/sphinx-iframes-1.0.5
Bump sphinx-iframes from 1.0.3 to 1.0.5
2025-03-03 06:56:42 +01:00
dependabot[bot]
8bb6a02ae6
Bump sphinx-iframes from 1.0.3 to 1.0.5
Bumps [sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from 1.0.3 to 1.0.5.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](https://github.com/TeachBooks/sphinx-iframes/compare/v1.0.3...v1.0.5)

---
updated-dependencies:
- dependency-name: sphinx-iframes
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-02 22:49:21 +00:00
Tom van Woudenberg
b422f79826
Merge pull request #125 from TeachBooks/dependabot/submodules/book/external/Nested-Books-a8e57da
Bump book/external/Nested-Books from `21c0a70` to `a8e57da`
2025-02-28 09:08:45 +01:00
dependabot[bot]
eb538859fb
Bump book/external/Nested-Books from 21c0a70 to a8e57da
Bumps [book/external/Nested-Books](https://github.com/TeachBooks/Nested-Books) from `21c0a70` to `a8e57da`.
- [Commits](21c0a704f4...a8e57da253)

---
updated-dependencies:
- dependency-name: book/external/Nested-Books
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-28 08:08:00 +00:00
Tom van Woudenberg
f361a63983
Update external_toc.md 2025-02-28 09:04:45 +01:00
Tom van Woudenberg
ace533e925
Merge pull request #124 from TeachBooks/dependabot/submodules/book/external/sphinx-iframes-077ba23
Bump book/external/sphinx-iframes from `7663b1f` to `077ba23`
2025-02-28 08:58:05 +01:00
dependabot[bot]
5d2be819fa
Bump book/external/sphinx-iframes from 7663b1f to 077ba23
Bumps [book/external/sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from `7663b1f` to `077ba23`.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](7663b1f326...077ba23fa2)

---
updated-dependencies:
- dependency-name: book/external/sphinx-iframes
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-28 07:57:39 +00:00
Tom van Woudenberg
9a1d306867 Toolbar options
@douden

Co-Authored-By: Dennis den Ouden-van der Horst <49307154+douden@users.noreply.github.com>
2025-02-27 16:21:27 +01:00
Tom van Woudenberg
a3131c2ff6 Add functionalities 2025-02-27 07:35:15 +01:00
Tom van Woudenberg
c373899f64
Update publisher.md 2025-02-26 08:26:17 +01:00
Tom van Woudenberg
d973abb2e2
Merge pull request #114 from TeachBooks/versioning
Add section on versioning using Git tooling
2025-02-26 08:13:29 +01:00
Tom van Woudenberg
7bc9d0e606
Merge branch 'release' into versioning 2025-02-26 08:10:51 +01:00
Tom van Woudenberg
e09b9c0572
Merge pull request #123 from TeachBooks/dependabot/submodules/book/external/Nested-Books-21c0a70
Bump book/external/Nested-Books from `94d5835` to `21c0a70`
2025-02-25 17:23:01 +01:00
dependabot[bot]
fe04a2fb32
Bump book/external/Nested-Books from 94d5835 to 21c0a70
Bumps [book/external/Nested-Books](https://github.com/TeachBooks/Nested-Books) from `94d5835` to `21c0a70`.
- [Commits](94d5835701...21c0a704f4)

---
updated-dependencies:
- dependency-name: book/external/Nested-Books
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-25 16:22:01 +00:00
Tom van Woudenberg
fed8024961 Added tags on GitHub
Thanks @BSchilperoort
2025-02-25 17:16:32 +01:00
Tom van Woudenberg
26d1d78766 Update _toc.yml 2025-02-25 17:07:49 +01:00
Tom van Woudenberg
3d1fe40dba Add explanation 2025-02-25 17:07:49 +01:00
Tom van Woudenberg
1aa6c8df53 Move submodules to subpages as deprecated 2025-02-25 17:07:48 +01:00
Tom van Woudenberg
988953f5ae Merge branch 'reorder_teachbooks' into docs_external_toc 2025-02-25 17:07:48 +01:00
Tom van Woudenberg
48b178930a Merge branch 'release' into reorder_teachbooks 2025-02-25 17:07:48 +01:00
Tom van Woudenberg
ca24038f82 Update Nested-Books 2025-02-25 17:07:48 +01:00
Tom van Woudenberg
fd5745dc71 Create external_toc.md 2025-02-25 17:07:48 +01:00
Tom van Woudenberg
c12b41c965 Update update_env.md 2025-02-25 17:07:48 +01:00
Tom van Woudenberg
646200a370 Merge branch 'release' into reorder_teachbooks 2025-02-25 16:37:42 +01:00
Tom van Woudenberg
4bd3a2a32b Update Nested-Books 2025-02-25 16:36:52 +01:00
Tom van Woudenberg
2f3074d777 Update update_env.md 2025-02-25 16:26:57 +01:00
Tom van Woudenberg
505e8fff73 Separate local server and draft-release workflow fully
Based on how it's used in the book-editing process
2025-02-25 16:26:30 +01:00
Tom van Woudenberg
921724f015 Update URL
Co-Authored-By: Diana-Maria Banță <99201387+DianaBanta@users.noreply.github.com>
2025-02-25 11:06:11 +01:00
Tom van Woudenberg
746b966010
Merge branch 'release' into versioning 2025-02-25 08:44:59 +01:00
Tom van Woudenberg
038a2c8050
Merge pull request #120 from TeachBooks/dependabot/submodules/book/external/Nested-Books-f063877
Bump book/external/Nested-Books from `0660e78` to `f063877`
2025-02-25 08:43:27 +01:00
Tom van Woudenberg
70737d9ecd typo 2025-02-25 08:43:04 +01:00
dependabot[bot]
ac6d2a7e93
Bump book/external/Nested-Books from 0660e78 to f063877
Bumps [book/external/Nested-Books](https://github.com/TeachBooks/Nested-Books) from `0660e78` to `f063877`.
- [Commits](0660e78461...f063877cc9)

---
updated-dependencies:
- dependency-name: book/external/Nested-Books
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-25 07:42:44 +00:00
Tom van Woudenberg
f52339f316 refer to draft versioning too 2025-02-25 08:39:13 +01:00
Tom van Woudenberg
5da8f5711b added versioning to tools to 2025-02-25 08:34:03 +01:00
Tom van Woudenberg
33d160caaf Update after review Dennis 2025-02-25 08:24:49 +01:00
Tom van Woudenberg
deebd66b1d Merge branch 'versioning' of github.com:TeachBooks/manual into versioning 2025-02-24 21:47:15 +01:00
Tom van Woudenberg
cd7093e1d4 Final stuff for today 2025-02-24 21:44:09 +01:00
Tom van Woudenberg
08d654e281
Merge branch 'release' into versioning 2025-02-24 21:36:25 +01:00
Tom van Woudenberg
1bcc3473d7 WIP 2025-02-24 21:34:32 +01:00
Tom van Woudenberg
3c97679bb7 WIP 2025-02-24 21:30:42 +01:00
Tom van Woudenberg
dedfdd7d97 WIP 2025-02-24 21:29:44 +01:00
Tom van Woudenberg
18d64ff18e WIP 2025-02-24 21:01:33 +01:00
Tom van Woudenberg
5ae094a9f5 WIP 2025-02-24 20:55:20 +01:00
Tom van Woudenberg
c2db440f10 Restructure 2025-02-24 20:51:13 +01:00
Tom van Woudenberg
c5c9673545
Increase figsize 2025-02-24 17:23:18 +01:00
Tom van Woudenberg
ef21869e7a
Merge pull request #119 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-370986c
Bump book/external/JupyterBook-Patches from `287fb3f` to `370986c`
2025-02-24 17:20:55 +01:00
dependabot[bot]
e1f8a59bd1
Bump book/external/JupyterBook-Patches from 287fb3f to 370986c
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `287fb3f` to `370986c`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](287fb3f9a1...370986ca6f)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 16:16:38 +00:00
Tom van Woudenberg
ae3aeb234d restructure interactive elements chapter 2025-02-24 12:39:55 +01:00
Dennis den Ouden-van der Horst
af7169a98e
Merge pull request #118 from TeachBooks/dependabot/submodules/book/external/sphinx-iframes-7663b1f
Bump book/external/sphinx-iframes from `5f946a1` to `7663b1f`
2025-02-24 12:07:06 +01:00
dependabot[bot]
e8f21dd4fc
Bump book/external/sphinx-iframes from 5f946a1 to 7663b1f
Bumps [book/external/sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from `5f946a1` to `7663b1f`.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](5f946a1db9...7663b1f326)

---
updated-dependencies:
- dependency-name: book/external/sphinx-iframes
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 11:03:53 +00:00
Dennis den Ouden-van der Horst
dab0cd8747
Merge pull request #117 from TeachBooks/dependabot/pip/sphinx-iframes-1.0.3
Bump sphinx-iframes from 1.0.1 to 1.0.3
2025-02-24 12:00:06 +01:00
dependabot[bot]
a0469f3707
Bump sphinx-iframes from 1.0.1 to 1.0.3
Bumps [sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from 1.0.1 to 1.0.3.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](https://github.com/TeachBooks/sphinx-iframes/compare/v1.0.1...v1.0.3)

---
updated-dependencies:
- dependency-name: sphinx-iframes
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 10:56:50 +00:00
douden
309971b737 Added PRIME applets 2025-02-24 10:04:29 +01:00
Tom van Woudenberg
7b6912efa4
Merge pull request #116 from TeachBooks/dependabot/pip/teachbooks-sphinx-grasple-1.0.5
Bump teachbooks-sphinx-grasple from 1.0.2 to 1.0.5
2025-02-24 06:47:21 +01:00
dependabot[bot]
dfd38cd47f
Bump teachbooks-sphinx-grasple from 1.0.2 to 1.0.5
Bumps [teachbooks-sphinx-grasple](https://github.com/TeachBooks/Sphinx-Grasple-public) from 1.0.2 to 1.0.5.
- [Release notes](https://github.com/TeachBooks/Sphinx-Grasple-public/releases)
- [Changelog](https://github.com/TeachBooks/Sphinx-Grasple-public/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TeachBooks/Sphinx-Grasple-public/compare/v1.0.2...v1.0.5)

---
updated-dependencies:
- dependency-name: teachbooks-sphinx-grasple
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-23 22:43:59 +00:00
Tom van Woudenberg
f8de3ee333 puntjes op de i 2025-02-23 19:51:07 +01:00
Tom van Woudenberg
50cf3473cc Merge branch 'release' into versioning 2025-02-23 19:44:42 +01:00
Tom van Woudenberg
51a853cb6e fix tabs? 2025-02-23 19:44:35 +01:00
Tom van Woudenberg
b154115a40 Clarified teachbook versioning 2025-02-23 19:41:37 +01:00
Tom van Woudenberg
1ab7979d06
Merge pull request #115 from TeachBooks/dependabot/submodules/book/external/sphinx-iframes-5f946a1
Bump book/external/sphinx-iframes from `95cbf15` to `5f946a1`
2025-02-23 19:38:39 +01:00
dependabot[bot]
190239ff1c
Bump book/external/sphinx-iframes from 95cbf15 to 5f946a1
Bumps [book/external/sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from `95cbf15` to `5f946a1`.
- [Release notes](https://github.com/TeachBooks/sphinx-iframes/releases)
- [Commits](95cbf15ea0...5f946a1db9)

---
updated-dependencies:
- dependency-name: book/external/sphinx-iframes
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-23 18:37:40 +00:00
Tom van Woudenberg
c4f050a048
Update requirements.txt 2025-02-23 19:30:27 +01:00
Tom van Woudenberg
a111b4bbc2 final 2025-02-22 11:14:10 +01:00
Tom van Woudenberg
5d253d440c Add reference 2025-02-22 11:09:44 +01:00
Tom van Woudenberg
ac7051fc87 Update versioning.md 2025-02-22 10:56:59 +01:00
Tom van Woudenberg
1209311340 typo 2025-02-22 10:32:18 +01:00
Tom van Woudenberg
ead1d6e2cd typo 2025-02-22 10:32:06 +01:00
Tom van Woudenberg
2ddb4ecbd3 typo 2025-02-22 10:31:58 +01:00
Tom van Woudenberg
992af3c660 add note on github page limit 2025-02-22 10:12:53 +01:00
Tom van Woudenberg
f1660aa304 typos 2025-02-22 10:08:49 +01:00
Tom van Woudenberg
a02491e770 Swap GitHub/GitLab 2025-02-22 10:05:59 +01:00
Tom van Woudenberg
ad6a2a6134 Update copyright.md 2025-02-22 10:00:52 +01:00
Tom van Woudenberg
edbc2a55fc Move publish part 2025-02-22 10:00:18 +01:00
Tom van Woudenberg
79f1d54701 Update collab.md 2025-02-22 09:54:11 +01:00
Tom van Woudenberg
47962d2632 Merge branch 'release' of github.com:TeachBooks/manual into release 2025-02-22 09:42:59 +01:00
Tom van Woudenberg
ca9664e52c
Merge pull request #113 from TeachBooks/dependabot/submodules/book/external/deploy-book-workflow-b9c7623
Bump book/external/deploy-book-workflow from `317a9cc` to `b9c7623`
2025-02-22 09:42:40 +01:00
Tom van Woudenberg
d9e5d3b2db Merge branch 'release' of github.com:TeachBooks/manual into release 2025-02-22 09:42:37 +01:00
Tom van Woudenberg
ddfe73cd33 Restructured tools part of setup 2025-02-22 09:42:18 +01:00
dependabot[bot]
18913c3d23
Bump book/external/deploy-book-workflow from 317a9cc to b9c7623
Bumps [book/external/deploy-book-workflow](https://github.com/TeachBooks/deploy-book-workflow) from `317a9cc` to `b9c7623`.
- [Commits](317a9cc860...b9c76239ed)

---
updated-dependencies:
- dependency-name: book/external/deploy-book-workflow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-22 08:37:12 +00:00
Dennis den Ouden-van der Horst
eae57f1776
Merge pull request #112 from TeachBooks/dependabot/submodules/book/external/sphinx-iframes-95cbf15
Bump book/external/sphinx-iframes from `7f58fcb` to `95cbf15`
2025-02-21 07:58:56 +01:00
dependabot[bot]
074d2c983f
Bump book/external/sphinx-iframes from 7f58fcb to 95cbf15
Bumps [book/external/sphinx-iframes](https://github.com/TeachBooks/sphinx-iframes) from `7f58fcb` to `95cbf15`.
- [Commits](7f58fcb008...95cbf15ea0)

---
updated-dependencies:
- dependency-name: book/external/sphinx-iframes
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-21 06:55:56 +00:00
Dennis den Ouden-van der Horst
3660360e3c
Merge pull request #111 from TeachBooks/dependabot/pip/sphinx-image-inverter-1.1.2
Bump sphinx-image-inverter from 1.1.0 to 1.1.2
2025-02-21 07:54:35 +01:00
dependabot[bot]
96422a3ab6
Bump sphinx-image-inverter from 1.1.0 to 1.1.2
Bumps [sphinx-image-inverter](https://github.com/TeachBooks/Sphinx-Image-Inverter) from 1.1.0 to 1.1.2.
- [Release notes](https://github.com/TeachBooks/Sphinx-Image-Inverter/releases)
- [Commits](https://github.com/TeachBooks/Sphinx-Image-Inverter/compare/v1.1.0...v1.1.2)

---
updated-dependencies:
- dependency-name: sphinx-image-inverter
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-21 06:51:23 +00:00
Tom van Woudenberg
d439b2cc35
Merge pull request #110 from TeachBooks/added-iframes
replaced with iframes
2025-02-20 13:02:36 +01:00
Tom van Woudenberg
91e126e5ed typo 2025-02-20 12:54:01 +01:00
Tom van Woudenberg
ae45ed8766 fix syntax 2025-02-20 12:52:43 +01:00
Tom van Woudenberg
80af14875b replaced with iframes
Co-Authored-By: Dennis den Ouden-van der Horst <49307154+douden@users.noreply.github.com>
2025-02-20 12:47:43 +01:00
douden
abd87b4417 moved iframes instructions 2025-02-20 11:13:21 +01:00
douden
94169d8a9f fixed some mistakes 2025-02-20 10:08:31 +01:00
Dennis den Ouden-van der Horst
3dd2f263d4
Update _config.yml 2025-02-20 09:46:40 +01:00
douden
9bced5ec04 Added frames package 2025-02-20 09:43:21 +01:00
Robert Lanzafame
eecdd508e3
Merge pull request #102 from TeachBooks/pull_request_BTD
Added pull request build
2025-02-18 05:05:28 +01:00
Robert Lanzafame
051decb130
complete sentence. 2025-02-18 05:04:46 +01:00
Tom van Woudenberg
bf06437d76
Update apa.md 2025-02-17 17:33:15 +01:00
Tom van Woudenberg
c28e662fe4
Merge pull request #109 from TeachBooks/dependabot/submodules/book/external/Nested-Books-0660e78
Bump book/external/Nested-Books from `365291d` to `0660e78`
2025-02-17 14:45:18 +01:00
dependabot[bot]
bc7302eda7
Bump book/external/Nested-Books from 365291d to 0660e78
Bumps [book/external/Nested-Books](https://github.com/TeachBooks/Nested-Books) from `365291d` to `0660e78`.
- [Commits](365291d0d1...0660e78461)

---
updated-dependencies:
- dependency-name: book/external/Nested-Books
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 13:38:42 +00:00
Tom van Woudenberg
14a2c86aff
Update README.md 2025-02-17 14:19:12 +01:00
Tom van Woudenberg
205a30d059
Remove something which doesn't work 2025-02-17 13:50:21 +01:00
Robert Lanzafame
3a2b64a8fa
note about APA/local extensions 2025-02-17 11:14:27 +01:00
Robert Lanzafame
76a13f169b
add differencing feature to first paragraph 2025-02-17 10:25:08 +01:00
Robert Lanzafame
e1f700ad5f
update description 2025-02-17 10:17:57 +01:00
Tom van Woudenberg
3cac83be45
revert requirements.txt 2025-02-17 08:01:46 +01:00
Tom van Woudenberg
da935af84a
Merge branch 'release' into pull_request_BTD 2025-02-17 08:00:45 +01:00
Tom van Woudenberg
d2ff971d36
Added link to example book 2025-02-17 07:49:55 +01:00
Tom van Woudenberg
e5259fdeb6
Add more recommended settings 2025-02-17 07:41:41 +01:00
Robert Lanzafame
cc38d3d3ff
Merge pull request #104 from TeachBooks/dependabot/pip/jupyterlite-sphinx-0.19.0
Bump jupyterlite-sphinx from 0.18.0 to 0.19.0
2025-02-17 07:34:33 +01:00
Robert Lanzafame
abb8abb8ab
remove jupyterlite-sphinx
see PR #104 and Issue #105
2025-02-17 07:30:32 +01:00
Tom van Woudenberg
126cd804d0
Merge pull request #106 from TeachBooks/jupyterlite-update
sphinx-thebe and jupyterlite updated description
2025-02-17 07:08:30 +01:00
Robert Lanzafame
d584c3ea3a
tweak binder description 2025-02-17 05:10:57 +01:00
Robert Lanzafame
fe06e90c58
update live code description 2025-02-17 05:01:41 +01:00
dependabot[bot]
25990ef2f7
Bump jupyterlite-sphinx from 0.18.0 to 0.19.0
Bumps jupyterlite-sphinx from 0.18.0 to 0.19.0.

---
updated-dependencies:
- dependency-name: jupyterlite-sphinx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-16 22:27:22 +00:00
Robert Lanzafame
392780a425
text updates 2025-02-16 03:29:23 +01:00
Tom van Woudenberg
1ef2704ceb typo 2025-02-14 17:36:17 +01:00
Tom van Woudenberg
78f5f75832 reorder 2025-02-14 17:32:07 +01:00
Tom van Woudenberg
7f16b06b46 simplify 2025-02-14 17:30:25 +01:00
Tom van Woudenberg
38e39a0357 fix? 2025-02-14 17:27:20 +01:00
Tom van Woudenberg
761821cfc0 typo 2025-02-14 17:25:06 +01:00
Tom van Woudenberg
2a2a4a8fb2 fix 2025-02-14 17:23:59 +01:00
Tom van Woudenberg
01870a3122 Update .readthedocs.yaml 2025-02-14 17:19:44 +01:00
Tom van Woudenberg
40cc78baa6 Merge branch 'release' into pull_request_BTD 2025-02-14 17:19:28 +01:00
Tom van Woudenberg
20154e792e Merge branch 'pull_request_BTD' of github.com:TeachBooks/manual into pull_request_BTD 2025-02-14 17:19:13 +01:00
Tom van Woudenberg
def4fb764b WIP 2025-02-14 17:19:00 +01:00
Tom van Woudenberg
e85afa8c5d
Update .readthedocs.yaml 2025-02-14 17:15:12 +01:00
Tom van Woudenberg
eba3e319cc
Merge branch 'release' into pull_request_BTD 2025-02-14 17:13:05 +01:00
Tom van Woudenberg
5dc623e978
Update .readthedocs.yaml 2025-02-14 17:12:17 +01:00
Tom van Woudenberg
1803a98e92
Update .readthedocs.yaml 2025-02-14 17:10:08 +01:00
Tom van Woudenberg
a9ca216d2b
Update .readthedocs.yaml 2025-02-14 17:08:56 +01:00
Tom van Woudenberg
230e9f6d94
Update .readthedocs.yaml 2025-02-14 17:06:13 +01:00
Tom van Woudenberg
908e017a40 WIP 2025-02-14 17:01:42 +01:00
Tom van Woudenberg
a30f119d7b
Merge branch 'release' into pull_request_BTD 2025-02-14 17:00:23 +01:00
Tom van Woudenberg
5272cd8a71 Added pull request build 2025-02-14 16:59:47 +01:00
Tom van Woudenberg
e9e3b86408
Rename .readthedocs.yml to .readthedocs.yaml 2025-02-14 16:56:01 +01:00
Tom van Woudenberg
fce362beda
Create .readthedocs.yml 2025-02-14 16:46:10 +01:00
Tom van Woudenberg
7f360e97ef
Merge pull request #101 from TeachBooks/dependabot/submodules/book/external/Sphinx-Named-Colors-191c2f4
Bump book/external/Sphinx-Named-Colors from `2ae6342` to `191c2f4`
2025-02-11 14:21:19 +01:00
dependabot[bot]
d7e4031e4c
Bump book/external/Sphinx-Named-Colors from 2ae6342 to 191c2f4
Bumps [book/external/Sphinx-Named-Colors](https://github.com/TeachBooks/Sphinx-Named-Colors) from `2ae6342` to `191c2f4`.
- [Release notes](https://github.com/TeachBooks/Sphinx-Named-Colors/releases)
- [Commits](2ae6342aa7...191c2f4ac1)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Named-Colors
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 13:18:24 +00:00
Tom van Woudenberg
63c478de0d
Merge pull request #100 from TeachBooks/dependabot/submodules/book/external/Sphinx-launch-buttons-ccec26f
Bump book/external/Sphinx-launch-buttons from `8cfd0ba` to `ccec26f`
2025-02-11 12:10:46 +01:00
dependabot[bot]
f1fcbd722c
Bump book/external/Sphinx-launch-buttons from 8cfd0ba to ccec26f
Bumps [book/external/Sphinx-launch-buttons](https://github.com/TeachBooks/Sphinx-launch-buttons) from `8cfd0ba` to `ccec26f`.
- [Release notes](https://github.com/TeachBooks/Sphinx-launch-buttons/releases)
- [Commits](8cfd0ba7ae...ccec26fd77)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-launch-buttons
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 11:10:15 +00:00
Tom van Woudenberg
826051daa0
Update template.md 2025-02-11 07:10:37 +01:00
Robert Lanzafame
240c8739c6
Merge pull request #99 from TeachBooks/rlanzafame-patch-1
update yml example to reflect new toc
2025-02-06 05:41:30 +01:00
Robert Lanzafame
f038a21525
update yml example to reflect new toc 2025-02-06 05:41:03 +01:00
Tom van Woudenberg
d406b33062 Merge branch 'release' of github.com:TeachBooks/manual into release 2025-01-28 16:21:27 +01:00
Tom van Woudenberg
baec706da6
Merge pull request #98 from TeachBooks/dependabot/submodules/book/external/annotater-9340b4e
Bump book/external/annotater from `fba22b4` to `9340b4e`
2025-01-28 16:14:43 +01:00
dependabot[bot]
9ec77dd2c0
Bump book/external/annotater from fba22b4 to 9340b4e
Bumps [book/external/annotater](https://github.com/TeachBooks/annotater) from `fba22b4` to `9340b4e`.
- [Commits](fba22b44b7...9340b4e285)

---
updated-dependencies:
- dependency-name: book/external/annotater
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-28 15:14:30 +00:00
Tom van Woudenberg
06d67e8a01 Update email address 2025-01-28 16:13:09 +01:00
Tom van Woudenberg
50219a13eb Added changelog 2025-01-28 16:12:47 +01:00
Tom van Woudenberg
010d1a5dbc
Merge pull request #97 from TeachBooks/dependabot/submodules/book/external/annotater-fba22b4
Bump book/external/annotater from `aa22824` to `fba22b4`
2025-01-28 08:30:38 +01:00
dependabot[bot]
1e5119cf20
Bump book/external/annotater from aa22824 to fba22b4
Bumps [book/external/annotater](https://github.com/TeachBooks/annotater) from `aa22824` to `fba22b4`.
- [Commits](aa228249b5...fba22b44b7)

---
updated-dependencies:
- dependency-name: book/external/annotater
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-28 07:21:25 +00:00
Tom van Woudenberg
0ac7e58410
Update .gitmodules 2025-01-28 08:20:24 +01:00
Tom van Woudenberg
b261b5d8bc
Merge pull request #96 from TeachBooks/dependabot/submodules/book/external/template-a8958fe
Bump book/external/template from `6124ba2` to `a8958fe`
2025-01-28 08:13:22 +01:00
dependabot[bot]
2fdd492c54
Bump book/external/template from 6124ba2 to a8958fe
Bumps [book/external/template](https://github.com/TeachBooks/template) from `6124ba2` to `a8958fe`.
- [Commits](6124ba2535...a8958fe48c)

---
updated-dependencies:
- dependency-name: book/external/template
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-28 07:12:12 +00:00
Tom van Woudenberg
2cd32c1f39 another one 2025-01-20 10:39:16 +01:00
Tom van Woudenberg
307d4c50ac typo 2025-01-20 10:37:27 +01:00
Tom van Woudenberg
fcc6fcc254 removed background 2025-01-20 10:34:18 +01:00
Tom van Woudenberg
15557a3ba6 typo 2025-01-20 10:28:57 +01:00
Tom van Woudenberg
9f40dd9901 disabled image inverter for visualizations 2025-01-20 10:24:54 +01:00
Tom van Woudenberg
c3fb6233e9
Merge pull request #92 from TeachBooks/dependabot/pip/sphinx-image-inverter-1.1.0
Bump sphinx-image-inverter from 1.0.4 to 1.1.0
2025-01-20 07:48:54 +01:00
dependabot[bot]
eeee47d07c
Bump sphinx-image-inverter from 1.0.4 to 1.1.0
Bumps [sphinx-image-inverter](https://github.com/TeachBooks/Sphinx-Image-Inverter) from 1.0.4 to 1.1.0.
- [Release notes](https://github.com/TeachBooks/Sphinx-Image-Inverter/releases)
- [Commits](https://github.com/TeachBooks/Sphinx-Image-Inverter/compare/v1.0.4...v1.1.0)

---
updated-dependencies:
- dependency-name: sphinx-image-inverter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-19 22:18:15 +00:00
Tom van Woudenberg
7494ac7d14
Merge pull request #91 from TeachBooks/dependabot/submodules/book/external/Sphinx-Image-Inverter-250103c
Bump book/external/Sphinx-Image-Inverter from `20d8d6d` to `250103c`
2025-01-17 18:07:55 +01:00
dependabot[bot]
4473dd2007
Bump book/external/Sphinx-Image-Inverter from 20d8d6d to 250103c
Bumps [book/external/Sphinx-Image-Inverter](https://github.com/TeachBooks/Sphinx-Image-Inverter) from `20d8d6d` to `250103c`.
- [Release notes](https://github.com/TeachBooks/Sphinx-Image-Inverter/releases)
- [Commits](20d8d6d128...250103c723)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Image-Inverter
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 15:34:10 +00:00
Tom van Woudenberg
7ed071d1ad
Merge pull request #87 from TeachBooks/dependabot_pip
Added dependabot for requirements.txt
2025-01-17 14:13:09 +01:00
Dennis den Ouden-van der Horst
e43867a924
Update update_env.md 2025-01-17 13:49:13 +01:00
Tom van Woudenberg
310af99a96 - to 1. 2. 2025-01-17 11:28:01 +01:00
Tom van Woudenberg
3f4593847a
Merge pull request #88 from TeachBooks/dependabot/submodules/book/external/Nested-Books-365291d
Bump book/external/Nested-Books from `51f0ba6` to `365291d`
2025-01-17 11:10:44 +01:00
dependabot[bot]
5c41f81083
Bump book/external/Nested-Books from 51f0ba6 to 365291d
Bumps [book/external/Nested-Books](https://github.com/TeachBooks/Nested-Books) from `51f0ba6` to `365291d`.
- [Commits](51f0ba6754...365291d0d1)

---
updated-dependencies:
- dependency-name: book/external/Nested-Books
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 10:10:14 +00:00
Tom van Woudenberg
20cf47abe6 First proposal 2025-01-17 11:01:33 +01:00
Tom van Woudenberg
6f0ff80d33
Merge pull request #86 from TeachBooks/dependabot/submodules/book/external/template-6124ba2
Bump book/external/template from `536a00b` to `6124ba2`
2025-01-17 10:31:06 +01:00
dependabot[bot]
37a796395f
Bump book/external/template from 536a00b to 6124ba2
Bumps [book/external/template](https://github.com/TeachBooks/template) from `536a00b` to `6124ba2`.
- [Commits](536a00b2e9...6124ba2535)

---
updated-dependencies:
- dependency-name: book/external/template
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 08:58:45 +00:00
Tom van Woudenberg
b259c04f7d
Merge pull request #85 from TeachBooks/dependabot/pip/jupyterbook-patches-1.3.0
Bump jupyterbook-patches from 1.2.0 to 1.3.0
2025-01-17 09:26:46 +01:00
dependabot[bot]
d0f44c2bab
Bump jupyterbook-patches from 1.2.0 to 1.3.0
Bumps [jupyterbook-patches](https://github.com/TeachBooks/JupyterBook-Patches) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](https://github.com/TeachBooks/JupyterBook-Patches/compare/v1.2.0...v1.3.0)

---
updated-dependencies:
- dependency-name: jupyterbook-patches
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 06:03:05 +00:00
Tom van Woudenberg
055ea21b38
Update requirements.txt 2025-01-17 07:01:40 +01:00
Tom van Woudenberg
d21aefa5ee
Update dependabot.yml 2025-01-17 06:49:24 +01:00
Tom van Woudenberg
8d9379fc9d
Update requirements.txt 2025-01-16 22:58:36 +01:00
Tom van Woudenberg
ac353130ce
Merge pull request #82 from TeachBooks/dependabot/submodules/book/external/Sphinx-Named-Colors-2ae6342
Bump book/external/Sphinx-Named-Colors from `b15380a` to `2ae6342`
2025-01-16 22:58:08 +01:00
Tom van Woudenberg
d760aa2968
Merge pull request #81 from TeachBooks/dependabot/submodules/book/external/teachbooks-sphinx-tippy-338ad14
Bump book/external/teachbooks-sphinx-tippy from `3f9a5c2` to `338ad14`
2025-01-16 22:57:44 +01:00
Tom van Woudenberg
18ca5b1538
Update requirements.txt 2025-01-16 22:55:06 +01:00
dependabot[bot]
5cb4aea5da
Bump book/external/Sphinx-Named-Colors from b15380a to 2ae6342
Bumps [book/external/Sphinx-Named-Colors](https://github.com/TeachBooks/Sphinx-Named-Colors) from `b15380a` to `2ae6342`.
- [Release notes](https://github.com/TeachBooks/Sphinx-Named-Colors/releases)
- [Commits](b15380a2f1...2ae6342aa7)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Named-Colors
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 21:51:39 +00:00
dependabot[bot]
e0ed8da775
Bump book/external/teachbooks-sphinx-tippy from 3f9a5c2 to 338ad14
Bumps [book/external/teachbooks-sphinx-tippy](https://github.com/TeachBooks/teachbooks-sphinx-tippy) from `3f9a5c2` to `338ad14`.
- [Release notes](https://github.com/TeachBooks/teachbooks-sphinx-tippy/releases)
- [Commits](3f9a5c2a72...338ad14d39)

---
updated-dependencies:
- dependency-name: book/external/teachbooks-sphinx-tippy
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 21:51:37 +00:00
Tom van Woudenberg
1007ae4940
Update dependabot.yml 2025-01-16 22:50:46 +01:00
Tom van Woudenberg
5e3fd0563c
Merge pull request #80 from TeachBooks/dependabot/submodules/book/external/Sphinx-Named-Colors-b15380a
Bump book/external/Sphinx-Named-Colors from `9f11680` to `b15380a`
2025-01-14 20:08:20 +01:00
dependabot[bot]
d205667394
Bump book/external/Sphinx-Named-Colors from 9f11680 to b15380a
Bumps [book/external/Sphinx-Named-Colors](https://github.com/TeachBooks/Sphinx-Named-Colors) from `9f11680` to `b15380a`.
- [Commits](9f116800cb...b15380a2f1)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Named-Colors
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-14 19:07:48 +00:00
Tom van Woudenberg
89939a18c4 Added credits for sphinx named colours 2025-01-14 20:06:31 +01:00
douden
6c281939ae added hyphen-color 2025-01-14 16:03:09 +01:00
Dennis den Ouden-van der Horst
74f53a0990
Merge pull request #79 from TeachBooks/dependabot/submodules/book/external/Sphinx-Named-Colors-9f11680
Bump book/external/Sphinx-Named-Colors from `3e7d914` to `9f11680`
2025-01-14 16:00:59 +01:00
dependabot[bot]
49bfa9f0b9
Bump book/external/Sphinx-Named-Colors from 3e7d914 to 9f11680
Bumps [book/external/Sphinx-Named-Colors](https://github.com/TeachBooks/Sphinx-Named-Colors) from `3e7d914` to `9f11680`.
- [Commits](3e7d91401c...9f116800cb)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Named-Colors
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-14 15:00:28 +00:00
Tom van Woudenberg
0049fa0bc5
Merge pull request #78 from TeachBooks/dependabot/submodules/book/external/Sphinx-Named-Colors-3e7d914
Bump book/external/Sphinx-Named-Colors from `730c036` to `3e7d914`
2025-01-14 11:32:59 +01:00
dependabot[bot]
b57e993c15
Bump book/external/Sphinx-Named-Colors from 730c036 to 3e7d914
Bumps [book/external/Sphinx-Named-Colors](https://github.com/TeachBooks/Sphinx-Named-Colors) from `730c036` to `3e7d914`.
- [Commits](730c036c48...3e7d91401c)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Named-Colors
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-14 10:32:18 +00:00
Tom van Woudenberg
0d5a59bd66 Update tools.md 2025-01-14 11:04:56 +01:00
Tom van Woudenberg
fe7fbdc2fa Merge branch 'release' of github.com:TeachBooks/manual into release 2025-01-14 10:57:04 +01:00
Tom van Woudenberg
e2a02b47d5 Update tools.md 2025-01-14 10:56:43 +01:00
Tom van Woudenberg
1d95b4f22a
Merge pull request #77 from TeachBooks/dependabot/submodules/book/external/Sphinx-Named-Colors-730c036
Bump book/external/Sphinx-Named-Colors from `8e47df5` to `730c036`
2025-01-14 10:43:16 +01:00
dependabot[bot]
6d5ae1b731
Bump book/external/Sphinx-Named-Colors from 8e47df5 to 730c036
Bumps [book/external/Sphinx-Named-Colors](https://github.com/TeachBooks/Sphinx-Named-Colors) from `8e47df5` to `730c036`.
- [Commits](8e47df55cc...730c036c48)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Named-Colors
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-14 09:42:11 +00:00
Tom van Woudenberg
475c9d8c5f
Merge pull request #76 from TeachBooks/dependabot/submodules/book/external/Sphinx-Named-Colors-8e47df5
Bump book/external/Sphinx-Named-Colors from `0f1231c` to `8e47df5`
2025-01-14 10:38:01 +01:00
dependabot[bot]
958bc0bb29
Bump book/external/Sphinx-Named-Colors from 0f1231c to 8e47df5
Bumps [book/external/Sphinx-Named-Colors](https://github.com/TeachBooks/Sphinx-Named-Colors) from `0f1231c` to `8e47df5`.
- [Commits](0f1231c384...8e47df55cc)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Named-Colors
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-14 09:33:13 +00:00
Dennis den Ouden-van der Horst
e02f580d69
Merge pull request #73 from TeachBooks/dependabot/submodules/book/external/Sphinx-Image-Inverter-20d8d6d
Bump book/external/Sphinx-Image-Inverter from `6789ae2` to `20d8d6d`
2025-01-14 08:16:57 +01:00
Dennis den Ouden-van der Horst
512d50f4e7
Merge pull request #74 from TeachBooks/dependabot/submodules/book/external/Sphinx-Named-Colors-0f1231c
Bump book/external/Sphinx-Named-Colors from `fda4027` to `0f1231c`
2025-01-14 08:16:39 +01:00
Dennis den Ouden-van der Horst
89d3d2bacb
Merge pull request #75 from TeachBooks/dependabot/submodules/book/external/template-536a00b
Bump book/external/template from `1ea38ab` to `536a00b`
2025-01-14 08:16:16 +01:00
dependabot[bot]
213af064fd
Bump book/external/template from 1ea38ab to 536a00b
Bumps [book/external/template](https://github.com/TeachBooks/template) from `1ea38ab` to `536a00b`.
- [Commits](1ea38abf8b...536a00b2e9)

---
updated-dependencies:
- dependency-name: book/external/template
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-14 07:13:21 +00:00
dependabot[bot]
a65d33b53a
Bump book/external/Sphinx-Image-Inverter from 6789ae2 to 20d8d6d
Bumps [book/external/Sphinx-Image-Inverter](https://github.com/TeachBooks/Sphinx-Image-Inverter) from `6789ae2` to `20d8d6d`.
- [Release notes](https://github.com/TeachBooks/Sphinx-Image-Inverter/releases)
- [Commits](6789ae2128...20d8d6d128)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Image-Inverter
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-14 07:13:19 +00:00
dependabot[bot]
272c6f1392
Bump book/external/Sphinx-Named-Colors from fda4027 to 0f1231c
Bumps [book/external/Sphinx-Named-Colors](https://github.com/TeachBooks/Sphinx-Named-Colors) from `fda4027` to `0f1231c`.
- [Commits](fda4027442...0f1231c384)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-Named-Colors
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-14 07:13:17 +00:00
Dennis den Ouden-van der Horst
cb21720886
Merge pull request #72 from TeachBooks/DdOvdH---Add-Extension-Named-Colors
Dd ovd h   add extension named colors
2025-01-14 08:09:26 +01:00
douden
da3392afd9 Added alll stuff for Named Colors 2025-01-11 23:20:31 +01:00
douden
2922e1a267 change .gitmodules 2025-01-11 23:03:30 +01:00
Tom van Woudenberg
9d2b900fa0
Merge pull request #71 from TeachBooks/dependabot/submodules/book/external/JupyterBook-Patches-287fb3f
Bump book/external/JupyterBook-Patches from `f4d9638` to `287fb3f`
2025-01-09 16:14:01 +01:00
dependabot[bot]
19d592b5b9
Bump book/external/JupyterBook-Patches from f4d9638 to 287fb3f
Bumps [book/external/JupyterBook-Patches](https://github.com/TeachBooks/JupyterBook-Patches) from `f4d9638` to `287fb3f`.
- [Release notes](https://github.com/TeachBooks/JupyterBook-Patches/releases)
- [Commits](f4d9638b19...287fb3f9a1)

---
updated-dependencies:
- dependency-name: book/external/JupyterBook-Patches
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-09 15:08:29 +00:00
Tom van Woudenberg
8f987404ec
Update apa.md 2025-01-07 14:15:22 +01:00
Dennis den Ouden-van der Horst
55397c4035
Merge pull request #69 from TeachBooks/dependabot/submodules/book/external/Sphinx-TUDelft-theme-e4b71f8
Bump book/external/Sphinx-TUDelft-theme from `71399c6` to `e4b71f8`
2025-01-06 10:34:42 +01:00
dependabot[bot]
db40e14a82
Bump book/external/Sphinx-TUDelft-theme from 71399c6 to e4b71f8
Bumps [book/external/Sphinx-TUDelft-theme](https://github.com/TeachBooks/Sphinx-TUDelft-theme) from `71399c6` to `e4b71f8`.
- [Release notes](https://github.com/TeachBooks/Sphinx-TUDelft-theme/releases)
- [Commits](71399c659b...e4b71f810a)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-TUDelft-theme
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-06 09:31:16 +00:00
Dennis den Ouden-van der Horst
cfb001840c
Merge pull request #68 from TeachBooks/dependabot/submodules/book/external/annotater-aa22824
Bump book/external/annotater from `0da75c3` to `aa22824`
2025-01-06 10:30:07 +01:00
dependabot[bot]
492bb1394b
Bump book/external/annotater from 0da75c3 to aa22824
Bumps [book/external/annotater](https://github.com/TeachBooks/annotater) from `0da75c3` to `aa22824`.
- [Commits](0da75c3592...aa228249b5)

---
updated-dependencies:
- dependency-name: book/external/annotater
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-05 22:44:55 +00:00
Tom van Woudenberg
244a0245a1
Merge pull request #58 from TeachBooks/30-add-section-on-icons
30 add section on icons
2025-01-02 15:17:51 +01:00
Tom van Woudenberg
19dda16dd8 note on svgs 2025-01-02 15:17:00 +01:00
Tom van Woudenberg
62b5b80e35 enters 2025-01-02 15:15:41 +01:00
Tom van Woudenberg
1c787e2c2b
Merge pull request #53 from TeachBooks/51-add-sphinx-launch-button-as-submodule
51 add sphinx launch button as submodule
2025-01-02 15:15:01 +01:00
Tom van Woudenberg
91f871e667 note 2025-01-02 15:14:51 +01:00
Tom van Woudenberg
efc426ada6
Merge branch 'release' into 51-add-sphinx-launch-button-as-submodule 2025-01-02 15:13:39 +01:00
Tom van Woudenberg
c6e9ac80c3 added more icons 2025-01-02 15:11:19 +01:00
Tom van Woudenberg
37f7535117 Added custom color reference 2025-01-02 14:59:52 +01:00
Tom van Woudenberg
3c8ce27a4f Merge branch '30-add-section-on-icons' of github.com:TeachBooks/manual into 30-add-section-on-icons 2025-01-02 14:52:28 +01:00
Tom van Woudenberg
e2b5e15b8a Add crossreference 2025-01-02 14:51:40 +01:00
Tom van Woudenberg
829bfcaf55
Merge branch 'release' into 30-add-section-on-icons 2025-01-02 14:45:20 +01:00
Tom van Woudenberg
40fb683f02
Merge branch 'release' into 51-add-sphinx-launch-button-as-submodule 2025-01-02 14:44:58 +01:00
douden
0b70a21a6a Added custom color section 2025-01-02 10:28:58 +01:00
Dennis den Ouden-van der Horst
b1d4643456
Merge pull request #67 from TeachBooks/dependabot/submodules/book/external/teachbooks-sphinx-tippy-3f9a5c2
Bump book/external/teachbooks-sphinx-tippy from `a80e764` to `3f9a5c2`
2024-12-31 14:13:45 +01:00
dependabot[bot]
50dcfa15c4
Bump book/external/teachbooks-sphinx-tippy from a80e764 to 3f9a5c2
Bumps [book/external/teachbooks-sphinx-tippy](https://github.com/TeachBooks/teachbooks-sphinx-tippy) from `a80e764` to `3f9a5c2`.
- [Release notes](https://github.com/TeachBooks/teachbooks-sphinx-tippy/releases)
- [Commits](a80e7645bc...3f9a5c2a72)

---
updated-dependencies:
- dependency-name: book/external/teachbooks-sphinx-tippy
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-31 13:12:46 +00:00
Dennis den Ouden-van der Horst
5b4696f67c
Merge pull request #66 from TeachBooks/dependabot/submodules/book/external/Nested-Books-51f0ba6
Bump book/external/Nested-Books from `587accb` to `51f0ba6`
2024-12-31 10:52:54 +01:00
dependabot[bot]
bd7ea060f2
Bump book/external/Nested-Books from 587accb to 51f0ba6
Bumps [book/external/Nested-Books](https://github.com/TeachBooks/Nested-Books) from `587accb` to `51f0ba6`.
- [Commits](587accb350...51f0ba6754)

---
updated-dependencies:
- dependency-name: book/external/Nested-Books
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-31 09:46:42 +00:00
douden
08bdd566e6 typo in README.md 2024-12-31 10:43:44 +01:00
Dennis den Ouden-van der Horst
62897d0eb5
Merge pull request #65 from TeachBooks/dependabot/submodules/book/external/Nested-Books-587accb
Bump book/external/Nested-Books from `63b9a9e` to `587accb`
2024-12-31 10:34:55 +01:00
dependabot[bot]
696e60af9a
Bump book/external/Nested-Books from 63b9a9e to 587accb
Bumps [book/external/Nested-Books](https://github.com/TeachBooks/Nested-Books) from `63b9a9e` to `587accb`.
- [Commits](63b9a9e747...587accb350)

---
updated-dependencies:
- dependency-name: book/external/Nested-Books
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-31 09:29:39 +00:00
Tom van Woudenberg
309ff0464f
Merge pull request #64 from TeachBooks/dependabot/submodules/book/external/Nested-Books-63b9a9e
Bump book/external/Nested-Books from `3cf6152` to `63b9a9e`
2024-12-30 16:20:03 +01:00
dependabot[bot]
e9d736fe08
Bump book/external/Nested-Books from 3cf6152 to 63b9a9e
Bumps [book/external/Nested-Books](https://github.com/TeachBooks/Nested-Books) from `3cf6152` to `63b9a9e`.
- [Commits](3cf61525f3...63b9a9e747)

---
updated-dependencies:
- dependency-name: book/external/Nested-Books
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 15:18:32 +00:00
Tom van Woudenberg
cf589e68bc
Merge pull request #63 from TeachBooks/dependabot/submodules/book/external/deploy-book-workflow-317a9cc
Bump book/external/deploy-book-workflow from `ed2cdc8` to `317a9cc`
2024-12-30 16:03:05 +01:00
dependabot[bot]
1ab13868b6
Bump book/external/deploy-book-workflow from ed2cdc8 to 317a9cc
Bumps [book/external/deploy-book-workflow](https://github.com/TeachBooks/deploy-book-workflow) from `ed2cdc8` to `317a9cc`.
- [Commits](ed2cdc81be...317a9cc860)

---
updated-dependencies:
- dependency-name: book/external/deploy-book-workflow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 15:02:25 +00:00
Dennis den Ouden-van der Horst
e0569b72c7
Merge pull request #62 from TeachBooks/dependabot/submodules/book/external/Sphinx-TUDelft-theme-71399c6
Bump book/external/Sphinx-TUDelft-theme from `35ecbdd` to `71399c6`
2024-12-30 15:57:04 +01:00
dependabot[bot]
4fb69baa20
Bump book/external/Sphinx-TUDelft-theme from 35ecbdd to 71399c6
Bumps [book/external/Sphinx-TUDelft-theme](https://github.com/TeachBooks/Sphinx-TUDelft-theme) from `35ecbdd` to `71399c6`.
- [Release notes](https://github.com/TeachBooks/Sphinx-TUDelft-theme/releases)
- [Commits](35ecbddad7...71399c659b)

---
updated-dependencies:
- dependency-name: book/external/Sphinx-TUDelft-theme
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 14:55:09 +00:00
Dennis den Ouden-van der Horst
0a5ce270f9
Create dependabot.yml 2024-12-30 15:54:22 +01:00
Dennis den Ouden-van der Horst
c64201b14f
Update call-deploy-book.yml
Excluding dependabot branches
2024-12-30 15:45:07 +01:00
Dennis den Ouden-van der Horst
f857f6ba7b
Merge pull request #61 from TeachBooks/Tom-van-Woudenberg-patch-1
Update .gitmodules download link replacer
2024-12-30 15:36:56 +01:00
Tom van Woudenberg
c0ab37831c
Update .gitmodules 2024-12-30 14:45:39 +01:00
Tom van Woudenberg
6f7b9ba06b
Update .gitmodules 2024-12-30 14:44:51 +01:00
Tom van Woudenberg
17d5c7de34
Update .gitmodules 2024-12-30 14:39:35 +01:00
Tom van Woudenberg
c38a409b4b
Update .gitmodules download link replacer 2024-12-30 14:35:53 +01:00
Julie Kirsch
004e6b0b5f removed double files 2024-12-29 19:12:49 +01:00
Julie Kirsch
83bb036185 Merge branch '30-add-section-on-icons' of https://github.com/TeachBooks/manual into 30-add-section-on-icons 2024-12-29 19:07:11 +01:00
Julie Kirsch
6b279150e1 fix toc? 2024-12-29 19:06:50 +01:00
xjulie0x
80a0e443a6
Merge branch 'release' into 30-add-section-on-icons 2024-12-29 18:57:54 +01:00
Robert Lanzafame
d542861178
Merge pull request #59 from TeachBooks/feedback/copyright
Feedback/copyright updates
2024-12-29 16:21:56 +01:00
Robert Lanzafame
eaee4b2962 add report link edu material 2024-12-29 16:10:12 +01:00
Robert Lanzafame
72703af4bf ND comment 2024-12-29 16:10:01 +01:00
Robert Lanzafame
0fefff63f6 add book note 2024-12-29 15:59:38 +01:00
Robert Lanzafame
dbaaaecb84 adjust copyright 2024-12-29 15:51:31 +01:00
Robert Lanzafame
e4e8107d7a comment 1 2024-12-29 15:44:07 +01:00
Julie Kirsch
6a225a44f5 final 2024-12-28 11:58:48 +01:00
Julie Kirsch
3ab43cd2f0 final? 2024-12-28 11:51:23 +01:00
Julie Kirsch
05ccb185c3 Update badges.md 2024-12-28 11:42:24 +01:00
Julie Kirsch
899318821d Update badges.md 2024-12-28 11:36:51 +01:00
Julie Kirsch
8a460e5d3a Update badges.md 2024-12-28 11:01:39 +01:00
Julie Kirsch
4ac627aea3 buttins 2024-12-28 10:54:00 +01:00
Tom van Woudenberg
37d4ba0dad Update live_code.ipynb 2024-12-27 09:39:12 +01:00
Tom van Woudenberg
770bb1496f Added local module live coe 2024-12-27 09:35:26 +01:00
Julie Kirsch
6f767afab4 badges final 2024-12-26 19:34:56 +01:00
Julie Kirsch
47a871f780 Update badges.md 2024-12-26 19:27:35 +01:00
Julie Kirsch
fe3a9d3f03 changes? 2024-12-26 19:23:43 +01:00
Julie Kirsch
21f74d384c fix? 2024-12-26 19:15:50 +01:00
Julie Kirsch
868541ce8e badges done 2024-12-26 19:07:30 +01:00
Julie Kirsch
185b4c7cdd toc 2024-12-26 18:51:31 +01:00
Julie Kirsch
98f5f7b779 tables test 2024-12-26 18:46:53 +01:00
Tom van Woudenberg
32a76c3cdd Update Sphinx-TUDelft-theme 2024-12-24 16:36:08 +01:00
Tom van Woudenberg
74b4b27f11 move exercise in template 2024-12-19 09:54:54 +01:00
Tom van Woudenberg
e08cbf1ab1 Merge branch 'release' into 51-add-sphinx-launch-button-as-submodule 2024-12-19 09:29:19 +01:00
Tom van Woudenberg
429f75f96a Update template 2024-12-19 09:29:03 +01:00
Tom van Woudenberg
8908b65f32 moved over exercises to template 2024-12-19 09:28:50 +01:00
Tom van Woudenberg
5832719c1e moved over exercises to template 2024-12-19 09:24:03 +01:00
Tom van Woudenberg
1d5d7d8292
added yaml formatting 2024-12-17 16:09:06 +01:00
Tom van Woudenberg
7c46956bc4 Added license stuff 2024-12-17 15:43:58 +01:00
Tom van Woudenberg
c7cb0a3092 Merge branch 'release' into 51-add-sphinx-launch-button-as-submodule 2024-12-17 15:39:28 +01:00
Tom van Woudenberg
d0c63fba11 Merge branch 'release' of github.com:TeachBooks/manual into release 2024-12-17 15:37:26 +01:00
Tom van Woudenberg
1642b92cc7 Fixed typo in svg 2024-12-17 15:37:00 +01:00
Tom van Woudenberg
68aee6f3fe
Merge pull request #34 from TeachBooks/credits_references_overview_page
Revise Copyright Chapter
2024-12-17 15:36:53 +01:00
Tom van Woudenberg
dc116d1e65 last typo 2024-12-17 15:34:09 +01:00
Tom van Woudenberg
8c023701e1 Just something to make it complete for now 2024-12-17 15:33:27 +01:00
Tom van Woudenberg
f454a09ef9 fix relative links 2024-12-17 15:31:11 +01:00
Tom van Woudenberg
05917a9009 remove note for incomplete license 2024-12-17 15:29:40 +01:00
Tom van Woudenberg
5422f52202 typo 2024-12-17 15:28:10 +01:00
Tom van Woudenberg
31ef5b68f1 rmeoved [] from refernces 2024-12-17 15:26:58 +01:00
Tom van Woudenberg
627752b09a Fix url in references 2024-12-17 15:25:37 +01:00
Tom van Woudenberg
6b2c63ac4e typos etc 2024-12-17 15:24:02 +01:00
Tom van Woudenberg
d8eb2563de Added source for all readmes
Closes #55
2024-12-17 15:19:20 +01:00
Tom van Woudenberg
b824b19341 Expanded examples a bit 2024-12-17 14:51:09 +01:00
Tom van Woudenberg
4bebd1f95b remove comment on syntax apa limited 2024-12-17 14:39:11 +01:00
Tom van Woudenberg
c22215dac7 Add CC BY references to top page 2024-12-17 14:27:09 +01:00
Tom van Woudenberg
b18ed922d7 change to copyright icon 2024-12-17 14:22:11 +01:00
Tom van Woudenberg
91fbfe50a8 shorter titles 2024-12-17 14:20:07 +01:00
Tom van Woudenberg
acd7b416fa The amoutn of mentioning of the copyright information point is too much, removed a few 2024-12-17 14:19:59 +01:00
Tom van Woudenberg
906dcd0379 Merge branch 'release' of github.com:TeachBooks/manual into release 2024-12-17 14:17:28 +01:00
Tom van Woudenberg
92d48b83f3 replace png with svg 2024-12-17 14:15:18 +01:00
Robert Lanzafame
e108c08dfd delete temporary page 2024-12-17 10:29:01 +01:00
Robert Lanzafame
c18488d8c8 final tweaks 2024-12-17 10:28:29 +01:00
Robert Lanzafame
56fb880bcd Merge branch 'release' into credits_references_overview_page 2024-12-17 10:19:19 +01:00
Robert Lanzafame
af15040117
Merge pull request #56 from TeachBooks/replace-gitlab-dependency-timon-script
oops, forgot to update license page
2024-12-17 10:18:40 +01:00
Robert Lanzafame
b8df68f275 good enough for now 2024-12-17 10:15:52 +01:00
Robert Lanzafame
325f7f30a4 licesnse again 2024-12-17 09:46:47 +01:00
Robert Lanzafame
3b9560a559 license page mostly done 2024-12-17 09:44:07 +01:00
Robert Lanzafame
2a87d7f1fd WIP 2024-12-17 09:00:37 +01:00
Robert Lanzafame
c5382da717 WIP how to implement subheadings 2024-12-17 07:22:39 +01:00
Robert Lanzafame
65701cdca9 WIP 2024-12-17 07:21:23 +01:00
Robert Lanzafame
2f34086f5c update copyright and licenses page 2024-12-17 05:19:56 +01:00
Robert Lanzafame
0da62ca15c add images update credits and references.bib 2024-12-17 05:17:44 +01:00
Robert Lanzafame
f03aebb9c0 Merge branch 'replace-gitlab-dependency-timon-script' into credits_references_overview_page 2024-12-17 04:28:22 +01:00
Robert Lanzafame
607cb29b72 oops, forgot to update license page 2024-12-17 04:14:18 +01:00
Tom van Woudenberg
d941ff881e
Merge pull request #54 from TeachBooks/replace-gitlab-dependency-timon-script
replace page for converter without gitlab submodule
2024-12-16 18:19:26 +01:00
Robert Lanzafame
92dcbe0526 replace page for converter without gitlab submodule 2024-12-16 17:37:02 +01:00
Tom van Woudenberg
b5d75b9a86 Merge branch 'release' into credits_references_overview_page 2024-12-16 14:51:51 +01:00
Tom van Woudenberg
7d8ccec2e8 Merge branch 'release' into 51-add-sphinx-launch-button-as-submodule 2024-12-16 14:36:58 +01:00
Tom van Woudenberg
47f2cd7057
Merge pull request #52 from TeachBooks/remove-just-latex-to-markdown
Remove latex-to-markdown
2024-12-16 14:36:16 +01:00
Tom van Woudenberg
df5bd3f319 Update Sphinx-launch-buttons 2024-12-16 14:34:57 +01:00
Tom van Woudenberg
deb2b1bef3 remove relative link 2024-12-16 14:33:26 +01:00
Tom van Woudenberg
fbb3e5d71e Merge branch 'remove-just-latex-to-markdown' into 51-add-sphinx-launch-button-as-submodule 2024-12-16 14:30:01 +01:00
Tom van Woudenberg
d99bc6b38e Update Sphinx-launch-buttons 2024-12-16 14:29:32 +01:00
Tom van Woudenberg
f68efed780 Update _toc.yml 2024-12-16 14:28:13 +01:00
Tom van Woudenberg
2b3cb0de88 Reapply "Merge pull request #49 from TeachBooks/temp_delete"
This reverts commit fcce5c5ed8.
2024-12-16 14:27:26 +01:00
Tom van Woudenberg
9c48de127b Reapply "Merge pull request #49 from TeachBooks/temp_delete"
This reverts commit fcce5c5ed8.
2024-12-16 14:25:27 +01:00
Tom van Woudenberg
eadc4e90a8 Added sphinx launch buttons 2024-12-16 14:19:38 +01:00
Tom van Woudenberg
fcce5c5ed8 Revert "Merge pull request #49 from TeachBooks/temp_delete"
This reverts commit 58ed2efd41, reversing
changes made to ff0b11e795.
2024-12-16 10:27:33 +01:00
Tom van Woudenberg
263819d95f Update Sphinx-TUDelft-theme 2024-12-16 10:27:03 +01:00
Tom van Woudenberg
58ed2efd41
Merge pull request #49 from TeachBooks/temp_delete
Temporary fix because gitlab is down again
2024-12-14 07:51:12 +01:00
Tom van Woudenberg
8fe553be40 now take out sphinx-thebe properly 2024-12-14 07:46:19 +01:00
Tom van Woudenberg
6dcb0dab9e temp exclude sphinx-thebe 2024-12-14 07:43:51 +01:00
Robert Lanzafame
ff0b11e795
Merge pull request #48 from TeachBooks/workshop-morning
update intro-book page
2024-12-14 12:11:48 +05:30
Tom van Woudenberg
f9f1ed6111 rm submodule: latex-to-markdown-conversion 2024-12-14 07:40:36 +01:00
Robert Lanzafame
cbaac417f8 update intro-book 2024-12-14 07:35:05 +01:00
Tom van Woudenberg
5f40d7e032
Merge pull request #46 from TeachBooks/workshop-update
Workshop update
2024-12-14 07:31:39 +01:00
Tom van Woudenberg
2000066276 Update template 2024-12-14 07:26:47 +01:00
Tom van Woudenberg
255d96d385
Yaml formatting 2024-12-13 21:42:59 +01:00
Robert Lanzafame
d17e5b5abf example yaml 2024-12-13 21:02:09 +01:00
Tom van Woudenberg
95657eda46
Update template.md 2024-12-13 20:51:44 +01:00
Tom van Woudenberg
b30e22d014 reduced file size 2024-12-13 18:10:07 +01:00
Tom van Woudenberg
6aa86d206a Added exercise 6 2024-12-13 18:05:42 +01:00
Tom van Woudenberg
57e2935280 Added exercise 5 2024-12-13 17:37:23 +01:00
Tom van Woudenberg
8465480ed5 Added stuff 2024-12-13 17:16:42 +01:00
Tom van Woudenberg
a1c952a126 Clarified instructions for experienced users 2024-12-13 17:14:42 +01:00
Tom van Woudenberg
e5bc0cd972 deleted workflow on summary because it was already on workflow page 2024-12-13 17:08:50 +01:00
Tom van Woudenberg
9bf1d3e336 WIP 2024-12-13 17:06:32 +01:00
Tom van Woudenberg
eb1f17517d added workflow 2024-12-13 16:53:22 +01:00
Tom van Woudenberg
43e0a78003 move tip for experienced users 2024-12-13 16:53:15 +01:00
Tom van Woudenberg
1141fb5f62 Add exercise 4 2024-12-13 16:43:23 +01:00
Tom van Woudenberg
c503f4fc86 Added exercise 3 2024-12-13 16:13:41 +01:00
Tom van Woudenberg
a90d934d64 Update template 2024-12-13 15:57:49 +01:00
Tom van Woudenberg
0b01b51325 exercises as submodules 2024-12-13 15:57:39 +01:00
Tom van Woudenberg
bdfd0d7411 Update template.md 2024-12-13 15:55:32 +01:00
Tom van Woudenberg
de6b3dbafc Update template.md 2024-12-13 15:50:39 +01:00
Tom van Woudenberg
5abb5acab5 Added exercise 2024-12-13 15:49:11 +01:00
Tom van Woudenberg
da2c80ece2 Update 01.md 2024-12-13 15:23:26 +01:00
Tom van Woudenberg
fa727e11fa WIP 2024-12-13 15:16:43 +01:00
Tom van Woudenberg
59297e3cee Added first exercise 2024-12-13 15:08:50 +01:00
Tom van Woudenberg
5c62e659cf Update book.md 2024-12-13 14:54:31 +01:00
Tom van Woudenberg
a074febabe Merge branch 'release' into workshop-update 2024-12-13 14:52:34 +01:00
Tom van Woudenberg
1059a5b5b2 Update creating_content.md 2024-12-13 14:52:28 +01:00
Tom van Woudenberg
bd4dcd383e Update book.md 2024-12-13 14:51:03 +01:00
Tom van Woudenberg
5673b85447 WIP 2024-12-13 14:48:36 +01:00
Tom van Woudenberg
3cbf7574f0 removed full workflow for now 2024-12-13 14:48:32 +01:00
Tom van Woudenberg
b273dfae0b added figures to workflow 2024-12-13 14:44:34 +01:00
Tom van Woudenberg
34169d521c Update workflow.md 2024-12-13 14:08:57 +01:00
Tom van Woudenberg
4861789a80 test 2024-12-13 13:59:06 +01:00
Tom van Woudenberg
b7ab0161fb workflwo WIP 2024-12-13 13:53:42 +01:00
Tom van Woudenberg
65c788e05d Update book.md 2024-12-13 12:39:01 +01:00
Tom van Woudenberg
a70ab0c03d test 2024-12-13 12:34:19 +01:00
Tom van Woudenberg
486e6a9e42 clarification 2024-12-13 11:55:08 +01:00
Tom van Woudenberg
58b21dcfde Added video to first page 2024-12-13 11:54:22 +01:00
Robert Lanzafame
aa119415e4 update intro 2024-12-12 05:45:59 +01:00
Robert Lanzafame
7d776da225 first part: update pages 2024-12-12 05:45:55 +01:00
Robert Lanzafame
dcbe6bd1ce add workshop exercises 2024-12-12 05:45:39 +01:00
Tom van Woudenberg
4a4c3ded43 Merge branch 'release' into workshop-update 2024-12-11 17:54:13 +01:00
Tom van Woudenberg
d09bb58877 rearrange external features 2024-12-11 17:51:44 +01:00
Robert Lanzafame
0d43ad5214 Merge branch 'workshop-update' of github.com:TeachBooks/manual into workshop-update 2024-12-11 17:46:56 +01:00
Robert Lanzafame
9b2191c396 partial outline: book page 2024-12-11 17:46:17 +01:00
Tom van Woudenberg
1630270643 Update template.md 2024-12-11 17:38:16 +01:00
Tom van Woudenberg
f69d715e55 Added next 2024-12-11 17:34:35 +01:00
Tom van Woudenberg
f341491488 Update template.md 2024-12-11 17:17:44 +01:00
Tom van Woudenberg
aa4a93aee0 Update template.md 2024-12-11 16:13:06 +01:00
Tom van Woudenberg
6ab0095242 WIPtempate 2024-12-11 16:03:12 +01:00
Tom van Woudenberg
2d09294f04 Update template 2024-12-11 15:51:37 +01:00
Tom van Woudenberg
0cf3c7d741 now save toc 2024-12-11 15:46:07 +01:00
Tom van Woudenberg
cc2a15c7ab adding empty chapters 2024-12-11 15:41:40 +01:00
Tom van Woudenberg
d132e3c49e Update template 2024-12-11 15:37:47 +01:00
Tom van Woudenberg
92d3e8f462
Merge pull request #44 from TeachBooks/19-update-teachbooks-page-in-manual-replace-readme-submodule
TeachBooks Package Update
2024-12-11 15:31:33 +01:00
Robert Lanzafame
dedfcd0569
typo in {ref} 2024-12-11 12:04:01 +01:00
Tom van Woudenberg
580f03c751 Updated nested boo 2024-12-11 09:33:15 +00:00
Tom van Woudenberg
7d9ef9167f updated submodules 2024-12-11 08:33:37 +00:00
Tom van Woudenberg
7e2ac1c0ae typo 2024-12-11 09:23:38 +01:00
Tom van Woudenberg
bf1f49ee84 Add more descriptive title 2024-12-11 09:23:34 +01:00
Tom van Woudenberg
25a17bd2ac More descriptive title 2024-12-11 09:05:22 +01:00
Tom van Woudenberg
1855e5d2fa remove submodule teachbooks 2024-12-11 08:58:12 +01:00
Robert Lanzafame
8ffb0816c7 update teachbooks info 2024-12-11 06:06:01 +01:00
Robert Lanzafame
9ae8a35563 update deploy book commit to include ref 2024-12-11 05:30:13 +01:00
Robert Lanzafame
d5c7fd2146 fix internal link 2024-12-11 05:08:09 +01:00
Julie Kirsch
3bb3e0e0b4 update 2024-12-10 21:04:22 +01:00
Julie Kirsch
6813d710f2 fix3 2024-12-10 20:53:46 +01:00
Julie Kirsch
6255015e1b fixes 2 2024-12-10 20:46:09 +01:00
Julie Kirsch
24838b70b0 fixing figures 2024-12-10 20:28:15 +01:00
Tom van Woudenberg
994820cc12
Merge pull request #43 from TeachBooks/patch/apa
Update APA page to reflect teachbooks fix
2024-12-10 06:45:25 +01:00
Robert Lanzafame
817acc427d
change warning to note 2024-12-10 10:46:18 +05:30
Robert Lanzafame
4a64116aab
in schematic change _ext.zip to _ext/ 2024-12-10 09:22:36 +05:30
Tom van Woudenberg
a1f8299530 replaced logos 2024-12-09 16:53:06 +01:00
Tom van Woudenberg
2c68053d48
Merge pull request #42 from TeachBooks/apa-extension-docs
Added page on apa extension
2024-12-09 16:44:55 +01:00
Robert Lanzafame
0434fffa6e
Merge branch 'release' into apa-extension-docs 2024-12-09 20:52:10 +05:30
Robert Lanzafame
3d523d067d robert adds to apa page 2024-12-09 16:21:53 +01:00
Robert Lanzafame
5f2e9a5be8 ignore temp .teachbooks 2024-12-09 16:21:42 +01:00
Tom van Woudenberg
f0378e2195
Update README.md 2024-12-09 15:38:33 +01:00
Tom van Woudenberg
f4cef1599a
Delete book/images/TB_logo_dark.png 2024-12-09 15:33:58 +01:00
Tom van Woudenberg
ffa414df5e
Update _config.yml 2024-12-09 15:33:39 +01:00
Tom van Woudenberg
f8baf5bb6f
Add inverted logo 2024-12-09 15:33:19 +01:00
Tom van Woudenberg
ff13a5dae5 Update apa.md 2024-12-09 15:31:26 +01:00
Tom van Woudenberg
6c399f1c93 Added page on apa extension 2024-12-09 15:24:18 +01:00
Robert Lanzafame
e2489b4b5e
Merge branch 'release' into credits_references_overview_page 2024-12-07 10:11:28 +05:30
Tom van Woudenberg
45e269871b
BUMP 2024-12-06 15:37:01 +01:00
Robert Lanzafame
79ac4e8705
Merge pull request #41 from TeachBooks/fix-apastyle-indentation-in-config
fix apastyle
2024-12-06 18:59:57 +05:30
Robert Lanzafame
ace2ffc25d
try again 2024-12-06 14:22:06 +01:00
Robert Lanzafame
c015f5e2de
fix apastyle 2024-12-06 13:45:16 +01:00
Robert Lanzafame
9e4d6a2cca
Merge pull request #38 from TeachBooks/apa-style
Apa style
2024-12-06 18:01:28 +05:30
Robert Lanzafame
f669b640f9
Merge branch 'release' into apa-style 2024-12-06 18:00:07 +05:30
Tom van Woudenberg
4af75a8838
Update _config.yml 2024-12-06 12:58:10 +01:00
Tom van Woudenberg
ffd3768a01
Update _config.yml 2024-12-06 12:47:36 +01:00
Robert Lanzafame
080df45855
Merge branch 'release' into apa-style 2024-12-06 14:23:02 +05:30
Robert Lanzafame
440e66a553
tiny change "is" to "==" because Tom doesn't like warnings 2024-12-06 09:27:49 +01:00
Tom van Woudenberg
63ddffa78b
Merge pull request #40 from TeachBooks/33-issue-on-page-workflowsedit_bookhtml
33 issue on page workflowsedit bookhtml
2024-12-06 07:31:27 +01:00
Tom van Woudenberg
3d24a0ed91 small changes 2024-12-06 07:30:19 +01:00
Tom van Woudenberg
e229c24086 Update Sphinx-TUDelft-theme 2024-12-06 07:22:39 +01:00
Julie Kirsch
2fd8b0de4b fixes 2024-12-05 23:27:57 +01:00
Julie Kirsch
b0cc01914a dot 2024-12-05 23:22:02 +01:00
Julie Kirsch
eca3ce5414 spring cleaning 2024-12-05 23:16:37 +01:00
Julie Kirsch
6ad891252e does that fix it? 2024-12-05 22:29:23 +01:00
douden
42c01ac33f added support for dark/light-mode logo 2024-12-05 16:20:42 +01:00
Tom van Woudenberg
1b8793cee5 Update Sphinx-TUDelft-theme 2024-12-05 16:11:44 +01:00
Tom van Woudenberg
3779cb3cb7
Update credits.md 2024-12-05 11:11:06 +01:00
Robert Lanzafame
26483329f1 book setup 2024-12-05 10:54:31 +01:00
Robert Lanzafame
020e345674 add pybtexapastyle 2024-12-05 10:54:21 +01:00
Robert Lanzafame
c054b315a6 add local extension 2024-12-05 10:54:01 +01:00
xjulie0x
2e2fa65de5
Merge pull request #37 from TeachBooks/utterances
Utterances
2024-12-05 09:39:20 +01:00
Tom van Woudenberg
473f104149
Update utterances.md 2024-12-05 09:36:18 +01:00
Robert Lanzafame
87dccd9efc
Merge pull request #31 from TeachBooks/credits_references
Proper credits references
2024-12-04 19:48:02 +05:30
Tom van Woudenberg
27cd4b78bf Updat 2024-12-04 10:36:58 +01:00
Tom van Woudenberg
89fdeea7b1 Instructions more clearly explained 2024-12-04 10:36:44 +01:00
Tom van Woudenberg
744fe05a60 Make clear this only works on the main branch 2024-12-04 10:27:50 +01:00
Tom van Woudenberg
8d340a4c15 test with url 2024-12-04 09:59:19 +01:00
Julie Kirsch
334256478d fixed 2024-12-04 09:42:17 +01:00
Tom van Woudenberg
a85e0333a7 Merge branch 'user-type-update' into release 2024-12-04 07:32:16 +01:00
Tom van Woudenberg
479fa838c8 Added comment on where to start 2024-12-04 07:31:29 +01:00
Robert Lanzafame
d06ea95b47
Merge pull request #32 from TeachBooks/user-type-update 2024-12-04 12:00:51 +05:30
Tom van Woudenberg
6b7ea55e37 added hypothesis and utterances as reletive links 2024-12-04 07:26:39 +01:00
Tom van Woudenberg
3fde20446e added new figures and replaced header
figures temporary untill proper vectorized images are there
2024-12-04 07:25:32 +01:00
Robert Lanzafame
880e89ea9f
wip 2024-12-04 10:39:49 +05:30
Robert Lanzafame
1ba9a1fbde
demo on temporary page 2024-12-04 09:34:19 +05:30
Robert Lanzafame
eecf3a6494
change file name creating_content to copyright 2024-12-04 08:44:58 +05:30
Robert Lanzafame
b6baaf4717
convert copyright page to chapter. add hall21 ref. 2024-12-04 08:44:05 +05:30
Robert Lanzafame
d6e7d70862
Merge branch 'release' into user-type-update 2024-12-04 06:57:41 +05:30
Robert Lanzafame
0f0c65118d
Update user_types.md 2024-12-04 02:26:46 +01:00
Tom van Woudenberg
4c78e4fb5a fix 2024-12-03 11:22:43 +01:00
Tom van Woudenberg
eaac315a9c Back to old stuff and hardcode TU Delft into it 2024-12-03 11:20:28 +01:00
Tom van Woudenberg
a5b63bddfb Revert "fix references"
This reverts commit a40ad3527b.
2024-12-03 11:19:51 +01:00
Tom van Woudenberg
4028adfcff Revert "fix again"
This reverts commit 62200b20f4.
2024-12-03 11:19:47 +01:00
Tom van Woudenberg
62200b20f4 fix again 2024-12-03 11:16:35 +01:00
Tom van Woudenberg
a40ad3527b fix references 2024-12-03 11:12:52 +01:00
Tom van Woudenberg
e54c589fc5 test unpublished tool 2024-12-03 10:39:29 +01:00
Tom van Woudenberg
bac5afa06a added license to timons stuff 2024-12-03 10:14:36 +01:00
Tom van Woudenberg
649b909362
Update edit_book.md 2024-12-03 07:02:18 +01:00
Robert Lanzafame
ee7423cff0
Update user_types.md 2024-12-03 06:21:46 +01:00
Tom van Woudenberg
e1728c3c37 Update credits.md 2024-12-02 13:10:30 +01:00
Tom van Woudenberg
5d1b99750d Update credits.md 2024-12-02 13:08:10 +01:00
Tom van Woudenberg
39d45d090b moved contatc to something separate 2024-12-02 13:05:55 +01:00
Tom van Woudenberg
13f6ff8b41 Updated exernal resoruces 2024-12-02 12:58:14 +01:00
Tom van Woudenberg
0140e79247 Moved to credits 2024-12-02 12:55:09 +01:00
Tom van Woudenberg
1861b3c083 add TU Delft 2024-12-02 12:53:54 +01:00
Tom van Woudenberg
86c8ba05e8 Add mention of license back in 2024-12-02 11:08:23 +01:00
Tom van Woudenberg
e1fe6218a1 Update references.md 2024-12-02 10:48:19 +01:00
Tom van Woudenberg
7ace2fb21f Update credits.md 2024-12-02 10:36:40 +01:00
Tom van Woudenberg
037f04115b clarification 2024-12-02 10:33:15 +01:00
Tom van Woudenberg
342b868cd4 typos 2024-12-02 10:31:32 +01:00
Tom van Woudenberg
ed902f6ae5 typo 2024-12-02 10:31:12 +01:00
Tom van Woudenberg
14d1ab6032 Update latex-to-markdown-conversion 2024-12-02 10:29:43 +01:00
Tom van Woudenberg
cbe029cf90 moved contact, contribute info to credits page 2024-12-02 10:28:15 +01:00
Tom van Woudenberg
4178edb956 Initial commit 2024-12-02 10:24:37 +01:00
Tom van Woudenberg
c7c97f6f52 Update teachbooks-sphinx-tippy 2024-12-02 09:12:56 +01:00
Tom van Woudenberg
aacdf99146
Merge pull request #20 from TeachBooks/languages
Languages
2024-11-29 11:36:46 +01:00
Tom van Woudenberg
1aed476ce4 make custom launch button specific 2024-11-29 11:36:03 +01:00
Tom van Woudenberg
d2341353f9 typo 2024-11-29 11:30:34 +01:00
Tom van Woudenberg
f33cb3f75f updated badges 2024-11-29 11:18:13 +01:00
Tom van Woudenberg
1f0b0f47ee Various updates 2024-11-29 11:15:59 +01:00
Tom van Woudenberg
edb7789d15 Added user types everywhere 2024-11-29 10:57:43 +01:00
Tom van Woudenberg
055663cb4e extended badges 2024-11-29 10:46:04 +01:00
Tom van Woudenberg
5d095953f0 Overview tool page 2024-11-29 10:26:48 +01:00
Tom van Woudenberg
6e29254c48 clarified 2024-11-29 10:25:55 +01:00
Tom van Woudenberg
7c0cde0fff Added more badges 2024-11-29 10:25:32 +01:00
Tom van Woudenberg
eefe5cc97c Merge branch 'release' into languages 2024-11-29 10:18:01 +01:00
Julie Kirsch
af207d4ead change1 2024-11-28 23:25:17 +01:00
Julie Kirsch
fb0c2c6278 check 2024-11-28 23:17:18 +01:00
Julie Kirsch
4e7f9957e1 updates 2024-11-28 23:14:32 +01:00
Julie Kirsch
cf45708f95 tags 2024-11-28 22:58:16 +01:00
Julie Kirsch
eaf27aae20 new structure 2024-11-28 22:56:07 +01:00
Julie Kirsch
e292c741e9 test 2024-11-28 22:05:24 +01:00
Tom van Woudenberg
f877956022
Merge pull request #27 from SandraVerhagen/patch-1
typo in Update tools.md
2024-11-28 13:36:03 +01:00
SandraVerhagen
6fd29a2be6
typo in Update tools.md 2024-11-28 13:08:36 +01:00
Tom van Woudenberg
34528f2071 Update utterances.md 2024-11-28 09:20:13 +01:00
Tom van Woudenberg
cf370df077 Merge branch 'release' of github.com:TeachBooks/manual into release 2024-11-28 09:15:51 +01:00
Tom van Woudenberg
3d3dbd53c6 Fixed dead link 2024-11-28 09:15:40 +01:00
Tom van Woudenberg
4e31ab3beb
fix tab and typo push_githubdesktop images 2024-11-28 08:59:13 +01:00
Tom van Woudenberg
27e1e0ee76
Merge pull request #23 from TeachBooks/image-inverter
Added Image inverter
2024-11-28 08:46:40 +01:00
Tom van Woudenberg
4a973ba868
remove hypothesis 2024-11-28 08:46:12 +01:00
Tom van Woudenberg
5e576c8b2a
exclude photos from conversion 2024-11-28 08:45:44 +01:00
Tom van Woudenberg
dd871058cf
added image inverter 2024-11-28 08:38:44 +01:00
Julie Kirsch
30e343b521 Update deploy-book-workflow 2024-11-27 21:35:04 +01:00
Julie Kirsch
b25cfad66c renaming sections in the toc 2024-11-27 21:18:59 +01:00
Julie Kirsch
e3ed948c56 sphinx 2024-11-27 21:01:08 +01:00
Julie Kirsch
2902cc4b40 admonition 2024-11-27 12:22:34 +01:00
Julie Kirsch
81e8b8d66c tweaks 2024-11-27 12:16:42 +01:00
Julie Kirsch
0dc1b82313 final update 2024-11-27 12:07:45 +01:00
Julie Kirsch
b5fa74c734 svg icon? 2024-11-27 10:35:27 +01:00
Julie Kirsch
3ce323b3fc toc update 2 2024-11-27 10:24:28 +01:00
Julie Kirsch
2fdebc2467 toc update 2024-11-27 10:19:22 +01:00
Julie Kirsch
bbb49400aa also toc 2024-11-27 10:07:20 +01:00
Julie Kirsch
0298d89976 new file 2024-11-27 10:01:56 +01:00
Tom van Woudenberg
8ad00ac379 Update teachbooks-sphinx-tippy 2024-11-25 22:36:38 +01:00
Tom van Woudenberg
52f8497b0a Update annotation stuff 2024-11-25 22:12:06 +01:00
Tom van Woudenberg
8d2d6d86ff Added annotator 2024-11-25 21:55:10 +01:00
Tom van Woudenberg
1620934ff1 Added sphinx-tippy 2024-11-25 21:39:41 +01:00
Tom van Woudenberg
490e4129af Update Sphinx-TUDelft-theme 2024-11-25 21:36:03 +01:00
Tom van Woudenberg
d731623c9f Update Sphinx-TUDelft-theme 2024-11-25 21:31:02 +01:00
Tom van Woudenberg
70fcaf07cf student vs authoring features 2024-11-19 10:10:17 +01:00
Tom van Woudenberg
a2375ad8ec Update Sphinx-TUDelft-theme 2024-11-19 09:53:35 +01:00
Tom van Woudenberg
9ca2695aad Added tu delft theme 2024-11-19 09:47:53 +01:00
Tom van Woudenberg
94ed0027cd Added sphinx grasple as submodule 2024-11-19 09:40:44 +01:00
Tom van Woudenberg
14b84539ab Added book size limits 2024-11-19 08:55:25 +01:00
Tom van Woudenberg
dacaf70abd Update TeachBooks 2024-11-18 14:23:07 +01:00
Tom van Woudenberg
0ae3ce17e8 update links 2024-11-16 15:55:52 +01:00
Tom van Woudenberg
2219460d41 more url updates 2024-11-16 15:48:14 +01:00
Tom van Woudenberg
f7b4065176 Update links 2024-11-16 15:44:06 +01:00
Tom van Woudenberg
794eda40d7 Merge branch 'release' of github.com:TeachBooks/manual into release 2024-11-16 14:51:43 +01:00
Tom van Woudenberg
16b4314de7 added suggest change button 2024-11-16 14:50:35 +01:00
Tom van Woudenberg
17795533a9
Merge pull request #17 from TeachBooks/update-repo
Update repo
2024-11-16 14:49:14 +01:00
Robert Lanzafame
7ecce3bd94
remove unnecessary files 2024-11-16 06:19:03 +02:00
Robert Lanzafame
d464bf9a0e
book config: update repo 2024-11-16 06:17:25 +02:00
Tom van Woudenberg
7a04992144 Allow jupyterbook options for teachbooks package 2024-11-15 12:51:23 +01:00
Tom van Woudenberg
10acfa5d95
Added requirements to deploy trigger 2024-11-11 20:15:38 +01:00
Tom van Woudenberg
2b31365a5c Update README.md 2024-11-11 13:12:00 +01:00
Tom van Woudenberg
ab7a1aac18 added github options 2024-11-11 13:08:58 +01:00
Tom van Woudenberg
d213b18e61 remove TU Delft from footer 2024-11-11 13:01:29 +01:00
Tom van Woudenberg
b8032ad288 Update template 2024-11-11 12:58:43 +01:00
Tom van Woudenberg
e2ff6f8b09 New logo 2024-11-11 12:52:23 +01:00
167 changed files with 8376 additions and 1287 deletions

22
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,22 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
- package-ecosystem: "gitsubmodule" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
day: "sunday"
time: "22:59"
- package-ecosystem: "pip" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
day: "sunday"
time: "22:59"
ignore:
- dependency-name: "sphinx-thebe"
- dependency-name: "docutils"

View file

@ -4,13 +4,15 @@ on:
push: push:
branches: branches:
- '**' - '**'
# If your git repository has the Jupyter Book within some-subfolder next to # - '!dependabot**'
# If your git repository has the TeachBooks / Jupyter Book v1 within some-subfolder next to
# unrelated files, you can make this run only if a file within that specific # unrelated files, you can make this run only if a file within that specific
# folder (or the workflow file itself) has been modified. # folder (or the workflow file itself) has been modified.
# #
paths: paths:
- book/** - book/**
- .github/workflows/call-deploy-book.yml - .github/workflows/call-deploy-book.yml
- requirements.txt
workflow_dispatch: workflow_dispatch:
jobs: jobs:

6
.gitignore vendored
View file

@ -135,3 +135,9 @@ _contents/
# Jupyterlite # Jupyterlite
_output/ _output/
book/.jupyterlite.doit.db book/.jupyterlite.doit.db
# TeachBooks
**.teachbooks/
book/_toc_with_local_paths.yml
book/_git/
book/conf.py

View file

@ -1,70 +0,0 @@
stages:
- test
- build
- deploy
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
REGISTRY_HOST: localhost:5000
TAG_LATEST: $REGISTRY_HOST/$CI_PROJECT_NAME/$CI_COMMIT_REF_NAME:latest
TAG_DRAFT: $REGISTRY_HOST/$CI_PROJECT_NAME-draft/$CI_COMMIT_REF_NAME:latest
GIT_SUBMODULE_STRATEGY: recursive # For submodules
cache:
paths:
- .cache/pip
# This job tests if the book compiles gracefully after a new addition
test-build:
stage: test
image: continuumio/miniconda3
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
script:
- pip install -r requirements.txt
- jupyter-book clean book/
- jupyter-book build book/
# This job builds the Docker container
build-book:
stage: build
image: docker
rules:
- if: $CI_COMMIT_BRANCH == "release" && $CI_PIPELINE_SOURCE == "push"
variables:
TAG: $TAG_LATEST
- if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
variables:
TAG: $TAG_DRAFT
before_script:
- docker info
script:
- if [ "$TAG" = "$TAG_LATEST" ]; then sed --in-place=".bak" '/# START DRAFT/,/# END DRAFT/{//!d}' book/_config.yml; fi
- docker build -t $TAG .
- docker push $TAG
# This job takes down the existing container and starts the new one
deploy-book:
stage: deploy
image: docker
rules:
- if: $CI_COMMIT_BRANCH == "release" && $CI_PIPELINE_SOURCE == "push"
before_script:
- docker info
- docker stop $CI_PROJECT_NAME || exit_code=$?
- if [ $exit_code -ne 0 ]; then echo "Container not found, cannot stop"; else docker rm $CI_PROJECT_NAME; fi
script:
- docker run -d --restart always -p 8000:8000 --name $CI_PROJECT_NAME $TAG_LATEST # Make sure to use a different port for each book!
environment:
name: production
url: https://interactivetextbooks.citg.tudelft.nl/jupyter-book-manual
# Deploy the draft version of the book
deploy-draft:
stage: deploy
image: docker
rules:
- if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
before_script:
- docker info
- docker stop $CI_PROJECT_NAME-draft || exit_code=$?
- if [ $exit_code -ne 0 ]; then echo "Container not found, cannot stop"; else docker rm $CI_PROJECT_NAME-draft; fi
script:
- docker run -d --restart always -p 8018:8000 --name $CI_PROJECT_NAME-draft $TAG_DRAFT
environment:
name: draft
url: https://interactivetextbooks.citg.tudelft.nl/jupyter-book-manual-draft

51
.gitmodules vendored
View file

@ -1,27 +1,60 @@
[submodule "book/external/Nested-Books"] [submodule "book/external/Nested-Books"]
path = book/external/Nested-Books path = book/external/Nested-Books
url = https://github.com/TeachBooks/Nested-Books.git url = https://github.com/TeachBooks/Nested-Books.git
branch = manual-description
[submodule "book/external/template"] [submodule "book/external/template"]
path = book/external/template path = book/external/template
url = https://github.com/TeachBooks/template.git url = https://github.com/TeachBooks/template.git
branch = manual_description
[submodule "book/external/deploy-book-workflow"] [submodule "book/external/deploy-book-workflow"]
path = book/external/deploy-book-workflow path = book/external/deploy-book-workflow
url = https://github.com/TeachBooks/deploy-book-workflow.git url = https://github.com/TeachBooks/deploy-book-workflow.git
[submodule "book/external/latex-to-markdown-conversion"] branch = manual_docs
path = book/external/latex-to-markdown-conversion
url = https://gitlab.tudelft.nl/opentextbooks/latex-to-markdown-conversion.git
[submodule "book/external/Useful_python_code"] [submodule "book/external/Useful_python_code"]
path = book/external/Useful_python_code path = book/external/Useful_python_code
url = https://github.com/TeachBooks/Useful_python_code.git url = https://github.com/TeachBooks/Useful_python_code.git
[submodule "book/external/TeachBooks"] branch = manual
path = book/external/TeachBooks
url = https://github.com/TeachBooks/TeachBooks.git
[submodule "book/external/Sphinx-Image-Inverter"] [submodule "book/external/Sphinx-Image-Inverter"]
path = book/external/Sphinx-Image-Inverter path = book/external/Sphinx-Image-Inverter
url = https://github.com/TeachBooks/Sphinx-Image-Inverter.git url = https://github.com/TeachBooks/Sphinx-Image-Inverter.git
[submodule "book/external/JupyterBook-Patches"] branch = Manual
path = book/external/JupyterBook-Patches
url = https://github.com/TeachBooks/JupyterBook-Patches.git
[submodule "book/external/Download-Link-Replacer"] [submodule "book/external/Download-Link-Replacer"]
path = book/external/Download-Link-Replacer path = book/external/Download-Link-Replacer
url = https://github.com/TeachBooks/Download-Link-Replacer.git url = https://github.com/TeachBooks/Download-Link-Replacer.git
branch = manual_docs
[submodule "book/external/Sphinx-Grasple-public"]
path = book/external/Sphinx-Grasple-public
url = https://github.com/TeachBooks/Sphinx-Grasple-public.git
branch = manual_docs
[submodule "book/external/Sphinx-TUDelft-theme"]
path = book/external/Sphinx-TUDelft-theme
url = https://github.com/TeachBooks/Sphinx-TUDelft-theme.git
branch = Manual
[submodule "book/external/teachbooks-sphinx-tippy"]
path = book/external/teachbooks-sphinx-tippy
url = https://github.com/TeachBooks/teachbooks-sphinx-tippy.git
branch = Manual
[submodule "book/external/annotater"]
path = book/external/annotater
url = https://github.com/TeachBooks/annotater
branch = manual
[submodule "book/external/Sphinx-launch-buttons"]
path = book/external/Sphinx-launch-buttons
url = https://github.com/TeachBooks/Sphinx-launch-buttons.git
branch = manual
[submodule "book/external/Sphinx-Named-Colors"]
path = book/external/Sphinx-Named-Colors
url = https://github.com/TeachBooks/Sphinx-Named-Colors.git
branch = manual
[submodule "book/external/sphinx-iframes"]
path = book/external/sphinx-iframes
url = https://github.com/TeachBooks/sphinx-iframes.git
branch = manual
[submodule "book/external/Sphinx-PRIME-applets"]
path = book/external/Sphinx-PRIME-applets
url = https://github.com/TeachBooks/Sphinx-PRIME-applets.git
branch = manual
[submodule "book/external/JupyterBook-Patches"]
path = book/external/JupyterBook-Patches
url = https://github.com/TeachBooks/JupyterBook-Patches.git
branch = manual_docs

51
CITATION.cff Normal file
View file

@ -0,0 +1,51 @@
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
message: 'If you use this Book, please cite it using these metadata.'
authors:
- email: info@teachbooks.io
name: 'TeachBooks Development Team'
website: 'https://teachbooks.io/'
title: 'TeachBooks Manual source code'
preferred-citation:
type: book
authors:
- email: info@teachbooks.io
name: 'TeachBooks Development Team'
website: 'https://teachbooks.io/'
url: 'https://doi.org/10.5281/zenodo.15100847'
identifiers:
- type: doi
value: 10.5281/zenodo.15100848
description: Zenodo record
- type: url
value: 'https://teachbooks.io/manual/'
description: 'Published book on GitHub Pages'
- type: url
value: 'https://github.com/TeachBooks/manual'
description: 'GitHub repository'
abstract: >-
his manual assists you in creating and collaborating on TeachBooks
for educational purposes. Some parts are specifically aimed for
teachers at Delft University of Technology, although all material and
tools are openly available. This manual aims at providing an easy start
and advanced usages for new and existing users with or without skills
on this topic.
keywords:
- TeachBooks
- Manual
- 'Jupyter Book'
title: 'TeachBooks Manual'
institution:
name: 'TeachBooks'
license: CC-BY-4.0
license-url: 'https://creativecommons.org/licenses/by/4.0/'
copyright: '© 2025 TeachBooks'
version: v1.2.1
date-released: '2025-03-28'
languages:
- en
contact:
- email: info@teachbooks.io
name: 'TeachBooks Development Team'

2
CODEOWNERS Normal file
View file

@ -0,0 +1,2 @@
# All files in the repo
* @Tom-van-Woudenberg

View file

@ -1,8 +0,0 @@
FROM continuumio/miniconda3
WORKDIR /book
COPY book/ .
RUN apt-get update && apt-get -y install git gcc
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
RUN jupyter book build .
ENTRYPOINT [ "python", "-m", "http.server", "8000", "--directory", "/book/_build/html" ]

67
LICENSE
View file

@ -1,6 +1,6 @@
Attribution 4.0 International The license of this manual itself is CC BY 4.0. The same license is used for [](external/Nested-Books) and [](external/template). The license of other included materials are provided below.:
======================================================================= Attribution 4.0 International
Creative Commons Corporation ("Creative Commons") is not a law firm and Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of does not provide legal services or legal advice. Distribution of
@ -52,8 +52,6 @@ exhaustive, and do not form part of our licenses.
for the public: for the public:
wiki.creativecommons.org/Considerations_for_licensees wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution 4.0 International Public License Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree By exercising the Licensed Rights (defined below), You accept and agree
@ -373,8 +371,6 @@ Section 8 -- Interpretation.
processes of any jurisdiction or authority. processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances its public licenses to material it publishes and in those instances
@ -393,3 +389,62 @@ the avoidance of doubt, this paragraph does not form part of the
public licenses. public licenses.
Creative Commons may be contacted at creativecommons.org. Creative Commons may be contacted at creativecommons.org.
=======================================================================
[](external/annotater), [](external/deploy-book-workflow), [](external/Download-Link-Replacer), [](external/JupyterBook-Patches), [](external/Sphinx-Image-Inverter), [](external/Sphinx-launch-buttons) and [](external/Useful_python_code) are licensed under BSD 3-Clause license:
BSD 3-Clause License
Copyright (c) 2024, TeachBooks
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=======================================================================
[](external/Sphinx-Grasple-public), [](external/Sphinx-TUDelft-theme) and [](external/teachbooks-sphinx-tippy) are licensed under MIT license:
MIT License
Copyright (c) 2024, TeachBooks
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -1,19 +1,23 @@
# TeachBooks Manual # TeachBooks Manual
This manual assists you in creating and collaborating on [JupyterBooks](https://jupyterbook.org/) for educational purposes. Some parts are specifically aimed for teachers at Delft University of Technology, although all material and tools are openly available. This manual aims at providing an easy start and advanced usages for new and existing users with or without skills on this topic. it is part of TeachBooks, for more information visit [https://teachbooks.tudelft.nl/](https://teachbooks.tudelft.nl/). [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.15100848.svg)](https://doi.org/10.5281/zenodo.15100848)
[![call-deploy-book](https://github.com/TeachBooks/manual/actions/workflows/call-deploy-book.yml/badge.svg)](https://github.com/TeachBooks/manual/actions/workflows/call-deploy-book.yml)
This manual assists you in creating and collaborating on TeachBooks: [JupyterBooks v1](https://jupyterbook.org/v1/) for educational purposes. Some parts are specifically aimed for teachers at Delft University of Technology, although all material and tools are openly available. This manual aims at providing an easy start and advanced usages for new and existing users with or without skills on this topic. it is part of TeachBooks, for more information visit [https://teachbooks.io/](https://teachbooks.io/).
## Contact ## Contact
If you encounter any issues and you have a TU Delft account, report it by clicking <svg class="svg-inline--fa fa-gitlab" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="gitlab" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z"></path></svg> --> {fa}`lightbulb` on the top right corner of this page. Or contribute directly by creating a merge request in the [repository](https://gitlab.tudelft.nl/interactivetextbooks-citg/jupyter-book-manual). If you encounter any issues and you have a TU Delft account, report it by clicking the github icon and lightbulb on the top right corner of this page. Or contribute directly by creating a merge request in the [repository](https://github.com/Teachbooks/manual).
If you have questions, contact Tom van Woudenberg, Robert Lanzafame or our TA Julie Kirsch at TeachBooks@tudelft.nl, also for non-TU Delft account holders. TU Delft account holder can also contact us in the [MS Teams Open Interactive Textbooks Community](https://teams.microsoft.com/l/team/19%3Ah9-uRcP_yYauh-VuoPFozJVUvHVOB4a0mz1ZWvh4q4Q1%40thread.tacv2/conversations?groupId=3e88c1f3-4a4f-483a-a366-7e617de9ba99&tenantId=096e524d-6929-4030-8cd3-8ab42de0887b) If you have questions, contact the TeachBooks Development Team at info@teackbooks.io, also for non-TU Delft account holders. You can also contact us in our [GitHub discussions](https://github.com/orgs/TeachBooks/discussions)
We really value your feedback on this manual. This helps us improving it. Please keep using the manual as you build your own Jupyter Book and come back to fill out this short [survey](https://forms.gle/hXbFUQgN95H8ftxt9). We really value your feedback on this manual. This helps us improving it. Please keep using the manual as you build your own TeachBooks and come back to fill out this short [survey](https://forms.gle/hXbFUQgN95H8ftxt9).
## Contribute ## Contribute
This book will continue to develop, so feel free to contribute https://gitlab.tudelft.nl/interactivetextbooks-citg/jupyter-book-manual! You can do so directly by forking this repository and creating a merge request. This book will continue to develop, so feel free to contribute https://github.com/TeachBooks/manual! You can do so directly by forking this repository and creating a merge request.
The released book can be found on on https://teachbooks.tudelft.nl/jupyter-book-manual. This page shows the built book of the `release` branch. The `main` branch is meant for reviewing and is visible here: https://teachbooks.tudelft.nl/jupyter-book-manual/draft. All branches will also be visible on the mirrored repository on GitHub Pages: https://github.com/TeachBooks/mirror_teachbook_manual/actions The released book can be found on on https://teachbooks.io/manual. This page shows the built book of the `release` branch All branches will also be visible as seen in the action's summaries: https://github.com/TeachBooks/mirror_teachbook_manual/actions
Some parts of this book are taken from other sources in the form of submodules (linked in the folder [book/external](book/external)). To contribute to those pages, contribute to the source repository directly with a fork and merge/pull request. If you intent to clone this boko including its submodules, clone using: `git clone --recurse-submodules git@gitlab.tudelft.nl:interactivetextbooks-citg/jupyter-book-manual.git` Some parts of this book are taken from other sources in the form of submodules (linked in the folder [book/external](book/external)). To contribute to those pages, contribute to the source repository directly with a fork and merge/pull request. If you intent to clone this book including its submodules, clone using: `git clone --recurse-submodules git@github.com:TeachBooks/manual.git`
Happy book building!
Happy book building!

4
WAIVER Normal file
View file

@ -0,0 +1,4 @@
Technische Universiteit Delft hereby disclaims all copyright interest in the
program “TeachBooks Manual” (a book serving as documentation for various tooling
surrounding TeachBooks) written by the Author(s).
Stefan Aarninkhof, Dean of Civil Engineering & Geosciences

View file

@ -1,38 +1,62 @@
title: TeachBooks Manual title: TeachBooks Manual
author: TeachBooks Team from Delft University of Technology, built with <a href="https://teachbooks.tudelft.nl/">TeachBooks</a> and <a href="https://jupyterbook.org/">Jupyter Book</a>, <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="license noopener noreferrer"">CC BY 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg" alt=""></a> author: TeachBooks Development Team and TeachBooks users, built with <a href="https://teachbooks.io/">TeachBooks</a>, <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="license noopener noreferrer"">CC BY 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg" alt=""></a>
logo: images/Logo_without_background.png
execute: execute:
execute_notebooks: 'off' execute_notebooks: 'auto'
only_build_toc_files: true only_build_toc_files: true
html: html:
favicon : "images/favicon.ico" favicon : "images/favicon.ico"
baseurl : "https://teachbooks.tudelft.nl/jupyter-book-manual/" baseurl : "https://teachbooks.io/manual/"
# START REMOVE-FROM-PUBLISH
comments:
hypothesis: true
# END REMOVE-FROM-PUBLISH
sphinx: sphinx:
extra_extensions: extra_extensions:
- sphinx_inline_tabs - sphinx_inline_tabs
- sphinx.ext.imgconverter - sphinx.ext.imgconverter
- download_link_replacer - teachbooks_favourites
- jupyterbook_patches - teachbooks_sphinx_grasple
- sphinx_apa_references
config: config:
language: en
html_js_files: html_js_files:
- https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js - https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js
thebe_config: thebe_config:
use_thebe_lite: true use_thebe_lite: true
exclude_patterns: ["**/_*.yml", "**/*.md", "**/*.ipynb","**/*.gif","**/*.txt","**/*.json",] exclude_patterns: ["**/_*.yml", "**/*.md", "**/*.ipynb","**/*.gif","**/*.txt","**/*.json",]
html_theme_options: html_theme_options:
repository_url: "https://gitlab.tudelft.nl/interactivetextbooks-citg/jupyter-book-manual" logo:
text: Manual
image_light: TeachBooks_logo.svg
image_dark: TeachBooks_logo_inverted.svg
repository_url: "https://github.com/TeachBooks/manual/"
path_to_docs: "book"
repository_branch: "release"
use_repository_button: true use_repository_button: true
use_edit_page_button: true
use_issues_button : true use_issues_button : true
launch_buttons: launch_buttons:
thebe: true thebe: true
html_show_copyright: false html_show_copyright: false
html_last_updated_fmt: '%B %-d, %Y' html_last_updated_fmt: '%B %-d, %Y'
html_static_path: ["images"]
mathjax3_config:
tex:
macros:
"newcolor": ['\definecolor{newcolor}{RGB}{111, 29, 119}{\color{newcolor}#1}',1]
named_colors_custom_colors: {'onlylight':[165,21,160],'lightanddark':[45,180,117,204,158,110],'hyphen-color':[45,180,117,165,21,160],'attributiongrey':[150,150,150]}
metadata_figure_settings:
style:
placement: hide
license:
summaries: false
individual: false
nb_execution_includepatterns: "**/MANUAL.ipynb"
git_show_all_authors: true
teachbooks:
attribution_location: margin
attribution_color: attributiongrey
bibtex_bibfiles:
- references.bib

View file

@ -0,0 +1,4 @@
/* Attribution */
div.attribution > .admonition-title::after {
content: "\f10d";
}

19
book/_static/color.css Normal file
View file

@ -0,0 +1,19 @@
:root {
--newcolor-light: rgb(111, 29, 119);
--newcolor-dark: rgb(255, 167, 255);
--newcolor: var(--newcolor-light);
}
html[data-theme="dark"] {
--newcolor: var(--newcolor-dark);
}
.newcolor {color: var(--newcolor);}
.newcolor-same {color: var(--newcolor-light);}
.newcolor-filter {color: var(--newcolor-light);}
html[data-theme="dark"] .newcolor-filter {
filter: invert(1) hue-rotate(180deg) saturate(1.5);
}

View file

@ -255,7 +255,7 @@ const createFigureReference = (path, name, caption) => {
+ "{numref}`{number} &lt" + name + "&gt`"; + "{numref}`{number} &lt" + name + "&gt`";
} }
//Via https://jupyterbook.org/en/stable/content/references.html#reference-tables //Via https://jupyterbook.org/v1/content/references.html#reference-tables
const createTableReference = (caption, name) => { const createTableReference = (caption, name) => {
return "<b> tabel code: </b><br/>" return "<b> tabel code: </b><br/>"
+"```{table} " + caption + "<br/>" +"```{table} " + caption + "<br/>"

178
book/_static/power.html Normal file
View file

@ -0,0 +1,178 @@
<!DOCTYPE html>
<html>
<head>
<title>CO2 vs Power</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/numeric/1.2.6/numeric.min.js"></script>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<style>
.slider {
display: block;
margin-bottom: 10px;
width: 100%;
}
.slider-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
width: 100%;
}
.output {
margin-top: 20px;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
background-color: #f9f9f9;
}
.output p {
margin: 5px 0;
}
.output .emoji {
font-size: 20px;
margin-right: 5px;
}
</style>
</head>
<body>
<div id="sliderContainer" class="slider-container"></div>
<div id="outputContainer" class="output"></div>
<script>
var RPM = [800, 1000, 1200, 1400, 1700, 1800];
var CO2 = [708, 696.889, 688.247, 682.897, 684.955, 697.3];
var POW = [161.141, 263.243, 330.51, 381.561, 391.17, 370];
function weighted_obj(s) {
var delta_p = 1 / 3;
var delta_c = 1 - delta_p;
return -delta_p * POWfunc(s) + delta_c * CO2func(s);
}
var Pt = 460;
var Ct = 640;
function goal_attainment(s) {
return Math.max(Pt - POWfunc(s), CO2func(s) - Ct);
}
function CO2func(s) {
return interpolate(RPM, CO2, s);
}
function POWfunc(s) {
return interpolate(RPM, POW, s);
}
function interpolate(x, y, s) {
var i = 1;
while (x[i] < s) {
i++;
}
var x0 = x[i - 1];
var x1 = x[i];
var y0 = y[i - 1];
var y1 = y[i];
var t = (s - x0) / (x1 - x0);
// Calculate the coefficients for the cubic spline interpolation
var h = x1 - x0;
var a = (1 - t) * (1 - t) * (1 - t);
var b = 3 * t * (1 - t) * (1 - t);
var c = 3 * t * t * (1 - t);
var d = t * t * t;
// Perform cubic spline interpolation
var interpolatedValue = a * y0 + b * y[i - 1] + c * y[i] + d * y1;
return interpolatedValue;
}
function func(x) {
var weighted_obj_val = weighted_obj(x).toFixed(2);
var goal_attainment_val = goal_attainment(x).toFixed(2);
var outputContainer = document.getElementById("outputContainer");
var weighted_obj_val = weighted_obj(x).toFixed(2);
var goal_attainment_val = goal_attainment(x).toFixed(2);
var POWfunc_val = POWfunc(x).toFixed(2);
var CO2func_val = CO2func(x).toFixed(2);
outputContainer.innerHTML = "<p>Weighted 🏋️ Objective: " + " = - 1/3 * POWfunc(" + x + ") + 2/3 * CO2func(" + x + ") = - 1/3 * " + POWfunc_val + " + 2/3 * " + CO2func_val + " = " + weighted_obj_val + "</p>" +
"<p>Goal 🥅 Attainment: max(460 - POWfunc(" + x + "), CO2func(" + x + ") - 640) = max(460 - " + POWfunc_val + ", " + CO2func_val + " - 640) = " + goal_attainment_val ;
var plotContainer = document.createElement("div");
plotContainer.id = "plotContainer";
plotContainer.style.height = "400px";
outputContainer.appendChild(plotContainer);
var plotData = [
{
x: [CO2func(parseFloat(document.getElementById("x").value))],
y: [POWfunc(parseFloat(document.getElementById("x").value))],
type: 'scatter',
mode: 'markers',
name: 'Selected RPM'
}
];
var plotLayout = {
xaxis: {
title: 'CO2 (g/kWh)',
range: [680, 710]
},
yaxis: {
title: 'Power functions (kW)',
range: [400, 150], // Flipped y-axis range
},
title: {
text: 'CO2 vs Power',
font: {
size: 16
}
}
};
Plotly.newPlot('plotContainer', plotData, plotLayout);
}
var sliderContainer = document.getElementById("sliderContainer");
var xSlider = document.createElement("input");
xSlider.type = "range";
xSlider.min = 800;
xSlider.max = 1800;
xSlider.value = 1000;
xSlider.step = 1;
xSlider.id = "x";
xSlider.oninput = function() {
func(parseFloat(document.getElementById("x").value));
};
xSlider.classList.add("slider");
var xLabel = document.createElement("label");
xLabel.innerHTML = "RPM";
xLabel.setAttribute("for", "x");
xLabel.style.textAlign = "right";
var valueDisplay = document.createElement("span");
valueDisplay.innerHTML = xSlider.value; // Set the initial value of the display element
valueDisplay.style.marginLeft = "10px"; // Add some margin to separate the value from the slider
xSlider.oninput = function() {
valueDisplay.innerHTML = xSlider.value; // Update the value display element when the slider value changes
func(parseFloat(document.getElementById("x").value));
};
sliderContainer.appendChild(xLabel);
sliderContainer.appendChild(xSlider);
sliderContainer.appendChild(valueDisplay); // Append the value display element
var outputContainer = document.getElementById("outputContainer");
outputContainer.style.height = "400px";
// Call func with initial values
func(parseFloat(document.getElementById("x").value));
</script>
</body>
</html>

View file

@ -0,0 +1,4 @@
/* Hide the default Jupyter Book author footer */
.component-author {
display: none;
}

View file

@ -2,10 +2,18 @@ format: jb-book
root: intro root: intro
parts: parts:
- caption: Getting started! - caption: Your First TeachBook!
chapters:
- file: intro/book.md
- file: intro/workflow.md
- file: intro/template.md
- file: intro/next.md
- caption: Getting Going!
chapters: chapters:
- file: installation-and-setup/user_types.md - file: installation-and-setup/user_types.md
- file: installation-and-setup/git.md - file: installation-and-setup/git.md
sections:
- file: installation-and-setup/tools
- file: installation-and-setup/overview.md - file: installation-and-setup/overview.md
sections: sections:
- file: installation-and-setup/vscode-setup.md - file: installation-and-setup/vscode-setup.md
@ -13,7 +21,6 @@ parts:
- file: installation-and-setup/anaconda.md - file: installation-and-setup/anaconda.md
- file: installation-and-setup/git_bash_conda_vs-code.md - file: installation-and-setup/git_bash_conda_vs-code.md
- file: installation-and-setup/jupyter-book-setup.md - file: installation-and-setup/jupyter-book-setup.md
- file: external/template/README.md
- file: workflows/collaboration.md - file: workflows/collaboration.md
sections: sections:
- file: workflows/milestones_issues.md - file: workflows/milestones_issues.md
@ -22,11 +29,87 @@ parts:
- file: workflows/check_changes_online.md - file: workflows/check_changes_online.md
- file: workflows/merge_request.md - file: workflows/merge_request.md
- file: installation-and-setup/collab - file: installation-and-setup/collab
- file: installation-and-setup/tools - file: installation-and-setup/versioning
- file: installation-and-setup/creating_content.md sections:
- file: installation-and-setup/versions_URLs
- file: installation-and-setup/versioning_changelog
- file: installation-and-setup/publisher
- file: installation-and-setup/copyright.md
sections:
- file: installation-and-setup/copyright/considerations
- file: installation-and-setup/copyright/licenses
- file: installation-and-setup/copyright/recommendations
- caption: Features - caption: Features
chapters: chapters:
- file: basic-features/overview - file: features/overview.md
sections:
- file: features/teachbooks_intro.md
- file: external/deploy-book-workflow/README.md
- file: features/favourites.md
- file: external/template/README.md
- file: features/easy-editing.md
sections:
- file: features/write_online.md
- file: features/release_book_online.md
- file: features/draft-release
- file: features/pull_request_build.md
- file: features/local_server
- file: features/external_toc
sections:
- file: external/Nested-Books/README.md
title: (Deprecated) Share content between books using submodules
- file: features/update_env
- file: features/versioning
- file: features/sphinx_extensions.md
sections:
- file: external/Download-Link-Replacer/README.md
- file: external/Sphinx-launch-buttons/README.md
- file: basic-features/utterances.md
- file: features/h5p.md
sections:
- file: examples/h5p_examples.md
- file: features/plotly.ipynb
- file: external/Sphinx-Grasple-public/README.md
- file: features/HTML_javascript.md
sections:
- file: features/adding_HTML_elements.md
- file: features/creating_basic_HTML_elements.md
- file: features/live_code
sections:
- file: features/widgets.ipynb
- file: features/exercise_checking.ipynb
- file: features/jupyterquiz.ipynb
- file: external/sphinx-iframes/README.md
- external: https://github.com/TeachBooks/Sphinx-Indexed-Definitions/blob/manual/README.md
- file: external/Sphinx-PRIME-applets/README.md
- external: "https://github.com/TeachBooks/sphinx-code-examples/blob/main/MANUAL.ipynb"
- file: features/sphinx-proof.md
- external: "https://github.com/TeachBooks/Sphinx-NB-Execution-Patterns/blob/Manual/README.md"
- file: features/exercise.md
- external: https://github.com/TeachBooks/Sphinx-ref-graph/blob/manual/README.md
- external: https://github.com/TeachBooks/Sphinx-GitHub-Alerts/blob/main/README.md
- external: https://github.com/TeachBooks/Sphinx-Metadata-Figure/blob/main/MANUAL.ipynb
- external: https://github.com/TeachBooks/Sphinx-Gated-Directives/blob/main/MANUAL.md
- external: https://github.com/TeachBooks/TeachBooks-Questions/blob/main/MANUAL.md
- external: https://github.com/TeachBooks/TeachBooks-Fetch/blob/main/MANUAL.md
- file: features/visuals.md
sections:
- external: https://github.com/TeachBooks/Sphinx-Accessibility/blob/manual/README.md
- file: external/Sphinx-Image-Inverter/README.md
- file: external/JupyterBook-Patches/README.md
- file: external/Sphinx-TUDelft-theme/README.md
- file: external/teachbooks-sphinx-tippy/README.md
- file: features/apa
- file: external/Sphinx-Named-Colors/README.md
- external: https://github.com/TeachBooks/Sphinx-Dropdown-Toggle/blob/main/MANUAL.md
- external: https://github.com/TeachBooks/Sphinx-Sticky-Margin/blob/main/MANUAL.md
- file: features/students
sections:
- file: external/annotater/README.md
- file: basic-features/hypothesis.md
- caption: Original Jupyter Book v1 and Sphinx Features
chapters:
- file: basic-features/overview.md
sections: sections:
- file: basic-features/jupyterbook.md - file: basic-features/jupyterbook.md
- file: basic-features/figures.md - file: basic-features/figures.md
@ -35,50 +118,35 @@ parts:
- file: basic-features/References.md - file: basic-features/References.md
- file: basic-features/code.md - file: basic-features/code.md
- file: basic-features/Code_block_figures - file: basic-features/Code_block_figures
- file: basic-features/badges.md
- file: basic-features/banner - file: basic-features/banner
title: Banner or Announcement title: Banner or Announcement
- file: basic-features/hypothesis.md
- file: basic-features/utterances.md
- file: features/overview.md
sections:
- file: external/TeachBooks/README.md
- file: external/deploy-book-workflow/README.md
- file: external/Nested-Books/README.md
- file: external/Download-Link-Replacer/README.md
- file: external/Sphinx-Image-Inverter/README.md
- file: external/JupyterBook-Patches/README.md
- file: features/interactive_element.ipynb
sections:
- file: features/grasple.md
- file: features/h5p.md
- file: features/HTML_javascript.md
sections:
- file: features/adding_HTML_elements.md
- file: features/creating_basic_HTML_elements.md
- file: features/live_code
sections:
- file: features/widgets.ipynb
- file: features/exercise_checking.ipynb
- caption: Examples - caption: Examples
chapters: chapters:
- file: examples/overview.md - file: examples/overview.md
- file: examples/book_structure.md sections:
- file: examples/h5p_examples.md - file: examples/book_structure.md
- file: examples/live_code.md - file: examples/live_code.md
- file: examples/example_gumbel.ipynb - file: examples/example_gumbel.ipynb
- file: examples/theory_questions.md - file: examples/theory_questions.md
- file: examples/example_quiz_interactive.ipynb - file: examples/example_quiz_interactive.ipynb
- file: examples/coding_theory_widgets.ipynb - file: examples/coding_theory_widgets.ipynb
- file: examples/parametric_questions.ipynb - file: examples/parametric_questions.ipynb
- caption: Editing tools - caption: Editing Tools
chapters: chapters:
- file: tools/figmaker - file: tools/figmaker
- file: helper_code/intro.md - file: helper_code/intro.md
sections: sections:
- file: external/latex-to-markdown-conversion/README.md - file: helper_code/converter.md
- file: helper_code/move_images.md
- file: external/Useful_python_code/snippit.ipynb - file: external/Useful_python_code/snippit.ipynb
- file: external/Useful_python_code/extensionfildownloadreturn.ipynb - file: external/Useful_python_code/extensionfildownloadreturn.ipynb
- file: external/Useful_python_code/figshrinker.ipynb - file: external/Useful_python_code/figshrinker.ipynb
- caption: Miscellaneous
chapters:
- file: references.md
- file: credits
- file: changelog
- file: contact

View file

@ -0,0 +1,178 @@
# Badges, Buttons & Icons
<a href="https://jupyterbook.org/v1/"><img style="display:inline-block; height:1.5em; width:auto; transform:translate(0, -0.15em)" src="../images/logo-wide.svg" alt="Jupyter book v1"></a> provides a range of features which are visually appealing and functional. These elements can enhance the interactivity and visual design of your book, offering additional information or links in a compact and visually engaging way. The badges, buttons and icons are made available through Sphinx and they themselves wrote a [documentation](https://sphinx-design.readthedocs.io/en/latest/badges_buttons.html) about it.
(my_ref)=
## Badges
Badges are small visual indicators often used to convey concise or important information. They can be very useful for categorising or tagging content for the reader like has been done for the subchapters under the [features](../features/overview.md) chapter of this manual.
There are three types of badges: plain, link and reference (for cross references within book) which are fully customizable and can simply be added with Markdown syntax:
| Type | Badge | Code Syntax |
|--------|----------------------------------------------------------|------------------------------------------------------------------------|
| Plain | {bdg-primary}`plain_text` | ``` {bdg-primary}`plain_text` ```
| Link | {bdg-link-primary}`https://teachbooks.io/` | ``` {bdg-link-primary}`https://teachbooks.io/` ``` |
| Hidden Link | {bdg-link-primary}`TeachBooks <https://https://teachbooks.io/>` | ``` {bdg-link-primary}`TeachBooks <https://https://teachbooks.io/> ` ``` |
| Reference | {bdg-ref-primary}`my_ref` | ``` {bdg-ref-primary}`my_ref` ``` |
Here's an overview of all the available colours:
| Full Colour | Code Syntax | Colour Outline | Code Syntax |
|-------------------------------|----------------------------------|-------------------------------|---------------------------------------|
| {bdg}`my_text` | ``` {bdg}`my_text` ``` | | |
| {bdg-primary}`my_text` | ``` {bdg-primary}`my_text` ``` | {bdg-primary-line}`my_text` | ``` {bdg-primary-line}`my_text` ``` |
| {bdg-secondary}`my_text` | ``` {bdg-secondary}`my_text` ``` | {bdg-secondary-line}`my_text` | ``` {bdg-secondary-line}`my_text` ``` |
| {bdg-success}`my_text` | ``` {bdg-success}`my_text` ``` | {bdg-success-line}`my_text` | ``` {bdg-success-line}`my_text` ``` |
| {bdg-info}`my_text` | ``` {bdg-info}`my_text` ``` | {bdg-info-line}`my_text` | ``` {bdg-info-line}`my_text` ``` |
| {bdg-warning}`my_text` | ``` {bdg-warning}`my_text` ``` | {bdg-warning-line}`my_text` | ``` {bdg-warning-line}`my_text` ``` |
| {bdg-danger}`my_text` | ``` {bdg-danger}`my_text` ``` | {bdg-danger-line}`my_text` | ``` {bdg-danger-line}`my_text` ``` |
| {bdg-light}`my_text` | ``` {bdg-light}`my_text` ``` | {bdg-light-line}`my_text` | ``` {bdg-light-line}`my_text` ``` |
| {bdg-muted}`my_text` | ``` {bdg-muted}`my_text` ``` | {bdg-muted-line}`my_text` | ``` {bdg-muted-line}`my_text` ``` |
| {bdg-dark}`my_text` | ``` {bdg-dark}`my_text` ``` | {bdg-dark-line}`my_text` | ``` {bdg-dark-line}`my_text` ``` |
| {bdg-white}`my_text` | ``` {bdg-white}`my_text` ``` | {bdg-white-line}`my_text` | ``` {bdg-white-line}`my_text` ``` |
| {bdg-black}`my_text` | ``` {bdg-black}`my_text` ``` | {bdg-black-line}`my_text` | ``` {bdg-black-line}`my_text` ``` |
## Buttons
Buttons provide a way to create clickable elements that are more attractive than links, for example, to link to key sections of your book such as downloads or external resources. Jupyter-Book v1 supports buttons using Markdown making them highly customizable. It is possible to link to external websites as well as chapters within your book. To link to an external page, use `{button-link}`. `{button-ref}` must be used when linking to a part within your book.
The basic code syntax for creating a button is as follows:
```{button-link} https://teachbooks.io
:color: primary
```
```
```{button-link} https://teachbooks.io
:color: primary
```
```
[](../features/overview.md)
```{button-ref} feature_overview
:color: secondary
```
```
```{button-ref} feature_overview
:color: secondary
```
```
Buttons can be customized in markdown in a similar way as figures. You can experiment with these styles to create buttons that align with your book's theme. Here are the set of parameters which can be customized:
| Parameter | Options | Functionality |
|-------------------------------|----------------------------------|-------------------------------|
| color | primary, secondary, success, danger, warning, info, light, dark, muted | Set the color of the button (background and font)|
| outline | / | white button, coloured outline|
| align | left, right, center | Align the button on the page |
| expand | / | Expand to fit parent width |
| click-parent | / | Make parent container also clickable |
| tooltip | / | Add tooltip on hover |
| shadow | / | Add shadow CSS |
| class | / | Additional CSS classes |
Finally here are some examples:
```{button-link} https://teachbooks.io
:color: warning
:shadow:
TeachBooks
```
```
```{button-link} https://teachbooks.io
:color: warning
:shadow:
TeachBooks
```
```
```{button-link} https://teachbooks.io
:color: success
:expand:
TeachBooks
```
```
```{button-link} https://teachbooks.io
:color: success
:expand:
TeachBooks
```
```
## Icons
Icons can be included to visually represent actions or categories. They can take many shapes, such as an image or button inserted in-line within a text paragraph. Icons can be integrated using HTML syntax.
To add an icon, use the following syntax:
**1. Image Icons**
Let's have a look at the first sentence of this chapter again: <a href="https://jupyterbook.org/v1/"><img style="display:inline-block; height:1.5em; width:auto; transform:translate(0, -0.15em)" src="../images/logo-wide.svg" alt="Jupyter book v1"></a> provides a range of features which are visually appealing and functional.
Here the Jupyter-book logo was inserted for a more professional look. It's including a link `href` and and image saved as `../images/logo-wide.svg`
```
<a href="https://jupyterbook.org/v1/"><img style="display:inline-block; height:1.5em; width:auto; transform:translate(0, -0.15em)" src="../images/logo-wide.svg" alt="Jupyter book v1"></a> provides a range of features which are visually appealing and functional.
```
**2. SVG Icons**
A library of SVG icons can be found in the [Bootstrap](https://icons.getbootstrap.com/#icons) library.
By scrolling through the available icons in the library you can find just about any icon. Once selected, you need to copy the SVG of the icon to include it in the `path` in the HTML code. This paragraph includes a globe: <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"/> . As you can see in the code cell below, you'll need to specify the width, height as well as fill colour.
```
<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>
```
If you want to keep your files clean, you won't like these svgs. However, your icons is probably available in one of the following icon providers.
**3. GitHub Octicon Icons**
[GitHub icons](https://primer.style/foundations/icons) like {octicon}`mark-github` can be added using the syntax:
```{octicon}`mark-github` ```
Where `mark-github` can be replaced by any of the name of the icon provided [here](https://primer.style/foundations/icons)
By default the icon will be of height 1em (i.e. the height of the font).
**4. Material Design Icons**
The use of Material Design Icons like {material-regular}`settings` is explained [here](https://sphinx-design.readthedocs.io/en/latest/badges_buttons.html#material-design-icons)
**5. FontAwesome Icons**
The use of FontAwesome Icons like {fas}`spinner` is explained [here](https://sphinx-design.readthedocs.io/en/latest/badges_buttons.html#fontawesome-icons). There's no need to add the FontAwesome CSS.
**6. Combining Buttons and Icons**
Icons can also be included within buttons using the icon font for a modern, professional look. The code can also be downloaded in the [Bootstrap](https://icons.getbootstrap.com/#icons) library.
This button includes a download icon alongside some text: "Download it!".
Loving this book? <a href="https://jupyterbook.org" class="btn btn-primary">
<i class="fas fa-download"></i> Download it!
</a>
```
Loving this book? <a href="https://jupyterbook.org" class="btn btn-primary">
<i class="fas fa-download"></i> Download it!
</a>
```

View file

@ -1,6 +1,6 @@
# Banners and Announcements # Banners and Announcements
A banner can be added to the top of a Jupyter Book: A banner can be added to the top of a TeachBook:
```{figure} banner_mude.png ```{figure} banner_mude.png
--- ---
@ -10,7 +10,7 @@ name: banner_mude
Example of a banner in the MUDE book. Example of a banner in the MUDE book.
``` ```
This is a commonly used feature, described in the [Jupyter Book manual here](https://jupyterbook.org/en/stable/web/announcements.html). However, note that if you are using the Sphinx-Thebe interactive Python feature, or other features that customize the top part of a Jupyter Book website (for example, the download page buttons), the banner does not always work. In this case, the banner should be specified using the `announcement` option in the `html_theme_options` setting in the `_config.yml` file: This is a commonly used feature, described in the [Jupyter Book v1 manual here](https://jupyterbook.org/v1/web/announcements.html). However, note that if you are using the Sphinx-Thebe interactive Python feature, or other features that customize the top part of a TeachBook (for example, the download page buttons), the banner does not always work. In this case, the banner should be specified using the `announcement` option in the `html_theme_options` setting in the `_config.yml` file:
``` ```
sphinx: sphinx:

View file

@ -2,13 +2,13 @@
There are two main ways to include code: directly within a Markdown file or within a Jupyter notebook. More methods are available, but we don't include them here. The first option is great for including simple calculations, or generating simple figures when an image file is not practical. *More will be added later.* There are two main ways to include code: directly within a Markdown file or within a Jupyter notebook. More methods are available, but we don't include them here. The first option is great for including simple calculations, or generating simple figures when an image file is not practical. *More will be added later.*
Note that if you are using a `*.ipynb` file or including a code snippet in a `*.md` file, including a blank line between the text and the closing three tick marks will generate an empty code box of one line in the Jupyter Book. Note that if you are using a `*.ipynb` file or including a code snippet in a `*.md` file, including a blank line between the text and the closing three tick marks will generate an empty code box of one line in the TeachBook.
When making notebooks for the Book, you might want to hide certain cells from the reader. For example, when including a simple figure generated from code or making a JupyterQuiz, we have to execute a code cell that generates the quiz. This code cell is ugly and distracting, so we do not want to render this in the final book. When making notebooks for the TeachBook, you might want to hide certain cells from the reader. For example, when including a simple figure generated from code or making a JupyterQuiz, we have to execute a code cell that generates the quiz. This code cell is ugly and distracting, so we do not want to render this in the final book.
We can change how the compiler treats notebook cells by using cell tags. You can find a detailed explanation on cell tags [here](https://jupyterbook.org/en/stable/interactive/hiding.html?highlight=cell%20tag). Specifically, have a look at the sections on *hiding* cell inputs and *removing* cell inputs. We can change how the compiler treats notebook cells by using cell tags. You can find a detailed explanation on cell tags [here](https://jupyterbook.org/v1/interactive/hiding.html?highlight=cell%20tag). Specifically, have a look at the sections on *hiding* cell inputs and *removing* cell inputs.
The workflow of editing cell tags depends on your editor. If you're using Jupyter Lab, you can find instructions [here](https://jupyterbook.org/en/stable/content/metadata.html#jupyter-cell-tags). The workflow of editing cell tags depends on your editor. If you're using Jupyter Lab, you can find instructions [here](https://jupyterbook.org/v1/content/metadata.html#jupyter-cell-tags).
For example, the following tag is used to convert the code input into either a drop-down (`hide-input`) or make it invisible (replace `hide-input` with `remove-input`). Replace `input` with `output` to do the same with the cell output: For example, the following tag is used to convert the code input into either a drop-down (`hide-input`) or make it invisible (replace `hide-input` with `remove-input`). Replace `input` with `output` to do the same with the cell output:
``` ```

View file

@ -29,9 +29,11 @@ $$ F = m \cdot a = 10 \cdot 9.81 = 98 \text{N}$$
To number the equations and refer in text, you need to provide a label to the equation. Just put the label between brackets and place it after the last \$\$, like this: To number the equations and refer in text, you need to provide a label to the equation. Just put the label between brackets and place it after the last \$\$, like this:
$$ ```md
F = m \cdot a $$
$$ (newtons_second_law) F = m \cdot a
$$ (newtons_second_law)
```
Resulting in: Resulting in:
@ -43,5 +45,5 @@ Equation {eq}`show_newtons_second_law` can now be referred to.
> **Note** > **Note**
> >
> The Jupyter Book uses MathJax to display equations, which provides some LaTeX-like functionality, but not all! For example, the Euro symbol is missing, and packages like `siunitx` are not available (hint, use `\textrm{}` and `\textrm{}`). When something is not working, it's useful to search for MathJax-specific solutions (hint, include "mathjax" in your Google search). > The TeachBook uses MathJax to display equations, which provides some LaTeX-like functionality, but not all! For example, the Euro symbol is missing, and packages like `siunitx` are not available (hint, use `\textrm{}` and `\textrm{}`). When something is not working, it's useful to search for MathJax-specific solutions (hint, include "mathjax" in your Google search).
> >

View file

@ -2,29 +2,29 @@
To add a figure, just copy the figure to the correct directory. Then, in your markdown file, include the figure as follows: To add a figure, just copy the figure to the correct directory. Then, in your markdown file, include the figure as follows:
```` ````md
```{figure} <figurename>.png/.jpg ```{figure} <figurename>.png/.jpg
--- ---
height/width: <height or width in pixels> height/width: <height or width in pixels>
name: <name of the figure> name: <name of the figure>
align: left / center / right align: left / center / right
figclass: left blank or "margin" figclass: left blank or "margin"
--- ---
<Figure caption> <Figure caption>
``` ```
```` ````
For example: For example:
```` ````md
```{figure} ../images/TUDelft_logo_rgb.png ```{figure} ../images/TUDelft_logo_rgb.png
--- ---
width: 70% width: 70%
name: demoexample1 name: demoexample1
align: center align: center
--- ---
example 1: width (70%) as percentage, align center example 1: width (70%) as percentage, align center
``` ```
```` ````
provides this output, which looks nice. provides this output, which looks nice.
@ -39,19 +39,19 @@ example 1: width (70%) as percentage, align center
Using the name label, you can refer to the figure as done with {numref}`Figure {number} <demoexample1>`. Using the name label, you can refer to the figure as done with {numref}`Figure {number} <demoexample1>`.
You can find more documentation on including figures [here](https://jupyterbook.org/en/stable/content/figures.html).<br> You can find more documentation on including figures [here](https://jupyterbook.org/v1/content/figures.html).<br>
There are many settings, for instance aligning right: There are many settings, for instance aligning right:
```` ````md
```{figure} ../images/TUDelft_logo_rgb.png ```{figure} ../images/TUDelft_logo_rgb.png
--- ---
width: 50% width: 50%
name: demoexample2 name: demoexample2
align: right align: right
--- ---
example 2: width (50%) as percentage, align right example 2: width (50%) as percentage, align right
``` ```
```` ````
with the result: with the result:
@ -67,22 +67,22 @@ example 2: width (50%) as percentage, align right
Aligning right can come with the potential downside (not always wanted) that text is wrapped around the figure. To avoid this one can use `<div>` elements, both before and after the text (make sure to leave an empty line after the `<div>`!): Aligning right can come with the potential downside (not always wanted) that text is wrapped around the figure. To avoid this one can use `<div>` elements, both before and after the text (make sure to leave an empty line after the `<div>`!):
```` ````html
<div style="clear: both;"> <div style="clear: both;">
and the output and the output
</div> </div>
<div style="clear: both;"> <div style="clear: both;">
```{figure} ../images/TUDelft_logo_rgb.png ```{figure} ../images/TUDelft_logo_rgb.png
--- ---
width: 50% width: 50%
name: demoexample3 name: demoexample3
align: right align: right
--- ---
example 3: width (50%) as percentage, align right with additional div style example 3: width (50%) as percentage, align right with additional div style
``` ```
</div> </div>
```` ````
<div style="clear: both;"> <div style="clear: both;">
@ -108,16 +108,16 @@ including `figclass: margin` sets the figure to the column at the right.
</div> </div>
```` ````md
```{figure} demo97/demo97_figure1.jpg ```{figure} demo97/demo97_figure1.jpg
--- ---
figclass: margin figclass: margin
width: 50% width: 50%
name: demoexample2 name: demoexample2
--- ---
example 2:including figclass: margin example 2:including figclass: margin
``` ```
```` ````
<br> <br>

View file

@ -1,6 +1,15 @@
````{margin}
```{admonition} User types
:class: tip
This section is useful for user type 1-5.
```
{bdg-warning}`Javascript overlay` {bdg-success}`Chrome Extension`
````
# Making comments on the website: Hypothesis # Making comments on the website: Hypothesis
Hypothesis is a third-party application that allows anyone to make publicly visible comments on a website (once you create a free account). This section explains how to use and install the extension. Hypothesis is a third-party application that allows anyone to make publicly visible comments on a website (once you create a free account). This section explains how to use and install the extension. As this tool requires an account with a third-party, we advise to use our [local-annotator](../external/annotater/README.md) with similar capabilities but which store annotations locally. By default Hypothesis stores annotations publicly, which might confuse other students.
```{admonition} Be careful of changing website URL's! ```{admonition} Be careful of changing website URL's!
:class: warning :class: warning
@ -20,28 +29,9 @@ html:
``` ```
## Using Hypothesis ## Using Hypothesis
In this case it is easier to learn by doing! Hypothesis has been enabled for this book, but only in the _draft_ version. Once on a hypothesis version of this page, look at the top right corner: you will see three icons, an arrow, an eye and a note-pad. Clicking on the arrow will open the extension and allow you to view the annotations. Create an account and log in if you would like to reply or make your own annotations. You can also highlight text, but this is not publicly visible, it is only for your own reference.
````{admonition} How to View the Draft Site Note that the annotations are only visible for the page that you are currently viewing. You can see all the Annotations on a website by opening the "Public" menu at the top of the dialog pane, selecting "Public" again in the drop-down, then "View group activity." Make sure you type in the URL to search (e.g., `teachbooks.io/manual`).
:class: tip, dropdown
You can access the draft version by adding `draft/` at the end of the main book (but before the current page). For example:
```
https://teachbooks.tudelft.nl/jupyter-book-manual/draft/basic-features/hypothesis.html
```
You can find out more about the draft and publish feature on {ref}`this page <publish_students>`.
````
Once on the draft version of this page, look at the top right corner: you will see three icons, an arrow, an eye and a note-pad. Clicking on the arrow will open the extension and allow you to view the annotations. Create an account and log in if you would like to reply or make your own annotations. You can also highlight text, but this is not publicly visible, it is only for your own reference.
Note that the annotations are only visible for the page that you are currently viewing. You can see all the Annotations on a website by opening the "Public" menu at the top of the dialog pane, selecting "Public" again in the drop-down, then "View group activity." Make sure you type in the URL to search (e.g., `teachbooks.tudelft.nl/jupyter-book-manual`).
```{admonition} Tips
:class: tip
- use the {ref}`remove_from_publish` feature to enable Hypothesis in the draft book only
```
## Student-controller with browser extension ## Student-controller with browser extension
As an alternative to activating this for everyone, you can also advise your students to use the [hypothesis browser extension](https://web.hypothes.is/start/). In this way, students are not distracted by potential unnecessary public annotation and comments by fellow students and teachers. As an alternative to activating this for everyone, you can also advise your students to use the [hypothesis browser extension](https://web.hypothes.is/start/). In this way, students are not distracted by potential unnecessary public annotation and comments by fellow students and teachers.

View file

@ -1,18 +1,17 @@
# Anatomy of a Jupyter Book # Anatomy of a TeachBook
To build a Jupyter Book, you need three things: To build a TeachBook, you need three things:
1. A configuration file 1. A configuration file
2. A table of contents 2. A table of contents
3. Content 3. Content
## The configuration file ## The configuration file
The configuration file of Jupyter Books is named `_config.yml`. It mainly contains settings that apply when building the book. Here is a basic example of a configuration file, taken from this book: The configuration file of TeachBooks is named `_config.yml`. It mainly contains settings that apply when building the book. Here is a basic example of a configuration file, taken from this book:
```yaml ```yaml
title: Jupyter Book Manual title: TeachBook Manual
author: Interactive Textbooks CiTG author: TeachBooks development team
logo: images/TUDelft_logo_rgb.png
copyright: CC BY-NC copyright: CC BY-NC
execute: execute:
@ -23,7 +22,7 @@ sphinx:
- sphinx_inline_tabs - sphinx_inline_tabs
``` ```
Technically speaking, a `_config.yml` file is not required to build a Jupyter Book. If you don't make one, `jupyter book` will just use all default values. However, you should make a configuration file which includes at least the following settings: Technically speaking, a `_config.yml` file is not required to build a TeachBook. If you don't make one, your TeachBook will just use all default values. However, you should make a configuration file which includes at least the following settings:
- `title`: the title of your book, which appears on the top-left of every page, under the logo. - `title`: the title of your book, which appears on the top-left of every page, under the logo.
- `author`: authors of the book, which appears in the bottom margin of every page. - `author`: authors of the book, which appears in the bottom margin of every page.
@ -32,7 +31,7 @@ Technically speaking, a `_config.yml` file is not required to build a Jupyter Bo
In addition, the following option can also be useful: In addition, the following option can also be useful:
- `execute_notebooks`: *turn on/off* the execution of Jupyter Notebooks during the build process. *On* by default. If you perform heavy computations in your notebook (machine learning, FEM models, et cetera), you might be better off running the notebooks on a more powerful machine as opposed to the CI/CD server. To turn it off, specify the value `'off'`. You can also exclude specific notebooks by creating exclude patterns in the filenames. For more info, see the [Jupyter Book documentation](https://jupyterbook.org/en/stable/content/execute.html#exclude-files-from-execution). - `execute_notebooks`: *turn on/off* the execution of Jupyter Notebooks during the build process. *On* by default. If you perform heavy computations in your notebook (machine learning, FEM models, et cetera), you might be better off running the notebooks on a more powerful machine as opposed to the CI/CD server. To turn it off, specify the value `'off'`. You can also exclude specific notebooks by creating exclude patterns in the filenames. For more info, see the [Jupyter Book v1 documentation](https://jupyterbook.org/v1/content/execute.html#exclude-files-from-execution).
```{warning} ```{warning}
@ -116,6 +115,9 @@ parts:
- file: section_1_2 - file: section_1_2
``` ```
#### Exercise
Check out [this exercise](https://teachbooks.io/template/syntax_exercises/007.html) in the TeachBooks template to see for yourself how to structure files with titles!
### Including a chapter twice ### Including a chapter twice
In some cases you want to include the same chapter in two different places in your book (for instance parts). However, you do not want to make the same adjustments in different files, the content should only 'live' in one place. The solution is to use `include`: In some cases you want to include the same chapter in two different places in your book (for instance parts). However, you do not want to make the same adjustments in different files, the content should only 'live' in one place. The solution is to use `include`:

View file

@ -1,8 +1,10 @@
# Basic Jupyter Book Features ````{margin}
```{admonition} User types ```{admonition} User types
:class: tip :class: tip
This section is useful for [user type 3-5](../installation-and-setup/user_types.md). This section is useful for [user type 3-5](../installation-and-setup/user_types.md).
``` ```
````
These pages will provide a list of some common, basic book features which are all available in the original <a href="https://jupyterbook.org/"><img style="display:inline-block; height:1.5em; width:auto; transform:translate(0, -0.15em)" src="../images/logo-wide.svg" alt="Jupyter book"></a> package. However, this page includes also best-practices. # Overview
These pages itemize some of the more common, basic book features which are all available in the original <a href="https://jupyterbook.org/v1/"><img style="display:inline-block; height:1.5em; width:auto; transform:translate(0, -0.15em)" src="../images/logo-wide.svg" alt="Jupyter book v1"></a> package, without requiring any additional software. They are, of course, selected with teachers and teaching applications in mind. On each page best-practices are illustrated.

View file

@ -1,11 +1,24 @@
````{margin}
```{admonition} User types
:class: tip
This section is useful for user type 3-5.
```
{bdg-white}`GitHub app and Javascript script`
````
# Discussions in your book: Utterances # Discussions in your book: Utterances
[Utterances 🔮](https://utteranc.es/) is a lightweight open-source widget which allows you, your colleages and your students to discuss stuff in a blog post in your book. It is build on GitHub issues, so requires a GitHub repository, although the book can be hosted anywhere (so also on GitLab). [Utterances 🔮](https://utteranc.es/) is a lightweight open-source widget which allows you, your colleages and your students to discuss stuff in a blog post in your book. It is build on GitHub issues, so requires a GitHub repository, although the book can be hosted anywhere (so also on GitLab).
The [utterances website](https://utteranc.es/) clearly explains the required steps. One thing to take care of is how you want to do the issue-mapping with respect to multiple deployed versions (draft version, student version, archived versions): The [utterances website](https://utteranc.es/) clearly explains the required steps. Three things to take care of are:
1. With the current setup of the [deploy book workflow on GitHub](../external/deploy-book-workflow/README.md), this widget only works on the primary branch.
- `Issue title contains page pathname`/`Issue title contains page URL` is useful if you want to isolate the comments on each of the branches. 2. The baseurl is the root url of your book (the part of the url that doesn't change when opening different pages of the book). It needs to be defined in the `_config.yml` so that utteranc.es knows where to redirect users while interacting with the widget:
- `Issue title contains page title` is useful if you want to show the all comments on all different branches. ```
html:
baseurl : "https://<user/organization>.github.io/<repo>" #Replace this with your own URL
```
3. It's advised to use `Issue title contains page pathname` as an option on utteranc.es, because that url is most stable.
The given script can be added anywhere in your book, just copy the html-script into your `.md`-file or a markdown cell in your `.ipynb`-file. The blogpost is not visible when you do a local build of the book, build it online or use a local python server as shown in {ref}`setup-local-server`. The given script can be added anywhere in your book, just copy the html-script into your `.md`-file or a markdown cell in your `.ipynb`-file. The blogpost is not visible when you do a local build of the book, build it online or use a local python server as shown in {ref}`setup-local-server`.
@ -17,9 +30,9 @@ Below you see an example of this feature!
## Example discussion ## Example discussion
<script src="https://utteranc.es/client.js" <script src="https://utteranc.es/client.js"
repo="TeachBooks/utterances_manual" repo="TeachBooks/manual"
issue-term="pathname" issue-term="pathname"
theme="github-light" theme="github-light"
crossorigin="anonymous" crossorigin="anonymous"
async> async>
</script> </script>

View file

@ -13,9 +13,9 @@ kernelspec:
# Videos # Videos
Videos uploaded to YouTube can be embedded in the Jupyter Book. There are several ways to do so: Videos uploaded to YouTube can be embedded in the TeachBook. There are several ways to do so:
**1.** To embed them in the Jupyter Book, first obtain the embedding link of the video. In order to do so, go to the *YouTube* page of the video (so not the Brightspace page), then click *share* in the description box. There should be a button *embed*, click that. Copy the HTML code that appears in the panel. Then, to embed the video, use the following **1.** To embed them in the TeachBook, first obtain the embedding link of the video. In order to do so, go to the *YouTube* page of the video (so not the Brightspace page), then click *share* in the description box. There should be a button *embed*, click that. Copy the HTML code that appears in the panel. Then, to embed the video, use the following
``` ```
<iframe <iframe
@ -28,46 +28,21 @@ Videos uploaded to YouTube can be embedded in the Jupyter Book. There are severa
></iframe> ></iframe>
``` ```
This HTML-iframe code can be directly included in the markdown file (no need to create a code-cell). The src can be used in combination with [](../external/sphinx-iframes/README.md):
Resulting in the video below:<br> ````
<iframe ```{video} https://www.youtube.com/embed/UCb-b82tzLo?
width="560"
height="315"
src="https://www.youtube.com/embed/UCb-b82tzLo?"
align="center"
frameborder="0"
allowfullscreen
></iframe>
**2.** The above solution can be 'upgraded', setting a scaling of the video with the width of the screen and align it to the center:
``` ```
<div style="display: flex; justify-content: center;"> ````
<div style="position: relative; width: 70%; height: 0; padding-bottom: 56.25%;">
<iframe
src="https://www.youtube.com/embed/YDBr1Lof_mI?si=RhTC31XHv-6gL4Kl"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>
</div>
</div>
```
With the resulting output:
<div style="display: flex; justify-content: center;">
<div style="position: relative; width: 70%; height: 0; padding-bottom: 56.25%;">
<iframe
src="https://www.youtube.com/embed/YDBr1Lof_mI?si=RhTC31XHv-6gL4Kl"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>
</div>
</div>
**3.** Another option is to use a python coding cell. As this code cell should be run when the book is made, you have to change the config file and set `execute_notebooks:` to force. This comes with the downside that it takes considerable more time to deploy the book. Or the HTML-iframe code can be directly included in the markdown file.
Resulting in the video below:
```{video} https://www.youtube.com/embed/UCb-b82tzLo?
```
**2.** Another option is to use a python coding cell. As this code cell should be run when the book is made, you have to change the config file and set `execute_notebooks:` to force. This comes with the downside that it takes considerable more time to deploy the book.
```` ````
```{code-cell} ipython3 ```{code-cell} ipython3
:tags: [remove-input] :tags: [remove-input]

7
book/changelog.md Normal file
View file

@ -0,0 +1,7 @@
# Changelog
## [v1.1.0](https://github.com/TeachBooks/manual/releases/tag/v1.1.0)
Various updates with new and updates tooling, exercises and documentation. The full changelog is available here: https://github.com/TeachBooks/manual/releases/tag/v1.1.0
## [v1.0.0](https://github.com/TeachBooks/manual/releases/tag/V1.0.0)
First release

15
book/contact.md Normal file
View file

@ -0,0 +1,15 @@
# Contact
## Contact
If you encounter any issues report it by clicking {octicon}`mark-github` on the top right corner of this page.
If you have questions, contact the editors at info@teachbooks.io.
## Contribute
This book will continue to develop, so feel free to contribute https://github.com/TeachBooks/manual! You can do so directly by forking this repository and creating a pull request.
The released book can be found on on https://teachbooks.io/manual. This page shows the built book of the `release` branch. All branches will also be visible online, as pointed to in the actions summaries: https://github.com/TeachBooks/mirror_teachbook_manual/actions
Some parts of this book are taken from other sources in the form of submodules (linked in the folder [book/external](https://github.com/TeachBooks/manual/tree/release/book/external)). To contribute to those pages, contribute to the source repository directly with a fork and merge/pull request. If you intent to clone this book including its submodules, clone using: `git clone --recurse-submodules git@github.com:TeachBooks/manual.git`

70
book/credits.md Normal file
View file

@ -0,0 +1,70 @@
(credits)=
# Credits and License
You can refer to this book in its entirety as:
> TeachBooks Development Team (2024), _TeachBooks Manual_. https://github.com/TeachBooks/manual. Retreived [Month, Year]. CC BY 4.0.
This book is registered on Zenodo too: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.15100848.svg)](https://doi.org/10.5281/zenodo.15100848)
The introduction, structure and decisions on content is done under direction of the TeachBooks Development Team. The content is written by many contributors, of which there are many.
We anticipate that the content of this book will change continuously. Therefore, if you'd like to refer to a specific chapter, we recommend using the source code directly with the citation that refers to the GitHub repository and lists the date and name of the file. Although content will be added over time, chapter titles and URL's in this book are expected to remain relatively static. You can refer to individual chapters or pages within this book as:
> `<Title of Chapter or Page>`. In _TeachBooks Manual_. https://github.com/TeachBooks/manual (chapter `./book/intro/`, retrieved [`<date>`]).
Better yet, include a link to the specific commit! _If you know what this means, we assume you know how to do it._
## Acknowledgements
This book has many contributors, many of whom are also key members of the TeachBooks Team:
- Tom van Woudenberg
- Robert Lanzafame
- Freek Pols
- Dennis den Ouden-van der Horst
- Julie Kirsch
- Caspar Jungbacker
All from Delft University of Technology.
This doesn't include small contributions from various people from within and outside Delft University of Technology.
A better way to see the contributions is to check the [Contributors Page](https://github.com/TeachBooks/manual/graphs/contributors) of the GitHub repository.
A big "thank you" is also due to the various colleagues and teaching assistants that have worked as part of the [TeachBooks](https://teachbooks.io/) Team for developing tools and providing support to improve this book, as well as the faculty of Civil Engineering and Geosciences and the Library at Delft University of Technology for significant financial support. The faculties of of Applied Sciences and Electrical Engineering, Mathematics and Computer Science have also provided support in the form of contributions from employees and student assistants..
## License
This manual is [CC BY 4.0 licensed](https://creativecommons.org/licenses/by/4.0/) allowing you to share and adapt the material, as long as the source is named. External resources that are reused in this manual are listed below.
(external_resources)=
### External resources
Parts of this book are taken from other external resources and reused in various ways. If an author is not listed on a particular page, it is by the Authors, except as follows:
The following pages are included directly from an external resource and is not edited by the TeachBooks Team:
- page [](./external/annotater/README.md). Original content licensed under BSD 3-Clause license.
- Page [](./external/deploy-book-workflow/README.md). Original content licensed under BSD 3-Clause license.
- Page [](./external/Download-Link-Replacer/README.md). Original content licensed under BSD 3-Clause license.
- Page [](./external/JupyterBook-Patches/README.md). Original content licensed under BSD 3-Clause license.
- Page [](./external/Nested-Books/README.md). Original content licensed under CC BY 4.0 license.
- Page [](./external/Sphinx-Grasple-public/README.md). Original content licensed under MIT license.
- Page [](./external/Sphinx-Image-Inverter/README.md). Original content licensed under BSD 3-Clause license.
- Page [](./external/Sphinx-launch-buttons/README.md). Original content licensed under BSD 3-Clause license.
- Page [](./external/Sphinx-TUDelft-theme/README.md). Original content licensed under MIT license.
- Page [](./external/teachbooks-sphinx-tippy/README.md). Original content licensed under MIT license.
- Page [](./external/template/README.md). Original content licensed under CC BY 4.0 license.
- Page [](./external/Sphinx-Named-Colors/README.md). Original content licensed under MIT license.
- Page [](indexed_defintions). Original content licensed under MIT license.
- Page [](interactive_graph_content). Original content licensed under MIT license.
- Pages [](./external/Useful_python_code/extensionfildownloadreturn.ipynb), [](./external/Useful_python_code/figshrinker.ipynb) and [](./external/Useful_python_code/snippit.ipynb). Original content licensed under BSD 3-Clause license.
The following pages contain content written by others, part of has been reused and/or modified by the TeachBooks Team:
- Pages {ref}`copyright` and {ref}`copyright_considerations` include text from {cite:t}`tud_cip_24` that is used in the copyright checklist items. Original content licensed under CC BY.
- Page {ref}`copyright_licenses`: {numref}`Figure %s<fig_license_types>` is included unmodified, along with paraphrased and quoted text (including hyperlinks) from {cite:t}`hall21`. Work is licensed under CC BY.
- Page {ref}`copyright_licenses`: {numref}`Figure %s<fig_license_compatibility>` is included unmodified. Work is provided by Kennisland under a CC0 license. Accessed at [](https://wiki.creativecommons.org/wiki/File:CC_License_Compatibility_Chart.png) on December 17, 2024.
- page [](./features/versioning.md): includes text from {cite:t}`semver` that has been modified. Original content licensed under CC BY 3.0.
- page [](./features/external_toc.md): includes text from {cite:t}`teachbooks_package` that has been modified. Original content licensed under MIT.
- Page [](./features/exercise.md): includes text from {cite:t}`sphinx-exercise` that has been modified. Original content licensed under MIT license.
- Page [](./features/sphinx-proof.md): includes text from {cite:t}`sphinx-proof` that has been modified. Original content licensed under MIT license.

View file

@ -1,7 +1,7 @@
# Well-Structured Book # Well-Structured Book
One thing that students love is having all practical information about a course collected and updated on one page. One thing that students love is having all practical information about a course collected and updated on one page.
No more scrolling through the introduction lecture on Brightspace while veryfing assessment methods on the online studyguide or finding out about the schedule on MyTimetable. As will be shown in the following section, a Jupyter Book can be used to clarify the logistics of a course on top of providing the course material to the students. No more scrolling through the introduction lecture on Brightspace while veryfing assessment methods on the online studyguide or finding out about the schedule on MyTimetable. As will be shown in the following section, a TeachBook can be used to clarify the logistics of a course on top of providing the course material to the students.
The crossover module Data Science and Artifical Intelligence for Engineers, or in short DSAIE, aims to teach powerful data science tools to 2nd master students from the Civil Engineering and Geosciences faculty. In order to do that they use a combination of practical projects and theory provided to the students through their online interactive [book](https://interactivetextbooks.citg.tudelft.nl/dsaie/intro.html). The crossover module Data Science and Artifical Intelligence for Engineers, or in short DSAIE, aims to teach powerful data science tools to 2nd master students from the Civil Engineering and Geosciences faculty. In order to do that they use a combination of practical projects and theory provided to the students through their online interactive [book](https://interactivetextbooks.citg.tudelft.nl/dsaie/intro.html).
@ -16,7 +16,7 @@ DSAIE Overview Page
``` ```
While the left menu shows the first two chapters in the table of contents (Home & Logistics), the right hand side menu shows the sections of the current chapter where an introduction is given on the different units of the course, the responsible lecturers as well as the schedule of lectures and practicals. Additionally, the book layout is explained to the students which can help clarify how to use the interactive sections! While the left menu shows the first two chapters in the table of contents (Home & Logistics), the right hand side menu shows the sections of the current chapter where an introduction is given on the different units of the course, the responsible lecturers as well as the schedule of lectures and practicals. Additionally, the book layout is explained to the students which can help clarify how to use the interactive sections!
The anatomy of a jupyter book is explained more in detail on [this page](../basic-features/jupyterbook.md). In short, you can create structure in your book by having chapters and subschapters defined in the `.toc` file. In each chapter you can organize the content in sections using the `#` syntax which is visible in the menu on the right. The anatomy of a TeachBook is explained more in detail on [this page](../basic-features/jupyterbook.md). In short, you can create structure in your book by having chapters and subschapters defined in the `.toc` file. In each chapter you can organize the content in sections using the `#` syntax which is visible in the menu on the right.
## Tagged content ## Tagged content

View file

@ -6,12 +6,12 @@
"tags": [] "tags": []
}, },
"source": [ "source": [
"# Programming assignment\n", "# Programming assignment with checks\n",
"\n", "\n",
"This page shows how you can recreate the classical Jupyter Notebook assignments that are given in many courses to a Jupyter Book format with live coding. A widget has been implemented to check the answers, of which the data is included in a separate python file. The page automatically loads and a custom download page has been added\n", "This page shows how you can recreate the classical Jupyter Notebook assignments that are given in many courses to a TeachBook format with live coding. A widget has been implemented to check the answers, of which the data is included in a separate python file. The page automatically loads and a custom download page has been added\n",
"\n", "\n",
"```{Note}\n", "```{Note}\n",
"Keep in mind that Jupyter Book sections might not be the best environment for programming assignments you have in mind for your course due to the limitation posed by jupyter book. In fact, in jupyter book, python runs in the browser of the students' laptop. Nothing needs to be installed which can be an advantage but also a disadvantage depending on the learning goals of your course. TeachBooks suggests using it's live coding feature to support the theory in textbooks and not as a replacement for Jupyter Notebook.\n", "Keep in mind that TeachBook sections might not be the best environment for programming assignments you have in mind for your course due to the limitation posed by TeachBook. In fact, in a TeachBook, python runs in the browser of the students' laptop. Nothing needs to be installed which can be an advantage but also a disadvantage depending on the learning goals of your course. TeachBooks suggests using it's live coding feature to support the theory in textbooks and not as a replacement for Jupyter Notebook.\n",
"```\n", "```\n",
"\n", "\n",
"```{custom_download_link} ./example_gumbel_stripped.ipynb\n", "```{custom_download_link} ./example_gumbel_stripped.ipynb\n",

View file

@ -1,14 +1,4 @@
# Types of H5p Quizzes # Examples of H5p Quizzes
This page will show some examples of H5p quizzes built into a variety of TeachBooks to allow the students to test their understanding of the content as they read. H5p quizzes can be used to create a set of Multiple Choice, Drag and Drop, Fill in the blanks, True/False and Image choice questions so the applications are quite versitile and your imagination can be used in creating the questions.
## Getting started with H5p
Some best-practices on the use of H5p:
- To startup your H5p-account, first login to H5p via Brightspace. You can follow instructions as under [https://www.tudelft.nl/teaching-support/educational-tools/h5p](https://www.tudelft.nl/teaching-support/educational-tools/h5p).
- After that, direct login is possible via [tudelft.h5p.com](https://tudelft.h5p.com)
- Place your H5p-elements in a shared folder in H5p.
- Disable the display options "Toolbar Below Content" and "Display author's name to public (anonymous users) (only relevant when content's status is set to Public )" for each
## Dialog cards ## Dialog cards
@ -16,7 +6,7 @@ Dialog cards can be used to ask open questions about the content students are re
**Engineering Systems Optimization** **Engineering Systems Optimization**
A great example of this can be found in the book: Engineering Systems Optimization. [Chapter 4](https://teachbooks.github.io/engineering-systems-optimization/2023/pages/moo_example.html) called Mulit-objective optimization has an in depth sub-chapter which is used to compare the relation between engine power and emissions and how to optimize for both. A great example of this can be found in the book: Engineering Systems Optimization. [Chapter 4](https://teachbooks.io/engineering-systems-optimization/2023/pages/moo_example.html) called Mulit-objective optimization has an in depth sub-chapter which is used to compare the relation between engine power and emissions and how to optimize for both.
```{figure} figures/Live_code.PNG ```{figure} figures/Live_code.PNG
--- ---
@ -28,27 +18,19 @@ Problem Statement
As can be seen on the right-hand-side menu, the sub-chapter includes the problem statement, the elaboration on the model and solution method and finally an exercise for the student. The code in the page is activated by pressing the live code button which will make the code cells editable and executable. Additionally, interactive figures are included into the text with movable sliders to directly see the effect of the changes made. As can be seen on the right-hand-side menu, the sub-chapter includes the problem statement, the elaboration on the model and solution method and finally an exercise for the student. The code in the page is activated by pressing the live code button which will make the code cells editable and executable. Additionally, interactive figures are included into the text with movable sliders to directly see the effect of the changes made.
```{figure} figures/Live_code2.PNG ```{iframe} ../_static/power.html
--- :height: 580px
width: 600 :width: 100%
align: center
---
Interactive Graph
``` ```
The H5p quizzes can shine in the section on questions, discussions and comments. Next to many multiple choice questions (which are discussed later) there are dialog cards which can ask more conceptual and open ended questions. Pressing on the blue button `Turn` will flip around the card and reveal the model answer. The great thing about the integration of both interactive aspects (coding and questions) helps the student to play around with the code and understand the topic from a less theoretical point-of-view. The H5p quizzes can shine in the section on questions, discussions and comments. Next to many multiple choice questions (which are discussed later) there are dialog cards which can ask more conceptual and open ended questions. Pressing on the blue button `Turn` will flip around the card and reveal the model answer. The great thing about the integration of both interactive aspects (coding and questions) helps the student to play around with the code and understand the topic from a less theoretical point-of-view.
```{figure} figures/cards1.PNG ```{h5p} https://tudelft.h5p.com/content/1292260184374358717/embed
---
width: 700
align: center
---
Dialoge Card
``` ```
**Try it out!** ```{h5p} https://tudelft.h5p.com/content/1292260188487459217/embed
```
<iframe src="https://tudelft.h5p.com/content/1292050206829217497/embed" aria-label="PA1 File Contents" width="1088" height="637" frameborder="0" allowfullscreen="allowfullscreen" allow="autoplay *; geolocation *; microphone *; camera *; midi *; encrypted-media *"></iframe><script src="https://tudelft.h5p.com/js/h5p-resizer.js" charset="UTF-8"></script>
## Question Set ## Question Set
@ -58,20 +40,10 @@ Question sets consist of a question and one or more possible answers to that que
The following question sets are taken from chapter 3.3. Weighted least-squares estimation of the MUDE 23/24 book. The chapter builds on the previous chapter on simple least-squares estimation and dwelves into the importance and properties of the weight matrix. The student is primarily quizzed using multiple choice questions to check their understanding. The answers can be provided in the shape of text, figures, equations, matrices and probably much more. The following question sets are taken from chapter 3.3. Weighted least-squares estimation of the MUDE 23/24 book. The chapter builds on the previous chapter on simple least-squares estimation and dwelves into the importance and properties of the weight matrix. The student is primarily quizzed using multiple choice questions to check their understanding. The answers can be provided in the shape of text, figures, equations, matrices and probably much more.
```{figure} figures/Question_set_1.PNG ```{h5p} https://tudelft.h5p.com/content/1292060781042105617/embed
---
width: 600
align: center
---
Text Answers
``` ```
```{figure} figures/Question_set_2.PNG ```{h5p} https://tudelft.h5p.com/content/1292046737060674407/embed
---
width: 600
align: center
---
Equations Answers
``` ```
Since these questions are meant to develop the understanding of the students, feedback is vital! Feedback can be built into the questions to explain the reasoning behind a correct answer. Since these questions are meant to develop the understanding of the students, feedback is vital! Feedback can be built into the questions to explain the reasoning behind a correct answer.
@ -96,7 +68,8 @@ Tips
Have a look at the following 7 questions. Have a look at the following 7 questions.
<iframe src="https://tudelft.h5p.com/content/1292062157562749767/embed" aria-label="quiz_uniform_motion" width="1088" height="637" frameborder="0" allowfullscreen="allowfullscreen" allow="autoplay *; geolocation *; microphone *; camera *; midi *; encrypted-media *"></iframe><script src="https://tudelft.h5p.com/js/h5p-resizer.js" charset="UTF-8"></script> ```{h5p} https://tudelft.h5p.com/content/1292062157562749767/embed
```
## Complex fill in the blanks ## Complex fill in the blanks
@ -106,12 +79,7 @@ The complex fill in the blanks can be used to evaluate numerical answers.
Chapter 3.7. Non-linear least-squares estimation from the MUDE 23/24 book makes use of the complex fill in the blanks quiz in order to check that the students understood the composition of the Jacobian Matrix specifically used in deriving the linearized functional model. This model is essential for accurately estimating values and assessing system behavior of complex processes that arent linear. Chapter 3.7. Non-linear least-squares estimation from the MUDE 23/24 book makes use of the complex fill in the blanks quiz in order to check that the students understood the composition of the Jacobian Matrix specifically used in deriving the linearized functional model. This model is essential for accurately estimating values and assessing system behavior of complex processes that arent linear.
```{figure} figures/blanks1.PNG ```{h5p} https://tudelft.h5p.com/content/1292064774866067777/embed
---
width: 600
align: center
---
Answer Boxes
``` ```
As you can see, the precision of the answer sought for is specified and the figure below shows again the incorporation of feedback. As you can see, the precision of the answer sought for is specified and the figure below shows again the incorporation of feedback.
@ -125,18 +93,24 @@ Wrong Answer + Feedback
**MUDE - Optimization** **MUDE - Optimization**
Since the cells can be used to evaluate numerical answers, they are an easy way to quiz the student on matrices and evaluate the result of each position indidependently. The optimization team of MUDE took this a step further and used this set-up to quiz the students on the SIMPLEX method. This method automates the solving of the augmented form of a linear programing problem with continuous variables. It makes use of tables and the manipulation of equations to find the optimal vaues. Unfortunately, with a large number of variables this tables tend to get quite big and filling in the cells becomes laborous. Since the cells can be used to evaluate numerical answers, they are an easy way to quiz the student on matrices and evaluate the result of each position independently. The optimization team of MUDE took this a step further and used this set-up to quiz the students on the SIMPLEX method. This method automates the solving of the augmented form of a linear programming problem with continuous variables. It makes use of tables and the manipulation of equations to find the optimal values. Unfortunately, with a large number of variables this tables tend to get quite big and filling in the cells becomes laborious.
```{figure} figures/blanks3.PNG ```{h5p} https://tudelft.h5p.com/content/1292131432784432037/embed
---
width: 600
align: center
---
SIMPLEX Method
``` ```
**Try it out!** **Truss structure**
<iframe src="https://tudelft.h5p.com/content/1292010272694757307/embed" aria-label="Example MUDE" width="1088" height="637" frameborder="0" allowfullscreen="allowfullscreen" allow="autoplay *; geolocation *; microphone *; camera *; midi *; encrypted-media *"></iframe><script src="https://tudelft.h5p.com/js/h5p-resizer.js" charset="UTF-8"></script> Truss structures are modelled as rigid bars (so elements which cannot deform) connected by hinges (so elements can rotate with respect to one each other). In our model, hinges are indicate with a circle, and bars with a line. For example, the structure you've seen in the second example (with two diagonal bars removed) is modelled as follows:
```{figure} ../images/Truss1.svg
:name: truss structure
Bars and hinges in truss structure
```
Now that you've been introduced to truss structures, answer the following question:
```{h5p} https://tudelft.h5p.com/content/1291910926067816717/embed
```
## True or False ## True or False
@ -154,18 +128,15 @@ align: center
Problem Statement Problem Statement
``` ```
```{figure} figures/truefalse1.PNG The small circles below the question indicates that there are more questions in this series which can be viewed by clicking on the blue arrow pointing towards the left or right. Open the second, fourth and fifth question:
---
width: 600 ```{h5p} https://tudelft.h5p.com/content/1292120485436114287/embed
align: center
---
True or False
``` ```
The small circles below the question indicates that there are more questions in this series which can be viewed by clicking on the blue arrow pointing towards the left or right.
**Try it out!** **Try it out!**
<iframe src="https://tudelft.h5p.com/content/1292061623388939257/embed" aria-label="quiz_blue_vs_LS" width="1088" height="637" frameborder="0" allowfullscreen="allowfullscreen" allow="autoplay *; geolocation *; microphone *; camera *; midi *; encrypted-media *"></iframe><script src="https://tudelft.h5p.com/js/h5p-resizer.js" charset="UTF-8"></script> ```{h5p} https://tudelft.h5p.com/content/1292061623388939257/embed
```
## Drag and Drop ## Drag and Drop
@ -173,16 +144,15 @@ Drag and Drop questions are useful to make the distinction between different con
**MUDE - Optimization** **MUDE - Optimization**
In this chapter, it was important that the students made the distinction between the terminology and mathematical meaning between different elements of the graphical solution method. A drag and drop question was used to link the term to its definition. The answer boxes can be dragged to the correct title in a playful manner.jup In this chapter, it was important that the students made the distinction between the terminology and mathematical meaning between different elements of the graphical solution method. A drag and drop question was used to link the term to its definition. The answer boxes can be dragged to the correct title in a playful manner.
```{figure} figures/drag1.PNG The fourth question in this question set is a drag and drop question:
---
width: 600 ```{h5p} https://tudelft.h5p.com/content/1292121213033110307/embed
align: center
---
Drag and Drop
``` ```
The correct answer leads to:
```{figure} figures/drag2.PNG ```{figure} figures/drag2.PNG
--- ---
width: 600 width: 600

View file

@ -4,10 +4,10 @@ Lastly some example pages are shown which combine theory and interactive questio
1. [Programming Assignments](example_gumbel.ipynb) 1. [Programming Assignments](example_gumbel.ipynb)
This page shows how you can recreate the classical Jupyter Notebook assignments that are given in many courses to a Jupyter Book format with live coding. This page shows how you can recreate the classical Jupyter Notebook assignments that are given in many courses to a TeachBook format with live coding.
```{Note} ```{Note}
Keep in mind that Jupyter Book sections might not be the best environment for programming assignments you have in mind for your course due to the limitation posed by jupyter book. In fact, in jupyter book, python runs in the browser of the students' laptop. Nothing needs to be installed which can be an advantage but also a disadvantage depending on the learning goals of your course. TeachBooks suggests using it's live coding feature to support the theory in textbooks and not as a replacement for Jupyter Notebook. Keep in mind that TeachBook sections might not be the best environment for programming assignments you have in mind for your course due to the limitation posed by TeachBook. In fact, in a TeachBook, python runs in the browser of the students' laptop. Nothing needs to be installed which can be an advantage but also a disadvantage depending on the learning goals of your course. TeachBooks suggests using it's live coding feature to support the theory in textbooks and not as a replacement for Jupyter Notebook.
``` ```
2. [Combining theory with interactive questions and extensive coding assignments](example_quiz_interactive.ipynb) 2. [Combining theory with interactive questions and extensive coding assignments](example_quiz_interactive.ipynb)

View file

@ -6,7 +6,7 @@ This page will show some examples where live coding is used in combination with
## Python for Engineers ## Python for Engineers
[Python for engineers](https://teachbooks.github.io/learn-python/intro.html) is a book used to introduce basic programming concepts to students coming from different universities where programming is not a big part of the curriculum like at TU Delft. The students are encouraged to follow the course online before the start of the year to hit the ground running in September. Chapter 7 introduces the students to [Matplotlib](https://teachbooks.github.io/learn-python/07/Theory/01.html) and teaches them various ways of making a graph. [Python for engineers](https://teachbooks.io/learn-python/intro.html) is a book used to introduce basic programming concepts to students coming from different universities where programming is not a big part of the curriculum like at TU Delft. The students are encouraged to follow the course online before the start of the year to hit the ground running in September. Chapter 7 introduces the students to [Matplotlib](https://teachbooks.io/learn-python/07/Theory/01.html) and teaches them various ways of making a graph.
Live coding is the perfect learning tool as the students can see how the code relates to the visual result of the graph. subsequently, they can adapt the code and observe the changes. Let's have a look at the implementation. Live coding is the perfect learning tool as the students can see how the code relates to the visual result of the graph. subsequently, they can adapt the code and observe the changes. Let's have a look at the implementation.

View file

@ -1,7 +1,3 @@
# TeachBooks Examples # Overview
This chapter will showcase some TeachBooks making great use of Jupyter Book and TeachBooks features. They can serve as an inspiring starting point for structuring your own TeachBook or just to get an idea of how other teachers and students are using it. Lastly some example pages are shown which combine theory and interactive questions and coding to different degrees.
This chapter will showcase some TeachBooks making great use of Jupyter Book v1 and TeachBooks features. They can serve as an inspiring starting point for structuring your own TeachBook or just to get an idea of how other teachers and students are using it. Lastly some example pages are shown which combine theory and interactive questions and coding to different degrees.

View file

@ -12,11 +12,13 @@ Truss structures are structures assembled of straight elements connected in node
Examples of these structures are commonly found in rail bridges like the one below: Examples of these structures are commonly found in rail bridges like the one below:
```{figure} theory_questions_images/pic0.jpg ```{figure} theory_questions_images/pic0.jpg
:class: dark-light
:width: 400 :width: 400
``` ```
Furthermore, these structures are commonly found in building as well, both invisible and visible: Furthermore, these structures are commonly found in building as well, both invisible and visible:
```{figure} theory_questions_images/pic1.jpg ```{figure} theory_questions_images/pic1.jpg
:class: dark-light
:width: 400 :width: 400
``` ```

@ -1 +1 @@
Subproject commit bb7884aaf0c0205b2c0b8a7bb676e929528b2e33 Subproject commit 03feccf6efa55d14da78cf4259cedb8a7585ad91

@ -1 +1 @@
Subproject commit a476ff813e481dcab65d02cb869266cb6a704451 Subproject commit 99aeda40ae0cfa06eb290ba5c3a6b9b81eb3992d

@ -1 +1 @@
Subproject commit 60370834c33ea9b7754d685ecb5bc2d3a8a0ebc1 Subproject commit c365e770730fb5abb3426b06062e69a3a325b336

@ -0,0 +1 @@
Subproject commit 0dc28b45ef6184e67b8219bd4494c6f54ad8ccd0

@ -1 +1 @@
Subproject commit 7db6dbbed739366e1b60e4b6349db97b943ec540 Subproject commit ca1280ccadfc17f611b6f411dddb77329710dd85

1
book/external/Sphinx-Named-Colors vendored Submodule

@ -0,0 +1 @@
Subproject commit 1307f44c8d64fb98ce4649f585805666e90ec3aa

1
book/external/Sphinx-PRIME-applets vendored Submodule

@ -0,0 +1 @@
Subproject commit cf8849136e1303e1a2fa2a8ed7296cde6b3b2d68

1
book/external/Sphinx-TUDelft-theme vendored Submodule

@ -0,0 +1 @@
Subproject commit 3815645c5cfef3ebbdc8070e649e4c7331b680e3

@ -0,0 +1 @@
Subproject commit 9e70fbca8fb7bacb3e6d9c58349f04d6245082dc

@ -1 +0,0 @@
Subproject commit 3f723638df29972b468a550740195ce0e61b8d29

@ -1 +1 @@
Subproject commit a647c34fa7b50cb95ef0c1d34ad07599292336ad Subproject commit c80863d19f7fde7a452200baa4b4fafe12debc95

1
book/external/annotater vendored Submodule

@ -0,0 +1 @@
Subproject commit d1f41f93ffe87a305956de405dac47daaad3bc69

@ -1 +1 @@
Subproject commit 69f12482bf328a472b70d5f9c859729121ff0342 Subproject commit da54eb463cd0bac2a3e78dcce7067b2a81a8c3d1

@ -1 +0,0 @@
Subproject commit f71092bfdb2e3d5d2f580bac5e31ff695806e7d3

1
book/external/sphinx-iframes vendored Submodule

@ -0,0 +1 @@
Subproject commit 2bc21b6174b8e7dbd15c862c219bd506e06f9d13

@ -0,0 +1 @@
Subproject commit 6122c67f86a7c9b95f349c80316571e277f0a66b

@ -1 +1 @@
Subproject commit 809352d4db017f40cdd78654adc3addc4c3eed86 Subproject commit 1ab90c5092b69aa8e1421e598ff43433bd97a9d8

View file

@ -1,18 +1,32 @@
# Interactive HTML/JavaScript elements ````{margin}
```{admonition} User types ```{admonition} User types
:class: tip :class: tip
This section is useful for user type 5. This section is useful for user type 5.
``` ```
{bdg-danger}`iframe`
````
# Interactive HTML/JavaScript elements
In this section, we will discuss how to [create](creating_basic_HTML_elements.md) and [embed](adding_HTML_elements.md) interactive HTML/Javascript elements created in HTML/JavaScript in a TeachBook. These HTML/Javascript element work very fluently and don't require a python kernel running in the background. In this section, we will discuss how to [create](creating_basic_HTML_elements.md) and [embed](adding_HTML_elements.md) interactive HTML/Javascript elements created in HTML/JavaScript in a TeachBook. These HTML/Javascript element work very fluently and don't require a python kernel running in the background.
This could be for example interactive 3d figures: This could be for example interactive 3d figures:
<iframe src="../_static/element_render_box.html" width="600" height="400" frameborder="0"></iframe> ```{iframe} ../_static/element_render_box.html
:width: 600px
:height: 400px
```
Or other interactive graphs: Or other interactive graphs:
<iframe src="../_static/element_pdf_and_cdf.html" width="600" height="300" frameborder="0"></iframe> ```{iframe} ../_static/element_pdf_and_cdf.html
:width: 600px
:height: 300px
```
<iframe src="https://openla.ewi.tudelft.nl/applet/lines_and_planes/normal_equation_plane_origin?iframe=true" width="600" height="500" allow="fullscreen" loading="lazy" frameborder="0"></iframe> ```{iframe} https://openla.ewi.tudelft.nl/applet/lines_and_planes/normal_equation_plane_origin?iframe=true
:width: 600px
:height: 500px
```

View file

@ -1,14 +1,30 @@
````{margin}
{bdg-danger}`iframe`
````
# Adding interactive HTML/JavaScript elements # Adding interactive HTML/JavaScript elements
In this section, we will discuss how to embed interactive elements created in HTML/JavaScript in a TeachBook. If you are interested in learning how to create these elements yourself, we will discuss an example in the [next article](creating_basic_HTML_elements.md). As an example, let us discuss how to embed an interactive 3D model of a subsurface environment I created: In this section, we will discuss how to embed interactive elements created in HTML/JavaScript in a TeachBook. If you are interested in learning how to create these elements yourself, we will discuss an example in the [next article](creating_basic_HTML_elements.md). As an example, let us discuss how to embed an interactive 3D model of a subsurface environment I created:
<iframe src="../_static/element_render_box.html" width="600" height="400" frameborder="0"></iframe> ```{iframe} ../_static/element_render_box.html
:width: 600px
:height: 400px
```
## Storing the HTML file ## Storing the HTML file
TeachBooks like this one are built from a Git project, comprising of different files and folders that are assembled into a webpage. It is generally not possible to paste the code of your HTML element directly into one of the project's Markdown files. Instead, you will have to store the files separately somewhere in the folder structure, then embed them later on. For this project, the book's root folder contains a ´_static´ folder which we can use to store our HTML/JS file. Some elemenets - such as the one above - may require additional files. The HTML element above, for instance, specifies a renderer using [THREE.js](https://threejs.org/) that displays a digital model. This model is specified as an .obj file (which defines its geometry) and a .mtl file (which defines its materials - its colors, reflectivity, transparency, and so on). We can store these files in the same ´_static´ folder. TeachBooks like this one are built from a Git project, comprising of different files and folders that are assembled into a webpage. It is generally not possible to paste the code of your HTML element directly into one of the project's Markdown files. Instead, you will have to store the files separately somewhere in the folder structure, then embed them later on. For this project, the book's root folder contains a ´_static´ folder which we can use to store our HTML/JS file. Some elemenets - such as the one above - may require additional files. The HTML element above, for instance, specifies a renderer using [THREE.js](https://threejs.org/) that displays a digital model. This model is specified as an .obj file (which defines its geometry) and a .mtl file (which defines its materials - its colors, reflectivity, transparency, and so on). We can store these files in the same ´_static´ folder.
## Embedding HTML files via iframes ## Embedding HTML files via iframes
If we want to embed our HTML/JS element in a Markdown page, we must use an inline frame, also known as an iframe. In code, an iframe looks like this: If we want to embed our HTML/JS element in a Markdown page, we must use an inline frame, also known as an iframe. In a book, an iframe can be added using [](../external/sphinx-iframes/README.md):
````
```{iframe} ../_static/element_render_box.html
:width: 600px
:height: 300px
```
````
or alternatively using raw HTML:
```html ```html
<iframe src="../_static/element_render box.html" width="600" height="300" frameborder="0"></iframe> <iframe src="../_static/element_render box.html" width="600" height="300" frameborder="0"></iframe>
@ -30,7 +46,7 @@ Let's take a closer look at the source. Since this project uses a local file str
- Finally, the string `"element_render_box.html"` selects the HTML file we want to embed. We are now in `book/_static/element_render_box.html`. - Finally, the string `"element_render_box.html"` selects the HTML file we want to embed. We are now in `book/_static/element_render_box.html`.
## Viewing result at local build ## Viewing result at local build
To view the final result locally, it's required to setup a [local python webserver](setup-local-server). To view the final result locally, it's required to setup a {ref}`local Python webserver <setup-local-server>`.
## HTML code for the 3D render element ## HTML code for the 3D render element
@ -194,4 +210,4 @@ To conclude, I provide the HTML/JavaScript code for the 3D render element above.
</html> </html>
``` ```

133
book/features/apa.md Normal file
View file

@ -0,0 +1,133 @@
````{margin}
```{admonition} User types
:class: tip
This page is useful for user type 4 and 5.
```
{bdg-primary}`Sphinx Extension`
````
(apa)=
# APA References
## Introduction
Do you include references in your book, but you're tired of the default options available in a TeachBook / Jupyter Book v1? For example, the square-bracket style of citation and reference, where the first three letters of the name year are combined in a way that seems designed to minimize transparency?
There is a solution! This extension allows you to have APA formatting in your book.
## Installation
To use APA-references, install the [Sphinx-APA-References extension](https://github.com/TeachBooks/Sphinx-APA-References) by following these two steps:
**Step 1: Install the Package**
Install the module `sphinx-apa-references` package using `pip`:
```
pip install sphinx-apa-references
```
**Step 2: Add to `requirements.txt`**
Make sure that the package is included in your project's `requirements.txt` to track the dependency:
```
sphinx-apa-references
```
**Step 3: Enable in `_config.yml`**
In your `_config.yml` file, add the extension to the list of Sphinx extra extensions (**important**: underscore, not dash this time) and specify the location of your bib file (note indentation of the bibtex file path specification; any number of bib files are allowed):
```
sphinx:
extra_extensions:
.
.
.
- sphinx_apa_references
.
.
.
bibtex_bibfiles: "<path_to_bib_file>/references.bib"
```
## Usage
All references are now made in APA-style. Here are five examples how to create a citation in APA style:
| Syntax | Result with 1 author | Result with many authors | Explanation |
| :---: | :---: | :---: | :---: |
|`{cite:t}` | {cite:t}`jason_moore` | {cite:t}`dummyreference` | Textual citation |
|`{cite:p}`| {cite:p}`jason_moore` | {cite:p}`dummyreference` | Parenthetical citation |
|`{cite}`| {cite}`jason_moore` | {cite}`dummyreference` | Same as `{cite:p}` |
|`{cite:ts}` | {cite:ts}`jason_moore` | {cite:ts}`dummyreference` | Same as `{cite:t}`, but without abbreviation of authors |
|`{cite:ps}`| {cite:ps}`jason_moore` | {cite:ps}`dummyreference` |Same as `{cite:p}`, but without abbreviation of authors |
For more options on the in-line citation style, see https://jupyterbook.org/v1/content/citations.html#change-the-in-line-citation-style.
The references section at the end of your book will also be formatted in APA style:
::::{admonition} Example of APA References
:class: example
```{iframe} ../references.html
:class: no-blend
```
::::
## Duplicate label warning
You might encounter a warning during the build process that has this structure:
```
<filename>:<lineno>: WARNING: duplicate label "<authors>, <year>" for keys "<key1>" and "<key2>"
```
This is might have different cause, but often it is because two different references have the same author(s) and the same year. A common solution is to add letters to the year in the `.bib` file, like this:
```bibtex
@misc{launch_buttons,
author = {{TeachBooks}},
title = {Custom launch buttons},
url = {https://github.com/TeachBooks/Sphinx-launch-buttons},
year = {2024a},
note = {Retrieved December, 2024. BSD-3-Clause.},
}
@misc{nested,
author = {{TeachBooks}},
title = {Git workflow: Share content between book},
url = {https://github.com/TeachBooks/Nested-Books},
year = {2024b},
note = {Retrieved December, 2024. CC BY 4.0.},
}
```
This does negate the automatic ordering of references by the order `authors > year > title`, so our advice is to only use this solution when the bibliography contains duplicate author-year combinations ánd the bibliography is final. That way the you can use the sorted order with warnings to determine the correct letters to add to the years.
## Implementation
The extension is based on [`pybtex`](https://pybtex.org/), which is a BibTeX-compatible bibliography processor in Python that is extendible with plugins.
Although some customization is possible with the standard Jupyter Book v1 features, [as described here](https://jupyterbook.org/v1/content/citations.html#change-the-in-line-citation-style), this extension implements a complete APA style, as well as enforcing round brackets (like this).
### Previous implementation
APA referencing was previously implemented by including a local extension in a book subdirectory `_ext` (described [here](https://github.com/jupyter-book/jupyter-book/issues/1090)). To upgrade, once this Sphinx extension is implemented in your book, the local extension files in `_ext` can be deleted and the four lines indicated below removed from your `_config.yml` file:
```yaml
sphinx:
config:
.
.
.
bibtex_reference_style: author_year_round # remove
bibtex_default_style: myapastyle # remove
.
.
.
local_extensions:
apastyle: _ext/ # remove
bracket_citation_style: _ext/ # remove
```

View file

@ -8,7 +8,7 @@ Now that we have talked about how you can collaborate using git, it's time to ex
## Pipeline ## Pipeline
Both GitLab and GitHub make use of CI/CD to publish the jupyter books. CI/CD stands for Continuous Integration/Continuous Deployment. Within the scope of jupyter books focuses on automating the process of building and deploying the books. It makes sure that the book is always up-to-date and available. Both GitLab and GitHub make use of CI/CD to publish the TeachBooks. CI/CD stands for Continuous Integration/Continuous Deployment. Within the scope of TeachBooks, it focuses on automating the process of building and deploying the books. It makes sure that the book is always up-to-date and available.
Concretely, Continuous Integration means that whenever changes are pushed to the repository (where does the publish branch come in?) the pipeline is triggered. Moreover, the pipeline also builds the book which is composed out of multiple .md or .ipynb files and converts those files into HTML. Concretely, Continuous Integration means that whenever changes are pushed to the repository (where does the publish branch come in?) the pipeline is triggered. Moreover, the pipeline also builds the book which is composed out of multiple .md or .ipynb files and converts those files into HTML.

View file

@ -1,6 +1,9 @@
# Creating basic interactive HTML/JavaScript elements # Creating basic interactive HTML/JavaScript elements
<iframe src="../_static/element_pdf_and_cdf.html" width="600" height="300" frameborder="0"></iframe> ```{iframe} ../_static/element_pdf_and_cdf.html
:width: 600px
:height: 300px
```
At the bottom of this page, I will provide the full code for the interactive element above. In this section, let us go through the code one piece at a time. Let us begin from the top. At the bottom of this page, I will provide the full code for the interactive element above. In this section, let us go through the code one piece at a time. Let us begin from the top.
@ -50,7 +53,7 @@ The first few lines of our JavaScript code are simple. To scale our element with
var width = vw; var width = vw;
// Create the canvas. We will use only part of it for the main plot // Create the canvas. We will use only part of it for the main plot
var svg = d3.select("#click") // This selects the div var svg = d3.select("#click") // This selects the svg using its id
.attr("width", width) // This defines the canvas' width .attr("width", width) // This defines the canvas' width
.attr("height", height) // This defines the canvas' height .attr("height", height) // This defines the canvas' height
``` ```
@ -850,4 +853,4 @@ Here is the code for the element above in full:
</html> </html>
``` ```

View file

@ -0,0 +1,104 @@
````{margin}
```{admonition} User types
:class: tip
This page is useful for user type 4 and 5.
```
{bdg-primary}`Sphinx Extension`
````
# Multilingual book
The custom launch button extension allows you to create a customizable button in the top right of your TeachBook.
This may have many applications, one of them being that you can create different language versions of the book available for the user.
This section will explain how to create a "Languages" or " <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> " button, like you might be used to seeing on just about any website. The use of the button, however, is completey customizable and may be used in many different ways.
## Installation
1. Install the Sphinx Launch Buttons extension from the GitHub repository. Paste the following line, in your terminal. Make sure you activated your book building environment.
```
pip install git+https://github.com/TeachBooks/Sphinx-launch-buttons.git
```
2. To use the extension in your book, you need to include it in your `_config.yml` file.
```
sphinx:
extra_extensions:
- custom-launch-buttons
```
3. Then you need to include a `_launch_buttons.yml` file in the same location 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 visualised using either an [svg icon](https://icons.getbootstrap.com/#icons) or text.
```
buttons:
- type : dropdown
label: Language
- type : button
icon : <svg> ...
</svg>
```
4. Lastly you need to specifiy 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 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](https://www.deepl.com/en/translator) 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:
```{figure} figures/language_button.PNG
---
width: 50%
name: language_button
---
Custom Button
```

View file

@ -0,0 +1,22 @@
import os
import json
def list_file_types(directory):
file_types = set()
for root, _, files in os.walk(directory):
for file in files:
_, ext = os.path.splitext(file)
if ext: # Only include files with extensions
file_types.add(ext)
return sorted(file_types)
def format_file_types(file_types):
formatted = [f"**/*{ext}" for ext in file_types]
return formatted
if __name__ == "__main__":
book_directory = r"c:\Users\tomvanwoudenbe\Git\book\book"
file_types = list_file_types(book_directory)
formatted_file_types = format_file_types(file_types)
print("File types in the directory (formatted):")
print(json.dumps(formatted_file_types))

View file

@ -0,0 +1,95 @@
````{margin}
```{note}
{bdg-link-secondary}`Uses TeachBooks package <./teachbooks_intro.html>`
{bdg-link-light}`Included in TeachBooks Template <../external/template/README.html>`
{bdg-link-light}`Supported by Deploy Book workflow <../external/deploy-book-workflow/README.html>`
```
```{tip}
This page is useful for user type 3-5.
```
```{seealso}
[{octicon}`mark-github` Repository](https://github.com/TeachBooks/teachbooks)
[{octicon}`book` Documentation](https://teachbooks.readthedocs.io/latest/cli/cli.html)
```
````
(draft-release)=
# Draft-Release Workflow
Often it is necessary to prepare, review and edit materials in parallel to material that is currently being used by students, or another target audience. This workflow enables an author to easily maintain separate versions of a book without having to repeatedly comment out lines of a table of contents or page when building different versions. It is also easy to implement in CI/CD settings (it is already implemented in the {ref}`Deploy Book Workflow <deploy-book-workflow>`, which builds our TeachBooks).
```{admonition} Why is this useful?
:class: tip
Consider a case where you have been using two branches to develop and maintain a book: `release` (shared with students) and `draft` (shared with colleagues to review contents before release). You are probably also using other branches to develop contents, but rely on the `draft` branch as a way to collect the "finalized-but-not-yet-released" material. Things go smoothly as long as you add pages to the `draft` branch one at a time, then merge the branch into `release` as they are needed.
But what happens when you have 2 pages: one is ready to share with students, but the other is still being reviewed by your colleague. The only way to get the proper page into release is to comment the undesired page in the ToC using a commit on `draft`, merge the commit into `release`, then uncomment the ToC in a new commit on `draft`. This is very tedious, and prone to error as there it is not straightforward to tell which pages are available in the `draft` versus `release` books!
The Draft-Release workflow solves this problem by using commented tags to clearly denote which pages are available in the `draft` book and which are left out of the `release` book.
```
The workflow is enabled by a `teachbooks` CLI feature that identifies and removes any lines from the files `_config.yml` and `_toc.yml` file that are surrounded by `REMOVE-FROM-RELEASE` tags.
For example, pages in a developed book (e.g., `draft` branch) can be manually stripped out of the table of contents when a merge request from `draft` to `release` is made. This prevents the page being included in the released book. Pages marked with this feature are still visible in the `draft` book. Lines tagged in the configuration file `_config.yml` can be used in exactly the same manner. The tag is applied as follows:
```yaml
format: jb-book
root: intro
parts:
- caption: ...
chapters:
- file: ...
...
# START REMOVE-FROM-RELEASE
- file: files_to_remove
# END REMOVE-FROM-RELEASE
```
There is no limit to the number of stripped sections, they can be sequential and indentation does not matter.
To invoke the tag and remove content during the book build process, use the following optional argument when building the book with the `teachbooks` package:
```
teachbooks build --release book
```
This is done in the [deploy-book-workflow](deploy-book-workflow) by including the branches for which preprocessing needs to be done the repository variable `BRANCHES_TO_PREPROCESS` which is by default set to ` ` (just a space = no branch). It should be a space-separated list of branch names, e.g. 'main second third'.
Note that `teachbooks build book` would build a book without stripping the tagged lines, just as `jupyter-book build book` would. This is called "draft mode" and is the default behavior. You can recognize it in the stdout after running the `build` command:
```bash
TeachBooks: running build with strategy 'draft'
```
## Installation
The package is currently [available on PyPI](https://pypi.org/project/teachbooks/) and can be installed as follows:
```
pip install teachbooks
```
The first stable release (`v1.0.0`) is expected to be released in Spring 2025. Until then the package is very much useable but will be updated frequently. Therefore, get in the habit of updating the package regularly:
```bash
pip install --upgrade teachbooks
```
We recommend you install this in an environment that is specifically dedicated for building books. Python virtual environments are a good way to manage this and would be consistent with what is used by the GitHub servers via the {ref}`Deploy Book Workflow <deploy-book-workflow>`. However, if you use non-Python tools to edit and check your book, a Conda environment may be a better choice.
The package is a CLI tool that primarily provides a wrapper around the Jupyter Book v1 package which is used for pre- and postprocessing. In this case "wrapper" refers to the CLI usage: CLI commands generally invoke `jupyter-book` commands internally; the `jupyter-book` package is _not_ distributed within the `teachbooks` package.
The source code and function of the package will eventually be documented on a Sphinx-built website ([teachbooks.io/TeachBooks/](https://teachbooks.io/TeachBooks/)), however, this is currently still under construction.

View file

@ -0,0 +1,10 @@
````{margin}
```{admonition} User types
:class: tip
This section is useful for user type 3-5.
```
````
# Easy Editing Process
The following tools are created by TeachBooks to ease the process of making books. We acknowledge that making books is a difficult process; it requires advanced knowledge on CLI, python packages, html-files, data-storage and website hosting. The tools in this chapter are intended for those users who lack knowledge on these topics (which includes most of the TeachBooks' community members itself).

88
book/features/exercise.md Normal file
View file

@ -0,0 +1,88 @@
````{margin}
```{attributiongrey} Attribution
:class: attribution
This page reuses MIT licensed content from {cite:t}`sphinx-exercise`. {fa}`quote-left`{ref}`Find out more here.<external_resources>`
```
```{admonition} User types
:class: tip
This section is useful for user type 3-5.
```
+++
{bdg-primary}`Sphinx Extension`
{bdg-link-light}`Included in TeachBooks Template <../external/template/README.html>`
{bdg-link-primary-line}`Included in TeachBooks Favourites <./favourites.html>`
````
# Sphinx exercise
This extensions provides an easy way to add exercises and solutions to your book. It is created by the Executable Books team and is [documented here](https://ebp-sphinx-exercise.readthedocs.io/en/latest/).
TeachBooks has made some small modifications to the original extension, such that it works well with translated books; this modified version is located in the repository [github.com/TeachBooks/sphinx-exercise](https://github.com/TeachBooks/sphinx-exercise).
## What does it do?
This extension defines exercises and solutions as new admonition types:
```{exercise}
:label: my-exercise
Recall that $n!$ is read as "$n$ factorial" and defined as
$n! = n \times (n - 1) \times \cdots \times 2 \times 1$.
There are functions to compute this in various modules, but let's
write our own version as an exercise.
In particular, write a function `factorial` such that `factorial(n)` returns $n!$
for any positive integer $n$.
```
````{solution} my-exercise
:label: my-solution
Here's one solution.
```{code-block} python
def factorial(n):
k = 1
for i in range(n):
k = k * (i + 1)
return k
factorial(4)
```
````
More information can be found in the [official documentation](https://ebp-sphinx-exercise.readthedocs.io/en/latest/).
## Installation
To use this extenstion, follow these steps:
**Step 1: Install the Package**
Install the TeachBooks' version of `sphinx-exercise` package using `pip`:
```
pip install sphinx-exercise @ git+https://github.com/TeachBooks/sphinx-exercise.git
```
**Step 2: Add to `requirements.txt`**
Make sure that the package is included in your project's `requirements.txt` to track the dependency:
```
sphinx-exercise @ git+https://github.com/TeachBooks/sphinx-exercise.git
```
**Step 3: Enable in `_config.yml`**
In your `_config.yml` file, add the extension to the list of Sphinx extra extensions (**important**: underscore, not dash this time):
```
sphinx:
extra_extensions:
.
.
.
- sphinx_exercise
.
.
.
```

View file

@ -0,0 +1,122 @@
````{margin}
```{attributiongrey} Attribution
:class: attribution
This page reuses MIT licensed content from {cite:t}`teachbooks_package`. {fa}`quote-left`{ref}`Find out more here.<external_resources>`
```
```{admonition} User types
:class: tip
This page is useful for user type 3-5.
```
{bdg-link-secondary}`Uses TeachBooks package <./teachbooks_intro.html>`
{bdg-success}`WebApp`
````
(external-toc)=
# Sharing content between books in table of contents
## Introduction
When creating books, you might want to reuse material from other people or from other books you made. In some cases you might even want to have the exact same material into your book. You could do so by manually copying material over. However, whenever the source material is updated, you have to do that again. As an alternative, you can use the underlying git system to refer to the source file directly. This allows you to pick a specific version, or keep the most up-to-date version of it. This pages explains how to do so directly in the table of contents using the **External Content** (or **External TOC**) feature which is part of the TeachBooks Python package, or by making use of the [TeachBooks Recombiner](https://teachbooks.io/recombiner/).
Previously, this book feature was implemented using [submodules](../external/Nested-Books/README.md), but the implementation was more difficult to use. Despite this, submodules are still a widely used Git feature that can be very useful for book authors, so check out the [submodules page](../external/Nested-Books/README.md) to learn more, especially if the External TOC tool does not satisfy your needs. Submodules have a few additional features not (yet) implemented using the External TOC.
The External TOC features are incorporated in the teachbooks package starting with version `0.2.0`. The [TeachBooks Recombiner](https://teachbooks.io/recombiner/) is a webapp to ease that process.
## What does it do?
This functionality, part of the [TeachBooks package](https://github.com/TeachBooks/TeachBooks) allows you to refer to `.ipynb`, `.md` and `.rst` files stored on public repositories. These files are then handles as if they were normal files in your book, leading to a the file as a page in your built book. To prevent issues it validates that the external content has a permissive license, automatically combines any `reference.bib` files, and warns you if there's a mismatch in `requirements.txt` or with plugins in `_config.yml`. Furthermore, it adds an attribution admonition (like the one on this page) to the page, showing the source of the file in the built book.
To ease the process, the webapp [TeachBooks Recombiner](https://teachbooks.io/recombiner/) allows you to select the pages to take from other books and generate the syntax to add them to your book.
## Installation
To use this extension, follow these steps:
**Step 1: Install the Package**
Install the module `teachbooks` package using `pip`:
```
pip install teachbooks>=0.2.0
```
**Step 2: Add to `requirements.txt`**
Make sure that the package is included in your project's `requirements.txt` to track the dependency:
```
teachbooks>=0.2.0
```
## Usage
To use the functionality, take the URL of a file and add it to your `_toc.yml` as follows:
```yaml
format: jb-book
root: .
parts:
- caption: ...
chapters:
- file: ...
.
.
.
- external: <link to GitHub / GitLab source .md or .ipynb file>
.
.
.
```
The link can be pointing to a file on a branch (which will take the most recent version of that file on the branch) or a commit or tag (which will take a specific version of the file). For example:
- `external: https://github.com/TeachBooks/manual/blob/release/book/intro.md` will take the most recent version of the intro page of this book on the release branch
- `external: https://github.com/TeachBooks/manual/blob/06d67e8a0110c94d9147ce07090656dedc7d0e64/README.md` will take the file during the state of a specific commit (06d67e8).
- `external: https://github.com/TeachBooks/manual/blob/v1.1.1/README.md` will take the file during the state of a specific tag (v1.1.1)
These links can be created manually, copied from your browser, or generated using the [TeachBooks Recombiner](https://teachbooks.io/recombiner/). For the TeachBooks Recombiner: add the book you want to take content from, select the chapters and follow the instructions which gives you the syntax to add to your `_toc.yml`.
If you're building your book online in GitHub, the [deploy-book-workflow](../external/deploy-book-workflow/README.md) will deal with these files during the `teachbooks build` command. If you want to build the book locally, run the command `teachbooks build`.
If the source file is from another book, the contents of the `requirements.txt`, `_config.yml` are checked for any missing/incompatible entries. If this leads to compatibility issue, you'll be warned during the build which will help you solve these dependencies or plugins manually by updating your main book's `_config.yml` and `requirements.txt`
Additionally, any `references.bib` files are merged into your main book's `references.bib` file, and the licenses of the external content are validated to allow for re-use. External content without a permissive license will result in an error to try to prevent any accidental copyright infringement.
### Configuration
The attribution admonition can be configured in the `_config.yml` file. You can adapt the location (top or margin), colour (making use of the sphinx extension [Sphinx-Named-Colors](../external/Sphinx-Named-Colors/README.md)), and symbol (by adding a custom CSS class). This leads to a similar admonition as mentioned [in the chapter on recommendations for copyright and licenses](custom_attribution).
To adapt the location of the admonition (margin or top, top is default option), you can use the following configuration:
```yaml
teachbooks:
attribution_location: margin
```
To adapt the colour of the admonition (with for example a grey colour, default is blue), you can use the following configuration. Make sure to add the `sphinx-named-colors` extension to your environment (e.g., `requirements.txt`):
```yaml
sphinx:
config:
named_colors_custom_colors: {'attributiongrey':[150,150,150]}
extra_extensions:
- sphinx_named_colors
teachbooks:
attribution_color: attributiongrey
```
To adapt the symbol of the admonition (with for example double quotes), you can add the following [custom CSS class](../_static/attribution.css) to `book/_static/attribution.css`:
```css
/* Attribution */
div.attribution > .admonition-title::after {
content: "\f10d";
}
```
Note that, when making a changes for the configuration locally they are not incorporated to existing external content.
You will need to remove the `_git/` folder or run `teachbooks clean --external` and re-run the build command to see the changes. When building the book on i.e. GitHub Actions, the `_git/` folder is always rebuild from scratch.
## Contribute
This tool's repository is stored on [GitHub](https://github.com/TeachBooks/TeachBooks). If you'd like to contribute, you can create a fork and open a pull request on the [GitHub repository](https://github.com/TeachBooks/TeachBooks).

View file

@ -0,0 +1,97 @@
````{margin}
```{note}
{bdg-primary}`Sphinx Extension`
{bdg-link-light}`Included in TeachBooks Template <../external/template/README.html>`
```
```{tip}
This page is useful for user type 3-5.
```
```{seealso}
[{octicon}`mark-github` Repository](https://github.com/TeachBooks/TeachBooks-Favourites)
[{octicon}`pencil` Exercise](https://teachbooks.io/template/extension_exercises/017.html)
```
````
# TeachBooks Favourites
TeachBooks Favourites is a Sphinx extension which collects all of TeachBooks' favourite features in one place (including tools originally by TeachBooks and from other sources). It is included by default in the [TeachBooks Template](../external/template/README.md) or can be installed independently. The features included are:
- [Sphinx-Thebe from TeachBooks](./live_code.ipynb)
- [Jupyterbook patches](../external/JupyterBook-Patches/README.md)
- [Download link replacer](../external/Download-Link-Replacer/README.md)
- [Sphinx image inverter](../external/Sphinx-Image-Inverter/README.md)
- [Sphinx iframes](../external/sphinx-iframes/README.md)
- [Sphinx exercise (from Executable Books including TeachBooks contributions)](https://ebp-sphinx-exercise.readthedocs.io/en/latest/)
- [Teachbooks Sphinx tippy](../external/teachbooks-sphinx-tippy/README.md)
- [Sphinx named colors](../external/Sphinx-Named-Colors/README.md)
- [Sphinx dropdown toggle](../_git/github.com_TeachBooks_Sphinx-Dropdown-Toggle/main/MANUAL.md)
- [Sphinx proof (from Executable Books including TeachBooks contributions)](https://sphinx-proof.readthedocs.io/en/latest/)
- [Sphinx code examples](../_git/github.com_TeachBooks_sphinx-code-examples/main/MANUAL.ipynb)
- [Sphinx accessibility](../_git/github.com_TeachBooks_Sphinx-Accessibility/manual/README.md)
- [Sphinx toggle button (from Executable Books including TeachBooks contributions)](https://sphinx-togglebutton.readthedocs.io/en/latest/)
- [Notebook execution patterns](../_git/github.com_TeachBooks_Sphinx-NB-Execution-Patterns/Manual/README.md)
- [Sphinx Launch Buttons](../external/Sphinx-launch-buttons/README.md)
- [Sphinx GitHub Alerts](../_git/github.com_TeachBooks_Sphinx-GitHub-Alerts/main/README.md)
- [Sphinx Metadata Figure](../_git/github.com_TeachBooks_Sphinx-Metadata-Figure/main/MANUAL.ipynb)
- [Sphinx last updated by git (from Matthias Geier, TeachBooks version of the original)](https://github.com/TeachBooks/sphinx-last-updated-by-git)
- [Sphinx Gated Directives](../_git/github.com_TeachBooks_Sphinx-Gated-Directives/main/MANUAL.md)
- [Teachbooks Zoomies](https://github.com/TeachBooks/TeachBooks-Zoomies/)
- [TeachBooks Questions](../_git/github.com_TeachBooks_TeachBooks-Questions/main/MANUAL.md)
- [Sphinx Sticky Margin](../_git/github.com_TeachBooks_Sphinx-Sticky-Margin/main/MANUAL.md)
- [TeachBooks Fetch](../_git/github.com_TeachBooks_TeachBooks-Fetch/main/MANUAL.md)
- [Sphinx to do (from core sphinx](https://www.sphinx-doc.org/en/master/usage/extensions/todo.html)
The extension [Open in new tab](https://pypi.org/project/sphinx-new-tab-link/) is nice, but is not compatible with all setups (dependency clash) so is not included in TeachBooks-Favourites.
All features which are part of TeachBooks Favourites are include the following label on their respective pages in this manual: {bdg-primary-line}`Part of TeachBooks Favourites`. If you'd like to use specific features, but not the entire TeachBooks Favourites, you can remove this extension and replace it with the individual extensions you want to use.
## Installation
To install TeachBooks-Favourites, follow these steps:
**Step 1: Install the Package**
Install the `teachbooks-favourites` package using `pip`:
```
pip install git+https://github.com/TeachBooks/TeachBooks-Favourites
```
**Step 2: Add to `requirements.txt`**
Make sure that the package is included in your project's `requirements.txt` to track the dependency:
```
git+https://github.com/TeachBooks/TeachBooks-Favourites
```
**Step 3: Enable in `_config.yml`**
In your `_config.yml` file, add the extension to the list of Sphinx extra extensions (**important**: underscore, not dash this time):
```
sphinx:
extra_extensions:
- teachbooks_favourites
```
## Usage
For using the various package we refer to the different manuals linked above.
All extensions are loaded with their default settings.
## Contribute
Do you think we missed an extension that should really be included? Let us know by either
- creating a fork of this repository and submitting a pull request, in which you added the extension to the files
- `README.md`
- `pyproject.toml`
- `src\teachbooks_favourites\__init__.py`
- opening an issue.

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

File diff suppressed because one or more lines are too long

View file

@ -1,70 +0,0 @@
# Grasple questions
```{admonition} User types
:class: tip
This section is useful for user type 3-5.
```
[Grasple](https://app.grasple.com/) gives you an embed code for each exercise which looks like this, which can be added cirectly to your markdown-file.
```html
<iframe height="560" src="https://embed.grasple.com/exercises/767782d5-023a-4b49-a1f3-874fca626c8e?id=79907" title="Grasple Exercise 79907" width="100%" allow="clipboard-read; clipboard-write"></iframe>
```
The embed link is created for an exercise under 'More'- 'Embed Exercise'
This iframe can be embedded into your Jupyter book.
```{admonition} Note
:class: tip
This feature doesn't display in a book that is viewed locally via your browser, unless you set up a local webserver (instructions [here](setup-local-server)).
```
The code shown above gives:
<iframe height="560" src="https://embed.grasple.com/exercises/767782d5-023a-4b49-a1f3-874fca626c8e?id=79907" title="Grasple Exercise 79907" width="100%" allow="clipboard-read; clipboard-write"></iframe>
More information on Grasple and the support of TU Delft can be found on: [Teaching Support - Educational Tools - Grasple](https://www.tudelft.nl/en/teaching-support/educational-tools/grasple)
## Replace iframe by QR code for printed version
Dani Balague Guardia created an [extension](https://github.com/dbalague/sphinx-grasple) which allows you to easily add Grasple question with some formatting and, more importantly, the creation of QR codes in the PDF version of the page. This leads to the source link of the iframe.
This extension can be installed by running
`pip install git+https://github.com/dbalague/sphinx-grasple`
The grasple exercise as shown above can now be added as follows in your markdown file:
```markdown
::::{grasple}
:url: https://embed.grasple.com/exercises/767782d5-023a-4b49-a1f3-874fca626c8e?id=79907
:label: grasple_exercise_1
:dropdown:
:description: Example of exercise which goes along
::::
```
This leads to the following html in the Jupyter book. Remark: again, the iframe doesn't locally in VScode or in the build file, only on the hosted version.
<div class="grasple admonition" id="grasple_exercise_1">
<p class="admonition-title"><span class="caption-number">Grasple Exercise 1 </span></p>
<div class="section" id="admonition-content">
<div class="side-by-side docutils container">
<div class="description-container docutils container">
<p></p><p>Example of exercise which goes along</p>
<p></p>
</div>
</div>
<details class="dropdown"><summary>Show/Hide Content</summary><iframe src="https://embed.grasple.com/exercises/767782d5-023a-4b49-a1f3-874fca626c8e?id=79907" width="100%" height="400px"></iframe></details></div>
</div>
In the PDF this leads to:
```{figure} ../images/Grasple_pdf.png
```
The extension requires an extension of the `config.yml` file:
```markdown
extra_extensions:
- sphinx_grasple
- sphinx.ext.imgconverter
```
The extension should be installed both locally and on the server.

View file

@ -1,15 +1,27 @@
# Adding interactive h5p elements ````{margin}
```{admonition} User types ```{admonition} User types
:class: tip :class: tip
This section is useful for user type 3-5. This section is useful for user type 3-5.
``` ```
## Instruction {bdg-danger}`iframe`
H5p elements are interactive HTML-blocks which can be embedded in a Jupyter Book using an iframe. An H5p element can be created in the [TU Delft portal on the H5p website](https://tudelft.h5p.com/content) (sign in via Brightspace to H5p required first). The iframe code can be copied at Edit - Publish - Public - Embed code. This html code can be directly added to your markdown file: ````
# H5p interactive elements
## Instruction
H5p elements are interactive HTML-blocks which can be embedded in a TeachBook using an iframe. H5p requires a server to host those elements. For TU Delft employees, this is arranged for on a [TU Delft portal on the H5p website](https://tudelft.h5p.com/content) (sign in via Brightspace to H5p required first as described [here](https://www.tudelft.nl/teaching-support/educational-tools/h5p)).
After creating an H5p element, the iframe code can be copied at Edit - Publish - Public - Embed code. This html link of that embed can be directly added to your markdown file using [](../external/sphinx-iframes/README.md):
````
```{h5p} https://....h5p.com/content/.../embed
```
````
Alternative, you can use raw html (lacking proper dark mode conversion):
```html ```html
<iframe src="https://tudelft.h5p.com/content/.../embed" aria-label="..." width="1088" height="200" frameborder="0" allowfullscreen="allowfullscreen" allow="autoplay *; geolocation *; microphone *; camera *; midi *; encrypted-media *"></iframe><script src="https://tudelft.h5p.com/js/h5p-resizer.js" charset="UTF-8"></script> <iframe src="https://....h5p.com/content/.../embed" aria-label="..." width="1088" height="200" frameborder="0" allowfullscreen="allowfullscreen" allow="autoplay *; geolocation *; microphone *; camera *; midi *; encrypted-media *"></iframe><script src="https://tudelft.h5p.com/js/h5p-resizer.js" charset="UTF-8"></script>
``` ```
A full list of all available interactive elements is available on the website of [H5p](https://h5p.org/content-types-and-applications), these include among others: A full list of all available interactive elements is available on the website of [H5p](https://h5p.org/content-types-and-applications), these include among others:
@ -19,18 +31,14 @@ A full list of all available interactive elements is available on the website of
- Interactive video - Interactive video
- Image hotspot - Image hotspot
More information on H5p: [Teaching Support - Educational Tools - H5P](https://www.tudelft.nl/teaching-support/educational-tools/h5p) Some best-practices on the use of H5p:
- H5p requires its own hosting. TU Delft provides this for TU Delft employees.
- To startup your H5p-account, first login to H5p via Brightspace. You can follow instructions as under [https://www.tudelft.nl/teaching-support/educational-tools/h5p](https://www.tudelft.nl/teaching-support/educational-tools/h5p).
- After that, direct login is possible via [tudelft.h5p.com](https://tudelft.h5p.com)
- Place your H5p-elements in a shared folder in H5p.
- Disable the display options "Toolbar Below Content" and "Display author's name to public (anonymous users) (only relevant when content's status is set to Public )" for each element for a smooth experience. On the other hand, the options 'Toolbar below content' in combination with 'Allow users to download content' allow people to reuse your questions, making them more open.
- Use it in combination with [](../external/sphinx-iframes/README.md) to allow for a proper dark mode, dynamic scaling and a transparent background.
## Example In the next subpage, these exampled are shown.
Truss structures are modelled as rigid bars (so elements which cannot deform) connected by hinges (so elements can rotate with respect to one each other). In our model, hinges are indicate with a circle, and bars with a line. For example, the structure you've seen in the second example (with two diagonal bars removed) is modelled as follows:
```{figure} ../images/Truss1.svg More information on H5p using the TU Delft provided hosting: [Teaching Support - Educational Tools - H5P](https://www.tudelft.nl/teaching-support/educational-tools/h5p)
:name: truss structure
Bars and hinges in truss structure
```
Now that you've been introduced to truss structures, answer the following question:
<iframe src="https://tudelft.h5p.com/content/1291910926067816717/embed" aria-label="Modelling truss structures" width="1088" height="200" frameborder="0" allowfullscreen="allowfullscreen" allow="autoplay *; geolocation *; microphone *; camera *; midi *; encrypted-media *"></iframe><script src="https://tudelft.h5p.com/js/h5p-resizer.js" charset="UTF-8"></script>

View file

@ -9,7 +9,7 @@
"source": [ "source": [
"# Interactive content: Elements not including Python\n", "# Interactive content: Elements not including Python\n",
"\n", "\n",
"To add interactivity to the book, you can make use of interactive elements which are embedded in the book. You've four options:\n", "To add interactivity to the book, you can make use of interactive elements which are embedded in the book. You've a few options:\n",
"\n", "\n",
" - Admonition: question provided in normal markdown language with answers in a drowdown menu. There's no feedback delivered to the student, only the correct answer no matter what the student's thinking/work.\n", " - Admonition: question provided in normal markdown language with answers in a drowdown menu. There's no feedback delivered to the student, only the correct answer no matter what the student's thinking/work.\n",
" - JupyterQuiz: code-based implementation of multiple-choiche questions and numerical answer questions. This is a basic open course tool which requires you to write your quiz questions in Python language as a `dict` or to a `.json` file.\n", " - JupyterQuiz: code-based implementation of multiple-choiche questions and numerical answer questions. This is a basic open course tool which requires you to write your quiz questions in Python language as a `dict` or to a `.json` file.\n",
@ -291,7 +291,9 @@
}, },
"source": [ "source": [
"## H5p\n", "## H5p\n",
"<iframe src=\"https://tudelft.h5p.com/content/1292010272694757307/embed\" aria-label=\"Exmple MUDE\" width=\"1088\" height=\"637\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" allow=\"autoplay *; geolocation *; microphone *; camera *; midi *; encrypted-media *\"></iframe><script src=\"https://tudelft.h5p.com/js/h5p-resizer.js\" charset=\"UTF-8\"></script>" "\n",
"```{h5p} https://tudelft.h5p.com/content/1292010272694757307/embed\n",
"```\n"
] ]
}, },
{ {
@ -302,7 +304,15 @@
}, },
"source": [ "source": [
"## Grasple\n", "## Grasple\n",
"<iframe height=\"560\" src=\"https://embed.grasple.com/exercises/156d55e4-8198-4bc7-a2c1-c0cb0ff3fef8?id=80710\" title=\"Grasple Exercise 80710\" width=\"100%\" allow=\"clipboard-read; clipboard-write\"></iframe>" "\n",
"::::{grasple}\n",
":iframeclass: dark-light\n",
":url: https://embed.grasple.com/exercises/156d55e4-8198-4bc7-a2c1-c0cb0ff3fef8?id=80710\n",
":label: grasple_exercise_80710\n",
":dropdown:\n",
":description: Example exercise\n",
"\n",
"::::"
] ]
}, },
{ {
@ -313,7 +323,10 @@
"\n", "\n",
"The example below shows a custom HTML/Javascript element\n", "The example below shows a custom HTML/Javascript element\n",
"\n", "\n",
"<iframe src=\"../_static/element_pdf_and_cdf.html\" width=\"600\" height=\"300\" frameborder=\"0\"></iframe>" "```{iframe} ../_static/element_pdf_and_cdf.html\n",
":width: 600px\n",
":height: 300px\n",
"```"
] ]
}, },
{ {

View file

@ -23,9 +23,9 @@ When you have installed `jupyterlite-xeus-python`, the kernel will automatically
} }
} }
## Updating the Jupyter Book `_config.yml` ## Updating the TeachBook's `_config.yml`
Since `jupyterlite-sphinx` is a Sphinx extension, we need to tell Jupyter Book to include it in the build process and specify the name of the `jupyterlite` configuration file. To do so, create a new entry in `_config.yml` like this: Since `jupyterlite-sphinx` is a Sphinx extension, we need to tell TeachBooks to include it in the build process and specify the name of the `jupyterlite` configuration file. To do so, create a new entry in `_config.yml` like this:
sphinx: sphinx:
extra_extensions: extra_extensions:
@ -37,4 +37,4 @@ Of course, change `jupyterlite-config.json` to the name of your configuration fi
## Building ## Building
When everything is configured correctly, a `Xeus-Python` kernel will be built when you build your book via `jupyter book build`. You can check this by keeping an eye on the output in the terminal: you should see a lot of extra lines mentioning `JupyterLite`. When everything is configured correctly, a `Xeus-Python` kernel will be built when you build your book via `teachbooks build`. You can check this by keeping an eye on the output in the terminal: you should see a lot of extra lines mentioning `JupyterLite`.

View file

@ -1,6 +1,6 @@
# JupyterLite-Sphinx # JupyterLite-Sphinx
By popular demand: how to include interactive pieces of code in your Jupyter Book. We can do this by using the [JupyterLite](https://github.com/jupyterlite) app, which allows you to run a Jupyter Lab session and execute Python code entirely in-browser. Jupyterlite can be embedded in a Jupyter Book with the [`JupyterLite-Sphinx`](https://github.com/jupyterlite/jupyterlite-sphinx) extension. By popular demand: how to include interactive pieces of code in your TeachBook. We can do this by using the [JupyterLite](https://github.com/jupyterlite) app, which allows you to run a Jupyter Lab session and execute Python code entirely in-browser. Jupyterlite can be embedded in a TeachBook with the [`JupyterLite-Sphinx`](https://github.com/jupyterlite/jupyterlite-sphinx) extension.
## An example ## An example

File diff suppressed because one or more lines are too long

View file

@ -4,14 +4,21 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"# Interactive content: Run Python inside your book\n", "````{margin}\n",
"\n",
"```{admonition} User types\n", "```{admonition} User types\n",
":class: tip\n", ":class: tip\n",
"This section is useful for user type 5.\n", "This section is useful for user type 5.\n",
"```\n", "```\n",
"\n", "\n",
"Our book has been enable to run Python code live in the browser (thanks Max!). This extension makes code cells in your `.ipynb` book pages editable and executable by the reader! Opposed to the original sphinx-thebe extensions, our extension runs python in the reader's browser and doesn't rely on an external webserver for the python kernel. We highly recommend this extension as it allows you to use the strength of combining text/figures and code of a jupyter book with interactivity!\n", "{bdg-primary}`Sphinx Extension`\n",
"{bdg-link-light}`Included in TeachBooks Template <../external/template/README.html>`\n",
"{bdg-link-primary-line}`Included in TeachBooks Favourites <./favourites.html>`\n",
"\n",
"```` \n",
"\n",
"# Interactive content: Run Python inside your book\n",
"\n",
"Our book has been enable to run Python code live in the browser (thanks Max!). This extension makes code cells in your `.ipynb` book pages editable and executable by the reader! Opposed to the original sphinx-thebe extensions, our extension runs python in the reader's browser and doesn't rely on an external webserver for the python kernel. We highly recommend this extension as it allows you to use the strength of combining text/figures and code of a TeachBook with interactivity!\n",
"\n", "\n",
"This page contains some installation instructions and the other sections show how to use this functionality to create interactive figures and feedback on code\n", "This page contains some installation instructions and the other sections show how to use this functionality to create interactive figures and feedback on code\n",
"\n", "\n",
@ -31,6 +38,21 @@
"print('hello world')" "print('hello world')"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{note}\n",
"There are two tools presented on this page: Sphinx-Thebe and JupyterLite (at the bottom). Both tools rely on Pyodide, a software tool that is the backbone allowing for a Jupyter Notebook-like experience in a web browser without requiring the user to install any software.\n",
"\n",
"Most of the TeachBooks Team uses a custom version of Sphinx-Thebe, a Sphinx Extension, because it can be integrated directly in a TeachBooks and provides a notebook-style experience (a \"your page is a notebook\" experience), whereas JupyterLite is more of a \"notebook-in-a-window-in-your-page\" experience.\n",
"\n",
"This use of Sphinx-Thebe with Pyodide was made possible in Summer 2023 by Max Guichard, originally as a set of static files loaded in the [MUDE Book](https://mude.citg.tudelft.nl/book). In January of 2024 this was converted to a custom Sphinx extension hosted on [MUDE's TU Delft GitLab](https://gitlab.tudelft.nl/mude/sphinx-thebe/-/tree/lite-main?ref_type=heads). As of February, 2025, we are currently working on improving this extension and providing it via PyPI, similar to our other tools. Stay tuned!\n",
"\n",
"Sphinx-Thebe can be configured to use two types of \"computers\" in the background: Pyodide (what we use, running _100% in the browser_) and Binder, which is a third-party service that provides cloud-based computers for free (i.e., code runs on a separate server). This is a great tool, but often the time required to wait for the free cloud computer to be ready is too long (or simply does not work). As most of our teaching applications only require simple pieces of code, we prefer the Pyodide-based options because it is more reliable and loads faster.\n",
" ```"
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
@ -38,13 +60,12 @@
"## Setting up Python live coding\n", "## Setting up Python live coding\n",
"To set up the Python live coding you need to add our [own sphinx-thebe extension](https://github.com/TeachBooks/Sphinx-Thebe) to your book. This extensions doesn't rely on a 3rd party like Binder and it supports local python execution and custom features. Therefore, you need to add some lines to `requirements.txt` and `_config.yml`\n", "To set up the Python live coding you need to add our [own sphinx-thebe extension](https://github.com/TeachBooks/Sphinx-Thebe) to your book. This extensions doesn't rely on a 3rd party like Binder and it supports local python execution and custom features. Therefore, you need to add some lines to `requirements.txt` and `_config.yml`\n",
"\n", "\n",
"For `requirements.txt` add the following lines:\n", "For `requirements.txt` add the following line:\n",
"```\n", "```\n",
"--extra-index-url https://gitlab.tudelft.nl/api/v4/projects/11239/packages/pypi/simple\n", "git+https://github.com/TeachBooks/Sphinx-Thebe\n",
"sphinx-thebe ~= 0.9.9\n",
"```\n", "```\n",
"\n", "\n",
"This will download the correct version of the sphinx extension when the book is built on the server (which loads the required packages from `requirements.txt`)\n", "This will download the correct version of the sphinx extension when the book is built (which loads the required packages from `requirements.txt`)\n",
"\n", "\n",
"If you want to build the book locally, you need to install this version of sphinx-thebe in your environment as well with:\n", "If you want to build the book locally, you need to install this version of sphinx-thebe in your environment as well with:\n",
"```\n", "```\n",
@ -53,7 +74,7 @@
"\n", "\n",
"Afterwards, this sphinx extension needs to be enabled in your book. This can be done by adding the following lines to `_config.yml`:\n", "Afterwards, this sphinx extension needs to be enabled in your book. This can be done by adding the following lines to `_config.yml`:\n",
"\n", "\n",
"```\n", "```yaml\n",
"launch_buttons:\n", "launch_buttons:\n",
" thebe: true\n", " thebe: true\n",
"\n", "\n",
@ -69,14 +90,14 @@
"The `html_js_files` link calls for some required javascript files. `use_thebe_lite` makes sure you initiate our adapted sphinx thebe extensions. The `exclude_patterns` makes sure you import all files so that they can be accessed from your code, except for the files matching the patterns shown.\n", "The `html_js_files` link calls for some required javascript files. `use_thebe_lite` makes sure you initiate our adapted sphinx thebe extensions. The `exclude_patterns` makes sure you import all files so that they can be accessed from your code, except for the files matching the patterns shown.\n",
"\n", "\n",
":::{note}\n", ":::{note}\n",
"If you've a lot of big files which are not used by the code, the build book repository might grow a lot in size. Include unnecessary filetypes like images (i.e. `\"**/*.png`) to `exclude_patterns`. Make sure you use proper markdown or MyST syntax for referencing to images. Using HTML code might lead to figures not being available in the final book.\n", "If you've a lot of big files which are not used by the code, the build book repository might grow a lot in size. Include unnecessary filetypes like images (i.e. `\"**/*.png`) to `exclude_patterns`. Make sure you use proper markdown or MyST syntax for referencing to images. Using HTML code might lead to figures not being available in the final book. You can use [this python script](./directories.py) to list all filetypes in your book.\n",
":::\n", ":::\n",
"\n", "\n",
"By `launch_buttons` you initiate the {fa}`rocket` --> {guilabel}`Live Code` on the top right corner of every page generated from a `.ipynb` file. \n", "By `launch_buttons` you initiate the {fa}`rocket` --> {guilabel}`Live Code` on the top right corner of every page generated from a `.ipynb` file. \n",
"\n", "\n",
"Note, if you're messing around with `html_theme_options` (for example when adding more buttons), all button behaviour is affected. In that case, as opposed to the jupyter book documentation, all buttons have to be specified from within `sphinx: html_theme_options` where you might also specify other buttons as well (ie. the [code repository button](https://jupyterbook.org/en/stable/basics/repository.html)).\n", "Note, if you're messing around with `html_theme_options` (for example when adding more buttons), all button behaviour is affected. In that case, as opposed to the jupyter book v1 documentation, all buttons have to be specified from within `sphinx: html_theme_options` where you might also specify other buttons as well (ie. the [code repository button](https://jupyterbook.org/v1/basics/repository.html)).\n",
"\n", "\n",
"```\n", "```yaml\n",
"sphinx:\n", "sphinx:\n",
" config:\n", " config:\n",
" html_js_files:\n", " html_js_files:\n",
@ -98,7 +119,7 @@
"If you push to main, you can test the interactivity on the book-draft website as well.\n", "If you push to main, you can test the interactivity on the book-draft website as well.\n",
"\n", "\n",
"## Custom cell tags\n", "## Custom cell tags\n",
"With the extended functionality of live code, additional cell tags have been developed to be added to python cells (not markdown cells) in any .ipynb file, next to the [existing tags] of the jupyter book (https://jupyterbook.org/en/stable/content/metadata.html):\n", "With the extended functionality of live code, additional cell tags have been developed to be added to python cells (not markdown cells) in any .ipynb file, next to the [existing tags] of the jupyter book v1 (https://jupyterbook.org/en/stable/content/metadata.html):\n",
"- `disable-execution-cell` disables the ability to execute the cell when thebe is activated. This might be useful if you notebook file includes interactivity for only a part of the coding cells\n", "- `disable-execution-cell` disables the ability to execute the cell when thebe is activated. This might be useful if you notebook file includes interactivity for only a part of the coding cells\n",
"- `disable-execution-page` disables the ability to execute the entire page. This might be useful if you use python code for creating a page, but the code is not part of the actual content of the book.\n", "- `disable-execution-page` disables the ability to execute the entire page. This might be useful if you use python code for creating a page, but the code is not part of the actual content of the book.\n",
"- `auto-execute-page` automatically starts the thebe live coding functionality whenever the page is opened. This is particularly useful if you're using widgets on a page.\n", "- `auto-execute-page` automatically starts the thebe live coding functionality whenever the page is opened. This is particularly useful if you're using widgets on a page.\n",
@ -145,16 +166,29 @@
"\n", "\n",
"```python\n", "```python\n",
"%pip install package_name\n", "%pip install package_name\n",
"```" "```\n",
"\n",
"### Import module from subdirectory\n",
"In case you've a module in a subdirectory you cannot do directly `import <module_name> as <local_module_name>`. To solve this, you first have to add that subdirectory to the path with `sys.path.insert(1, '/<module_name/subdirectory>')` (preferably in a hidden cell with `theme-remove-input-init`)"
] ]
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Exercises and examples with executable code\n",
"\n",
"To include executable code in your book inside exercises and/or examples, you can use the Sphinx extension [Sphinx-Exercises](https://ebp-sphinx-exercise.readthedocs.io/en/latest/syntax.html#alternative-gated-syntax) and/or the Sphinx extension {ref}`Sphinx-Code-Examples <sphinx-code-examples-gated>`.\n",
"\n",
"## Alternative with JupyterLite (less well integrated)\n", "## Alternative with JupyterLite (less well integrated)\n",
"\n", "\n",
"Another option to use python in your browser is to use JupyterLite. However, this doesn't give a similar seamless interface. You could create 'iframe-like' Ipython consoles / jupyterbook / jupyter lab environments in your book. As these 'iframes' are separate modules added to your page, the integration with the other content in your book is less flexible as with our sphinx-thebe extension. Furthermore, the best way to use a JupyterLite session would be a separate repo with the jupyter lab interface anyway, so you get the full browser experience. Alternatively, the ipython REPL better can be usefull, as shown here: https://teachbooks.github.io/learn-python/main/Python_Toolbox.html." "Another option to use python in your browser is to use [JupyterLite](https://jupyterlite.readthedocs.io/en/stable/). However, compared to Sphinx-Thebe, described above, this doesn't give a similar seamless interface within your page. Nevertheless, depending on your application, JupyterLite could be a useful tool, especially as it allows for three IDE types: Jupyter Notebook, Jupyter Lab and the iPython REPL.\n",
"\n",
"One example use case is to create 'iframe-like' Ipython consoles / jupyterbook / jupyter lab environments in your book. As these 'iframes' are separate modules added to your page, the integration with the other content in your book is less flexible as with our sphinx-thebe extension. If you need to manage several different environments for JupyterLite within the book, you can use a JupyterLite session from a separate repo with the jupyter lab interface anyway, so you get the full browser experience. Alternatively, the ipython REPL better can be useful, as shown in our [Python for Engineers book](https://teachbooks.io/learn-python/main/Python_Toolbox.html).\n",
"\n",
"```{tip}\n",
"The TeachBooks Team has focused primarily on the use of Sphinx-Thebe and has not looked at JupyterLite over the last couple years. If you have an interesting application of this tool for teaching, please get in touch, we would love to see it! You can use [GitHub Discussions](https://github.com/orgs/TeachBooks/discussions) or sent us an email at [info@teachbooks.io](mailto:info@teachbooks.io).\n",
"```\n"
] ]
} }
], ],

View file

@ -0,0 +1,143 @@
````{margin}
```{admonition} User types
:class: tip
This section is useful for user type 4-5.
```
{bdg-link-secondary}`Uses TeachBooks package <./teachbooks_intro.html>`
````
(setup-local-server)=
# Local Server to view interactive elements locally
Perhaps you have already noticed that when building a book and testing it locally on your computer, some features do not work the way you expect, or worse---do not work at all! This is because many interactive features rely on browser functionality to work properly, for example: Grasple/H5p iframe exercises, Sphinx-Thebe Python interactivity and HTML/Javascript elements. Although the website is _static_ (i.e., there is no code running on a webserver that generates the content), modern web browsers have their own internal computing environments that run processes to deliver the rich content we desire in our books.
Technically what is needed to facilitate this during the editing and checking of your book locally is a **static web server** that can serve the files in the `./book/_build/html` directory of your book (this subdirectory is created as a result of the command `build book`). We refer to this as a **local server** because it is running on your local machine.
```{admonition} Why do you need a local server?
:class: tip
A TeachBook is really just a _static website._ This means that all book content _and interactivity_ is available via the (static) files that are provided to you by a webserver when you visit a specific URL. After this initial request, all required files are available in your web browser, however, some features require the request and response protocol to work properly.
```
We recommend you use the **TeachBooks Python Package**, which has a `serve` command in the CLI tool to start and stop local servers. Find out more on {ref}`the TeachBooks Package page <teachbooks-serve>`.
This page presents just a few additional examples that are used by TeachBooks collaborators. There are many more options available out there, for example, [this list illustrates many servers that can be activated with a single line of code!](https://gist.github.com/willurd/5720255).
```{tip}
Remember that the browser is serving static files provided by the local server and does not always keep track when they are updated.
You should reload the page if you are editing and rebuilding the book. You can try `CTRL+R` `ctrl`+`F5`. If this does not work, on Chrome try right-clicking somewhere on the page, select \"Inspect\", open the \"Network\" tab, then reload with `CTRL+R`.
```
(teachbooks-serve)=
## TeachBooks Server: `teachbooks serve`
If you have the TeachBooks Python package installed (`pip install teachbooks`), starting a server is as simple as:
```bash
teachbooks serve
```
See the {ref}`TeachBooks Package page <teachbooks-serve>` for additional guidance on using the CLI tool.
By default it assumes you have a book in `./book/`, are running the command from the root `./` of your repository and will serve `./book/_build/html`. If not, it will serve the repository root. You can also specify the directory to serve:
```bash
teachbooks serve path unconventional_book_dir/_build/html
```
```{tip}
Remember that the browser is serving static files provided by the local server and does not always keep track when they are updated.
You should reload the page if you are editing and rebuilding the book. You can try `CTRL+R` `ctrl`+`F5`. If this does not work, on Chrome try right-clicking somewhere on the page, select \"Inspect\", open the \"Network\" tab, then reload with `CTRL+R`.
```
To stop the server, simply run
```bash
teachbooks serve stop
```
The CLI tool is set up to make the book edit and check workflow as easy as possible locally:
- you can rebuild the book without restarting the server.
- it reuses an existing server if already running.
- it prints the URL where the book is served after building the book to easily access it by clicking the link in standard output.
- the `teachbooks serve stop` command prevents Python processes running in the backgroudn and slowing down your computer (it saves the server state in a pickle file).
### Installation of TeachBooks
The TeachBooks package is currently [available on PyPI](https://pypi.org/project/teachbooks/) and can be installed as follows:
```
pip install teachbooks
```
The first stable release (`v1.0.0`) is expected to be released in Spring 2025. Until then the package is very much useable but will be updated frequently. Therefore, get in the habit of updating the package regularly:
```bash
pip install --upgrade teachbooks
```
We recommend you install this in an environment that is specifically dedicated for building books. Python virtual environments are a good way to manage this and would be consistent with what is used by the GitHub servers via the {ref}`Deploy Book Workflow <deploy-book-workflow>`. However, if you use non-Python tools to edit and check your book, a Conda environment may be a better choice.
The package is a CLI tool that primarily provides a wrapper around the Jupyter Book package which is used for pre- and postprocessing. In this case "wrapper" refers to the CLI usage: CLI commands generally invoke `jupyter-book` commands internally; the `jupyter-book` package is _not_ distributed within the `teachbooks` package.
The source code and function of the package will eventually be documented on a Sphinx-built website ([teachbooks.io/TeachBooks/](https://teachbooks.io/TeachBooks/)), however, this is currently still under construction.
## Live Server: a VS Code Extension
A local server is easy to initialize directly in VS Code using the Live Server extension. Once installed, it can be activated with a "Go Live" button in the bottom right corner of VS Code. The extension will automatically serve index.html, so depending on your book build settings you may need to navigate to the correct directory/file manually using the URL address in the browser.
````{admonition} Install Live Serve Extension
:class: tip
You can install this extension by searching for `Live Server` (or even easier, extension ID `ritwickdey.LiveServer`)in the Visual Studio Code extensions marketplace.
```{figure} https://github.com/ritwickdey/live-server-web-extension/raw/master/img/icon.png
---
width: 10%
name: live-server-icon
```
````
## Python Server: `python -m http.server`
The Python standard library has a built-in server that can be activated from the command line. This is a simple way to serve a book locally
```
python -m http.server
```
If you don't mind typing a bit more, you can specify the port number and the directory to serve:
```
python -m http.server 8000 --directory book/_build/html
```
This is actually what the `teachbooks serve` command is using, but there we have added additional features to make the process more user-friendly for the book edit and check workflow.
### Stopping the Python Server
It can be challenging to stop the Python server, especially when using Windows OS. Even though you may force end the process (e.g., with `CMD+C`), the server may still be running in the background.
For Mac and Linux users (or for Windows if you have Git Bash installed or another Unix-type terminal), you can try this:
```bash
pid=$(ps aux | grep http.server | head -n 1 | awk '{ print $2 }')
kill -9 $pid
```
Or this:
```bash
tskill python
```
A Windows-specific command for the CMD prompt or Powershell is:
```
TASKKILL /IM python.exe /F
```

View file

@ -1,12 +1,30 @@
# TeachBooks Features (feature_overview)=
# Overview
As TeachBooks, we collect a suite of existing open-source software and keep our books up-to-date so you don't have to! Some of the software is developed with our TA's to improve the learning experience of our students and ease the book-development process for our teachers. By deploying these tools from a central location we can prevent common problems before they arise, and fix them quickly when they do occur. As the open-source software landscape changes rapidly, it is essential to keep in contact and share resources amongst ourselves to minimize maintenance and downtime for our book websites and focus on what really matters: teaching! As TeachBooks, we collect a suite of existing open-source software so you don't have to! Some of the software is developed with our TA's to improve the learning experience of our students and ease the book-development process for our teachers. As the open-source software landscape changes rapidly, it is essential to keep in contact and share resources amongst ourselves to minimize maintenance and downtime for our book websites and focus on what really matters: teaching!
This chapter provides a list of commonly used book features together with sub-pages that provide additional information on: Since the list of TeachBook features is getting quite long, we have grouped them in categories:
- the purpose - [Original Jupyter Book v1 and Sphinx features](../basic-features/overview.md)
- how to install them - [Easy editing process](./easy-editing.md)
- how to use them - [Additional functionality](./sphinx_extensions.md)
- where to find the source code - [Book styling](./visuals.md)
- [TeachBooks student-view features](./students.md)
To see examples for these features, go to the [Examples chapter](../examples/overview.md). Additionally, not all features are built and shared in the same way. We do our best to make sure that as many tools as possible are included automatically when using our TeachBooks Template Book; if you are not using the Template, we try to make sure each of our tools can be used independently. For transparency, tags will help differentiate between the different backgrounds of the features:
- {bdg-warning}`Javascript overlay`
- {bdg-success}`Chrome Extension`
- {bdg-white}`GitHub App and Javascript script`
- {bdg-link-secondary}`Python Package: teachbooks <./teachbooks_intro.html>`
- {bdg-link-light}`GitHub Reusable Action: Deploy Book workflow <../external/deploy-book-workflow/README.html>`
- {bdg-link-light}`GitHub Template: TeachBooks Template <../external/template/README.html>`
- {bdg-dark}`Git Workflow`
- {bdg-primary}`Sphinx Extension`
- {bdg-link-primary-line}`TeachBooks Favourites <./favourites.html>`
- {bdg-danger}`iframe`
- {bdg-success}`WebApp`
For each feature, the purpose, installation process and usage is elaborated in the respective sub-sections.
To see examples of these features, go to the [Examples chapter](../examples/overview.md).
As the [TeachBooks Python Package](./teachbooks_intro.md), the [Deploy Book Workflow](../external/deploy-book-workflow/README.md), [TeachBooks Favourites](./favourites.md) and the [TeachBook template](../external/template/README.md) are important tools that incorporate and deploy more than one feature, an additional explanation is provided here in subpages to this page in more detail, with links to other pages in this manual where individual features are described.

507
book/features/plotly.ipynb Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,105 @@
````{margin}
```{admonition} User types
:class: tip
This section is useful for user type 3-5.
```
````
# Build pull requests from forks
When writing a TeachBook it is useful to automatically build and view these changes online. This exactly why we designed and build the [deploy-book-workflow](../external/deploy-book-workflow/README.md) tool, which also allows for multiple versions of your book to exist at any time with customizable URL's. However, it doesn't cover all use cases. Luckily, **Read the Docs** is a free tool that can easily be used for this purpose. It also provides a very easy way to view differences between versions on each page!
Pull Requests are a key tool for allowing anyone with a GitHub account to make a contribution to your work by forking your repository, adding commits, then sending them back to your repository via a Pull Request. Unfortunately you are not able to automatically build the book based on proposed changes in a pull request from a fork of your repository, as this requires the deploy-book-workflow in the fork to have GitHub Actions enabled to show the proposed changes in the book. Furthermore, when proposing your contribution in a pull request, you'd have to manually refer to your own built book (e.g., with a hyperlink). This process can be made easier by using [Read the Docs](https://about.readthedocs.com/?ref=readthedocs.org), as it can automatically build a book based on changes proposed in a pull request, and includes a link to the book directly in the pull request page.
Read the Docs is not recommended for final versions of your book because of the advertisement in the free version. If you'd like to pay for it, it can replace the functionality of the [deploy-book-workflow](../external/deploy-book-workflow/README.md).
This tool works using Sphinx, which is the core engine for Jupyter Book v1; it is carried out using a Jupyter Book command to generate a Sphinx configuration file, for example:
```
jupyter-book config sphinx book/
```
In theory this should work with the TeachBooks Python package `teachbooks` as well as local extensions (e.g., those in `book/_ext` like [](./apa.md)), but we have not checked this yet. If you are interested, try setting it up as a PR related to [this issue](https://github.com/TeachBooks/Read-the-Docs-example-book/issues/3).
```{tip}
Once set up, this tool is only accessible via the Pull Request page for a repository in the 'Checks' part of the automated rule set box (illustrated below under 'Usage'). This is different from our deploy-book-workflow, which is accessed under the Actions tab of a GitHub repository.
A Read the Docs account and admin privelages for a repository are the only requirements needed set this up; all visitors to the pull request page will be able to view the book, including the differencing feature.
```
## Usage
After visiting the summary page of a pull request you will be able to see the following line (_make sure you click "show all checks" to see it!_):
![Read the docs in GitHub preview](./figures/readthedocs1.png)
Click 'Details' to see the logs of the build process.
Whenever the build is done, click 'Details' again to see the build book. Tip, click `d` or add `?readthedocs-diff=true` to the url to see the differences on the pages highlighted. Note that this differencing functionality is not perfect as it might indicate elements which are not changed intentionally. It is known to have issues visualizing changes associated with buttons, LaTeX and figures.
### Example
As an example, Read the Docs is configured in this [example book](https://github.com/TeachBooks/Read-the-Docs-example-book). Fork it and open a pull request to test it's functionality.
There's an example [pull request](https://github.com/TeachBooks/Read-the-Docs-example-book/pull/1) with corresponding [built book on Read the Docs](https://read-the-docs-example-book--1.org.readthedocs.build/1/intro2.html?readthedocs-diff=true).
## Setting up
This tool is a specific automation rule that is enabled within the GitHub pull request ecosystem.
### Add configuration file to your repository
Add a file `.readthedocs.yaml` to the root of your repository, containing the following content:
```yaml
version: 2
build:
os: ubuntu-24.04
tools:
python: "3.13"
jobs:
pre_build:
- "jupyter-book config sphinx book/"
python:
install:
- requirements: requirements.txt
sphinx:
builder: html
fail_on_warning: true
configuration: book/conf.py
```
You might need to add `standard-imghdr` to your `requirements.txt` file if the build fails when you've configured it in Read the Docs (if the error tells you `ModuleNotFoundError: No module named 'imghdr'`)
### Setup Read The Docs account
Setup an account at [app.readthedocs.org/accounts/login/](https://app.readthedocs.org/accounts/login/?next=/dashboard/). We recommend using your GitHub account for authentication.
When authorizing Read the Docs for your GitHub account, you can also grant access by Read the Docs for an organization of which you are an owner, as well, which we also recommend.
### Authorize access to organization
When you didn't do so in the previous step, or you'd like to grant access at a later moment, you can grant/revoke access by Read the Docs to your organization by following these menu items in settings: [`personal GitHub Settings - Integrations - Applications - Authorized OAuth Apps - Read the Docs Community`](https://github.com/settings/connections/applications/fae83c942bc1d89609e2).
### Add project in Read The Docs
On your [dashboard](https://app.readthedocs.org/dashboard/), add a new project. Find your GitHub repository (you might need to refresh your repositories if you've recently updated authorizations).
### Enable Pull Request build
In the setting of your newest project, enable build of pull request by selecting the option in `Building - Pull request builds - Build pull requests for this project`.
### Additional settings
The following settings are recommended:
- `Setup` - `Settings` - `URL versioning scheme` - `Multiple versions without translations (/<version>/<filename>)`, as translated books can be implemented with [](../external/Sphinx-launch-buttons/README.md)
- `Setup` - `Settings` - `Addons` - `Search` - disabled, as your books already contain a search function and the Read the Docs search functions requires [additional setup](https://docs.readthedocs.com/platform/stable/intro/sphinx.html#configure-read-the-docs-search)
- `Setup` - `Settings` - `Addons` - `Link previews` - disabled, `Multiple versions without translations (/<version>/<filename>)`, as previews can be implemented with [](../external/teachbooks-sphinx-tippy/README.md)
- `Setup` - `Settings` - `Automation rules` - `Add rule`, to build all tagged versions of your book:
- `Description`: 'Build all tags'
- `Match`: `Custom Match`
- `Custom match`: `.*`
- `Version type`: `Tag`
- `Action`: `Activate version`

View file

@ -0,0 +1,257 @@
````{margin}
```{note}
{bdg-link-light}`GitHub Reusable Action: Deploy Book workflow <../external/deploy-book-workflow/README.html>`
{bdg-link-light}`Part of TeachBooks Template <../external/template/README.html>`
{bdg-link-secondary}`Uses TeachBooks package <./teachbooks_intro.html>`
```
```{tip}
This section is useful for user type 3-5.
```
```{seealso}
[{octicon}`mark-github` Repository deploy book workflow](https://github.com/TeachBooks/deploy-book-workflow)
[{octicon}`book` Publish version on separate (fixed) URLs](../installation-and-setup/versions_URLs.md)
{octicon}`pencil` Exercises:
- [Your version of the book](https://teachbooks.io/template/exercises/004.html)
- [Deploy book workflow](https://teachbooks.io/template/extension_exercises/015.html)
```
````
# Share book online for multiple versions
As you'll start working on your TeachBook, you'll probably want to share it online. And over time you'll create more and more versions of your book, for example for different academic years.
Our Deploy Book Workflow (described in general [here](../external/deploy-book-workflow/README.md)) allows you to do so. It builds your book for all branches in your repository and releases them online via GitHub Pages. In simplified terms, it automatically builds the book website based on updates to your repository, creates multiple instances of your book (defined by each branch) and provides the ability to customize the URL's at which each instance of the book can be accessed. This tool is designed specifically for educational contexts, for example, when you may want to preserve book versions from multiple academic years so that students are able to access it later.
Sharing your book online has many features and customizations:
- Automatic and manual building and releasing of your book online via GitHub Pages using a Reusable GitHub Actions. See explanation [below](how_to_start).
- Ability to release both private (GitHub Pro, GitHub Team, GitHub Enterprise Cloud, or GitHub Enterprise Server required) and public (GitHub Free is enough) repositories. GitHub Teams is free for teachers as described in the [GitHub documentation](https://docs.github.com/en/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-education-for-teachers/about-github-education-for-teachers#github-education-features-for-teachers). If you have an organization for your TeachBook on GitHub, link your GitHub team rights to your organization as described on the [GitHub website](https://github.com/team#organizations).
- Releasing all or a selection of branches, allowing to build a draft version of the TeachBook online which reduces the need for local builds of the book. See explanation [below](gh-workflow-settings).
- Allowing use of submodules within your book. For private submodules, see the explanation [below](private_submodules)
- Converting branch-names to well-defined URLs. See explanation [below](gh-workflow-settings).
- Customizable settings on where the books should be deployed including alias for branch-names and selection of one branch to be deployed on root. The workflow will gives warnings if these settings are ill-defined or conflicting. Although aliases are generally not allowed by GitHub Pages, it seems you can use one alias, but not more. See explanation [below](gh-workflow-settings).
- Customizable behavior of book URL root directory, either by redirecting the root to one of the branches or by copying or moving one of the branches to root. See explanation [below](gh-workflow-settings).
- Adds an 'archived'-banner to old branches / branches of previous years. See explanation [below](gh-workflow-settings).
- Custom 404 "Page Not Found" page with buttons for redirecting to Homepage (e.g., book intro page), "Go Back" or Repository home.
- Provides a summary describing where the TeachBook is released, errors in the build process per branch and how the release step is configured. See explanation [below](gh-workflow-summary)
- Caching of already built books so that it can be partially reused when another branch is released or the next build contains critical errors. See explanation [below](gh-caching)
- Caching of python environment to speed up the workflow. See explanation [below](gh-caching)
(how_to_start)=
## How to start using this workflow
The Deploy Book Workflow is by default incorporated into any book that has been created using the [TeachBooks Template](https://github.com/TeachBooks/template).
Feel free to use it for your existing TeachBook as well:
1. Add [`teachbooks`](https://github.com/TeachBooks/TeachBooks) to your `requirements.txt` file in your root folder
2. Move all the TeachBook files (including `_config.yml` and `_toc.yml`) to a subdirectory `book/`.
3. Copy the [`call-deploy-book.yml`](https://github.com/TeachBooks/template/blob/main/.github/workflows/call-deploy-book.yml) workflow to the `/.github/workflows` folder in your repository (the file is located in the TeachBooks Template repository becuase that file then refers to the file `deploy-book.yml` located in _this_ repository).
4. Set source for GitHub pages to GitHub Actions under <svg aria-label="Edit repository metadata" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-gear float-right"> <path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path> </svg>`Settings` - <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-browser"> <path d="M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 14.25 15H1.75A1.75 1.75 0 0 1 0 13.25ZM14.5 6h-13v7.25c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25Zm-6-3.5v2h6V2.75a.25.25 0 0 0-.25-.25ZM5 2.5v2h2v-2Zm-3.25 0a.25.25 0 0 0-.25.25V4.5h2v-2Z"></path> </svg> `Pages` - `Build and deployment` - `Source` - `GitHub Actions` (as long as you don't do this the workflow deploys all branches which build successfully).
5. Trigger the workflow by making an edit to the TeachBook by editing and committing changes to one of the files in the `book/` subdirectory (available under <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> `Code`) or manually activating the workflow under <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg>`Actions` - `All workflows` - `call-deploy-book` - `Run workflow` - `Use workflow from branch: <the branch you did step 1, 2 and 3 in>` - `Run workflow` (this workflow).
6. Now checkout the progress and summary of the releasing workflow under <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg>`Actions` - `All workflows` - `call-deploy-book` -`<the most recent workflow run>`.
(gh-workflow-settings)=
## Customize the workflow: TeachBook releasing settings
You can adapt the behaviour by setting repository variables as explained [here](https://docs.github.com/en/actions/learn-github-actions/variables#creating-configuration-variables-for-a-repository) or using the [VS Code Extension GitHub Actions](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-github-actions). Define the following repository variables:
- `PRIMARY_BRANCH` which is set to `main` whenever it's not defined in the repository variables.
- This sets the branch or alias (when using 'redirect' for `BEHAVIOR_PRIMARY`) which is shown on root.
- It is advised to show either your default branch on root, or the branch shared with your primary/active book audience (e.g., your current students).
- `BEHAVIOR_PRIMARY` which is set to `redirect` whenever it's not defined in the repository variables.
- This indicates whether to copy the PRIMARY_BRANCH to root ('copy'), move the PRIMARY_BRANCH to root ('move') or redirect from root to the PRIMARY_BRANCH ('redirect')
- Advised to use 'redirect' if you expect to archive a version in the future so that the URL doesn't change for the reader (e.g., to preserve URL containing the current academic year shared with students).
- Use copy or move when you only expect readers to use the root URL. Move is useful to remove unnecessary build artifacts and if you don't need to visit the URL containing the branch or alias name.
- `BRANCH_ALIASES` which is set to ` ` (just a space) whenever it's not defined in the repository variables.
- This defines an alias (custom URL) for a branch
- Variables should be a space-separated list of branch names, e.g. 'alias:really-long-branch-name`
- If no alias is wanted, `BRANCH_ALIASES` may be set to ` ` (just a space)
- `BRANCHES_TO_DEPLOY` which is set to `*` (all branches) whenever it's not defined in the repository variables.
- This defines the branches to deploy.
- It should be a space-separated list of branch names, e.g. 'main second third'.
- `BRANCHES_TO_PREPROCESS` which is set to ` ` (just a space = no branch) whenever it's not defined in the repository variables
- This defines the branches to preprocess with the [`TeachBooks` package](./draft-release.md), which removed book-pages and config lines defined with `# START REMOVE-FROM-RELEASE` and `# END REMOVE-FROM-RELEASE`
- It should be a space-separated list of branch names, e.g. 'main second third'.
- If no preprocessing is required, `BRANCH_TO_PREPROCESS` may be set to ' ' (space).
- `BRANCHES_ARCHIVED` which is set to ` ` (space, no branch) whenever it's not defined in the repository variables
- This adds a banner to the released branch: You are viewing an archived version of the book. Click here for the latest version.
- It should be a space-separate list of branch names, e.g. 'main second third'.
In `call-deploy-book.yml` itself you can specify the trigger for this workflow. By default, a push to any branch triggers the workflow. You can limit the branches or subdirectories.
## Additional GitHub settings
We advise you to enable two options in the general repository setting regarding pull requests in GitHub:
- Enable `Always suggest updating pull request branches`, suggesting a merge from the default branch into any separate branch before merging into main.
- Enable `Automatically delete head branches` to delete branches after they are merged (you'll still be able to restore those).
## Common Usage Examples
Relevant use cases are explained here, along with an explanation for how to set up the workflow accordingly. Note that it is not required to set your `PRIMARY_BRANCH` to the default branch of your GitHub repository; this is a choice that is determined by what version of the source code you want visitors to see (i.e., work in progress, or the most recent "complete" or "released" version of a book).
### Books with active users of different versions (academic years)
Consider a case where each academic year you would like to create a new book for your students. However, you need to ensure that students from previous years can still access "their" version of the book.
Assume for this example that we are working in the "my_organization" GitHub Organization in repository "my_book" and that the current academic year is 2025, and that we have one or more books in our repository from previous years. The desired URL structure is thus:
- students from this year use the book at `my_organization.github.io/my_book/2025/`
- students from last year use the book at `my_organization.github.io/my_book/2024/`
- visitors to `my_organization.github.io/my_book/` will automatically be redirected to the book from the current year
To create this behavior, do the following:
- Create a branch for each year: a logical name would have format `YYYY`, (technically it can be anything, as the URL can be set to `YYYY` with `BRANCH_ALIASES`).
- Set `PRIMARY_BRANCH` to the branch for the current academic year (e.g., `2025`)
- Set `BEHAVIOR_PRIMARY` to `redirect` (default)
#### Alternative without redirect to current year
One possible modification to this setup would be if you are progressively releasing content to your current students (e.g., `2025`) but you wanted visitors to `my_organization.github.io/my_book/` to see a complete version of your book. Assuming that the ideal version for such visitors is the completed book from the previous year (`2024`), you could do this:
- Set `PRIMARY_BRANCH` to `2024`
- Set `BEHAVIOR_PRIMARY` to `copy`
As your current students may then accidentally go to the older version of the book, we recommend you use a banner to indicate to readers that there is a (partial) new version available, and advise them where to find it. You can add a banner using this workflow (`BRANCHES_ARCHIVED`) or the [standard Jupyter Book v1 banner feature](https://jupyterbook.org/v1/web/announcements.html).
### Books with active editors working in parallel
Consider a case where several authors are working on material for a book and you would like to be able to see the work of any author at any time. You also have a branch that is used to share finalized material with your readers (we call this a "release" branch) and a branch that is used to collect and review the work of all authors before releasing it (we call this a "draft" branch).
Assume for this example that we are working in the "my_organization" GitHub Organization in repository "my_book." The released book is on branch `release` the draft book is on branch `draft`; author branches are `author_1`, `author_2`, etc. The desired URL structure is thus:
- official (released) version of the book is at `my_organization.github.io/my_book/`
- draft version of the book is at `my_organization.github.io/my_book/draft/`
- the work of each author can be found at `my_organization.github.io/my_book/author_1/`, etc.
To create this behavior, do the following:
- Create a branch for each author as well as `release` and `draft` branches
- Set `draft` to the default branch
- Set `PRIMARY_BRANCH` to `release`
- Set `BEHAVIOR_PRIMARY` to `copy`
Note that in this situation we strongly recommend using the Draft-Release workflow that is incorporated in the TeachBooks Python package, which allows you to restrict specific content from appearing in the `release` book that is already incorporated in the `draft` book. [Find out more here](./draft-release.md). This is useful, for example, if you would like to review many chapters, but release only one at a time, or use a banner in the draft book (e.g., via `_config.yml`) but not the released book.
#### Why make the draft branch default?
What if you want to make sure the source code for the released book is visible in the repository, rather than the draft version (e.g., you want to make sure external visitors see this version of the material)? You can do this by making `release` your default branch instead of `draft`. However, this also means that Pull Requests will be default be made into the `release` branch instead of `draft`, which may alter the working method of your team in an undesirable way (e.g., not being able to use a `draft` branch, accidentally releasing material before checking on `draft`, or having to manually adjust every PR that is created by GitHub to merge into `draft` instead of `release`).
(private_submodules)=
## Private submodules
In case your book includes private submodules, you'll need to create a Personal Access Token (classic) with at least the scope `repo` as described in the [github documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens), and add this token with the name `GH_PAT` as a `Repository secret` or `Organization secret` (<svg aria-label="Edit repository metadata" role="img" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-gear float-right"> <path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path> </svg>`Settings` > <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-key-asterisk"> <path d="M0 2.75A2.75 2.75 0 0 1 2.75 0h10.5A2.75 2.75 0 0 1 16 2.75v10.5A2.75 2.75 0 0 1 13.25 16H2.75A2.75 2.75 0 0 1 0 13.25ZM2.75 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25V2.75c0-.69-.56-1.25-1.25-1.25Z"></path><path d="M8 4a.75.75 0 0 1 .75.75V6.7l1.69-.975a.75.75 0 0 1 .75 1.3L9.5 8l1.69.976a.75.75 0 0 1-.75 1.298L8.75 9.3v1.951a.75.75 0 0 1-1.5 0V9.299l-1.69.976a.75.75 0 0 1-.75-1.3L6.5 8l-1.69-.975a.75.75 0 0 1 .75-1.3l1.69.976V4.75A.75.75 0 0 1 8 4Z"></path></svg>`Secrets and variables` > `Actions` > `Repository secrets` or `Organization secrets`.) Furthermore, manually copy the workflow (.github/workflows/deploy-book.yml) in your own repository as the authorization doesn't work with the called workflow.
(gh-workflow-summary)=
## View the workflow progress and summary
Whenever the workflow is triggered, its progress and a summary can be seen under the <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg>`Actions`- `All workflows` - `call-deploy-book` in GitHub! It shows you a descriptive summary:
- Ill-defined repository configuration variables (in `Annotations`)
- Which branches are released and where (`https://<username/organization_name>.github.io/<repository_name>` (case sensitive)) including which branch is released on the website root and the applied alias
- Errors in the build process
- How the repository variables are defined during the build.
Here's an example for a summary for the template book:
> ### Branches deployed
> | Branch 🎋 | Link 🔗 | Build status ☑️ |
> | :--- | :--- | :--- |
> | main | [https://teachbooks.github.io/template/main](https://teachbooks.github.io/template/main) | ✅ `Released` |
> | version2 | [https://teachbooks.github.io/template/version2](https://teachbooks.github.io/template/version2) | 🔴 `Build failed [1]` |
> | version3 | [https://teachbooks.github.io/template/version3](https://teachbooks.github.io/template/version3) | ⭕ `Build failed [2]` |
>
> #### Legend for build status
> ✅ `Released` - build success, new version released.
>
> 🔴 `Build failed [1]` - build failure, previous version of the book reused.
>
> ⭕ `Build failed [2]` - build failure, no previous version reused.
>
> #### Primary book at root
> The book at the website root <https://teachbooks.github.io/template/> redirects to the primary branch `main` (status: ✅ `Released`).
>
> ### Aliases
> | Alias ➡️ | Target 🎯 | Link 🔗 | Build status ☑️ |
> | :--- | :--- | :--- | :---- |
> | draft | main | [https://teachbooks.github.io/template/draft](https://teachbooks.github.io/template/draft) | ✅ `Released` |
>
> ### Preview of build errors & warnings
> For more details please see the corresponding `build-books` jobs in the left pane.
>
> On branch `version2`:
> ```
> <20>[91m/home/runner/work/template/template/book/some_content/overview.md:5: WARNING: Non-consecutive header level increase; H1 to H3 [myst.header]<5D>[39;49;00m
> ```
>
> On branch `version3`:
> ```
> /home/runner/work/_temp/ff8c8325-8d8b-4c0b-a2b2-32d2169c55bc.sh: line 8: teachbooks: command not found
> ```
>
> ### Repository configuration variables
> Variables can be set at <https://github.com/TeachBooks/template/settings/variables/actions>
>
> ```
> PRIMARY_BRANCH=main (default value used)
> BRANCH_ALIASES=draft:main
> BRANCHES_TO_DEPLOY=* (default value used)
> BRANCHES_TO_PREPROCESS=main
> BEHAVIOR_PRIMARY=redirect (default value used)
> BRANCHES_ARCHIVED= (default value used)
> ```
(gh-caching)=
## Caching
The GitHub Action [Cache](https://github.com/actions/cache) is used in the Deploy Book Workflow (DBW) to save time when building the book. This is accompliched by caching two sets of files for each branch: 1) the Python virtual environment, and 2) the build artifact (the HTML files forming each book website).
The reason for doing this stems from the primary purpose of the Deploy Book Workflow, which builds many versions of a book based on each branch, as well as creating a Python virtual environment from the `requirements.txt` file in the repository. A unique environment for each branch is necessary to test changes to book dependencies and configuration in an isolated way, but can dramatically increase the time required to build all versions of the book when the DBW runs. In addition, it also takes time to build the book itself. For this reason, both of these sets of files are cached (although at the moment, most of the time savings is primarily caching the build artifact).
This works by hashing a specific set of files and including that in the filename of the cache. Every time the workflow is triggered, a new hashed filename is created and compared to the list of existing caches to see if one with the same name exists; if so, the cache is reused. If not, a new environment and/or build artifact is constructed and a new cache is made.
Cached files can be found in GitHub under the Actions tab, then looking for the "Caches" section under the "Management" pane on the left hand side of the screen. For example, this link shows the [caches for this TeachBooks Manual](https://github.com/TeachBooks/manual/actions/caches). If needed, caches can be deleted manually from this page. A cache will expire if unused for longer than 1 week or if the maximum allowed disk space for all cached files is exceeded (both are GitHub policies).
Files created during a GitHub Action are called [artifacts](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/storing-and-sharing-data-from-a-workflow). Although this is _not_ the same thing as a cache, the files in a specific cache or artifact are identical. Artifacts have their own expiration period, which is possible to [customize in the repository settings](https://docs.github.com/en/organizations/managing-organization-settings/configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-organization) (default is 90 days). Unexpired artifacts can be viewed at the bottom of any workflow run summary that is available on the Actions tab of a GitHub repository.
To add even more confusion to the situation, if an artifact built during an Action is a set of HTML files (a website) that are used to create a GitHub Pages website, the files served when visiting the URL for that are stored on a webserver; they are _not_ the artifact files, but are identical. Fortunately webserver files are preserved indefinitely (or until GitHub changes this policy), meaning that even though your cache or artifact may be deleted, the website will still remain active.
The cache is a key component of the DBW and leads to several considerations for the building and maintenance of a book, which are explained below, after the criteria for each cache type are described.
### Cached Environment
The DBW uses [Python virtual environments](https://docs.python.org/3/library/venv.html) (`python -m venv .venv`) and `python -m pip install -r requirements.txt` to install packages and create the book building environment. The entire `.venv` directory is preserved in the cache with a file name beginning with `venv-...`. The week number is also included in the file hash, which ensures that a new hash is created at least once per week.
Once created during a successful build action, an existing cached environment will be found and reused unless two specific criteria are met: 1) a book build is required (replacing the cached build artifact), _and_ 2) the `requirements.txt` file is changed. Requirements for a "book build" are described in the next section.
Note that any change to the `requirements.txt` file will trigger creation of a new environment, not necessarily one that specifies the version number of a package.
Note that Specifying package version numbers explicitly and updating them via [Dependabot](./update_env.md) is an excellent way to ensure that environments in the DBW are always up to date and this issue is avoided.
If you are _not_ using Dependabot and are not able to get your packages updated when the DBW is running, delete the cache manually and rerun your GitHub Actions job (go to Actions tab, then looking for the "Caches" section under the "Management" pane on the left hand side of the screen).
### Cached Build Artifacts
Build artifacts are the HTML files that define the website (i.e., the book) and are typically located in the subdirectory `book/_build/html` of a repository once the book is built. Note that these files are typically only visible if you are building the book locally, as they are not committed to the repository by default (i.e., `.gitignore`). For users only using the DBW and the GitHub browswer editor, downloading the build cache is the easiest way to view these files, which have filenames beginnig with `html-build-<branch-name>-...`.
Once created during a successful build action, an existing cached build artifact will be found and reused unless _any_ of three specific criteria are met: 1) a change is made to a file in `book/`, 2) the `requirements.txt` file is changed, or 3) the status of a branch as archive or preprocess has changed (`BRANCHES_TO_PREPROCESS` of `BRANCHES_ARCHIVED`).
Immediately after a successful build action, the book website files exist in three places: cache, artifact and on a GitHub webserver. However, as described at the beginning of this section, the cache will be automatically deleted after 1 week, if unused, and the artifact will be deleted based on the setting in your repository (90 days by default).
### Effect of Caching on Book Workflow
Implementation of the DBW has several characteristics that should be noted which could help understand certain behaviors of the book build and website deployment process. These points may be useful to consider if you are experiencing undesired behavior in your Actions builds and/or your actual book websites.
- Remember that the DBW action will only run if a commit is made that changes `requirements.txt` or contents of `book/`
- When first creating a repository, the action may not run, or may run and fail; occasionally it is needed to make a new commit to get the workflow to run for the first time (remember to modify something in `book/`) or you may try to re-run the job from the Actions tab
- when using multiple branches, only the branch that is edited will be updated
- the website for each branch may be built with a different Python environments (different package versions)
Unlike the virtual environments (next subsection), caches of the book build do not influence subsequent builds of the book, as this artifact is replaced whenever a commit to a specific branch triggers a new build process. As described above, old cached build artifacts are used if the build process from a new commit fails, ensuring that the URL of a website does not return a 404 page.
### Effect of Caching on Virtual Environment
In particular, note that older branches may have been built with cached environments that are different than those in a newer branch, leading to (undesired) differences in book appearance or functionality---often without the author being aware! This occurs if a package in `requirements.txt` is updated in the time between the creation of environments on different branches, as `pip` will use the newest version when downloading a package (the first time a venv cache is created in the DBW), but it will not always automatically update a package if `pip install -r requirements.txt` is used on an existing environment (this happens every time an existing cache is used!). This means that, when compared to the venv on a newer branch, a frequently used branch (where the cache has not expired) may retain old and out of date packages long after an updated version is available; however, since the week number is included in the venv file hash, this will last for a maximum of 1 week. A best practice to avoid this situation is to pin version numbers explicitly (e.g., `teachbooks==0.2.0`) if you want book builds to remain consistent. In addition, a feature like dependabot can be used to automatically notify you when an update is made; this is [here](./update_env.md).

View file

@ -0,0 +1,80 @@
````{margin}
```{attributiongrey} Attribution
:class: attribution
This page reuses MIT licensed content from {cite:t}`sphinx-proof`. {fa}`quote-left`{ref}`Find out more here.<external_resources>`
```
```{admonition} User types
:class: tip
This section is useful for user type 3-5.
```
+++
{bdg-primary}`Sphinx Extension`
{bdg-link-light}`Included in TeachBooks Template <../external/template/README.html>`
{bdg-link-primary-line}`Included in TeachBooks Favourites <./favourites.html>`
````
# Sphinx proof
This extensions provides an easy way to add proofs, theorem, axioms and much more to your book. It is created by the Executable Books team and is [documented here](https://sphinx-proof.readthedocs.io/en/latest/).
TeachBooks has made some small modifications to the original extension, such that it works well with translated books; this modified version is located in the repository [github.com/TeachBooks/sphinx-proof](https://github.com/TeachBooks/sphinx-proof).
## What does it do?
This extension defines proofs, theorems, axioms and other similar concepts as new admonition types:
````{prf:example}
:label: my-example
Next, we shut down randomness in demand and assume that the demand shock
$\nu_t$ follows a deterministic path:
```{math}
\nu_t = \alpha + \rho \nu_{t-1}
```
Again, we’ll compute and display outcomes in some figures
```python
ex2 = SmoothingExample(C2=[[0], [0]])
x0 = [0, 1, 0]
ex2.simulate(x0)
```
````
More information can be found in the [official documentation](https://sphinx-proof.readthedocs.io/en/latest/index.html). It can be [configured in combination the TeachBooks extension to include examples with executable code and visuals](../_git/github.com_TeachBooks_sphinx-code-examples/main/MANUAL.ipynb).
## Installation
To use this extenstion, follow these steps:
**Step 1: Install the Package**
Install the TeachBooks' version of `sphinx-exercise` package using `pip`:
```
pip install sphinx-proof @ git+https://github.com/TeachBooks/sphinx-proof.git
```
**Step 2: Add to `requirements.txt`**
Make sure that the package is included in your project's `requirements.txt` to track the dependency:
```
sphinx-proof @ git+https://github.com/TeachBooks/sphinx-proof.git
```
**Step 3: Enable in `_config.yml`**
In your `_config.yml` file, add the extension to the list of Sphinx extra extensions (**important**: underscore, not dash this time):
```
sphinx:
extra_extensions:
.
.
.
- sphinx_proof
.
.
.
```

View file

@ -0,0 +1,10 @@
````{margin}
```{admonition} User types
:class: tip
This section is useful for user type 4-5.
```
````
# Additional functionality
This sections includes the features developed by TeachBooks which add functionality to the book. Most of them are implemented as sphinx extensions {bdg-primary}`Sphinx Extension`, which are plugins developed for the Sphinx documentation ecosystem (which Jupyter Book v1 and TeachBooks is built upon). They extend or modify Sphinx’s capabilities. Since Sphinx extensions are not an integral part of Jupyter Book and TeachBooks, as opposed to original jupyter-book v1 features, they must be installed and configured explicitly, for example in the `_config.yml` and `requirements.txt` files.

11
book/features/students.md Normal file
View file

@ -0,0 +1,11 @@
````{margin}
```{admonition} User types
:class: tip
This section is useful for user type 1-5.
```
````
# TeachBooks Student-view Features
This chapter includes some TeachBooks features which aim to improve the way students can use TeachBooks. These tools are fully student-side, they don't influence the book website and the author doesn't have to setup anything. Nevertheless, the author could point the students to the availability of these tools and use it as part of the didactical approach. These tools could also be useful for other users.

View file

@ -1,18 +0,0 @@
(teachbooks-package)=
# TeachBooks: Our Custom Python Package
TeachBooks has created a Python package and released it on PyPI. It can easily be used like this:
```
pip install teachbooks
```
The source code is hosted in a repository on GitHub, [github.com/teachBooks/teachbooks](https://github.com/teachBooks/teachbooks), and is accompanied by a documentation website, [teachbooks.github.io/TeachBooks/](https://teachbooks.github.io/TeachBooks/).
The features and documentation will increase with time; until then, note there are two important reasons to use the teachbooks package:
1. Use the `REMOVE-FROM-PUBLISH` feature to more easily maintain draft and published versions of your TeachBook (see {ref}`this page <remove-from-publish>` for more details).
2. Easily start and stop a local Python server to better test your book while writing (e.g., the interactive Python features require a local server to properly check certain TeachBooks features)
For case 1, the `teachbooks` package is meant to be used instead of `jupyter book build book` to build your book (it executes `jupyter book build book` for you).
Case 2 is meant to be used independently, for example, once you have successfully built a book, simply run `teachbooks serve` and open the resulting URL that is printed in the terminal. To stop the server use `teachbooks serve stop`; see {ref}`this page <setup-local-server>` for additional explanation for how to use this feature and why it is needed.

View file

@ -0,0 +1,50 @@
````{margin}
```{note}
{bdg-link-secondary}`Python Package: TeachBooks`
{bdg-link-light}`Included in TeachBooks Template <../external/template/README.html>`
```
```{tip}
This section is useful for user type 4-5.
```
```{seealso}
[{octicon}`mark-github` Repository](https://github.com/teachbooks/teachbooks)
[{octicon}`book` Documentation](https://teachbooks.readthedocs.io/)
```
````
(teachbooks_package)=
# TeachBooks Python Package
The TeachBooks Python package is a collection of tools that are used to enhance the Jupyter Book v1 software package by adding features and making customization easier. In general, it is only of interest to user types 4 and 5 when building a book locally. However, it may be important for other users to know what the package does, as it is incorporated in the [Deploy Book Workflow](../external/deploy-book-workflow/README.md) and, therefore, any book created from the [TeachBooks Template](../external/template/README.md). This raises two important points:
1. If you are a book user using the [TeachBooks Template](../external/template/README.md) and/or the [Deploy Book Workflow](../external/deploy-book-workflow/README.md), your book is by default built with the `teachbooks` package, and the way your book is built and features that are included in the book may change automatically when it is updated (these will be non-breaking changes; if not, we will notify our mailing list).
2. If you are using the `jupyter-book` v1 package to build your book, some of the features described in this Manual may not be available to you (i.e., those listed on this page). This will be the case if you are using a [setup described in the Jupyter Book v1 Manual](https://jupyterbook.org/v1/publish/web.html), for example, [this GitHub workflow](https://jupyterbook.org/v1/publish/gh-pages.html).
For those who wish to use the package, it is available on [PyPI](https://pypi.org/project/teachbooks/) and can be installed using `pip install teachbooks`. As `teachbooks` is a wrapper, the package is meant to replace the usage of `jupyter-book` commands (although it does indeed add a few new commands to the CLI, e.g., `serve`). It is conventionally used in an identical way, as follows:
```
teachbooks build book
```
This Manual describes the main features and usage of the package. For those who wish to understand more of hte technical details, note that the implementation the API is is documented at [teachbooks.readthedocs.io/](https://teachbooks.readthedocs.io/).
## List of Features
Items in the list here are currently implemented in the TeachBooks package and described on other pages of this manual:
- [Draft-Release Workflow](./draft-release.md)
- [External Contents](./external_toc.md)
- [Local Server](./local_server.md)
The package is also set up to handle [APA references](./apa) when using the Draft-Release Workflow (the `_ext` subdirectory and its contents are manually copied during the pre-build phase). This will not be necessary once the APA Reference feature is turned into a proper Sphinx extension or Pybtext plugin.

View file

@ -0,0 +1,65 @@
````{margin}
```{admonition} User types
:class: tip
This page is useful for user type 4-5.
```
{bdg-dark}`Git Workflow`
````
# Auto-updating packages
When building your book, you are making use of various Python packages: the `teachbooks` and `jupyter-book` v1 packages themselves, but also packages for extensions. These are regularly updated, however, those updates are not necessarily incorporated into your book automatically. The list of packages and their versions are defined in the `requirements.txt` file, which is provided as part of the [template](../external/template/README.md). Consider the following three options for how packages can be specified:
1. `requirements.txt` only contains names of packages like: `download_link_replacer`. In that case, your [deploy-book-workflow](../external/deploy-book-workflow/README.md) will take the most up-to-date version when making your book website once a week (as the chache will be cleared once a week). This might lead to unexpected changes when a new version has been released (although new versions will generally be backwards compatible).
1. `requirements.txt` contains names of packages with a specified version like: `download_link_replacer==1.0.4`. In that case, your [deploy-book-workflow](../external/deploy-book-workflow/README.md) always uses that specific version. In doing so, you'll never get a new update unless you explicitly adapt the version in `requirements.txt`. If you'd like to get notified for updates, you might consider using GitHub's Dependabot.
1. A combination of 1. and 2.: In that case (once a week at most) you will receive new versions for only the unfixed packages, no updates for the fixed versions.
For the case of specified versions, you can use GitHub's Dependabot to notify you that a new version is available _and_ to automatically set up a Pull Request to update your book with the new version.
## Notifications updated packages with Dependabot
Dependabot checks the specified version of packages in your `requirements.txt` file and, if a new version is found, will create a new branch, update the `requirements.txt` file and open a Pull Request whenever there's an update available for that package. Note that packages without a fixed version are ignored by Dependabot.
To activate this feature:
1. Specify version for all packages you want to be notified on in your `requirements.txt` file. See [`requirements.txt`](https://github.com/TeachBooks/manual/blob/release/requirements.txt) of this manual as an example
1. In the `.github/` directory, add a file named `dependabot.yml` with the following content (note that sphinx-thebe (used in [python live coding](./live_code.ipynb)) and docutils (using in [APA referencing](./apa.md)) are ignored because these require a very specific version to work):
```yaml
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
day: "sunday"
time: "22:59"
ignore:
- dependency-name: "sphinx-thebe"
- dependency-name: "docutils"
```
This check will run every Sunday around midnight (UTC) whether any of the fixed-version packages are updated. If so, several things will happen:
1. A new branch is created with a name that begins with `dependabot...` in the repository
1. A commit is made updating `requirements.txt` (e.g., `jupyterbook_patches==1.4.2` is changed to `jupyterbook_patches==1.4.4`)
1. A _pull request_ will be created to merge the new branch into the _default_ branch. This pull request must be manually reviewed and merged. Afterwards the _dependabot_ branch can be deleted (automatically).
Note that these activities will occur automatically and may trigger other workflows in your repository (for example, the building of a book on another branch). If the workflow `call-deploy-book` is used, and you don't want the _dependabot_ branches to be built and deployed (and all other branches you do want), you can achieve this by adding the following text to the file `call-deploy-book.yml`:
```yaml
on:
push:
branches:
- '**'
- '!dependabot**'
```
If you want another scheduled workflow, see [Dependabot options reference](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference#schedule-) for the options.
If you want to manually trigger the Dependabot workflow, you can do this by doing the next steps:
1. Go to your repository on [Github](https://github.com/).
1. Choose **Insights**.
1. Choose **Dependency graph**.
1. Choose **Dependabot**.
1. Choose **Recent update jobs** next to <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" role="img" aria-labelledby="a5ltiumrgcrur1ds9f7gmugoditp5omm" class="octicon" width="16" height="16"><title id="a5ltiumrgcrur1ds9f7gmugoditp5omm">pip</title><path d="M7.932.036c-4.052 0-3.799 1.757-3.799 1.757l.005 1.82h3.867v.547H2.602S.009 3.866.009 7.954c0 4.089 2.263 3.944 2.263 3.944h1.35V10S3.55 7.738 5.85 7.738h3.835s2.155.034 2.155-2.083v-3.5s.327-2.12-3.908-2.12zM5.8 1.26a.695.695 0 11.001 1.39.695.695 0 010-1.39z" fill="#387EB8"></path><path d="M8.047 15.914c4.052 0 3.8-1.757 3.8-1.757l-.005-1.82H7.975v-.547h5.403s2.592.294 2.592-3.795c0-4.088-2.263-3.943-2.263-3.943h-1.35v1.897s.073 2.263-2.227 2.263H6.295S4.14 8.177 4.14 10.295v3.5s-.327 2.12 3.907 2.12zm2.132-1.224a.695.695 0 110-1.39.695.695 0 010 1.39z" fill="#FFE052"></path></svg> `requirements.txt`.
1. Choose **Check for updates**.

View file

@ -0,0 +1,43 @@
````{margin}
```{attributiongrey} Attribution
:class: attribution
This page reuses adapted CC BY 3.0 content from {cite:t}`semver`. {fa}`quote-left`{ref}`Find out more here.<external_resources>````
````
# TeachBooks Versioning
Inspired by versioning systems in software management (i.e. semantic and CalVer versioning) TeachBooks suggests a versioning guideline in which the version number tells the reader about the impact of the change. This might more suitable for your online books than the more traditional way of versioning paper books (version 1, 2, etc.), because of the amount of edits which online books allow. We recommend TeachBooks versioning, which comes in two flavors:
1. `academic_year.additions.errata` versioning for books tailed-made for courses in which content is added / adapted during the course and might be restructured extensively every year while remaining to be available in the original form.
2. `major.errata` versioning for books which are more stable over years, in which big changes are covered only by the version number.
We have come up with guidelines how to use the two TeachBooks-versioning options (adapted from {cite:p}`semver`):
`````{tab-set}
````{tab-item} academic_year.additions.errata
1. A normal version number MUST take the form `academic_year.additions.errata` where `academic_year` is the academic year in which the book is used, and `additions`, and `errata` are non-negative integers, and MUST NOT contain leading zeroes. Each element MUST increase numerically. For instance: 2025.9.0 -> 2025.10.0 -> 2025.11.0
2. Once a versioned book has been released, the contents of that version MUST NOT be modified. Any modifications MUST be released as a new version.
3. Errata versions MUST be incremented if a small change is made which should be communicated to the reader in both the source code and in the book itself. If the small change is not crucial (like a simple typo), you might consider not defining it as a new version but combining it with other changes in the next errata or additions version.
4. Additions version MUST be incremented if an addition is made to the book. It MUST be communicated in both the source code and in the book itself. It MAY include errata level changes. The errata version MUST be reset to 0 when the addition version is incremented.
5. Academic year version MUST be incremented if a fresh book is started for which additions will follow later. It MUST be communicated in both the source code and in the book itself. Additions and errata versions MUST be reset to 0 when academic version is incremented.
6. A pre-release version MAY be denoted by appending `.pre-release`. Pre-release versions have a lower precedence than the associated normal version. A pre-release version indicates that the version is not complete.
7. Precedence refers to how versions are compared to each other when ordered.
1. Precedence MUST be calculated by separating the version into academic year, additions and errata identifiers in that order.
2. Precedence is determined by the first difference when comparing each of these identifiers from left to right as follows: Academic year, additions and errata versions are always compared numerically. Example: 2024.0.0 < 2025.0.0 < 2025.1.0 < 2025.1.1.
8. The way in which the version number is incremented after the initial release should be explained in the README of the source code and in the book itself.
An example can be seen in [the source repository of the Engineering Systems Optimization book](https://github.com/TUDelft-books/CME4501/tags) showing tags for different versions.
````
````{tab-item} major.errata
1. A normal version number MUST take the form `major.errata` where `major`, and `errata` are non-negative integers, and MUST NOT contain leading zeroes. Each element MUST increase numerically. For instance: 9.0 -> 10.0 -> 11.0
2. Once a versioned book has been released, the contents of that version MUST NOT be modified. Any modifications MUST be released as a new version.
3. Errata versions MUST be incremented if a small change is made which should be communicated to the reader in both the source code and in the book itself. If the small change is not crucial (like a simple typo), you might consider not defining it as a new version but combining it with other changes in the next major version.
5. Major versions MUST be incremented if a substantial restructure or additions is made. It MUST be communicated in both the source code and in the book itself. Errata versions MUST be reset to 0 when the major version is incremented.
6. Precedence refers to how versions are compared to each other when ordered.
1. Precedence MUST be calculated by separating the version into major and errata identifiers in that order.
2. Precedence is determined by the first difference when comparing each of these identifiers from left to right as follows: major and errata versions are always compared numerically. Example: 1.0 < 2.0 < 2.1.
7. The way in which the version number is incremented after the initial release should be explained in the README of the source code and in the book itself.
````
`````
Read [](../installation-and-setup/versioning_changelog.md) on how to combine this with a changelog, tags and releases!

10
book/features/visuals.md Normal file
View file

@ -0,0 +1,10 @@
````{margin}
```{admonition} User types
:class: tip
This section is useful for user type 1-5.
```
````
# Book styling
TeachBooks developed a few improvements of the book which improve the visual book styling.

View file

@ -6,7 +6,7 @@
"source": [ "source": [
"# Ipywidgets\n", "# Ipywidgets\n",
"\n", "\n",
"If you publish widgets in a jupyter book they might (depending on your implementation) require an active python kernel for the output to be interactive. Using the [thebe-integration](../examples/live_code.md), this is possible. Note: You can circumvent the use of a kernel by using packages which don't need such a kernel, for example the [non-kernel-based widgets using Plotly](interactive_element).\n", "If you publish widgets in a TeachBook they might (depending on your implementation) require an active python kernel for the output to be interactive. Using the [thebe-integration](../examples/live_code.md), this is possible. Note: You can circumvent the use of a kernel by using packages which don't need such a kernel, for example the [non-kernel-based widgets using Plotly](./plotly.ipynb).\n",
"\n", "\n",
"## `matplotlib` widgets\n", "## `matplotlib` widgets\n",
"When you'd like to use `ipywidgets` in combinations with a `matplotlib` figure, import the following packages:\n", "When you'd like to use `ipywidgets` in combinations with a `matplotlib` figure, import the following packages:\n",
@ -40,7 +40,24 @@
"```python\n", "```python\n",
"input_slider = widgets.FloatSlider(value=0, min=0, max=10, step=1, description='Input variable:') # Defines a widget, more options than just FloatSlider\n", "input_slider = widgets.FloatSlider(value=0, min=0, max=10, step=1, description='Input variable:') # Defines a widget, more options than just FloatSlider\n",
"widgets.interact(update_plot, input_variable_from_widget = input_slider);\n", "widgets.interact(update_plot, input_variable_from_widget = input_slider);\n",
"```\n" "```\n",
"\n",
"Finally, When using `%matplotlib widget`, there's the following toolbar:\n",
"\n",
"![](./figures/toolbar.png)\n",
"\n",
"Which only shows up when you hoover above. If you want to disable the toolbar you can use:\n",
"```python\n",
"fig = plt.gcf()\n",
"fig.canvas.toolbar_visible = False\n",
"```\n",
"\n",
"If you want it to be visible even if you don't hoover above it, use:\n",
"\n",
"```python\n",
"fig = plt.gcf()\n",
"fig.canvas.toolbar_visible = True\n",
"```"
] ]
}, },
{ {
@ -204,7 +221,7 @@
"metadata": { "metadata": {
"celltoolbar": "Tags", "celltoolbar": "Tags",
"kernelspec": { "kernelspec": {
"display_name": "Python 3 (ipykernel)", "display_name": "base",
"language": "python", "language": "python",
"name": "python3" "name": "python3"
}, },
@ -218,7 +235,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.5" "version": "3.12.11"
} }
}, },
"nbformat": 4, "nbformat": 4,

View file

@ -0,0 +1,82 @@
````{margin}
```{note}
{bdg-link-light}`Uses Deploy Book workflow <../external/deploy-book-workflow/README.html>`
{bdg-link-light}`Uses TeachBooks Template <../external/template/README.html>`
```
```{tip}
This section is useful for user type 3-5.
```
```{seealso}
[{octicon}`mark-github` Repository deploy book workflow](https://github.com/TeachBooks/deploy-book-workflow)
[{octicon}`mark-github` Repository template](https://github.com/TeachBooks/template)
[{octicon}`book` Collaborative book-editing](../workflows/collaboration.md)
{octicon}`pencil` Exercises:
- [First file edit](https://teachbooks.io/template/exercises/001.html)
- [Add a new file to the table of contents](https://teachbooks.io/template/exercises/002.html)
- [Change book configuration](https://teachbooks.io/template/exercises/003.html)
- [Syntax exercises](https://teachbooks.io/template/syntax_exercises.html)
```
````
# Write book fully in GitHub interface
Using the GitHub tooling in combination with TeachBook's software, users are able to write their book fully online, without the need to install any software locally. This is especially useful for users that are not familiar with Git and GitHub, or do not have the rights to install software on their computer. To make this possible, users can start with the [TeachBooks Template](../external/template/README.md) after which they make use of the [Deploy Book Workflow](../external/deploy-book-workflow/README.md) to automatically build and release their book online.
## How to do this
New users can start writing their book by following the steps shown in the [TeachBooks Template repository](https://github.com/TeachBooks/template).
Users who already have a TeachBook repository can add the Deploy Book Workflow as explained [here](./release_book_online.md).
After that, users can start writing and editing their book fully online in the GitHub interface. This is supported with:
- Automatic book builds for all version. See [](./release_book_online.md) for more information
- A summary describing where the TeachBook is released, errors in the build process per branch and how the release step is configured
## Example of summary
Whenever the workflow is triggered, its progress and a summary can be seen under the <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg>`Actions`- `All workflows` - `call-deploy-book` in GitHub! It shows you a descriptive summary. This summary includes, among others, the errors in the build process per branch and where the book is released online.
Here's an example for a summary for the template book:
> ### Branches deployed
> | Branch 🎋 | Link 🔗 | Build status ☑️ |
> | :--- | :--- | :--- |
> | main | [https://teachbooks.github.io/template/main](https://teachbooks.github.io/template/main) | ✅ `Released` |
> | version2 | [https://teachbooks.github.io/template/version2](https://teachbooks.github.io/template/version2) | 🔴 `Build failed [1]` |
> | version3 | [https://teachbooks.github.io/template/version3](https://teachbooks.github.io/template/version3) | ⭕ `Build failed [2]` |
>
> #### Legend for build status
> ✅ `Released` - build success, new version released.
>
> 🔴 `Build failed [1]` - build failure, previous version of the book reused.
>
> ⭕ `Build failed [2]` - build failure, no previous version reused.
>
> ### Preview of build errors & warnings
> For more details please see the corresponding `build-books` jobs in the left pane.
>
> On branch `version2`:
> ```
> <20>[91m/home/runner/work/template/template/book/some_content/overview.md:5: WARNING: Non-consecutive header level increase; H1 to H3 [myst.header]<5D>[39;49;00m
> ```
>
> On branch `version3`:
> ```
> /home/runner/work/_temp/ff8c8325-8d8b-4c0b-a2b2-32d2169c55bc.sh: line 8: teachbooks: command not found
> ```
>
## Exercise
Check out [the exercises](https://teachbooks.io/template/exercises.html) in the TeachBooks template to see for yourself how you can write and edit your book fully online in GitHub!

View file

@ -0,0 +1,10 @@
(tex_md_converter)=
# Convert LaTeX to Markdown
A script is to convert LaTeX files to Markdown for use in TeachBooks and Jupyter Books v1 {cite:p}`timon_latex`.
This script has been used successfully on at least one book in the TU Delft OPEN library: [Introduction to particle and continuum mechanics, by Timon Idema](https://textbooks.open.tudelft.nl/textbooks/catalog/book/81). The author is able to convert nearly everything in this book automatically, with only a few manual adjustments needed (e.g., a special character and a figure caption).
Depending on the number of custom LaTeX commands used in your book, you may need to adjust the script to handle them.
Additional information about the script, along with the source code itself which is distributed under a [BSD 3-clause license](https://opensource.org/license/BSD-3-Clause), is available at the following link on TU Delft GitLab: [gitlab.tudelft.nl/opentextbooks/latex-to-markdown-conversion](https://gitlab.tudelft.nl/opentextbooks/latex-to-markdown-conversion).

View file

@ -1,7 +1,8 @@
# Scripts for automating workflow # Scripts for automating workflow
This chapter contains a few scripts which can be useful in the book-editing process: This chapter contains a few scripts which can be useful in the book-editing process, all of which are scripts and/or files stored in other repositories (they are _not_ Sphinx extensions).
- [LaTeX to markdown conversion](../external/latex-to-markdown-conversion/README.md) to convert a LaTeX file into jupyter-book compatible markdown.
- [LaTeX to markdown conversion](tex_md_converter) to convert a LaTeX file into TeachBook compatible markdown.
- [Snippitall](Snippitall) to insert the same code snippet at a certain point in each md file in a specific folder and all subfolder. - [Snippitall](Snippitall) to insert the same code snippet at a certain point in each md file in a specific folder and all subfolder.
- [Snippitonce](Snippitonce) to insert the same code snippet at a certain point in each md file only in a specific folder. - [Snippitonce](Snippitonce) to insert the same code snippet at a certain point in each md file only in a specific folder.
- [Extensionchecker](Extensionchecker) to identify the kind of files present in subfolder - [Extensionchecker](Extensionchecker) to identify the kind of files present in subfolder

View file

@ -0,0 +1,3 @@
# Move images to separate hosting
Storing big binary files like images in your git repository and book is not good practice: diffs on binary files don't make sense and blow up the size of your repository. Furthermore, the size of your book website blows up too. Therefore, you can consider hosting your binary files on a different server, as explained [here in an example for the MUDE-book](https://tudelft-mude.github.io/teacher/FTP.html). To take all the images of your existing book and update the relative links, [a Python script](./parse_images.py) has been developed. This script processes Markdown (`.md`) and Jupyter Notebook (`.ipynb`) files listed in a `_toc.yml` file. It identifies local image references (including MyST `figure` syntax) in these files, copies the images to a specified folder (`new_images`), and replaces the local image paths with a public URL (e.g., `https://files.mude.citg.tudelft.nl/<image_name>`).

View file

@ -0,0 +1,207 @@
"""
Script: parse_images.py
Description:
This script processes Markdown (.md) and Jupyter Notebook (.ipynb) files listed in a `_toc.yml` file.
It identifies local image references (including MyST `figure` syntax) in these files, copies the images
to a specified folder (`new_images`), and replaces the local image paths with a public URL
(e.g., `https://files.mude.citg.tudelft.nl/<image_name>`).
Key Features:
- Parses `_toc.yml` to extract all Markdown and Notebook files.
- Detects image references in Markdown files (e.g., `![alt text](image.png "title")`).
- Detects MyST `figure` syntax (e.g., `{figure} /path/to/image.png`).
- Resolves image paths relative to the file or project root.
- Handles image paths with optional titles (e.g., `"title"`) in Markdown and Notebook files.
- Skips processing images that are already converted to the public URL.
- Copies images to the `new_images` folder.
- Updates the files to replace local image paths with public URLs.
How to Use:
1. Place this script in the root directory of your project (where `_toc.yml` is located).
2. Ensure `_toc.yml` contains the list of files to process.
3. Run the script using Python: python parse_images.py
4. The script will:
- Copy referenced images to the `new_images` folder.
- Update the Markdown and Notebook files with the new image URLs.
Dependencies:
- Python 3.x
- PyYAML (install using `pip install pyyaml`)
Notes:
- Ensure the script is run from the project root directory.
- The `base_url` variable should be updated to match your desired public URL prefix.
- The script handles image paths in the following formats:
- Relative paths (e.g., `image.png`, `./image.png`).
- Absolute paths (e.g., `/path/to/image.png`).
- Paths with optional titles (e.g., `![alt text](image.png "title")`).
"""
import os
import re
import shutil
import yaml
import json
# Define the folder where images will be copied
output_folder = "new_images"
base_url = "https://files.mude.citg.tudelft.nl/"
# Ensure the output folder exists
os.makedirs(output_folder, exist_ok=True)
# Function to parse the _toc.yml file and extract all Markdown and Notebook files
def get_files_from_toc(toc_file):
files = []
with open(toc_file, "r", encoding="utf-8") as f:
toc = yaml.safe_load(f)
# Recursive function to extract file paths
def extract_files(item):
if isinstance(item, dict):
if "file" in item:
# Add the file with the appropriate extension
file_path = item["file"]
if not file_path.endswith((".md", ".ipynb")):
if os.path.isfile(file_path + ".md"):
file_path += ".md"
elif os.path.isfile(file_path + ".ipynb"):
file_path += ".ipynb"
files.append(file_path)
if "sections" in item:
for section in item["sections"]:
extract_files(section)
if "chapters" in item:
for chapter in item["chapters"]:
extract_files(chapter)
elif isinstance(item, list):
for sub_item in item:
extract_files(sub_item)
# Start extracting files from the "parts" section
extract_files(toc.get("parts", []))
return files
# Function to normalize image paths
def normalize_image_path(file_dir, image_path):
# Check if the path starts with a `/` (absolute path relative to the project root)
if image_path.startswith("/"):
# Resolve the path relative to the project root
project_root = os.getcwd() # Assuming the script is run from the project root
resolved_path = os.path.join(project_root, image_path.lstrip("/"))
else:
# Resolve the path relative to the file's directory
resolved_path = os.path.normpath(os.path.join(file_dir, image_path))
return resolved_path
# Function to find and replace local image references
def process_file(file_path):
if file_path.endswith(".md"):
process_markdown(file_path)
elif file_path.endswith(".ipynb"):
process_notebook(file_path)
# Process Markdown files
def process_markdown(file_path):
file_dir = os.path.dirname(file_path) # Get the directory of the file
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
# Find all standard Markdown image references (e.g., ![alt text](path "title"))
matches = re.findall(r"!\[.*?\]\((.*?)(?:\s+\".*?\")?\)", content)
# Find all MyST figure syntax references (e.g., {figure} path)
# Handles cases where the `---` block is missing or caption follows directly
myst_matches = re.findall(r"\{figure\}\s+(.*?)\s*(?:\n|$)", content)
matches.extend(myst_matches)
for match in matches:
# Skip if the image path is already converted to the public URL
if match.startswith(base_url):
continue
# Normalize and resolve the image path
image_path = normalize_image_path(file_dir, match)
if os.path.isfile(image_path):
print(f"Image found: {image_path}") # Debugging output
# Copy the image to the output folder
image_name = os.path.basename(image_path)
new_path = os.path.join(output_folder, image_name)
shutil.copy(image_path, new_path)
# Replace the local URL with the new URL
new_url = base_url + image_name
content = content.replace(match, new_url)
else:
print(f"Warning: Image not found: {image_path}") # Debugging output
# Write the updated content back to the file
with open(file_path, "w", encoding="utf-8") as f:
f.write(content)
# Process Jupyter Notebook files
def process_notebook(file_path):
file_dir = os.path.dirname(file_path) # Get the directory of the file
with open(file_path, "r", encoding="utf-8") as f:
notebook = json.load(f)
updated = False
for cell in notebook.get("cells", []):
if cell.get("cell_type") == "markdown":
# Join all lines in the cell into a single string
cell_content = "".join(cell.get("source", []))
# Find all standard Markdown image references (e.g., ![alt text](path "title"))
matches = re.findall(r"!\[.*?\]\((.*?)(?:\s+\".*?\")?\)", cell_content)
# Find all MyST figure syntax references (e.g., {figure} path)
myst_matches = re.findall(r"\{figure\}\s+(.*?)\s*(?:\n|$)", cell_content)
matches.extend(myst_matches)
for match in matches:
# Skip if the image path is already converted to the public URL
if match.startswith(base_url):
continue
# Normalize and resolve the image path
image_path = normalize_image_path(file_dir, match)
if os.path.isfile(image_path):
print(f"Image found: {image_path}") # Debugging output
# Copy the image to the output folder
image_name = os.path.basename(image_path)
new_path = os.path.join(output_folder, image_name)
shutil.copy(image_path, new_path)
# Replace the local URL with the new URL
new_url = base_url + image_name
cell_content = cell_content.replace(match, new_url)
updated = True
else:
print(f"Warning: Image not found: {image_path}") # Debugging output
# Split the updated content back into lines and update the cell
cell["source"] = cell_content.splitlines(keepends=True)
# Write the updated notebook back to the file if changes were made
if updated:
with open(file_path, "w", encoding="utf-8") as f:
json.dump(notebook, f, indent=2)
# Main function
def main():
toc_file = "_toc.yml" # Replace with the path to your _toc.yml file
files = get_files_from_toc(toc_file)
print("Files extracted from TOC:", files) # Debugging output
for file_path in files:
# Ensure the file has the correct extension and exists
if os.path.isfile(file_path):
print(f"Processing file: {file_path}") # Debugging output
process_file(file_path)
else:
print(f"Warning: File {file_path} not found or unsupported.")
if __name__ == "__main__":
main()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 975 KiB

After

Width:  |  Height:  |  Size: 544 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 158 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 368 KiB

Some files were not shown because too many files have changed in this diff Show more