Leaflet

一個開源的 JavaScript 函式庫
適用於行動裝置友善的互動式地圖

← 返回部落格文章列表

Leaflet 外掛程式撰寫指南

Leaflet 最棒的功能之一是其強大的外掛程式生態系統。「Leaflet 外掛程式頁面」列出了數十個很棒的外掛程式,而且每週都有更多外掛程式加入。

本指南列出了發佈符合 Leaflet 本身品質標準的 Leaflet 外掛程式的一些最佳實踐方法。也可以在 儲存庫中找到。

呈現方式

儲存庫

存放 Leaflet 外掛程式的最佳位置是一個獨立的 GitHub 儲存庫。如果您為不同的用途建立外掛程式集合,請不要將它們放在同一個儲存庫中 — 通常在個別的儲存庫中使用小而獨立的外掛程式會更容易。

展示

發佈外掛程式時,最重要的事情是包含一個展示外掛程式功能的展示 — 這通常是人們首先會尋找的東西。

建立展示的最簡單方法是使用 GitHub Pages。一個好的起點是在您的儲存庫中建立一個 gh-pages 分支,並在其中加入一個 index.html 頁面 — 推送後,它將發佈為 http://<使用者>.github.io/<儲存庫>

Readme

您需要的下一個東西是儲存庫根目錄中一個描述性的 README.md (或連結到具有類似內容的網站)。它至少應包含以下項目

授權

每個開源儲存庫都應包含授權。如果您不知道該為您的程式碼選擇哪種開源授權,MIT 授權BSD 2-Clause 授權都是不錯的選擇。您可以將其作為 LICENSE 檔案放入儲存庫中,或僅從 Readme 連結到授權。

程式碼

檔案結構

保持檔案結構的乾淨和簡單,不要在一個地方堆積大量檔案 — 讓新人容易在您的儲存庫中找到方向。

一個簡單外掛程式的簡化儲存庫如下所示

my-plugin.js
README.md

一個更複雜的外掛程式的檔案結構範例

/src        JS source files
/dist       minified plugin JS, CSS, images
/spec       test files
/examples   HTML examples of plugin usage
README.md
LICENSE
package.json

程式碼慣例

每個人的品味都不同,但重要的是與您為外掛程式選擇的任何慣例保持一致。

作為一個好的起點,請查看 Airbnb JavaScript 指南。Leaflet 幾乎遵循相同的慣例,除了使用智能標籤(用於縮排的硬標籤,用於對齊的空格)以及在 function 關鍵字後放置一個空格。

外掛程式 API

永遠不要在外掛程式中公開全域變數。
如果您有一個新的類別,請直接將其放入 L 命名空間(L.MyPlugin)。
如果您繼承現有類別之一,請使其成為子屬性(L.TileLayer.Banana)。
如果您想向現有的 Leaflet 類別新增方法,您可以這樣做:L.Marker.include({myPlugin: …})

函式、方法和屬性名稱應使用 camelCase
類別名稱應使用 CapitalizedCamelCase

如果您的函式中有很多參數,請考慮接受一個選項物件(在可能的情況下放置預設值,以便使用者不需要指定所有參數)

// bad
marker.myPlugin('bla', 'foo', null, {}, 5, 0);

// good
marker.myPlugin('bla', {
	optionOne: 'foo',
	optionThree: 5
});

最重要的是,保持簡單。Leaflet 的一切都與簡單有關。

乾杯,
Vladimir。