From 0b26dedecca18ace10c9740947c3703dda3e04d8 Mon Sep 17 00:00:00 2001 From: j-atkins <106238905+j-atkins@users.noreply.github.com> Date: Thu, 24 Sep 2026 10:23:12 +0200 Subject: [PATCH 1/3] add binder welcome page --- .binder/postBuild | 18 +++++++++++++++++- .binder/preview.md | 21 +++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 .binder/preview.md diff --git a/.binder/postBuild b/.binder/postBuild index c242f1c..1cf2d2f 100644 --- a/.binder/postBuild +++ b/.binder/postBuild @@ -40,4 +40,20 @@ while IFS= read -r file_path || [ -n "$file_path" ]; do exit 1 fi -done < "$LIST_FILE" \ No newline at end of file +done < "$LIST_FILE" + +# landing page: copy to the workspace root (Jupyter hides dot-directories such as .binder/) +cp .binder/preview.md preview.md + +# open markdown files as rendered previews (rather than raw source) in JupyterLab +LAB_SETTINGS_DIR="$(jupyter lab path | awk -F': *' '/Application directory/ {print $2}')/settings" +mkdir -p "$LAB_SETTINGS_DIR" +cat > "$LAB_SETTINGS_DIR/overrides.json" <<'JSON' +{ + "@jupyterlab/docmanager-extension:plugin": { + "defaultViewers": { + "markdown": "Markdown Preview" + } + } +} +JSON diff --git a/.binder/preview.md b/.binder/preview.md new file mode 100644 index 0000000..ee3c3e8 --- /dev/null +++ b/.binder/preview.md @@ -0,0 +1,21 @@ +

+ VirtualShip logo +

+ +# Welcome aboard! 🚢 + +This is your **VirtualShip post-processing workspace**: a JupyterLab environment with the Python packages and tutorial notebooks needed to analyse and visualise your VirtualShip simulation results. + +## Getting started + +- Use the file browser on the left to explore the workspace. The tutorial notebooks are in the `tutorials/` folder. +- To work with your own results, upload them using the **Upload** button (↑) at the top of the file browser, or drag and drop them in. +- Double-click a notebook to open it, then run the cells with **Shift + Enter**. + +## Good to know + +- This workspace is **temporary**. It will shut down after a period of inactivity and anything you have created or uploaded will be lost, so remember to download anything you want to keep (right-click a file → **Download**). + +## Need help? + +Full instructions are available in the [VirtualShip documentation: Post-processing Workspace Guide](https://virtualship.readthedocs.io/en/latest/user-guide/tutorials/binder_guide.html). From ea4155043caee0161b4e213620e8d09a6b1c678e Mon Sep 17 00:00:00 2001 From: j-atkins <106238905+j-atkins@users.noreply.github.com> Date: Thu, 24 Sep 2026 10:23:28 +0200 Subject: [PATCH 2/3] codespaces landing page --- .devcontainer/devcontainer.json | 11 ++++++++++- .devcontainer/preview.md | 26 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 .devcontainer/preview.md diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 612066c..be7e70c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -6,10 +6,19 @@ // TODO: point back to main when performance branch is merged into main "postCreateCommand": "pip install git+https://github.com/Parcels-code/Parcels.git@main && pip install git+https://github.com/Parcels-code/virtualship.git@performance", "customizations": { + "codespaces": { + "openFiles": [ + ".devcontainer/preview.md" + ] + }, "vscode": { "settings": { "python.defaultInterpreterPath": "/opt/venv/bin/python", - "python.terminal.activateEnvironment": true + "python.terminal.activateEnvironment": true, + // render the landing page as a markdown preview rather than raw source + "workbench.editorAssociations": { + "**/.devcontainer/preview.md": "vscode.markdown.preview.editor" + } }, "extensions": [ "ms-python.python", diff --git a/.devcontainer/preview.md b/.devcontainer/preview.md new file mode 100644 index 0000000..b2ad696 --- /dev/null +++ b/.devcontainer/preview.md @@ -0,0 +1,26 @@ +

+ VirtualShip logo +

+ +# Welcome aboard! 🚢 + +This is your **VirtualShip simulation workspace**: a cloud-based environment with `VirtualShip` and its dependencies already installed, ready for you to plan and run your virtual expedition. + +## Getting started + +- Open a terminal via the menu (**Terminal → New Terminal**) if one is not already open at the bottom of the screen. +- Check everything is working by running: + + ```bash + virtualship --help + ``` + +- Use the file explorer on the left to browse, create and edit your expedition files. + +## Good to know + +- This workspace runs in the cloud and will pause after a period of inactivity. Your files will persist between sessions. + +## Need help? + +Full instructions are available in the [VirtualShip documentation: Simulation Workspace Guide](https://virtualship.readthedocs.io/en/latest/user-guide/tutorials/codespaces_guide.html). From 5d92127640d613527a8251eb3254bd2c0aac9fff Mon Sep 17 00:00:00 2001 From: j-atkins <106238905+j-atkins@users.noreply.github.com> Date: Thu, 24 Sep 2026 10:23:44 +0200 Subject: [PATCH 3/3] link binder landing page to button link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e63ba83..92996b6 100644 --- a/README.md +++ b/README.md @@ -23,4 +23,4 @@ Full details on how to use this workspace can be found in [VirtualShip documenta > [!TIP] > Click the button below to launch a VirtualShip post-processing workspace in your browser using Binder: > ->[![badge](https://img.shields.io/badge/Step%20on%20board-VirtualShip-579ACA.svg?logo=data:image/png;base64,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)](https://mybinder.org/v2/gh/Parcels-code/virtualship-workspace/HEAD) \ No newline at end of file +>[![badge](https://img.shields.io/badge/Step%20on%20board-VirtualShip-579ACA.svg?logo=data:image/png;base64,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)](https://mybinder.org/v2/gh/Parcels-code/virtualship-workspace/HEAD?urlpath=lab/tree/preview.md) \ No newline at end of file