mirror of https://github.com/sbt/sbt.git
Include link to source on GitHub at bottom of the page. Fixes #921.
This commit is contained in:
parent
7b7e642393
commit
9a85396d4f
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
@ -219,4 +219,8 @@ input#search-input {
|
|||
}
|
||||
.breadcrumb li select option {
|
||||
font-weight: normal;
|
||||
}
|
||||
.page-source {
|
||||
margin-top: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue