如何并排展示Groovy和Kotlin DSL样本

113 阅读2分钟

Gradle构建脚本样本现在有Kotlin DSL片段,与Gradle 5.0 docs和许多Gradle指南中的Groovy片段一起。

我们希望你能在你的READMEs和基于Web的文档中显示这两种DSL,所以这篇文章展示了你在GitHub网站上显示多语言示例的方法。

GitHub上的Groovy和Kotlin DSL示例

很难找到没有README.mdREADME.adoc 的OSS项目。虽然没有很多方法可以让这些README页面互动起来,但我们可以在Markdown或Asciidoc中使用<details><summary> 的HTML元素,实现一点互动性,但又避免了有多个后续样本在视野中的啰嗦。

使用这些代码片断在GitHub上显示多语言片断。

<details open>
<summary>Groovy</summary>

```groovy
logging.captureStandardOutput LogLevel.INFO
println 'A message which is logged at INFO level'
```

</details>
<details>
<summary>Kotlin</summary>

```kotlin
logging.captureStandardOutput(LogLevel.INFO)
println("A message which is logged at INFO level")
```

</details>
++++
<details open>
<summary>Groovy</summary>
++++

[source,groovy]
----
logging.captureStandardOutput LogLevel.INFO
println 'A message which is logged at INFO level'
----

++++
</details>
++++

++++
<details>
<summary>Kotlin</summary>
++++

[source,kotlin]
----
logging.captureStandardOutput(LogLevel.INFO)
println("A message which is logged at INFO level")
----

++++
</details>
++++

下面是它的操作。

注意,这对jekyll 或静态网站不起作用,所以在那里我们必须写一点代码。

网络上的Groovy和Kotlin DSL样本

一点CSS和JavaScript,你可以做一个漂亮的小语言选择器UI,记住用户的选择。 这个虚无缥缈的CSS、HTML和JavaScript的组合创造了你在文章顶部看到的东西。

稍微介绍一下代码的作用。

  • 首先,JS初始化首选语言,获取并存储在window.localStorage ,以便用户的偏好被保存。
  • 接下来,它折叠了所有有class=multi-language-sample 的兄弟姐妹,并为每个样本容器元素生成标签。
  • 最后,当一个标签被点击时,JavaScript将测量并滚动窗口,以便内容不会在片段长短不一的情况下 "跳转"--不错吧?

CSS负责为相应的标签添加一个漂亮的Groovy或Kotlin标识,如果标签没有被激活,该标识会变灰。

奖励:你可以添加class="multi-language-text lang-foo" ,让任何内容只为选定的语言显示。

我测试了代码在IE10+中的工作情况,但如果有错误,请让我们知道。我的意思是它不像谷歌云存储文档那样花哨,但我找不到任何好的库来做这个。

总结

这些是一些想法,你可以用来在GitHub的README或你的网站上显示多语言的样本。 我希望你觉得这些对你的项目有用。 欢迎你的其他想法和贡献。