Include link to source on GitHub at bottom of the page. Fixes #921.

This commit is contained in:
Mark Harrah 2013-10-16 16:23:37 -04:00
parent 7b7e642393
commit 9a85396d4f
4 changed files with 33 additions and 7 deletions

View File

@ -59,16 +59,20 @@ object Docs
site.addMappingsToSiteDir(mappings in sxr, prefix)
)
def sphinxEnvironmentVariables = (scalaVersion, version) map { (scalaV, sbtV) =>
// major.minor
def sphinxEnvironmentVariables = (scalaVersion, version, isSnapshot) map { (scalaV, sbtV, snap) =>
// sphinx's terminology: major.minor
def release(v: String): String = CrossVersion.partialVersion(v) match {
case Some((major,minor)) => major + "." + minor
case None => v
}
val siteVersion = sbtV.takeWhile(_ != '-')
val siteSourceVersion = if(snap) release(siteVersion) else siteVersion
val siteSourceBase = s"https://github.com/sbt/sbt/raw/$siteSourceVersion/src/sphinx/"
Map[String,String](
"sbt.full.version" -> sbtV,
"sbt.partial.version" -> release(sbtV),
"sbt.site.version" -> sbtV.takeWhile(_ != '-'),
"sbt.site.version" -> siteVersion,
"sbt.site.source.base" -> siteSourceBase,
"sbt.binary.version" -> CrossVersion.binarySbtVersion(sbtV),
"scala.full.version" -> scalaV,
"scala.partial.version" -> release(scalaV),

View File

@ -0,0 +1,19 @@
from docutils import nodes
from sphinx.util.nodes import set_source_info
from sphinx.util.osutil import relative_uri
import os
# This role inserts a link to the source rST on GitHub.
def srcref(name, rawtext, text, lineno, inliner, options={}, content=[]):
srcPath = inliner.document.settings.env.docname
srcUri = "%s%s.rst" % (os.environ['sbt.site.source.base'], srcPath)
refNode = nodes.reference('', 'Source for this page', internal=False, refuri=srcUri)
spanNode = nodes.paragraph()
spanNode.append(refNode)
spanNode['classes'].append('page-source')
return [spanNode], []
# register the role
def setup(app):
app.add_role('srcref', srcref)

View File

@ -219,4 +219,8 @@ input#search-input {
}
.breadcrumb li select option {
font-weight: normal;
}
.page-source {
margin-top: 20px;
text-align: center;
}

View File

@ -3,7 +3,7 @@
import sys, os
sys.path.append(os.path.abspath('_sphinx/exts'))
extensions = ['sphinxcontrib.issuetracker', 'sphinx.ext.extlinks', 'howto', 'codeliteral', 'key']
extensions = ['sphinxcontrib.issuetracker', 'sphinx.ext.extlinks', 'howto', 'codeliteral', 'key', 'srcref']
# Project variables
@ -78,7 +78,6 @@ launcher_release_base = typesafe_ivy_releases + 'org.scala-sbt/sbt-launch/'
launcher_snapshots_base = typesafe_ivy_snapshots + 'org.scala-sbt/sbt-launch/'
sbt_native_package_base = 'http://repo.scala-sbt.org/scalasbt/sbt-native-packages/org/scala-sbt/sbt/'
rst_epilog = """
.. |scalaVersion| replace:: %(scalaVersion)s
.. |scalaRelease| replace:: %(scalaRelease)s
@ -96,6 +95,8 @@ rst_epilog = """
.. _sbt-launcher-package: https://github.com/sbt/sbt-launcher-package
.. _Stack Overflow: http://stackoverflow.com/tags/sbt
.. _source code: http://github.com/sbt/sbt
:srcref:`ignored`
""" % {
'launcher_release_base': launcher_release_base,
'launcher_snapshots_base': launcher_snapshots_base,
@ -105,5 +106,3 @@ rst_epilog = """
'scalaVersion': scalaVersion,
'release': release
}