一天過一天,終於走到了今天(撒花~ 從最一開始的 Pre-Start 篇章:帶讀者們認識 WYSIWYG 、瀏覽器的 contenteditable 屬性、...
上一篇我們統整了 NodeTransforms 裡各個 methods 的用法以及參數介紹, 傳送門 在此~ 這一篇同樣會以 reference 的形式統整...
最後終於來到了我們最後一個章節:『 Transforms 』。 Transform 在 slate package 裡頭也是佔了舉足輕重的地位,它提供了最 h...
前一篇我們介紹了 Slate Normalizing 裡負責實作節點正規化以及讓使用者自定義 constraints 的主要函式: create-editor...
Slate 正規化的相關功能由兩個主要函式: interfaces/editor.ts 的 normalize method create-editor 編...
我們在 上上一篇 也有提到過 slate 將 Normalizing 這項功能的實現拆成了第一步驟的『骯髒標記( Dirty-Path ) 』以及透過骯髒標記...
在開始繼續深入源碼之前,我們先花點篇幅討論 Normalizing 這回事。 Normalizing - 正規化,對資料庫稍有著墨的話對這個名詞一定不陌生。...
上一篇文章我們深入瞭解了 Operation 的 transform function 是如何實作針對各種不同的 Operation types 的更新功能的...
今天的內容將延續 上一篇 文章中 Operation Process 裡的 3. ,同時我們會非常深入地去解析實現整個 transform function...
上一篇我們介紹了 interfaces/operations.ts 裡定義的 Operation types ,還沒看過的讀者們 傳送門 在此~ 接著從這一篇...
我們接下來就要進入到 slate 世界裡的另一大領域: Operations 。 這一整段章節其實也是筆者準備整個系列文章中數一數二期待的章節。因為在面對 W...
在正式開始介紹 Operation 的內容之前,先讓我們花一點篇幅來介紹一下『 WeakMap 』這個感覺有點偏冷門的主題。 即便對它不熟悉的讀者們,第一眼看...
ImmutableJS v.s. ImmerJS 舊版的 Slate 選擇 Immutable.js 這個套件去建立 Immutable object ,但...
接著我們要進入到 slate 的下一個重點章節: Immutability 。 雖然這已經算是一個老生常談的主題了,但還是先讓我們稍微花點篇幅討論一下:什麼是...
slate 將 typescript 的型別擴充相關的內容都集合在 interfaces/custom-types.ts 這個 file 裡面。 這個 fil...
JS 的 Iteration 在 Slate 裡頭佔了不小的份量,即便有 Ref concepts 讓我們得以追蹤特定的 Location value ,在很...
緊接著這一篇要來探討 slate 是如何實現『定位』這件事的。 在開發以 text 文字資料模型為主的功能時,有辦法精準地定位到特定的文字位置,甚至是文字集合...
上一篇我們有提到上圖這些畫了黃框的 files ,是我們在建立 editor 與操作 editor value 時主要會使用到的概念。 同時介紹了 slate...
接下來的篇章我們會把目光聚焦於 interfaces/ 這個目錄底下的內容,想確認 slate package 完整的 src directory 的讀者們可...
在開始今天的主題前,雖然在前面介紹 Slate 時已經有稍微提到過了,我們還是先從 slate 的各個 packages 分別負責的領域開始介紹起。 sl...
行前導讀 第一次參加鐵人賽的你,先禮貌性來個自我介紹吧?! 嗨大家好! This is Ian , 24 歲身心理男。 Position : RD —...