Skip to content

Commit 30197a0

Browse files
authored
Code snippets now contain a button copying the contents (#474)
Code snippets now contain one button for showing snippet sources and one for copying the contents This aligns the snippets with other doc tools that has a copy button up top right.
1 parent 534d7e3 commit 30197a0

File tree

18 files changed

+67
-41
lines changed

18 files changed

+67
-41
lines changed

core/src/main/scala/com/lightbend/paradox/markdown/StyledVerbatim.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,11 @@ abstract class StyledVerbatimSerializer extends VerbatimSerializer {
4747

4848
node match {
4949
case vgn: VerbatimGroupNode =>
50+
printer.print("""<button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button>""")
5051
vgn.getSourceUrl.ifPresent(new Consumer[String] {
51-
override def accept(sourceUrl: String): Unit =
52-
printer.print(s"""<a class="icon go-to-source" href="$sourceUrl" target="_blank" title="Go to snippet source"></a>""")
52+
override def accept(sourceUrl: String): Unit = {
53+
printer.print(s"""<a class="snippet-button go-to-source" href="$sourceUrl" target="_blank" title="Go to snippet source">source</a>""")
54+
}
5355
})
5456
case _ =>
5557
}

plugin/src/sbt-test/paradox/default-theme/expected/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<script type="text/javascript" src="js/page.js"></script>
1313
<script type="text/javascript" src="js/warnOldVersion.js"></script>
1414
<script type="text/javascript" src="js/groups.js"></script>
15+
<script type="text/javascript" src="js/snippets.js"></script>
1516
<link rel="stylesheet" type="text/css" href="lib/foundation/dist/foundation.min.css"/>
1617
<link rel="stylesheet" type="text/css" href="css/page.css"/>
1718

plugin/src/sbt-test/paradox/default-theme/expected/sub/indexed.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<script type="text/javascript" src="../js/page.js"></script>
1313
<script type="text/javascript" src="../js/warnOldVersion.js"></script>
1414
<script type="text/javascript" src="../js/groups.js"></script>
15+
<script type="text/javascript" src="../js/snippets.js"></script>
1516
<link rel="stylesheet" type="text/css" href="../lib/foundation/dist/foundation.min.css"/>
1617
<link rel="stylesheet" type="text/css" href="../css/page.css"/>
1718

plugin/src/sbt-test/paradox/default-theme/expected/sub/unindexed.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<script type="text/javascript" src="../js/page.js"></script>
1313
<script type="text/javascript" src="../js/warnOldVersion.js"></script>
1414
<script type="text/javascript" src="../js/groups.js"></script>
15+
<script type="text/javascript" src="../js/snippets.js"></script>
1516
<link rel="stylesheet" type="text/css" href="../lib/foundation/dist/foundation.min.css"/>
1617
<link rel="stylesheet" type="text/css" href="../css/page.css"/>
1718

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<pre class="prettyprint"><code class="language-scala">val snippet = 0</code></pre>
1+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">val snippet = 0</code></pre>

plugin/src/sbt-test/paradox/snippet-noindent-writer/expected/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div>
22
<div>
3-
<pre class="prettyprint"><code class="language-scala">object Hello extends App {
3+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">object Hello extends App {
44
def say(str: String): Unit = {
55
println(str)
66
}
@@ -10,7 +10,7 @@
1010
</div>
1111
</div>
1212

13-
<pre class="prettyprint"><code class="language-scala">object Hello extends App {
13+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">object Hello extends App {
1414
def say(str: String): Unit = {
1515
println(str)
1616
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<pre class="prettyprint"><code class="language-scala">val foo = 42</code></pre>
2-
<pre class="prettyprint"><code class="language-scala">val foo = 42</code></pre>
3-
<pre class="prettyprint"><code class="language-scala">val foo = 42</code></pre>
4-
<pre class="prettyprint"><code class="language-scala">val foo = 42</code></pre>
1+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">val foo = 42</code></pre>
2+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">val foo = 42</code></pre>
3+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">val foo = 42</code></pre>
4+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">val foo = 42</code></pre>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
<pre class="prettyprint group-a"><code class="language-scala">private class SomethingElse</code></pre>
2-
<pre class="prettyprint group-b"><code class="language-scala">import scala.util.Try</code></pre>
1+
<pre class="prettyprint group-a"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">private class SomethingElse</code></pre>
2+
<pre class="prettyprint group-b"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">import scala.util.Try</code></pre>

plugin/src/sbt-test/paradox/snippets/expected/multiple.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
<pre class="prettyprint"><code class="language-scala">import scala.concurrent.duration._
1+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">import scala.concurrent.duration._
22

33
case class Measurement(method: Method, duration: Duration)</code></pre>
4-
<pre class="prettyprint"><code class="language-scala">import scala.util.Try
4+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-scala">import scala.util.Try
55

66
def parseInt(s: String): Option[Int] = Try(s.toInt).toOption</code></pre>
7-
<pre class="prettyprint"><code class="language-conf"># HTTP Configuration
7+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="language-conf"># HTTP Configuration
88
http {
99
port=80
1010
host=0.0.0.0

plugin/src/sbt-test/paradox/snippets/expected/nocode.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<pre class="prettyprint"><code class="nocode">certpath: -Using checker7 ... [sun.security.provider.certpath.RevocationChecker]
1+
<pre class="prettyprint"><button class="snippet-button copy-snippet" title="Copy snippet to clipboard">copy</button><code class="nocode">certpath: -Using checker7 ... [sun.security.provider.certpath.RevocationChecker]
22
certpath: connecting to OCSP service at: http://gtssl2-ocsp.geotrust.com
33
certpath: OCSP response status: SUCCESSFUL
44
certpath: OCSP response type: basic

0 commit comments

Comments
 (0)