diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 067dc566..5df59e4b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -22,35 +22,19 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: 20
+ - name: Setup Rust
+ uses: actions-rust-lang/setup-rust-toolchain@v1
+ - name: Install mdbook
+ run: |
+ cargo install mdbook --no-default-features --features search --vers "^0.4" --locked
+ cargo install mdbook-variables --vers "^0.2" --locked
+ export PATH="$PATH:$HOME/.cargo/bin"
+ mdbook --version
- name: Build and test
run: |
sbt -v scalafmtSbtCheck scalafmtCheckAll scripted makeSite
- - name: Pandoc English
- if: ${{ github.event_name == 'push' && github.repository == 'sbt/website' && github.ref == 'refs/heads/1.x' }}
- uses: eed3si9n/pandoc@master
- with:
- args: '--pdf-engine=xelatex --toc -s -o target/pamflet/sbt-reference.pdf target/pamflet/Combined+Pages+Pdf.md'
-
- - name: Pandoc Japanese
- if: ${{ github.event_name == 'push' && github.repository == 'sbt/website' && github.ref == 'refs/heads/1.x' }}
- uses: eed3si9n/pandoc@master
- with:
- args: '--pdf-engine=xelatex -V CJKmainfont="Noto Sans JP" --toc -s -o target/pamflet/ja/sbt-reference.pdf target/pamflet/ja/Combined+Pages+Pdf.md'
-
- - name: Pandoc Chinese
- if: ${{ github.event_name == 'push' && github.repository == 'sbt/website' && github.ref == 'refs/heads/1.x' }}
- uses: eed3si9n/pandoc@master
- with:
- args: '--pdf-engine=xelatex -V CJKmainfont="Noto Sans SC" --toc -s -o target/pamflet/zh-cn/sbt-reference.pdf target/pamflet/zh-cn/Combined+Pages+Pdf.md'
-
- - name: Pandoc Spanish
- if: ${{ github.event_name == 'push' && github.repository == 'sbt/website' && github.ref == 'refs/heads/1.x' }}
- uses: eed3si9n/pandoc@master
- with:
- args: '--pdf-engine=xelatex --toc -s -o target/pamflet/es/sbt-reference.pdf target/pamflet/es/Combined+Pages+Pdf.md'
-
# https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets
- name: Deploy to GH Pages
if: ${{ github.event_name == 'push' && github.repository == 'sbt/website' && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/1.x' || github.ref == 'refs/heads/1.x-beta') }}
diff --git a/.gitignore b/.gitignore
index 6deaf8c5..0b302eea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,6 +18,7 @@ node_modules
# Production
build
+book
# Generated files
.docusaurus
diff --git a/book.toml b/book.toml
new file mode 100644
index 00000000..804a9399
--- /dev/null
+++ b/book.toml
@@ -0,0 +1,18 @@
+[book]
+authors = ["Eugene Yokota"]
+language = "en"
+multilingual = false
+src = "src/reference"
+title = "The book of sbt"
+
+[output.html]
+theme = "theme"
+additional-css = ["src/reference/custom-2024.css"]
+cname = "www.scala-sbt.org"
+
+[preprocessor.variables]
+
+[preprocessor.variables.variables]
+sbt_version = "2.0.0-alpha7"
+sbt_runner_version = "1.9.8"
+scala3ExampleVersion = "3.3.1"
diff --git a/build.sbt b/build.sbt
index b8061e5b..d646f796 100644
--- a/build.sbt
+++ b/build.sbt
@@ -11,53 +11,23 @@ ThisBuild / scalafmtOnCompile := true
lazy val root = (project in file("."))
.enablePlugins(
(if (isDevelopBranch) Seq(DocusaurusSitePlugin) else Seq()) ++
- Seq(LowTechSnippetPamfletPlugin, ScriptedPlugin): _*
+ Seq(MdBookSitePlugin, ScriptedPlugin, SitePreviewPlugin): _*
)
.settings(
name := "website",
siteEmail := "eed3si9n" + "@gmail.com",
// Reference
- Pamflet / sourceDirectory := baseDirectory.value / "src" / "reference",
- Pamflet / siteSubdirName := s"""$targetSbtBinaryVersion/docs""",
+ MdBook / siteSubdirName := s"""$targetSbtBinaryVersion/docs/en""",
tutorialSubDirName := s"""$targetSbtBinaryVersion/tutorial""",
landingSubDirName := "",
// Redirects
redirectSettings,
- SiteHelpers.addMappingsToSiteDir(Redirect / mappings, Pamflet / siteSubdirName),
+ // SiteHelpers.addMappingsToSiteDir(Redirect / mappings, Pamflet / siteSubdirName),
SiteHelpers.addMappingsToSiteDir(RedirectLanding / mappings, landingSubDirName),
- redirectTutorialSettings,
- SiteHelpers.addMappingsToSiteDir(RedirectTutorial / mappings, tutorialSubDirName),
+ // redirectTutorialSettings,
+ // SiteHelpers.addMappingsToSiteDir(RedirectTutorial / mappings, tutorialSubDirName),
// GitHub Pages. See project/Docs.scala
customGhPagesSettings,
- Pamflet / mappings := {
- val xs = (Pamflet / mappings).value
- Pdf.cleanupCombinedPages(xs) ++ xs
- },
- if (scala.sys.BooleanProp.keyExists("sbt.website.generate_pdf"))
- Def settings (
- // NOTE - PDF settings must be done externally like this because pdf generation generically looks
- // through `mappings in Config` for Combined+Pages.md to generate PDF from, and therefore we
- // can't create a circular dependency by adding it back into the original mappings.
- Pdf.settings,
- Pdf.settingsFor(Pamflet, "sbt-reference"),
- SiteHelpers.addMappingsToSiteDir(
- Pamflet / Pdf.generatePdf / mappings,
- Pamflet / siteSubdirName,
- )
- )
- else if (scala.sys.BooleanProp.keyExists("sbt.website.detect_pdf"))
- Def.settings(
- // assume PDF files were created in another Docker container
- Pamflet / Pdf.detectPdf := ((Pamflet / target).value ** "*.pdf").get,
- Pamflet / Pdf.detectPdf / mappings := {
- (Pamflet / Pdf.detectPdf).value pair Path.relativeTo((Pamflet / target).value)
- },
- SiteHelpers.addMappingsToSiteDir(
- Pamflet / Pdf.detectPdf / mappings,
- Pamflet / siteSubdirName,
- )
- )
- else Nil,
fileEncoding := {
sys.props("file.encoding") match {
case "UTF-8" => "UTF-8"
@@ -71,5 +41,3 @@ lazy val root = (project in file("."))
scriptedBufferLog := false,
isGenerateSiteMap := true
)
-
-//
diff --git a/docusaurus.config.js b/docusaurus.config.js
index c6d8ae93..800e8beb 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -72,14 +72,6 @@ const config = {
'classic',
/** @type {import('@docusaurus/preset-classic').Options} */
({
- docs: {
- routeBasePath: '2.x/docs/',
- sidebarPath: './sidebars.js',
- // Please change this to your repo.
- // Remove this to remove the "edit this page" links.
- editUrl:
- 'https://github.com/sbt/website/tree/develop',
- },
theme: {
customCss: './src/css/custom.css',
},
@@ -115,8 +107,7 @@ const config = {
position: 'left',
},
{
- type: 'docSidebar',
- sidebarId: 'tutorialSidebar',
+ href: 'https://www.scala-sbt.org/2.x/docs/en/',
label: 'Doc Beta',
position: 'right',
},
diff --git a/project/Docs.scala b/project/Docs.scala
index a59fec13..f9a92049 100644
--- a/project/Docs.scala
+++ b/project/Docs.scala
@@ -34,7 +34,8 @@ object Docs {
// - src/reference/template.properties
lazy val targetSbtBinaryVersion = {
if (isBetaBranch) "1.x-beta"
- else "1.x"
+ else if (is1xBranch) "1.x"
+ else "2.x"
}
// to avoid duplicates, tell Google to only index /1.x/**
diff --git a/project/MdBookSitePlugin.scala b/project/MdBookSitePlugin.scala
new file mode 100644
index 00000000..2ea0d1ac
--- /dev/null
+++ b/project/MdBookSitePlugin.scala
@@ -0,0 +1,41 @@
+import sbt.*
+import Keys.*
+import com.typesafe.sbt.site.SitePlugin.autoImport.siteSubdirName
+import com.typesafe.sbt.site.SitePlugin
+import com.typesafe.sbt.site.util.SiteHelpers
+import scala.annotation.nowarn
+
+object MdBookSitePlugin extends AutoPlugin {
+ override def requires = SitePlugin
+ override def trigger = noTrigger
+ override def projectSettings = mdbookSettings(Compile)
+
+ object autoImport {
+ val MdBook = config("mdbook")
+ val mdbookBuild = taskKey[File]("")
+ val mdbookDirectory = settingKey[File]("Directory where docs are located")
+ }
+ import autoImport.*
+
+ @nowarn
+ def mdbookSettings(config: Configuration): Seq[Setting[_]] =
+ inConfig(if (config == Compile) MdBook else config)(
+ List(
+ siteSubdirName := "",
+ mdbookDirectory := baseDirectory.value,
+ config / mdbookBuild := {
+ import scala.sys.process.*
+ val dir = mdbookDirectory.value
+ Process(List("mdbook", "build"), cwd = dir).!
+ val out = dir / "book"
+ out
+ },
+ )
+ ) ++
+ SiteHelpers.watchSettings(ThisScope.in(config, mdbookBuild.key)) ++
+ SiteHelpers.addMappingsToSiteDir(
+ (config / mdbookBuild)
+ .map(SiteHelpers.selectSubpaths(_, AllPassFilter)),
+ (if (config == Compile) MdBook else config) / siteSubdirName
+ )
+}
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 39264f42..604615d0 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -1,5 +1,4 @@
-addSbtPlugin("com.github.sbt" % "sbt-site-paradox" % "1.5.0")
+ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always
+addSbtPlugin("com.github.sbt" % "sbt-site" % "1.5.0")
addSbtPlugin("com.github.sbt" % "sbt-ghpages" % "0.7.0")
-libraryDependencies += "org.foundweekends" %% "pamflet-library" % "0.11.0"
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2")
-addSbtPlugin("com.lightbend.paradox" % "sbt-paradox" % "0.6.9")
diff --git a/src/reference/README.md b/src/reference/README.md
new file mode 100644
index 00000000..6d5affd1
--- /dev/null
+++ b/src/reference/README.md
@@ -0,0 +1,17 @@
+The sbt book
+============
+
+![sbt logo](files/sbt-logo.svg)
+
+sbt is a simple build tool for Scala and Java.
+sbt downloads your library dependencies via Coursier,
+incrementally compiles and tests your projects,
+integrates with IDEs like IntelliJ and VS Code,
+makes JAR packages, and publishes them to [Maven Central](https://central.sonatype.com/),
+JVM community's package registry.
+
+```scala
+scalaVersion := "{{scala3ExampleVersion}}"
+```
+
+You just need one line of `build.sbt` to get started with Scala.
diff --git a/src/reference/SUMMARY.md b/src/reference/SUMMARY.md
new file mode 100644
index 00000000..82e21865
--- /dev/null
+++ b/src/reference/SUMMARY.md
@@ -0,0 +1,14 @@
+# Summary
+
+[Introduction](README.md)
+
+# Quick Start
+
+- [Installing sbt runner](Setup.md)
+- [sbt by example](sbt-by-example.md)
+
+----
+
+# Appendix
+
+- [Setup notes](setup-notes.md)
diff --git a/src/reference/Setup.md b/src/reference/Setup.md
new file mode 100644
index 00000000..f766f7f7
--- /dev/null
+++ b/src/reference/Setup.md
@@ -0,0 +1,56 @@
+Installing sbt runner
+=====================
+
+To build an sbt project, you'll need to take these steps:
+
+- Install JDK (We recommend Eclipse Adoptium Temurin JDK 8, 11, or 17, or Zulu JDK 8 for macOS with ARM chips).
+- Install sbt runner.
+
+sbt runner is a script that invokes a declared version of sbt, downloading it beforehand if necessary. This allows build authors to precisely control
+the sbt version, instead of relying on users' machine environment.
+
+### Prerequisites
+
+sbt runs on all major operating systems; however, it requires JDK 8 or higher to run.
+
+```bash
+java -version
+# openjdk version "1.8.0_352"
+```
+
+### Install sbt with **cs setup**
+
+Follow [Install](https://www.scala-lang.org/download/) page, and install Scala using Coursier.
+
+```bash
+cs setup
+```
+
+This should install the latest stable version of `sbt`.
+
+### Installing from SDKMAN
+
+To install both JDK and sbt, consider using [SDKMAN](https://sdkman.io/).
+
+```bash
+sdk install java $(sdk list java | grep -o "\b8\.[0-9]*\.[0-9]*\-tem" | head -1)
+sdk install sbt
+```
+
+### Universal packages
+
+- [sbt-{{sbt_runner_version}}.zip][ZIP]
+- [sbt-{{sbt_runner_version}}.tgz][TGZ]
+- [sbt-{{sbt_runner_version}}.msi][MSI]
+
+Verify the sbt runner
+---------------------
+
+```bash
+sbt --script-version
+# {{sbt_runner_version}}
+```
+
+ [MSI]: https://github.com/sbt/sbt/releases/download/v{{sbt_runner_version}}/sbt-{{sbt_runner_version}}.msi
+ [ZIP]: https://github.com/sbt/sbt/releases/download/v{{sbt_runner_version}}/sbt-{{sbt_runner_version}}.zip
+ [TGZ]: https://github.com/sbt/sbt/releases/download/v{{sbt_runner_version}}/sbt-{{sbt_runner_version}}.tgz
diff --git a/src/reference/custom-2024.css b/src/reference/custom-2024.css
new file mode 100644
index 00000000..6b71502c
--- /dev/null
+++ b/src/reference/custom-2024.css
@@ -0,0 +1,7 @@
+html {
+ font-family: "Helvetica Neue", "Roboto", "Arial", sans-serif;
+}
+
+pre {
+ border: solid 1px lightgray;
+}
diff --git a/src/reference/00-Getting-Started/02-sbt-by-example.md b/src/reference/sbt-by-example.md
similarity index 94%
rename from src/reference/00-Getting-Started/02-sbt-by-example.md
rename to src/reference/sbt-by-example.md
index 35696a54..6fc0e8fd 100644
--- a/src/reference/00-Getting-Started/02-sbt-by-example.md
+++ b/src/reference/sbt-by-example.md
@@ -1,37 +1,32 @@
----
-out: sbt-by-example.html
----
[Basic-Def]: Basic-Def.html
- [Setup]: Setup.html
+ [Setup]: Setup.md
[Running]: Running.html
[Essential-sbt]: https://www.scalawilliam.com/essential-sbt/
sbt by example
--------------
-This page assumes you've [installed sbt 1][Setup].
+This page assumes you've [installed sbt runner][Setup].
Let's start with examples rather than explaining how sbt works or why.
### Create a minimum sbt build
-```
-\$ mkdir foo-build
-\$ cd foo-build
-\$ touch build.sbt
+```bash
+mkdir foo-build
+cd foo-build
+touch build.sbt
+mkdir project
+echo "sbt.version={{sbt_version}}" > project/build.properties
```
### Start sbt shell
-```
-\$ sbt
-[info] Updated file /tmp/foo-build/project/build.properties: set sbt.version to 1.9.3
-[info] welcome to sbt 1.9.3 (Eclipse Adoptium Java 17.0.8)
-[info] Loading project definition from /tmp/foo-build/project
-[info] loading settings for project foo-build from build.sbt ...
-[info] Set current project to foo-build (in build file:/tmp/foo-build/)
-[info] sbt server started at local:///Users/eed3si9n/.sbt/1.0/server/abc4fb6c89985a00fd95/sock
+```bash
+$ sbt
+[info] welcome to sbt {{sbt_version}} (Azul Systems, Inc. Java 1.8.0_352)
+....
[info] started sbt server
sbt:foo-build>
```
@@ -48,8 +43,8 @@ sbt:foo-build> exit
As a convention, we will use the `sbt:...>` or `>` prompt to mean that we're in the sbt interactive shell.
-```
-\$ sbt
+```bash
+$ sbt
sbt:foo-build> compile
```
@@ -453,10 +448,10 @@ sbt:Hello> dist
Here's how you can run the packaged app:
```
-\$ /tmp/someother
-\$ cd /tmp/someother
-\$ unzip -o -d /tmp/someother /tmp/foo-build/target/universal/hello-0.1.0-SNAPSHOT.zip
-\$ ./hello-0.1.0-SNAPSHOT/bin/hello
+$ /tmp/someother
+$ cd /tmp/someother
+$ unzip -o -d /tmp/someother /tmp/foo-build/target/universal/hello-0.1.0-SNAPSHOT.zip
+$ ./hello-0.1.0-SNAPSHOT/bin/hello
Hello! The current temperature in New York is 22.7 C.
```
@@ -473,7 +468,7 @@ sbt:Hello> Docker/publishLocal
Here's how to run the Dockerized app:
```
-\$ docker run hello:0.1.0-SNAPSHOT
+$ docker run hello:0.1.0-SNAPSHOT
Hello! The current temperature in New York is 22.7 C.
```
@@ -528,7 +523,7 @@ sbt:Hello> inspect tree dist
You can also run sbt in batch mode, passing sbt commands directly from the terminal.
```
-\$ sbt clean "testOnly HelloSuite"
+$ sbt clean "testOnly HelloSuite"
```
**Note**: Running in batch mode requires JVM spinup and JIT each time,
@@ -541,7 +536,7 @@ or a continuous test like `~testQuick`.
You can use the sbt `new` command to quickly setup a simple "Hello world" build.
```
-\$ sbt new scala/scala-seed.g8
+$ sbt new scala/scala-seed.g8
....
A minimal Scala project.
diff --git a/docs/getting-started/01-setup.mdx b/src/reference/setup-notes.md
similarity index 55%
rename from docs/getting-started/01-setup.mdx
rename to src/reference/setup-notes.md
index 8b2ba2c2..889c647f 100644
--- a/docs/getting-started/01-setup.mdx
+++ b/src/reference/setup-notes.md
@@ -1,66 +1,19 @@
----
-sidebar_position: 1
-title: Installing sbt runner
-slug: /setup
----
+Setup Notes
+===========
-import { sbtVersion, windowsBuild, downloadUrl } from '@site/variables';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-Installing sbt runner
-=====================
-
-To build an sbt project, you'll need to take these steps:
-
-- Install JDK (We recommend Eclipse Adoptium Temurin JDK 8, 11, or 17, or Zulu JDK 8 for macOS with ARM chips).
-- Install sbt runner.
-
-sbt runner is a script that invokes a declared version of sbt, downloading it beforehand if necessary. This allows build authors to precisely control
-the sbt version, instead of relying on users' machine environment.
-
-Prerequisites
--------------
-
-sbt runs on all major operating systems. It requires JDK 8 or higher to run.
-
-```bash
-$ java -version
-openjdk version "1.8.0_352"
-```
-
-Install sbt with **cs setup**
------------------------------
-
-Follow [Install](https://www.scala-lang.org/download/) page, and install Scala using Coursier.
-
-```bash
-cs setup
-```
-
-This should install the latest stable version of `sbt`.
-
-Installing from SDKMAN
-----------------------
-
-To install both JDK and sbt, consider using [SDKMAN](https://sdkman.io/).
-
-```
-$ sdk install java $(sdk list java | grep -o "\b8\.[0-9]*\.[0-9]*\-tem" | head -1)
-$ sdk install sbt
-```
-
-Using Coursier or SDKMAN has two advantages.
+See [Installing sbt runner](Setup.md) for the instruction on general setup. Using Coursier or SDKMAN has two advantages.
1. They will install the official packaging by Eclipse Adoptium etc, as opposed to the ["mystery meat OpenJDK builds"](https://mail.openjdk.java.net/pipermail/jdk8u-dev/2019-May/009330.html).
2. They will install `tgz` packaging of sbt that contains all JAR files. (DEB and RPM packages do not to save bandwidth)
+This page describes alternative ways of installing the sbt runner. Note that some of the third-party packages may not provide the latest version.
+
OS specific setup
-----------------
-
-
-### Homebrew
+### macOS
+
+#### Homebrew
```bash
$ brew install sbt
@@ -69,35 +22,28 @@ $ brew install sbt
:::warning
Homebrew maintainers have added a dependency to JDK 13 because they want to use more brew dependencies ([brew#50649](https://github.com/Homebrew/homebrew-core/issues/50649)). This causes sbt to use JDK 13 even when `java` available on PATH is JDK 8 or 11. To prevent `sbt` from running on JDK 13, install [jEnv](https://www.jenv.be/) or switch to using [SDKMAN](https://sdkman.io/).
:::
-
-
-- sbt-{windowsBuild}.msi
-- sbt-{windowsBuild}.msi.sha256
-- sbt-{windowsBuild}.msi.asc
+### Windows
-:::note
-Third-party packages may not provide the latest version. Please make
-sure to report any issues with these packages to the relevant maintainers.
-:::
+- [sbt-{{sbtRunnerVersion}}.msi](https://github.com/sbt/sbt/releases/download/v{{sbtRunnerVersion}}/sbt-{{sbtRunnerVersion}}.msi)
-### [Chocolatey](https://chocolatey.org/packages/sbt)
+#### [Chocolatey](https://chocolatey.org/packages/sbt)
```
> choco install sbt
```
-### [Scoop](https://scoop.sh/)
+#### [Scoop](https://scoop.sh/)
```
> scoop install sbt
```
-
-
-### Ubuntu and other Debian-based distributions
+### Linux
+
+#### Ubuntu and other Debian-based distributions
-[DEB][DEB] package is officially supported by sbt.
+[DEB][DEB] package is officially supported by sbt, but it does not contain JAR files to save bandwidth.
Ubuntu and other Debian-based distributions use the DEB format, but usually you don't install your software from a local DEB file. Instead they come with package managers both for the command line (e.g. `apt-get`, `aptitude`) or with a graphical user interface (e.g. Synaptic).
Run the following from the terminal to install `sbt` (You'll need superuser privileges to do so, hence the `sudo`).
@@ -117,15 +63,13 @@ Package managers will check a number of configured repositories for packages to
Once `sbt` is installed, you'll be able to manage the package in `aptitude` or Synaptic after you updated their package cache. You should also be able to see the added repository at the bottom of the list in System Settings -> Software & Updates -> Other Software:
-![Ubuntu Software & Updates Screenshot](/img/ubuntu-sources.png "Ubuntu Software & Updates Screenshot")
+![Ubuntu Software & Updates Screenshot](/files/ubuntu-sources.png "Ubuntu Software & Updates Screenshot")
-:::note
`sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823` may not work on Ubuntu Bionic LTS (18.04) since it's using a buggy GnuPG, so we are advising to use web API to download the public key in the above.
-:::
-### Red Hat Enterprise Linux and other RPM-based distributions
+#### Red Hat Enterprise Linux and other RPM-based distributions
-[RPM][RPM] package is officially supported by sbt.
+[RPM][RPM] package is officially supported by sbt, but it does not contain JAR files to save bandwidth.
Red Hat Enterprise Linux and other RPM-based distributions use the RPM format.
Run the following from the terminal to install `sbt` (You'll need superuser privileges to do so, hence the `sudo`).
@@ -146,26 +90,6 @@ sudo rm -f /etc/yum.repos.d/bintray-rpm.repo
curl -L https://www.scala-sbt.org/sbt-rpm.repo > sbt-rpm.repo
sudo mv sbt-rpm.repo /etc/yum.repos.d/
sudo dnf install sbt
-```
-
-
-
-
-Universal packages
-------------------
-
-- sbt-{sbtVersion}.zip
-- sbt-{sbtVersion}.zip.sha256
-- sbt-{sbtVersion}.zip.asc
-- sbt-{sbtVersion}.tgz
-- sbt-{sbtVersion}.tgz.sha256
-- sbt-{sbtVersion}.tgz.asc
-
-Verify the sbt runner
----------------------
-
-```bash
-$ sbt --script-version
```
[MSI]: $sbt_native_package_base$/v$app_version$/sbt-$windows_app_version$.msi
diff --git a/theme/highlight.css b/theme/highlight.css
new file mode 100644
index 00000000..7024045d
--- /dev/null
+++ b/theme/highlight.css
@@ -0,0 +1,125 @@
+/*!
+ Theme: GitHub
+ Description: Light theme as seen on github.com
+ Author: github.com
+ Maintainer: @Hirse
+ Updated: 2021-05-15
+
+ Outdated base version: https://github.com/primer/github-syntax-light
+ Current colors taken from GitHub's CSS
+*/
+
+.hljs {
+ color: #24292e;
+ background: #ffffff;
+}
+
+.hljs-doctag,
+.hljs-keyword,
+.hljs-meta .hljs-keyword,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-type,
+.hljs-variable.language_ {
+ /* prettylights-syntax-keyword */
+ color: #d73a49;
+}
+
+.hljs-title,
+.hljs-title.class_,
+.hljs-title.class_.inherited__,
+.hljs-title.function_ {
+ /* prettylights-syntax-entity */
+ color: #6f42c1;
+}
+
+.hljs-attr,
+.hljs-attribute,
+.hljs-literal,
+.hljs-meta,
+.hljs-number,
+.hljs-operator,
+.hljs-variable,
+.hljs-selector-attr,
+.hljs-selector-class,
+.hljs-selector-id {
+ /* prettylights-syntax-constant */
+ color: #005cc5;
+}
+
+.hljs-regexp,
+.hljs-string,
+.hljs-meta .hljs-string {
+ /* prettylights-syntax-string */
+ color: #032f62;
+}
+
+.hljs-built_in,
+.hljs-symbol {
+ /* prettylights-syntax-variable */
+ color: #e36209;
+}
+
+.hljs-comment,
+.hljs-code,
+.hljs-formula {
+ /* prettylights-syntax-comment */
+ color: #6a737d;
+}
+
+.hljs-name,
+.hljs-quote,
+.hljs-selector-tag,
+.hljs-selector-pseudo {
+ /* prettylights-syntax-entity-tag */
+ color: #22863a;
+}
+
+.hljs-subst {
+ /* prettylights-syntax-storage-modifier-import */
+ color: #24292e;
+}
+
+.hljs-section {
+ /* prettylights-syntax-markup-heading */
+ color: #005cc5;
+ font-weight: bold;
+}
+
+.hljs-bullet {
+ /* prettylights-syntax-markup-list */
+ color: #735c0f;
+}
+
+.hljs-emphasis {
+ /* prettylights-syntax-markup-italic */
+ color: #24292e;
+ font-style: italic;
+}
+
+.hljs-strong {
+ /* prettylights-syntax-markup-bold */
+ color: #24292e;
+ font-weight: bold;
+}
+
+.hljs-addition {
+ /* prettylights-syntax-markup-inserted */
+ color: #22863a;
+ background-color: #f0fff4;
+}
+
+.hljs-deletion {
+ /* prettylights-syntax-markup-deleted */
+ color: #b31d28;
+ background-color: #ffeef0;
+}
+
+.hljs-char.escape_,
+.hljs-link,
+.hljs-params,
+.hljs-property,
+.hljs-punctuation,
+.hljs-tag {
+ /* purposely ignored */
+}