使用Notion搭建遊戲清單『Part3 遊戲清單美化&遊戲日曆的建立』

前言

注:本期後半段數據庫自動化需要Notion Plus會員,沒有教育會員的可以用Python代碼代替,我會在下一期詳細講解。

在前兩期的教程中,我們已經完成了遊戲清單的建立和相關代碼的編寫,但在Part1中我們還空了清單的三個函數屬性(發售年份、成就進度、成就進度條形圖)沒有填寫具體內容。在有了Python代碼的編寫基礎後,再來學習Notion的函數會簡單許多,所以我決定放着此篇幅裏講解,下面對Notion函數進行簡單介紹。

Notion函數

想要深入使用Notion數據庫,函數一定是繞不開的話題。就像在Excel或Google Sheets中一樣,根據幾個單元格的值計算出一個新值,與一些編程語言相像。

Notion函數

首先我們先打開函數的編輯頁面(找到函數屬性→任意點擊同一列的單元格),來了解一下函數編輯窗口的組成。編輯窗口的最上面一欄是編輯代碼的,下方左側欄一共分爲四大類:屬性、內嵌函數、函數、變量。鼠標移動到某一項後,右側欄會顯示該變量 / 函數的使用方法。

函數編輯窗口

  • 屬性:數據庫中設置的的各種屬性,會讀取同一行中對應屬性的值。

注:由於屬性是讀取數據庫中值,直接複製代碼會不起作用,需要將對應內容刪除後重新在左側欄選擇對應屬性,我會在下方代碼中劃線指出需要修改的地方。

  • 內嵌函數:目前只有三個not、true、false,在函數中爲布爾值,直接輸出則表現爲勾選框。

  • 函數:分爲三類:常量、運算符、函數。常量是一個固定的值,例如我們用pi()來表示圓周率的值;運算符進行一些基本運算,例如add()、mod()、divide()等,當然某些函數也可以直接用"+"等運算符號代替;函數就是正常認知中的函數,例如length()可以返回列表的長度。

  • 變量:這一部分比較反直覺,下面進行詳細說明。

  • 其中一種是需要自己命名賦值的變量,notion中爲變量賦值使用的是逗號,例如"variable, 1"說明我們建立了一個"variable"變量賦值爲1。需要注意的是,某一行結束後也需要在結尾打上逗號

  • 另一種相當於其他語言中的循環變量,只有在某些函數中才能使用,常用的是"current"。由於notion中並沒有循環語句,我們常用map()函數來代替,大家可以試試:"map([1, 2, 3],current+1)"。

注:單個函數屬性中只能存在一個表達式,但是有一個函數lets()可以實現多變量賦值。在該函數中可以存在多個表達式,最後加上一個返回值,大家可以把它當成其他語言中的函數。

Notion函數實戰

我會對初次遇到的函數進行說明,根據發售年份、成就進度、成就進度條形圖的難易程度逐一講解。

再次提醒:由於屬性是讀取數據庫中值,直接複製代碼會不起作用,下方代碼中劃線部分刪除後選擇自己對應的屬性。

發售年份

讀取"發售日期"屬性,轉變格式爲年份。

發售年份函數

  • formatDate(date, format, timezone?):使用自定義格式字符串和時區選項設置日期格式。該格式字符串可以包含以下標記來代表日期的不同部分,例如:"yyyy" 表示年,"MM" 表示月,"dd" 表示日,"HH" 表示小時,"mm" 表示分。

成就進度

將"已達成成就"屬性和"總成就數"屬性,轉變爲"已達成成就/總成就數"的格式。、

成就進度函數

  • 數字和字符串相加可以直接輸出兩者結合的字符串。

成就進度條形圖

前兩函數是不是很簡單呢,這裏給大家淺上一點難度,爲下一期遊戲日曆中的熱力圖做準備。

成就進度條形圖函數

  • 爲變量percent賦值,成就百分比;(判斷表達式?真爲A:假爲B)經典的三目運算符;round(value, precision)函數返回四捨五入最接近整數,我們需要兩位小數,就先乘10000(原來爲0.XXXXXX)取整後除100。

  • 爲變量block_num賦值,需要顯示的格子數量;ceil(number)返回大於或等於數字的最小整數;在函數中我除的數字是5,因爲我打算最多顯示20個格子(100%),如果最多顯示10個格子,就除以10。

  • 爲變量block_print賦值,格子顯示字符串;repeat(text, count)將文本重複給定次數;將"■"字符重複block_num遍;padEnd(text, targetLength, padString)返回填充文本;將前方字符串拓展到20個"■"的長度,不夠的用空格(" ")補齊。

  • 爲變量percent_print賦值,顯示百分比字符串。

  • 爲變量print賦值,將block_printpercent_print組合爲新的字符串

  • 爲變量color賦值notion支持的10種顏色的字符串的列表。

  • 爲變量color_index_temp賦值,由百分比計算出對應在color中顏色的索引下標;floor(number)返回小於或等於數字的最大整數;打個比方完成度小於10%的顏色爲灰色,10%-20%的顏色爲棕色。

  • 爲變量color_index賦值,由於索引只有0-9,完成度爲100%會索引越界,這裏判斷一下。

  • 爲變量type賦值,選擇的顏色字符串。at(list, index)返回值列表中指定索引處的值。通過索引color_index選擇顏色。

  • 最後爲表達式,即返回值。style(value, styles)爲給定的輸入內容添加格式樣式。可接受的樣式包括:"b"(粗體)、"u"(下劃線)、"i"(斜體)、"c"(代碼)和 "s"(刪除線)。爲print進行樣式設置,代碼格式粗體,字體顏色爲type,背景顏色爲type+"_background"。

到這裏,遊戲清單的所有屬性就設置完畢了,最後的條形圖建議理解其原理,熱力圖會比這個稍微複雜一點點。接下來我們簡單的講解一下常用的美化設置。

遊戲清單美化

隱藏不需要顯示的屬性

點擊數據庫右上方 ... 下拉框中點擊屬性,在出現的頁面中點擊屬性右側的眼睛。按照喜好選擇展示的屬性即可。

隱藏不需要顯示的屬性

畫廊視圖

點擊數據庫最上方"表格"的右邊的加號,下拉框中選擇"畫廊"。(注:已建立的視圖單擊最上方的名稱可重命名)。

新建畫廊視圖

切換到新建的畫廊視圖,點擊數據庫右上方 ... 下拉框中點擊佈局,然後按照藍框中設置(卡片大小可選擇小,按照自己喜好進行設置)。

接下來按照隱藏不需要顯示的屬性部分內容選擇封面下需要顯示的屬性(注:按住屬性名左邊的六個點可上下移動,對展示順序進行排序),綠框爲個人顯示的屬性。

畫廊視圖建立與設置

遊戲頁面屬性的美化

如果不加任何更改每個遊戲的頁面中顯示的屬性應爲一列,十分影響美觀。將鼠標移動到頁面圖標上方,會出現自定義佈局按鈕,點擊。

自定義佈局

下面可按照我的操作,自定義佈局:

自定義佈局操作

美化就先介紹到,大家可以自行摸索,大多數都集中在上文提到的各種下拉框中。

注:與數據庫右上方 ... 並排的圖標中有篩選和排序,也很實用。

到這裏遊戲清單的內容所有內容就到這裏結束了,恭喜各位已經完成了進度的70%,只想要遊戲清單的盒友接下來就可以自己排版整個頁面佈局了。接下來我來講解遊戲日曆的初步建立。

遊戲日曆數據庫的建立

首先我們要在同一個頁面建立三個數據庫,分別命名爲日表、月表、年表(注:名稱按自己喜好,建議建在遊戲清單上方)。

三表截圖

其中涉及到雙向關聯屬性,下面是該屬性建立過程:

雙向關聯屬性的建立

下面展示各表屬性細節,依舊爲(屬性類型:屬性名稱,詳情請看Part1中遊戲清單框架搭建部分),有關關聯屬性將分爲雙向關聯和單向關聯分別指出,括號內爲關聯的數據庫:

  • 日表

標題:遊戲名

文本:name

數字:appid、日遊玩時長、日達成成就數

創建時間:創建時間

雙向關聯:每月統計(月表)

單向關聯:遊戲清單(遊戲清單)

  • 月表

標題:年月

日期:月日期

數字:月遊玩時長、月達成成就數,月遊玩數量

函數:自動獲取月遊玩時長、自動獲取月達成成就數、自動獲取月遊玩數量、格式化月遊玩時長、格式化月達成成就數、格式化月遊玩數量、月份NAME、每日遊玩時間、月度熱力圖

雙向關聯:每日統計(日表)、每年統計(年表)

年表

標題:年份

日期:年日期

數字:年遊玩時長、年達成成就數,年遊玩數量

函數:自動獲取年遊玩時長、自動獲取年達成成就數、自動獲取年遊玩數量、格式化年遊玩時長、格式化年達成成就數、格式化年遊玩數量、年度熱力圖

雙向關聯:每月統計(年表)

自動化

Notion自動化是在數據庫發生特定更改時發生的一系列操作。 自動化由觸發器(啓動自動化的事件)和操作(自動化的效果)兩部分組成。數據庫自動化可用於很多方面,包括:當任務狀態發生變化時,將任務分配給特定人員。在這裏使用數據庫自帶的自動化工具可以幫助我們減少python腳本的代碼量。

Database Automations

在建立完三表之後,我們要建立彼此之間的自動化,例如我們每在日表中添加一個頁面,就將其關聯到月表中的對應月份頁面。同理,每到新的一個月,建立完新的月表頁面後,關聯到年表中對應的年份頁面。

  • 日表

點擊自動化→新的自動化→新建觸發器(選擇:已添加頁面)→新操作(選擇:更新頁面)→選擇要更新的頁面(選擇:月表)→全部頁面(當 月日期 開始日期 相對於今天 本 月)→設置屬性(選擇:日表(雙向關聯屬性))→添加 自定義函數(選擇:觸發器頁面)。

日表自動化

  • 月表

點擊自動化→新的自動化→新建觸發器(選擇:已添加頁面)→新操作(選擇:更新頁面)→選擇要更新的頁面(選擇:年表)→全部頁面(當 年日期 開始日期 相對於今天 本 年)→設置屬性(選擇:月表(雙向關聯屬性))→添加 自定義函數(選擇:觸發器頁面)。

月表自動化

總結

本期,我們完成了遊戲清單的首尾工作和遊戲日曆的初步建立,本系列也已經接近尾聲。在學完前幾章並能熟練掌握其中的知識點後,Notion的絕大部分功能都被我們發掘的差不多了,其他功能可以舉一反三自行掌握。

下一章我會將三個表中的函數部分補充完畢,並對整個頁面進行美化,沒有什麼新的內容需要預習的,可以自行探索Notion中的一些功能。

最後,球球點贊和盒電

系列內容鏈接

『Part1 搭建基本框架&建立SteamAPI類』

『Part2 遊戲清單的每日自動更新代碼』

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com