diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index ef1a64748..db104a87d 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,11 @@ # Changelog +## [Unreleased] + +### Removed +* Remove `docs/Dockerfile` (used for mybinder.org Binder integration) and mybinder badge links from documentation pages. The Binder integration relied on a deprecated .NET 7 SDK image and a deprecated `Microsoft.dotnet-interactive` version; mybinder.org support is discontinued. +* Remove `.ipynb` (Jupyter Notebook) "run in notebook" badge links from all documentation pages and delete `docs/img/badge-notebook.svg`. The links linked to `.ipynb` outputs generated by fsdocs, but .NET Interactive (which powered those notebooks) is deprecated and has no current replacement. The `.ipynb` output format itself is unchanged. + ## [22.1.0] - 2026-05-22 ### Changed diff --git a/docs/Dockerfile b/docs/Dockerfile deleted file mode 100644 index 989c9abb2..000000000 --- a/docs/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM mcr.microsoft.com/dotnet/sdk:7.0 - -RUN apt-get update \ - && apt-get -y upgrade \ - && apt-get -y install python3 python3-pip python3-dev ipython3 - -RUN python3 -m pip install --no-cache-dir notebook jupyterlab - -ARG NB_USER=fsdocs-user -ARG NB_UID=1000 -ENV USER ${NB_USER} -ENV NB_UID ${NB_UID} -ENV HOME /home/${NB_USER} - -RUN adduser --disabled-password \ - --gecos "Default user" \ - --uid ${NB_UID} \ - ${NB_USER} - -COPY . ${HOME} -USER root -RUN chown -R ${NB_UID} ${HOME} -USER ${NB_USER} - -ENV PATH="${PATH}:$HOME/.dotnet/tools/" - -RUN dotnet tool install --global Microsoft.dotnet-interactive --version 1.0.410202 - -RUN dotnet-interactive jupyter install diff --git a/docs/apidocs.fsx b/docs/apidocs.fsx index e2fc1636c..4ec506723 100644 --- a/docs/apidocs.fsx +++ b/docs/apidocs.fsx @@ -27,9 +27,7 @@ index: 7 let root = "C:\\" (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) API Documentation Generation ==================================== @@ -194,7 +192,6 @@ module Forest = /// let findSquirrels (limit : int) = [] - (** You can find the correct value for `cref` in the generated `.xml` documentation file (this will be generated alongside the assembly's `.dll``). You can also omit the `cref`'s arguments, and `fsdocs` will make an attempt to find the first member that matches. @@ -207,7 +204,6 @@ For example: If the member cannot be found, a link to the containing module/type will be used instead. *) - (** ### Classic XMl Doc Comments: Excluding APIs from the docs @@ -363,7 +359,6 @@ module Bar2 = (** - ## Building library documentation programmatically You can build library documentation programmatically using the functionality diff --git a/docs/codeformat.fsx b/docs/codeformat.fsx index fe55d5274..23361d528 100644 --- a/docs/codeformat.fsx +++ b/docs/codeformat.fsx @@ -22,9 +22,7 @@ index: 1 #endif // IPYNB (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) Code formatting ============================== @@ -77,7 +75,6 @@ A single source file can include multiple snippets using the same formatting tag as those used on [fssnip.net](http://www.fssnip.net) as documented in the [about page](http://www.fssnip.net/pages/About). - Working with returned tokens ---------------------------- diff --git a/docs/content.fsx b/docs/content.fsx index 3b682e069..e3f8af45f 100644 --- a/docs/content.fsx +++ b/docs/content.fsx @@ -21,11 +21,8 @@ index: 6 #r "nuget: FSharp.Formatting,{{fsdocs-package-version}}" #endif // IPYNB - (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) Creating Content =================================== @@ -225,11 +222,6 @@ of the document is placed. To generate .ipynb output for each script and markdown file, add a `_template.ipynb`, usually empty. Substitutions are applied to this template. -To add a `mybinder` badge to your generated notebook, ensure you have a `Dockerfile` and `NuGet.config` -in your `docs` directory and use text like this: - - [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/fsprojects/FSharp.Formatting/gh-pages?filepath=literate.ipynb) - ## Generating Script outputs To generate .fsx output for each script and markdown file, add a `_template.fsx`, usually empty. Substitutions are diff --git a/docs/evaluation.fsx b/docs/evaluation.fsx index 34895aee7..a55483f21 100644 --- a/docs/evaluation.fsx +++ b/docs/evaluation.fsx @@ -22,13 +22,10 @@ index: 8 #endif // IPYNB (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) # Embedding script output - For literate F# scripts, you may embed the result of running the script as part of the literate output. This is a feature of the functions discussed in [literate programming](literate.html) and it is implemented using the [F# Compiler service](http://fsharp.github.io/FSharp.Compiler.Service/). @@ -51,7 +48,6 @@ To include the a formatted value use ``include-it``: (*** include-it ***) - To include the meta output of F# Interactive processing such as type signatures use `(*** include-fsi-output ***)`: let test = 40 + 3 diff --git a/docs/img/badge-binder.svg b/docs/img/badge-binder.svg deleted file mode 100644 index 8df9f49a7..000000000 --- a/docs/img/badge-binder.svg +++ /dev/null @@ -1 +0,0 @@ -Run in BinderRun in Binder \ No newline at end of file diff --git a/docs/img/badge-notebook.svg b/docs/img/badge-notebook.svg deleted file mode 100644 index a001b5449..000000000 --- a/docs/img/badge-notebook.svg +++ /dev/null @@ -1 +0,0 @@ -Download notebookDownload notebook \ No newline at end of file diff --git a/docs/literate.fsx b/docs/literate.fsx index f456d0d00..a22907a23 100644 --- a/docs/literate.fsx +++ b/docs/literate.fsx @@ -21,11 +21,8 @@ index: 4 #r "nuget: FSharp.Formatting,{{fsdocs-package-version}}" #endif // IPYNB - (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) Literate Scripts ================ diff --git a/docs/markdown.fsx b/docs/markdown.fsx index 13953676b..7a80ab73e 100644 --- a/docs/markdown.fsx +++ b/docs/markdown.fsx @@ -18,11 +18,8 @@ index: 2 #r "nuget: FSharp.Formatting,{{fsdocs-package-version}}" #endif // IPYNB - (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) Markdown parser ============================== @@ -37,7 +34,6 @@ First, we need to load the assembly and open the necessary namespaces: open FSharp.Formatting.Markdown open FSharp.Formatting.Common - (** Parsing documents ----------------- diff --git a/docs/upgrade.md b/docs/upgrade.md index c65a4980a..2b110a758 100644 --- a/docs/upgrade.md +++ b/docs/upgrade.md @@ -47,9 +47,7 @@ Here are the typical steps to upgrade a repo based on `ProjectScaffold` to use ` 7. Consider creating `docs\_template.fsx` and `docs\_template.ipynb` to enable co-generation of F# scripts and F# notebooks. - If you add support for notebooks and scripts, consider adding mybinder links to each of your literate executable content pages. For example [like this](https://github.com/fsprojects/FSharp.Formatting/blob/master/docs/literate.fsx#L19). - - Also add load sections to make sure your notebooks and scripts contain the right content to load packages out of repo. For example [like this](https://github.com/fsprojects/FSharp.Formatting/blob/master/docs/literate.fsx#L1). + Add load sections to make sure your notebooks and scripts contain the right content to load packages out of repo. For example [like this](https://github.com/fsprojects/FSharp.Formatting/blob/master/docs/literate.fsx#L1). Sample commands: diff --git a/src/fsdocs-tool/fsdocs-tool.fsproj b/src/fsdocs-tool/fsdocs-tool.fsproj index a95ff4927..e3168ad0b 100644 --- a/src/fsdocs-tool/fsdocs-tool.fsproj +++ b/src/fsdocs-tool/fsdocs-tool.fsproj @@ -33,7 +33,6 @@ -