This project is the source for scala-sbt.org. See contributors for the list of documentation contributors.
scala-sbt.org is powered by:
-
nanoc to generate the landing pages.
-
Pamflet, a Scala-based documentation engine written by @n8han (and some contributions from @eed3si9n) generates the sbt 0.13/1.x documentation.
The site generation is driven by sbt-site and sbt-ghpages.
The source for Community plugins page is at src/reference/01-General-Info/02-Community-Plugins.md. Add your plugin to this page and send send us a pull request if your plugin is not already on it.
Currently, nanoc requires Ruby 2.1 or greater.
You'll need the following gems for running nanoc:
$ gem install nanoc:4.0.2
$ gem install redcarpet
$ gem install nokogiri
If you're running ubuntu, you'll need to also install ruby-dev for the native-code in redcarpet:
$ sudo apt-get install ruby-dev
Also, if you're on ubuntu you might see an error like this:
zlib is missing; necessary for building libxml2
If this is the case, run this:
$ sudo apt-get install zlib1g-dev
The pdf generation is optional, and requires the following additional steps.
On Ubuntu
$ sudo add-apt-repository ppa:texlive-backports/ppa
$ sudo apt-get update
$ sudo apt-get install pandoc latex-cjk-all texlive-full
On Mac
- download and install MacTEX
sudo tlmgr update --self --all
- follow https://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeX%20Live%2FMac#bcb0d462
brew install pandoc
To make the site locally, from sbt shell:
> makeSite
Then open target/site/index.html
.
To push site, from sbt shell:
> ghpagesPushSite
Beware that sbt-ghpages interacts badly if your home directory is a git repository: sbt/sbt-ghpages#25
- Make sure you enable pdf generation:
sbt -Dsbt.website.generate_pdf
- Update
sbt.version
inproject/build.properties
- Update
targetSbtFullVersion
inproject/Docs.scala
- Add last release to "Previous releases" in
src/nanoc/nanoc.yaml
- Update
sbtVersion
,windowsBuild
andsbtVersionForScalaDoc
insrc/reference/template.properties
Pamflet uses dollar sign ($
) as the template variable character.
So if you use it in the document, use need to escape it with backslash: \$
.
Here's how to check for unescaped dollar signs.
$ brew install ripgrep
$ rg '^([^\$]*)[^\\]\$([^\$]*)$' -g '*.md' src
src/reference/02-DetailTopics/03-Dependency-Management/04-Proxy-Repositories.md
79: export SBT_CREDENTIALS="$HOME/.ivy2/.credentials"
To include a validated code examples, create a scripted test under src/sbt-test
,
and in the markdown include as:
// This includes the entire file as Scala code snippet
@@snip [build.sbt]($root$/src/sbt-test/ref/basic/build.sbt) {}
or
// This includes snippet between a line containing #example another line with #example
@@snip [build.sbt]($root$/src/sbt-test/ref/basic/build.sbt) { #example }
or
// This specifies syntax highlight
@@snip [build.sbt]($root$/src/sbt-test/ref/basic/build.sbt) { #example type=text }