第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Markdown 甘特圖

1. 前言

Markdown 的原生語法不支持繪制圖形,但通過擴展模塊,我們可以將一些格式化的文字渲染成我們需要的圖形。常用的圖形有 “流程圖”、“時序圖”、“類圖”、“狀態(tài)圖”、“甘特圖”、"餅圖" 等。

本節(jié)將重點介紹如何通過 Mermaid 繪制「甘特圖」。

甘特圖 (Gantt chart) 也被稱為橫道圖、條狀圖(Bar chart)。通常用于展示項目進度,它的核心對象是「時間」,并在時間的基礎上,展示了「成本」和「范圍」之間的聯(lián)系。

環(huán)境說明
考慮到 Markdown 工具之間的不兼容,有的內(nèi)容直接從頁面復制粘貼到本地不會正常顯示,大家學習時自己動手寫是肯定沒問題的。本節(jié)所有實例代碼及演示效果均使用 Typora 工具完成。
Mermaid 為 Markdown 擴展語法,需要在 Typora 設置中開啟對圖表的語法支持。其方式為:「設置」->「Markdown」->「Markdown 擴展語法」-> 勾選「圖表」,如下圖:
圖片描述

2. 語法詳解

2.1 甘特圖語法

2.1.1 一個基本的甘特圖

基本的甘特圖由「標題」、「日期格式約定」、「分組及任務」三部分組成。

實例 1

一個基本的甘特圖。

?```mermaid
gantt
    title 簡單的甘特圖
    dateFormat  YYYY-MM-DD
    section 分區(qū)1
    任務1-1           :a1, 2014-01-01, 30d
    任務1-2           :after a1  , 20d
    section 分區(qū)2
    任務2-1      :2014-01-12  , 12d
    任務2-2      : 24d
?```

渲染效果如下:

圖片描述

2.1.2 規(guī)定日期格式

通過設置 dateFormat 屬性,可以指定甘特圖定義日期時的解析方式。

日期的格式支持以下情形:

表達式 取值示例 描述
YYYY 2014 4 位數(shù)年
YY 14 2 位數(shù)年
Q 1…4 季度數(shù)
M MM 1…12 月份數(shù)
MMM MMMM January…Dec 月份名稱
D DD 1…31 月中天數(shù)
Do 1st…31st 月中第幾天
DDD DDDD 1…365 年中天數(shù)
X 1410715640.579 Unix 時間戳(秒)
x 1410715640579 Unix 時間戳(毫秒)
H HH 0…23 24 小時制小時數(shù)
h hh 1…12 12 小時制小時數(shù)
a A am pm 上午、下午
m mm 0…59 分鐘數(shù)
s ss 0…59 秒鐘數(shù)
S 0…9 十分之一秒
SS 0…99 百分之一秒
SSS 0…999 千分之一秒
Z ZZ +12:00 時區(qū)

2.1.3 任務的定義

Mermaid 甘特圖中,每個任務隸屬于一個分組,一個分組內(nèi)可以定義多個任務,一張甘特圖表中可以包含多個分組。

甘特圖中的任務定義格式形如:<任務名> : [crit], [active], [任務ID], [前置任務], <周期>,其中「任務名」和「周期」兩項是必要項。

實例 2

在甘特圖中定義任務。

 gantt
        蘋果 :a, 2017-07-20, 1w
        香蕉 :crit, b, 2017-07-23, 1d
        櫻桃 :active, c, after b a, 1d

渲染效果如下:

圖片描述

2.1.4 定義對象的生命周期

甘特圖上的對象都是以時間為基礎而存在的,對于時間,我們可能有非常多的定義需求,比如精度上的「年」、「月」、「日」、「時」等,又比如「24H」或者 「12H」這樣寫法上的不同等。Mermaid 為時間提供了豐富的語法支持。

完整的定義語法如下:

%a - 周維度名稱(簡寫形式)。
%A - 周維度名稱(完整形式)。
%b - 月維度名稱(簡寫形式)。
%B - 月維度名稱(完整形式).
%c - 日期時間,相當于"%a %b %e %H:%M:%S %Y"。
%d - 月中日期固定寬度寫法,取值范圍 [01,31].
%e - 月中日期變動寬度寫法,取值范圍 [ 1,31];等同于 %_d.
%H - 小時數(shù)(24小時制)取值范圍 [00,23]。
%I - 小時數(shù)(12小時制)取值范圍 [01,12]。
%j - 年中日期固定寬度寫法,取值范圍 [001,366]。
%m - 年中月份固定寬度寫法,取值范圍 [01,12]。
%M - 分鐘數(shù)固定寬度寫法,取值范圍 [00,59]。
%L - 毫秒數(shù)固定寬度寫法,取值范圍 [000, 999]。
%p - 上午 \ 下午。
%S - 秒數(shù)固定寬度寫法,取值范圍 [00,61]。
%U - 年中周數(shù)的固定寬度寫法,以周日為每周第一天,取值范圍 [00,53]。
%w - 周中日期寫法,取值范圍 [0(周日),6]。
%W - 年中周數(shù)的固定寬度寫法,以周一為每周第一天,取值范圍 [00,53]。
%x - 日期,等同于 "%m/%d/%Y"。
%X - 時間,等同于 "%H:%M:%S"。
%y - 年,僅后兩位,取值范圍 [00,99]。
%Y - 年,完整四位。
%Z - 時區(qū),例如:"-0700"。
%% - 用于輸出百分號 "%" 。

3. 使用場景及實例

甘特圖通常用于項目管理。

實例 3

一個完整的甘特圖。

gantt
       dateFormat           :YYYY-MM-DD
       title                :甘特圖實例

       section 基本任務
       已完成任務            :done,    des1, 2014-01-06,2014-01-08
       進行中任務            :active,  des2, 2014-01-09, 3d
       未開始任務1           :         des3, after des2, 5d
       未開始任務2           :         des4, after des3, 5d

       section 緊急任務
       已完成的緊急任務 :crit, done, 2014-01-06,24h
       已完成緊急任務1       :crit, done, after des1, 2d
       進行中緊急任務2       :crit, active, 3d
       未開始緊急任務3       :crit, 5d
       未開始一般任務4       :2d
       未開始一般任務5       :1d

       section 文檔編寫
       進行中文檔任務1       :active, a1, after des1, 3d
       未開始文檔任務2       :after a1  , 20h
       未開始文檔任務3       :doc1, after a1  , 48h

       section 其他部分
       其他任務1            :after doc1, 3d
       其他任務2            :20h
       其他任務3            :48h

其渲染效果如下:

圖片描述

4. 小結

  • Mermaid 為 Markdown 擴展了使用普通文本生成甘特圖的語法及渲染支持;
  • Mermaid 可以用文本形式描述甘特圖中的「標題」、「日期格式約定」、「分組及任務」;
  • Mermaid 甘特圖支持自定義節(jié)點樣式,使其具備更豐富的表現(xiàn)力。