Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#1562
主要說明
目前很完善地支援了 ChartJS,擴展力標籤外掛的語法。 同時該語法支援「淺色/深色模式」雙模式配置,並且對預設設置情況下的「淺色/深色模式」雙模式樣式支援良好。
語法簡介
下面是 ChartJS 的語法主體:
其中所有的內容需要用
{% chartjs "canvas_id" %}
與{% endchartjs %}
進行包裹,chartjs.js 腳本會自動將其渲染為div.chartjs-wrap
HTML 標簽。註意,canvas_id
為需要指定 canvas 圖表頁面元素的 ID,便於用戶進行更精確的樣式控製。然後,你可以在
<!-- chart -->
與<!-- endchart -->
之間進行 ChartJS 的 config 對象屬性設置;也可以在<!-- desc -->
與<!-- enddesc -->
標簽之間進行說明文字設置。註釋:
<!-- chart -->
與<!-- endchart -->
之間的內容不會被渲染,只會作為 ChartJS 的 config 參數進行傳遞;<!-- desc -->
與<!-- enddesc -->
之間的內容支持 Markdown 語法,同時會被整體包裹於div.chatjs-desc-{*}
HTML 標簽(註意{*}
可為 0、1、2、3、...這個序號完全由腳本按順序設置)。問:為什麽要設置
<!-- desc -->
與<!-- enddesc -->
的組合?答:這是為了更方便的進行布局設置,用戶可以通過 class 對以下頁面結構進行布局:
如果沒有該功能,用戶需要自己編寫對應的 HTML 標簽進行包裹。那樣做不僅可重復性低(每個都幾乎要自己命名設置),而且很麻煩(自己設置每個chartjs-wrap 標簽裏的說明元素的 class 與 id)。
總之,支持
<!-- desc -->
與<!-- enddesc -->
語法是為了方便統一設置,一勞永逸,對需要大量使用圖表的用戶百利無一害。對於需要個性化的圖表,也支持自己設置 HTML 標簽。所以,這個設計是良好的。註意:但是,ChartJS 官方不支持雙模式設置,所以 chartjs 腳本對其進行了擴展。你幾乎可以在 config 的任何地方進行雙模式配置,大概語法就像下面這樣:
在淺色模式下,會被預處理為:
在深色模式下,會被預處理為:
而這個預處理過程是自動的,你不需要擔心具體的過程。你只需要保證 json 語法正確即可!
舉個詳細的例子:
請註意,你甚至可以實現在深色模式和淺色模式下展示不同的圖表!而這一切,只需要你掌握這個
light-mode
與dark-mode
的擴展設置語法!當你看完上述一切,你可以參考我的博客使用該內容的頁面:關於作者 | SeaEpoch。
其他
如果有任何問題可以提 ISSUES,並@SeaYJ即可,我會盡力解決關於 ChartJS 相關的問題。