automatically reference right scalaVersion in RST

using epilog_rst configuration variable in sphinx, which reads
akka-docs/epilog_rst, which is written in sphinx-scala-version task by
SBT, which is referenced by the other docs tasks as a dependency
This commit is contained in:
Roland 2012-08-17 00:07:56 +02:00
parent b9e91d69d7
commit d41160f4bf
7 changed files with 25 additions and 8 deletions

1
.gitignore vendored
View file

@ -49,6 +49,7 @@ multiverse.log
.eprj .eprj
.*.swp .*.swp
akka-docs/_build/ akka-docs/_build/
akka-docs/epilog_rst
*.pyc *.pyc
akka-docs/exts/ akka-docs/exts/
_akka_cluster/ _akka_cluster/

View file

@ -25,6 +25,10 @@ highlight_language = 'scala'
add_function_parentheses = False add_function_parentheses = False
show_authors = True show_authors = True
f = open('epilog_rst', 'U')
rst_epilog = "\n" + f.read()
f.close()
# -- Options for HTML output --------------------------------------------------- # -- Options for HTML output ---------------------------------------------------
html_theme = 'akka' html_theme = 'akka'

View file

@ -24,7 +24,9 @@ You can add it as a plugin by adding the following to your project/plugins.sbt::
You can then add multi-JVM testing to ``project/Build.scala`` by including the ``MultiJvm`` You can then add multi-JVM testing to ``project/Build.scala`` by including the ``MultiJvm``
settings and config. For example, here is how the akka-remote project adds settings and config. For example, here is how the akka-remote project adds
multi-JVM testing:: multi-JVM testing:
.. parsed-literal::
import sbt._ import sbt._
import Keys._ import Keys._
@ -47,7 +49,7 @@ multi-JVM testing::
lazy val buildSettings = Defaults.defaultSettings ++ Seq( lazy val buildSettings = Defaults.defaultSettings ++ Seq(
organization := "com.typesafe.akka", organization := "com.typesafe.akka",
version := "2.1-SNAPSHOT", version := "2.1-SNAPSHOT",
scalaVersion := "2.10.0-M6", scalaVersion := "|scalaVersion|",
crossPaths := false crossPaths := false
) )

View file

@ -140,9 +140,9 @@ when you are uncertain of what configuration is used.
If in doubt, you can also easily and nicely inspect configuration objects If in doubt, you can also easily and nicely inspect configuration objects
before or after using them to construct an actor system: before or after using them to construct an actor system:
.. code-block:: scala .. parsed-literal::
Welcome to Scala version 2.10.0-M6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_27). Welcome to Scala version |scalaVersion| (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_27).
Type in expressions to have them evaluated. Type in expressions to have them evaluated.
Type :help for more information. Type :help for more information.

View file

@ -120,13 +120,15 @@ Summary of the essential parts for using Akka with SBT:
SBT installation instructions on `https://github.com/harrah/xsbt/wiki/Setup <https://github.com/harrah/xsbt/wiki/Setup>`_ SBT installation instructions on `https://github.com/harrah/xsbt/wiki/Setup <https://github.com/harrah/xsbt/wiki/Setup>`_
``build.sbt`` file:: ``build.sbt`` file:
.. parsed-literal::
name := "My Project" name := "My Project"
version := "1.0" version := "1.0"
scalaVersion := "2.10.0-M6" scalaVersion := "|scalaVersion|"
resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/" resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"

View file

@ -58,7 +58,7 @@ After extracting data from a ``ByteIterator``, the remaining content can also be
.. includecode:: code/akka/docs/io/BinaryCoding.scala .. includecode:: code/akka/docs/io/BinaryCoding.scala
:include: rest-to-seq :include: rest-to-seq
with no copying from bytes to rest involved. In general, conversions from ByteString to ByteIterator and vice versa are O(1) for non-chunked ``ByteString``s and (at worst) O(nChunks) for chunked ByteStrings. with no copying from bytes to rest involved. In general, conversions from ByteString to ByteIterator and vice versa are O(1) for non-chunked ``ByteString`` and (at worst) O(nChunks) for chunked ByteStrings.
Encoding of data also is very natural, using ``ByteStringBuilder`` Encoding of data also is very natural, using ``ByteStringBuilder``

View file

@ -11,6 +11,7 @@ import java.io.File
object Sphinx { object Sphinx {
val sphinxDocs = SettingKey[File]("sphinx-docs") val sphinxDocs = SettingKey[File]("sphinx-docs")
val sphinxTarget = SettingKey[File]("sphinx-target") val sphinxTarget = SettingKey[File]("sphinx-target")
val sphinxScalaVersion = TaskKey[String]("sphinx-scala-version")
val sphinxPygmentsDir = SettingKey[File]("sphinx-pygments-dir") val sphinxPygmentsDir = SettingKey[File]("sphinx-pygments-dir")
val sphinxTags = SettingKey[Seq[String]]("sphinx-tags") val sphinxTags = SettingKey[Seq[String]]("sphinx-tags")
val sphinxPygments = TaskKey[File]("sphinx-pygments", "Sphinx: install pygments styles") val sphinxPygments = TaskKey[File]("sphinx-pygments", "Sphinx: install pygments styles")
@ -22,6 +23,7 @@ object Sphinx {
lazy val settings = Seq( lazy val settings = Seq(
sphinxDocs <<= baseDirectory, sphinxDocs <<= baseDirectory,
sphinxTarget <<= crossTarget / "sphinx", sphinxTarget <<= crossTarget / "sphinx",
sphinxScalaVersion <<= scalaVersionTask,
sphinxPygmentsDir <<= sphinxDocs { _ / "_sphinx" / "pygments" }, sphinxPygmentsDir <<= sphinxDocs { _ / "_sphinx" / "pygments" },
sphinxTags in sphinxHtml := Seq.empty, sphinxTags in sphinxHtml := Seq.empty,
sphinxTags in sphinxLatex := Seq.empty, sphinxTags in sphinxLatex := Seq.empty,
@ -32,6 +34,12 @@ object Sphinx {
sphinx <<= sphinxTask sphinx <<= sphinxTask
) )
def scalaVersionTask = (scalaVersion, streams) map { (v, s) =>
s.log.info("writing version file")
IO.write(file("akka-docs/epilog_rst"), ".. |scalaVersion| replace:: " + v + "\n")
v
}
def pygmentsTask = (sphinxDocs, sphinxPygmentsDir, sphinxTarget, streams) map { def pygmentsTask = (sphinxDocs, sphinxPygmentsDir, sphinxTarget, streams) map {
(cwd, pygments, baseTarget, s) => { (cwd, pygments, baseTarget, s) => {
val target = baseTarget / "site-packages" val target = baseTarget / "site-packages"
@ -50,7 +58,7 @@ object Sphinx {
} }
target target
} }
} } dependsOn sphinxScalaVersion
def buildTask(builder: String, tagsKey: SettingKey[Seq[String]]) = { def buildTask(builder: String, tagsKey: SettingKey[Seq[String]]) = {
(cacheDirectory, sphinxDocs, sphinxTarget, sphinxPygments, tagsKey, streams) map { (cacheDirectory, sphinxDocs, sphinxTarget, sphinxPygments, tagsKey, streams) map {