Embedding Kotlin Playground

kotliner發表於2018-04-30

沒錯,這是一段可以嵌入到部落格中獨立執行的kotlin程式碼。要注意的是,您還能修改其中的程式碼,而不只是讓它執行起來。

這很酷,不是嗎?讓上述程式碼也順利工作起來吧。

通常來說,您並不希望所有程式碼段都顯示出來,而只想展示當中最有趣和最重要的部分。這也是可以實現的。

您也可以新增測試:

你也可以將JavaScript設定為目標平臺,甚至還能在canvas上繪製圖案

有時候您並不需要或者不能建立一個可執行的示例。此時,您可以運用highlight-only特性,在相同的樣式下顯示這段不會執行的程式碼。

嵌入式Kotlin環境工作原理

一直以來,成千上萬的萌新通過try.kotlinlang.org這個網站作為一種互動方式來學習Kotlin。尤其是Kotlin Koans Online現在已經非常受歡迎。高階使用者可以直接利用這個開發環境來試執行小段程式碼,而無需開啟IDE,例如在StackOverflow上貼上程式碼來回答問題的時候。

Embedded Kotlin Playground在同樣的原理下工作,但是允許你在網頁中編寫及執行示例。編譯將在我們的後端伺服器上進行,然後執行在你的瀏覽器上(如果平臺是JS)或者執行在伺服器上(如果平臺是JVM)。

前端

只需要在header中新增簡單的一行程式碼,即可將該環境嵌入到你的頁面:

現在頁面上所有程式碼塊都將被轉換為能執行的Kotlin程式碼片段。當然可以自定義data-selector將指令碼應用到某些特定的類,也可以手動配置Kotlin執行環境。

除此之外,還有很多其他的安裝及自定義選項,可以在文件中檢視。

後端

嵌入式環境將在後端編譯程式碼,並高亮顯示完成的資訊。通常情況下,你不需要擔心後端,直接使用我們的伺服器即可,除非你想引用自定義的JVM庫。

當編寫的示例需要引用到外部的庫,例如你在為自己的庫編寫可互動文件時,你需要配置及執行一個開發環境的例項。這是一件很容易的事:新增依賴,執行兩個預定製的gradle task,再執行docker-compose up,看!伺服器已經跑起來了。更多的細節請檢視指引

它正應用於這些地方

  • 在官網的Kotlin文件中,我們已經大規模地去使用這個技術。所有新的文件,都含有可以執行的sample(參考Basic syntax1.11.2lambdasCoroutines的更新內容)。對於標準庫的一些函式,也帶有這種形象的例子。
  • Kotlin By Example也是採取Kotlin嵌入環境來編寫示例
  • 我們也釋出了一個WordPress的外掛,增加了kotlin標籤,允許您在任意文章嵌入可互動的Kotlin開發環境。本文中所有示例都是在該外掛的幫助下完成編寫。preview
  • Kotlin論壇裡,你可以通過run-kotlin標籤,在markdown語法下編寫kotlin程式碼來回答問題,但請保證語法正確。

discuss3

應用場景

Kotlin嵌入環境改善了閱讀體驗,並增加了程式碼示例的表現力。讀者不僅能看到程式碼,還可以執行它,更改它,並再次執行已更改的程式碼。特別是在以下場合中,我們鼓勵所有作者都編寫可執行的Kotlin程式碼片段:

  • 課堂上
  • 幻燈片和書籍上的補充資料
  • 庫及框架的文件
  • 部落格文章中的示例

在不久的將來,我們還會為嵌入式Kotlin環境上的指令碼編寫提供支援。

原文連結:https://blog.jetbrains.com/kotlin/2018/04/embedding-kotlin-playground/

相關文章