Repo: https://github.com/imiskolee/tidb-wasm-markdown
一款可讓TiDB運行在Markdown中的插件。css
週三看到朋友圈在瘋狂的刷 TiDB - Wasm 這個有意思的東西(讓數據庫運行在瀏覽器裏?TiDB + WebAssembly 告訴你答案)。
這的確是一件讓人興奮的工做成果,爲WASM的應用提供了不錯的思路。就這個項目自己而言也是有很大的價值。前端
咱們在編程語言學習的時候,有諸如JSFiddle、Go Playground等不少不一樣的交互性環境可使用,而且能夠將這些環境內嵌到教學文章之中,造成了交互性的教學資料。可是在
數據庫的文章之中,只能是純粹的紙上談兵,讀者很難進行直觀的感覺與實操。git
相比較而言,純粹的編程語言的交互環境對於服務端資源消耗是可控的,成本也是能夠承擔得起的。數據庫不同,一個簡單的索引優化的示例數據可能就須要GB級別的內存佔用以及更大的CPU消耗,成本上難以承受。而TiDB WASM版本的出現,解決了這一個問題 --
由於是在客戶端構建環境,環境成本由對應的讀者承擔。基於這個前提,我想到的就是能夠把TiDB WASM版本做爲數據庫的Play Ground環境嵌入到Markdown中進行交互。github
main.css
這個名字,這個讓我花費了幾分鐘。我以爲這個假裝的目的僅僅是爲了複用Nginx的壓縮緩存策略。尋找一款Markdown解析器能夠方便的內嵌自定義標籤。 最終經過半小時的搜索與學習,定位到了markdown-it以及markdown-it-container這兩項工做。golang
::: tisql SELECT * FROM USERS; | 固定tag內容 | sql 內容 |
詳情見demo程序。sql