TimelineJS 是用於繪制時間軸的 Javascript 開源腳本,目前是 TimelineJS3 版。參閱 https://github.com/NUKnightLab/TimelineJS3。
原文:https://timeline.knightlab.com/docs/json-format.html
譯文:http://www.cnblogs.com/popapa/p/timelinejs_data.html
采集日期:2018-5-29
TimelineJS JSON 數據格式
Timeline 需要將事件相關的數據顯示出來,多數人喜歡用 Google spreadsheet 配置 Timeline 數據。 但如果想編寫代碼動態創建或更新時間軸,則需要了解生成結構化數據的方法。
如果只是想速戰速決,或許復制一份示例數據(比如 Whitney Houston)就可以了。 不然的話,就請閱讀完整的文檔,如下所示。
當知道如何為時間軸創建 JSON 數據后,還需要將其放在頁面上。
TimelineJS 的 JSON 格式數據由一個 JSON 對象組成,包含以下屬性:
| 名稱 | 是否必填 | 說明 |
|---|---|---|
events |
是 | 由 slide 對象組成的 JSON 列表(參閱下文) |
title |
否 | slide 對象(參閱下文) |
eras |
否 | 由 era 對象(參閱下文)構成的 JSON 列表 |
scale |
否 | human 或 cosmological。未給出時的缺省值為human。當時間為非常遙遠的古代或將來時,才會用到 cosmological。(早於公元前271821年4月20日星期二,或者晚於公元275760年9月13日星期六。)使用 cosmological 時,最小刻度單位是“年”。不過公元前271821年和公元275760年之間的時間,也是可以用 cosmological 的。 |
Slide 對象 帶有以下屬性:
| 名稱 | 是否必填 | 說明 |
|---|---|---|
start_date |
是(對 title 除外) |
date 對象(參閱下文) |
end_date |
否 | date 對象(參閱下文) |
text |
否(但推薦給出) | text 對象(參閱下文) |
media |
否 | media 對象(參閱下文) |
group |
否 | 可填入任意文本。如果給出,則 Timeline 會將 group 值相同的事件歸在同一行或相鄰行,以明顯與其他組的事件分隔開。同組的 group 值會作為標簽顯示在導航條的左側。 |
display_date |
否 | Timeline 顯示日期時用到的字符串。如果給出本值,就會覆蓋此事件的開始或結束日期中的 display_date 值。如果要表達兩個日期之間的相互關系,本值就非常有用。 |
background |
否 | Javascript 對象。可以帶有以下屬性:
|
autolink |
否 | 布爾值(true 或 false)。 默認為 true,表示 Timeline 會掃描 text 字段並自動添加 <a> 標簽,使得鏈接和郵件地址“可被點擊”。如果設置為 false,在需要用到鏈接時仍可以在字段中手動添加 <a> 標簽。本自動鏈接屬性適用於 text 對象中的 text 字段,以及 media 對象中的 caption 和 credit 字段。 |
unique_id |
否 | 在 Timeline 所有 slide 中保持唯一的字符串值。如果未指定,TimelineJS 將根據標題構建一個 ID。但如果以后對標題進行了修改,自動生成的 ID 也將會隨着更改。當在配置中啟用了 hash_bookmark 參數時,本值才會生效。還可以與timeline.goToId()方法配合起來使用,以編程方式將時間線移動到指定的 slide。 |
Era 對象用於在時間軸導航組件上標記一段時間。本質上是個加了嚴格限制的 slide 對象。
| 名稱 | 是否必填 | 說明 |
|---|---|---|
start_date |
是 | date 對象(參閱下文) |
end_date |
否 | date 對象(參閱下文) |
text |
否(但推薦給出) | text 對象(參閱下文) |
Date 對象帶有以下屬性:
| 名稱 | 是否必填 | 說明 |
|---|---|---|
year |
是 | 數字格式,不要用逗號。公元前要用負值表示,而不要用“BC”、“BCE”等字母標識。 |
month |
否 | 數字 1-12。Javascript 高手請勿自作聰明,Timeline 不采用 Javascript 那種古怪的用法,比如用“0”表示一月。 |
day |
否 | 數字格式。 |
hour |
否 | 數字 0-23。 |
minute |
否 | 數字 0-59。 |
second |
否 | 數字 0-59。 |
millisecond |
否 | 數字格式。 |
display_date |
否 | 代表本日期的字符串。當 Timeline 的日期格式不滿足需求時,就很有用了。 |
Text 對象帶有以下屬性。slide 的 text 是可選項。
| 名稱 | 是否必填 | 說明 |
|---|---|---|
headline |
否 | 任意文本。可以包含 HTML 標記,也可以為空。 |
text |
否 | 任意文本。可以包含 HTML 標記,也可以為空。對 era 對象不適用。 |
Media 對象帶有以下屬性。slide 的 Media 是可選項。
| 名稱 | 是否必填 | 說明 |
|---|---|---|
url |
是 | 多數情況下是個 URL,完整說明詳見 media 類型文檔類型文檔。 |
caption |
否 | 任意文本。可以包含 HTML 標記。 |
credit |
否 | 任意文本。可以包含 HTML 標記。 |
thumbnail |
否 | 指向圖片的 URL,供事件的 timenav 標記使用。如果省略,Timeline 將根據媒體類型自行選擇圖標。本屬性與 title 型 slide 無關,因為它們不帶標記。 |
alt |
否 | 供圖片的 alt 標記使用。如果未給出,則會用已給出的 caption。 |
title |
否 | 圖片的 title。如果未給出,則會用已給出的 caption。 |
link_target |
否 | 如果用到了 link,則可供其 target 使用。 |
