繁體中文 FF14 多功能工具網站。
- 純靜態 HTML/CSS/JavaScript
- 工具獨立封裝 (
tools/) - 多語言介面支援(繁體中文/English/日本語)
- 響應式設計(含手機版漢堡選單,選單最上面就是工具清單)
- 導航列:首頁、工具 ▾、修改紀錄、版權聲明(關於、回報問題、GitHub 在頁尾);「工具 ▾」選單在每一頁都能直接換工具,並標示目前所在的工具
- 工具名稱動態顯示於導航列
- 開源專案
- 803 個副本 (2.x - 7.x,362 個可見項目)
- 精簡列表,不放圖:一列一個副本,寫名稱、類型、版本和等級,版本由新到舊;先列 30 個,「顯示更多」每次再加 30 個
- 點一列就在原地展開名稱、簡介、機制、掉落物與獎勵(名稱可以選取複製),可以同時展開好幾列;換搜尋、篩選或語言之後,展開的列照舊
- 搜尋名稱、簡介、機制或掉落物(不分大小寫);名稱以外命中的欄位直接寫在那一列上(掉落物、機制、簡介各一行,命中的字標出來),掉落物有好幾項符合時只列第一項並寫還有幾項也符合;列表上方寫共幾個或找到幾個
- 依類型與版本篩選:同一組選幾個都算,兩組之間要同時符合;沒有等級篩選(等級跟著版本走)。手機上篩選收進筆數那一行右邊的「篩選」按鈕(選了幾個會寫在按鈕上),點開才展開;電腦版面篩選一直在,筆數排在篩選下面
- 找不到時寫出找不到什麼(搜尋字和篩選都有時,會說是在選了的篩選裡找不到),並附「清除搜尋」與「清除篩選」
- 還只有範本內容或重複的 441 筆先藏起來(資料檔的
visible: false,補好資料再改回true);類型與版本名稱照官方用語(聯盟任務、蒼天之禁城) - 每一列都是按鈕,用 Tab 移動、Enter 或空白鍵展開和收起
- 資料來源:灰機Wiki
- 點格子旁的小數字盤填數字(焦點在格子上或小數字盤開著時也能按鍵盤 1–9),填好的格子再點可以改或清除
- 狀態列寫下一步(點遊戲翻開的那一格 → 刮哪一格 → 選哪條線與平均 MGP,一樣好的用「或」連起來),沒翻開的格子寫刮了之後平均可拿多少 MGP,推薦的格子與線標綠色,填滿 4 格後外圈寫每條線的平均
- 獎金表一直顯示(手機在盤面下面、電腦在右邊),標出推薦的線還可能出現的總和
- 上一步會寫出退回了什麼,「下一張」清空盤面、按錯可以救回來
- 4x4 盤面點一格貼上貼紙、再點一次拿掉,最多 9 張,貼滿後其他的格子不能點;盤面上方寫「已貼 N/9 張」
- 連線機率「現在」與「重置之後」並排:貼滿 9 張時至少 1/2/3 條線的機率,每個機率配一條長條;「重置之後」只在貼 3~7 張(遊戲能重置)時有數字,其他張數寫「—」。只列機率、不給建議,要不要重置由玩家決定
- 連線標示:已經連成的線,線上的格子框綠色;再貼一張就連成線的空格用綠色虛線框(貼滿 9 張時不標),格子的名稱也會唸給螢幕閱讀器
- 「清空盤面」在盤面右上角,按下去同一顆按鈕變成「復原」,按錯了可以放回去
- 手機上機率緊接在盤面下面,電腦上盤面在左、機率在右
- 做一張自己的冒險者自介卡,貼到 Discord、LINE、Facebook、Instagram,部隊招募、找固定隊時一張講完;填名字、伺服器和主職就能下載,其他都是選填
- 卡片由程式直接畫在 canvas 上,畫面上的預覽就是下載的那一張圖;橫版 1200×675、直版 1080×1350;有三種風格,在「樣式」裡換,換了不用重填:「名片」(深色玻璃底,資訊最完整)、「海報」(預設,截圖鋪滿整張卡,主要的字都在下方)、「資訊卡」(淺色底,字最好讀)
- 欄位:角色名稱、伺服器(繁中服 6 個排第一,再來是國際服 85 個,也可以自己輸入)、主職(34 個職業依職能分組,官方名稱)與等級;選填的有其他職業(最多 3 個)、稱號、部隊名稱與簡稱、大國防聯軍、一句話自我介紹、聯絡方式、遊玩時段(平日、假日 × 早上、下午、晚上、深夜)、喜歡的內容(最多 6 個)、在找什麼(固定隊、部隊、朋友);稱號、自我介紹等文字裡的國旗與 emoji 會整個畫在卡片上,不會被拆成兩半;字數上限和欄位旁的計數一樣(以 Unicode 字元算:多數 emoji 算 1 個字、國旗算 2 個,帶膚色或組合的 emoji 算更多),打到上限時放不下的國旗與 emoji 整個不放,不會只剩一半(較舊的瀏覽器(例如 Firefox 125 以前)沒有切字的功能,國旗還是會被拆開)
- 「海報」只畫其中一部分:名字、伺服器、部隊簡稱、稱號、主職與等級、其他職業、喜歡的內容、自我介紹與遊玩時段;部隊名稱全名、大國防聯軍、在找什麼與聯絡方式只有「名片」與「資訊卡」會畫出來(選了海報時,這四個欄位底下各有一行小字「海報風格不會畫出這一項(名片、資訊卡會)」,填了照樣會記住)。沒填的選填欄位整塊不畫
- 重點色預設跟著主職的職能(坦克藍、補師綠、輸出紅、生產紫、採集金),也可以自己選
- 角色圖:上傳截圖(自動縮小,記在這個瀏覽器裡),在卡片上用滑鼠拖曳移動、用滑桿縮放(100%~300%),也能用「左右」「上下」兩個滑桿移動(鍵盤、單指點一下就能用,不必拖曳),或按「置中」「填滿」,每一種風格的橫版與直版各記一份;手機上手指從卡片滑要能捲動頁面,所以要先按「調整圖片」才拖得動;沒有上傳時用程式畫的預設背景;「名片」的背景是壓暗的模糊截圖
- 下載:電腦直接存成
ff14-<角色名稱>.png;手機(以及觸控為主的裝置)改成用整個畫面顯示做好的圖,寫「長按圖片即可儲存」(LINE、Facebook 等內建瀏覽器常常不能直接下載);「分享」要瀏覽器能傳檔案才會出現,「複製圖片」要瀏覽器支援才會出現(手機版面不顯示);在 LINE 的內建瀏覽器裡多一行「在 LINE 裡可能存不了圖,建議先用瀏覽器打開再填:用瀏覽器打開」(LINE 和手機的瀏覽器不共用記住的資料,所以要在填之前就換) - 必填沒填就按下載時不產生圖,在欄位下面寫錯誤,並把焦點移到第一個沒填的欄位
- 手機版面:上面一張小卡跟著畫面(點一下看大圖),下面用分頁切換五組欄位(基本、名片、怎麼玩、圖片、樣式),最下方固定「下載圖片」與「分享」(分享要瀏覽器支援才有),打字時(文字欄與文字框,選單不算)按鈕列收起來;手機轉向再轉回來,回到最後選的分頁,不會跳回「基本」;電腦版面兩欄,預覽在右邊;橫放的小手機(畫面寬 560px 以上、高 500px 以下,例如 iPhone SE)也用兩欄,表單與預覽都看得到
- 記住填過的欄位與上傳的圖片(只記在這個瀏覽器);圖片太大存不進去時會寫「這次不會記住」,文字欄位照樣記住;「清除全部」要按兩次;瀏覽器封鎖網站資料時照常運作(只是不記住)
- 介面支援三語;卡片上的日子與時段、喜歡的內容、「名片」與「資訊卡」上的小標、大國防聯軍與在找什麼、職業名稱也跟著介面語言換,「Lv」、FF14.tw、SE 的版權字與伺服器名稱三語都一樣
- Faux Hollows Foxes 活動的 6x6 盤面(252 種盤面資料);盤面上方的狀態列寫現在要做什麼、還能翻幾次:① 點遊戲裡被擋住的格子 → ② 找劍 → ③ 找寶箱 → ④ 翻宗長(不一定有)→ 完成,剩的次數不夠翻完劍或寶箱時直接跳到下一個目標;下一格框綠色,一樣好的全部框
- 標障礙物時,候選格顯示障礙物機率,不可能是障礙物的格子點不了;其他障礙物的位置能確定時自動補上(斜線加虛線框,拿掉手動標的它補上的跟著消失),擺法只剩一種就進入翻格
- 還沒翻的格子寫劍、寶箱的機率(例如 ⚔️75%、📦13%,0 不寫);宗長只放 🦊,意思是「宗長有出現的話,可能在這格」,不寫數字(宗長出現的機率沒有公開,拿盤面的比例當機率會每翻開一個空格就往上加,最後變成 100%),找到宗長之後其他格就不再放 🦊
- 翻開一格後點它,在格子旁邊的小選單選劍、寶箱、宗長或空(上三列開在下方、下三列開在上方):和其他格對不上的選項是灰的,只剩一種可能時點一下就標好;點標好的格子可以改選或清除,翻了好幾格之後回頭改,機率、🦊、下一格都跟著重算
- 候選依劍藍、寶箱紅、宗長黃等分底色;「隱藏機率」只隱藏百分比數字,圖示、候選底色與建議綠框都保留
- 「上一步」會寫出退回了什麼,「重做」恢復退回的動作;「重置遊戲」另放一行,清空盤面後仍能用上一步救回來。格子都是按鈕,可以用鍵盤操作,格子的名稱也會把提示唸給螢幕閱讀器
- 真實寶圖座標資料庫(227個座標)
- 先選等級(G8、G10、G12、G14、G15、G17、G18,可多選),再選地區:地區只列出所選等級有寶圖的地區並附張數,每個等級都能依地區篩選
- 一次列出所有符合的寶圖(不分頁);卡片直接顯示座標與最近的傳送點,點縮圖開啟詳細檢視
- 詳細檢視:加入/移除清單、複製,在目前的結果裡用按鈕或 ← → 切換上一張與下一張,地圖標示最近的傳送點(手機版為全螢幕)
- 複製鈕會複製一句可以直接貼到隊伍頻道的話(例如
/p G17 烏爾科帕恰 (13.7, 14.2) 最近:瓦群佩洛),地名與最近的傳送點隨介面語言 - 步驟提示(選等級、加入清單、生成路線)標出目前進行到哪一步
- 清單入口一直看得到(電腦版捲動時固定在畫面上方、手機版固定在畫面底部),清單是空的時顯示「組隊」,有寶圖就顯示「生成路線」
- 記住上次選的等級與地區
- 清單面板:每一列直接顯示座標與最近的傳送點,✕ 直接移除;「複製分享連結」、「匯入」、「清空清單」;手機上面板高度是畫面的 85%
- 分享連結:複製一條帶
?maps=的連結,打開連結時可以選「加進我的清單」或「取代我的清單」;以前「匯出」的內容仍然可以匯入;匯入與清空都是頁面裡的對話框,預設不會丟掉原本的清單 - 路線規劃:清單有 1 張以上就能生成,路線顯示在清單面板的第二頁,一站一張寶圖,寶圖多的地區先跑;標出目前這一站、可以標記完成(進度記在這台裝置、保留 12 小時),「複製下一站」一次複製一站,「全部複製」一站一行
- 複製格式:預設和卡片的隊伍頻道句子相同、前面加站號(例如
/p 1/6 G17 烏爾科帕恰 (21.6, 23.9) 最近:瓦群佩洛),可以換成中文、English、日本語範本或自訂,點變數就能插入,預覽用目前這一站的真實資料 - 瀏覽器封鎖網站資料時,清單與路線照常運作(只是記不住)
- 隊伍協作:最多 8 人、8 張寶圖,多人同步、斷線重試與私人操作憑證;建立或加入時在頁面裡選要不要帶自己的寶圖(預設帶進);預設名字是「光之戰士+3 碼字串」(例如光之戰士K7Q),同一台裝置每次都一樣;可以複製邀請連結,打開時先問「加入隊伍 X?」;清單和路線每張圖都寫是誰的,路線複製到隊伍頻道的句子也帶上主人的名字;連不上時顯示「連不上,重試中」
- 用名字加伺服器找人(直接列出符合的角色與部隊,點一下打開),或貼上 Lodestone 角色頁的網址或 ID;只能查國際版的角色
- 打開時最上面是「我的角色」(在角色頁設定,點一下打開),接著是找人與最近查過的 5 個人;都只記在自己的瀏覽器裡
- 查到之後是角色標頭(名字、稱號、伺服器與部隊、現在的職業、資料時間)加六個分頁:職業(官方分組、滿級幾個)、成就、裝備(每一格的圖示與染色;Lodestone 的角色頁沒有裝備名稱)、收藏(坐騎與寵物,可篩選名稱)、部隊(資料與成員)、其他(大國防聯軍、生日、守護神、開始城市、個人簡介);打開哪個分頁才載入哪個
- 名稱與成就顯示可以選 English/日本語(記住選擇);中文介面的職業、大國防聯軍與部隊活動重點等用官方繁中
- 網址帶
?id=可以分享,上一頁、下一頁不會離開這個工具 - 使用 logstone API(hydai/logstone)取得資料;API 還是舊版時,搜尋改給到 Lodestone 官網搜尋的連結
- 提供直接前往官方 Lodestone 頁面的連結
- 艾歐澤亞時間特殊採集點管理:一種素材一張卡片(同一種素材的幾個時段合在一張),標題是介面語言的名稱,下面小字寫另外兩種語言的名稱,再加上地點(英文、日文介面寫英文、日文的地區與地點,地點就是地區本身時只寫一次)、座標與每天的艾歐澤亞時間時段
- 直接寫還剩多久:現在可採的寫「還剩 m:ss(到幾點)」,還沒到的寫「幾點出現 · 還要 N 分」(不到 10 分鐘改寫 m:ss),全天的素材寫「全天都可以採」;倒數每秒走,現在可採的排在最前面,接著是快出現的,全天的最後,素材出現或結束時自動重排
- 搜尋框用中文、日文或英文都搜得到(連英文的地區與地點名稱,例如 Yak T'el、Mamook),好幾個字時每個字都要符合,命中的字會標出來;還可以依類型與版本篩選;英文、日文介面的卡片和清單顯示英文、日文名稱
- 「提醒我」(全天的素材沒有)與頁面最上面的「我的提醒」:素材出現前 0/1/2/3/5/10 分鐘通知(預設 1 分鐘,所有提醒共用);設定時離出現已經不到這麼久,就在出現時提醒,設定時已經開始的那一次不補;每次出現都提醒,直到取消;頁面要開著才會響
- 提醒到時間時,頁面上跳出提示並發出提示音,瀏覽器允許時再加系統通知;通知被封鎖,或瀏覽器不支援、不讓網頁跳通知時,仍然有頁面提示和聲音,「網頁提醒」開關照樣能用,「我的提醒」下方寫出目前只有頁面提示和聲音;關掉「網頁提醒」時到時間什麼都不做,提醒清單照樣留著
- 「我的提醒」先列 5 個(手機 3 個),其餘按「顯示全部」;標題列有「測試通知」;另一個分頁新增或取消提醒時這一頁跟著變;以前開著「採集提醒」的人,預設清單裡的素材(全天的除外)會自動放進「我的提醒」
- 「複製鬧鐘」:複製這種素材下一次出現的一行遊戲內
/alarm指令(正在可採時複製的是再下一段),貼到遊戲的聊天輸入框就設好;卡片或提醒列下面會寫出複製了什麼,剪貼簿不能用時改寫成請自己選取複製 - 多清單管理(新增、移除、匯出/匯入)與整份清單的巨集匯出照舊;卡片上的「加入清單」會把這種素材的每個時段一起加進去
- 瀏覽器封鎖網站資料時,頁面照常載入,提醒與清單記不住,但這次打開期間設好的提醒照樣會響,「加入清單」也照樣加得進去(並提醒重新整理後就不見了)
- 多語言支援
- FF14 新手攻略指南,8 個子頁面:部隊、大國防聯軍、副本、風脈、隊伍系統、探索筆記、專屬陸行鳥、目錄首頁
- 部隊、副本、風脈、探索筆記 4 個主題還在撰寫中:攻略首頁的卡片與目錄都標「撰寫中」,頁面內文只有一句「還在撰寫中」(副本頁多一句連到副本資料庫),搜尋引擎先不收錄(
noindex),寫好之後再拿掉 - 手機上(橫放也一樣)目錄收成一行「目錄」,點開才展開,不在框裡捲動
- 專屬陸行鳥文章裡的染色計算器已經獨立成「陸行鳥染色計算器」,原本的位置(
#color-calculator)留著一張連到新工具的卡片 - 多語言支援
- 選陸行鳥現在的顏色和想要的顏色,一打開就是答案(沒有「計算」鈕):共幾顆、要準備哪些水果各幾顆,以及照什麼順序餵(清單上面一行寫「餵食順序:照 1 → 4 餵,一段餵完再換下一段」)
- 同時比較「直接調色」和「先餵 1 顆拉札漢檸檬(變回沙漠黃)再調色」,用顆數少的,一樣多就用檸檬;用了檸檬時另外寫直接調色要幾顆。例如魔花綠變回沙漠黃只要 1 顆檸檬(直接調色要 80 顆)
- 餵食順序合成幾段(連續餵同一種水果算一段,段數最少,每一步都不超出 RGB 0~255),例如沙漠黃 → 素雪白 34 顆分 4 段;每一段可以打勾,第一個還沒勾的段標成「下一段」,跳著勾時被跳過的段會提醒「第 N 段還沒勾:不照順序餵,顏色可能會跑掉」(打勾照樣自由)
- 記住上次選的顏色和勾到哪一段;全部勾完之後,下次打開時目前顏色自動換成目標顏色(畫面寫「已經是…,不用餵。」)
- 點「目前顏色」或「目標顏色」按鈕打開色票面板:85 色依色系分 7 組,選目標顏色時每格寫從目前顏色要餵幾顆(已經算進檸檬);手機上面板蓋滿畫面
- 瀏覽器封鎖網站資料時照常運作(只是不記住)
- 多語言支援
- 資料來源:ffxivchocobo.com(
data/chocobo-colors.json)
- 快速產生不當行為檢舉的模板文字
- 協助玩家進行申訴
- 把英文、日文攻略裡的生產巨集換成繁體中文(目標語言也可以選英文或日文);範圍只有生產技能與文字指令,戰鬥、採集技能還沒有收錄,頁面上也有寫明
- 貼上或打字就立刻轉換,沒有「轉換」鈕;目標語言預設繁體中文,改了會記住,切換網站介面語言不會改它
- 轉不了的地方會列出來:技能名沒有收錄、指令不認得,或那一行根本不是指令(貼上的標題、表格複製下來的編號、# 備註:遊戲裡沒有 / 開頭的一行會當成聊天訊息送出)時,輸出上方依行號列出是第幾行的哪個詞或哪一行(例如第 3 行的「/foo」不是認得的指令),輸出裡那一段照原文保留
- 超過 15 行時多一條提醒:遊戲裡一個巨集最多 15 行,要分成幾個巨集
- 常見的英文簡寫(
/mlock、/merror、/e、/p等)原樣保留,不算轉不了;/micon、/macroicon後面的技能名會一起翻譯,遊戲裡的巨集圖示才不會失效 - 「複製」鈕複製整份輸出,按下去會暫時變成「✓ 已複製」
- 資料載入失敗時,工具最上面顯示錯誤訊息與「重試」鈕
- 資料來源:
data/macro-mappings.json
- 查看艾歐澤亞 73 個地區的天氣預報;地區是依 14 個區域分組的下拉選單,手機上不用再捲過一整排按鈕
- 答案優先:選好地區和天氣,第一張卡就寫它下次什麼時候出現(今天/明天+幾點)、還要等多久、到幾點結束;正在下時改寫到幾點、還剩多久與下一次;找不到時寫「60 天內沒有符合的時段」
- 連在一起的同一種天氣合成一段;設了時段(艾歐澤亞時間)時,答案只算時段裡的部分,並寫出整段與其中在時段內的部分
- 記住上次選的地區、天氣、前置天氣與時段,下次打開直接接著看;分享連結(網址 hash)優先於這台裝置記住的
- 時段與前置天氣(釣魚用)收在預設收起的「更多條件」;答案卡下面是「之後幾次」(先列 5 次,「顯示更多」最多 50 次),最下面是這個地區的天氣時刻表(每 8 個艾歐澤亞小時一列,先列 24 列,「顯示更多」最多 200 列)
- 「提醒我」:天氣開始前 1/3/5/10/15/30 分鐘提醒(預設 5 分鐘);設定時離開始已經不到這麼久,就在開始時提醒;每次出現都提醒,直到取消;頁面要開著才會響
- 提醒到時間時,頁面上跳出提示並發出提示音,瀏覽器允許時再加系統通知;通知被封鎖,或瀏覽器不支援、不讓網頁跳通知時,仍然有頁面提示和聲音
- 提醒有自己的地區和天氣:換地區或打開別人的分享連結都不會取消,答案卡顯示的不是它的目標時,上方用一行寫出提醒中的是哪個
- 瀏覽器封鎖網站資料時,頁面照常運作(選擇與提醒記不住,這次打開期間提醒照樣會響)
由於部分工具需要載入 JSON 資料檔案,受瀏覽器 CORS 限制影響,建議使用本地伺服器進行開發:
# 推薦:使用本地伺服器
python3 -m http.server
# 或
npx serve .
# 瀏覽器訪問
http://localhost:8000需要本地伺服器的工具:
- 副本資料庫 (
dungeon-database/) - 載入/data/dungeons.json - 寶圖搜尋器 (
treasure-map-finder/) - 載入/data/aetherytes.json、/data/treasure-maps.json、/data/zones.json - Lodestone 角色查詢 (
lodestone-lookup/) - 使用 logstone API - 特殊採集時間管理器 (
timed-gathering/) - 載入/data/timed-gathering.json - 巨集轉換器 (
macro-converter/) - 載入/data/macro-mappings.json - 陸行鳥染色計算器 (
chocobo-color/) - 載入/data/chocobo-colors.json - 角色卡產生器 (
character-card/) - 不載入資料檔,但用file://直接開時,卡片上的職業圖示會讓瀏覽器不讓 canvas 轉成圖:預覽照常,下載、分享、複製圖片會失敗
可直接開啟的工具:
- 仙人微彩計算機
- Wondrous Tails 預測器
- 宗長計算機
- 檢舉模板產生器
- 天氣預報
- 攻略資料(8 個頁面都不載入資料檔)
分享預覽與主畫面圖示: 由 node scripts/share-preview.mjs pages/images 產生(images 要本機的 Chrome 與網路),改了頁面標題、說明或新增工具後重跑。
使用 Node 24,在專案根目錄執行:
npm --prefix api ci
node --test測試涵蓋 UI/資料契約、非同步競爭與真實 Miniflare/workerd 的 SQLite Durable Object;需允許本機連接埠。GitHub Actions 會在 push/Pull Request 執行相同測試及 Worker 環境 dry-run。
寶圖協作另開一個終端執行 npm --prefix api run dev(本機 API 為 localhost:8787),靜態頁面使用 localhost:8000 或 8080。部署與舊隊伍過渡方式見 API 文件。
ff14.tw/
├── .gitignore # Git 忽略規則
├── CNAME # GitHub Pages 自訂網域
├── LICENSE
├── TERMINOLOGY.md # FF14 繁中服官方用語對照
├── index.html # 主頁
├── about.html # 關於頁面
├── changelog.html # 修改紀錄頁面
├── copyright.html # 版權聲明頁
├── 404.html # 404 頁(GitHub Pages 對不存在的網址顯示它)
├── manifest.webmanifest # 網站的主畫面設定(每個工具目錄也各有一個)
├── api/ # Cloudflare Workers API(寶圖隊伍協作,含自己的 package.json / wrangler.toml)
│ └── treasure-room-worker.js
├── data/ # 資料檔案
│ ├── dungeons.json # 副本資料庫 (803 筆)
│ ├── treasure-maps.json # 寶圖座標資料 (227 筆)
│ ├── macro-mappings.json # 巨集轉換器對照表
│ ├── timed-gathering.json # 特殊採集點資料
│ ├── chocobo-colors.json # 陸行鳥毛色配方資料
│ ├── zones.json # 地區定義與元資料
│ ├── aetherytes.json # 傳送點資料
│ ├── zone-translations.json # 地區名稱翻譯 (zh/en/ja)
│ └── ff14-gp.csv # GP 值參考資料
├── assets/ # 共用資源
│ ├── css/
│ │ ├── tokens.css # 設計 token(顏色/字級/間距/陰影唯一來源)
│ │ ├── common.css # 全域樣式(含漢堡選單)
│ │ ├── pages.css # 關於/版權聲明/404 頁面專用樣式
│ │ ├── tools-common.css # 工具共用樣式(@import 匯入 buttons/cards/forms/tags)
│ │ ├── changelog.css # 修改紀錄頁面專用樣式
│ │ └── components/ # UI 元件
│ │ ├── buttons.css
│ │ ├── cards.css
│ │ ├── forms.css
│ │ ├── tags.css
│ │ └── language-switcher.css
│ ├── js/
│ │ ├── common.js # 共用函式庫(含漢堡選單、FF14Utils)
│ │ ├── security-utils.js # 安全工具(XSS 防護)
│ │ ├── modal-manager.js # 對話框管理
│ │ ├── reminder-scheduler.js # 提醒排程(頁內提示、提示音、系統通知;天氣預報與特殊採集時間管理器的「提醒我」使用)
│ │ ├── cell-popover.js # 格子旁的小選單(不是對話框;仙人微彩、宗長計算機使用)
│ │ ├── ff14-game-data.js # 共用的遊戲資料:職業、國際服與繁中服的伺服器(角色卡產生器、Lodestone 角色查詢使用)
│ │ ├── changelog.js # 修改紀錄頁腳本(收合列的「N 條」與網址 # 展開)
│ │ ├── home.js # 首頁腳本(最近使用)
│ │ ├── not-found.js # 404 頁腳本(工具清單)
│ │ ├── components/ # 動態載入元件
│ │ │ ├── tools-registry.js # 工具登錄表(全站工具清單的唯一來源)
│ │ │ ├── nav-template.js # 導航列模板
│ │ │ ├── footer-template.js # 頁尾模板
│ │ │ └── layout-loader.js # 佈局載入器
│ │ └── i18n/ # 國際化系統
│ │ ├── i18n-manager.js
│ │ └── translations/
│ │ ├── common.js
│ │ └── tools/ # 各工具翻譯檔(report-generator 尚無)
│ └── images/ # 圖片資源
│ ├── ff14tw.ico # 網站 favicon
│ ├── ff14tw-logo.png # logo 原檔(1024×1024,預覽圖與主畫面圖示都從它產生)
│ ├── og/ # 21 張分享預覽圖(由 scripts/share-preview.mjs 產生)
│ ├── icons/ # 4 張主畫面圖示(同上)
│ ├── se/ # Square Enix 官方素材
│ │ └── FFXIVJobIcons/ # FF14 職業圖示 (45個)
│ ├── tools/ # 工具用圖片(目前只有副本圖片的說明檔,頁面不顯示副本圖片)
│ └── ui/ # 介面小圖示
├── scripts/ # 開發用腳本(不隨網站部署)
│ ├── generate-macro-mappings.py
│ ├── add-design-links.mjs
│ ├── remove-dark-mode-links.mjs
│ ├── replace-noscript-nav.mjs
│ ├── share-preview.mjs # 分享預覽與主畫面圖示的產生腳本(pages、images 兩個指令)
│ └── share-preview/ # 它的模組與預覽圖範本 card.html
├── tests/ # 73 份 node --test 測試(下列為部分範例)
│ ├── character-card-paint.test.js # 角色卡三種風格共用的畫圖小工具
│ ├── character-card-style-a.test.js # 角色卡風格「名片」
│ ├── character-card-style-c.test.js # 角色卡風格「資訊卡」
│ ├── design-system.test.js
│ ├── docs.test.js
│ ├── gathering-materials.test.js
│ ├── gathering-reminders.test.js
│ ├── helpers/ # 測試輔助模組(不是測試檔)
│ │ ├── cactpot-page.js # 仙人微彩頁的頁面替身
│ │ ├── canvas-recorder.js # 記錄呼叫的 2D context 替身(node 裡沒有 canvas;角色卡的測試使用)
│ │ ├── card-drawing.js # 角色卡畫圖測試共用的輔助(載入畫圖腳本、範例資料、讀畫圖記錄)
│ │ ├── card-page.js # 角色卡產生器頁的頁面替身
│ │ ├── chocobo-page.js # 陸行鳥染色計算器頁的頁面替身
│ │ ├── dungeon-page.js # 副本資料庫頁的頁面替身
│ │ ├── gathering-page.js # 採集頁的頁面替身
│ │ ├── hollows-page.js # 宗長計算機頁的頁面替身
│ │ ├── notification-stubs.js # Notification/AudioContext 替身
│ │ └── wondrous-page.js # 天書奇談頁的頁面替身
│ ├── modal-manager-stack.test.js
│ ├── pages.test.js
│ ├── scripts.test.js
│ ├── timed-gathering-eorzea-time.test.js
│ ├── timed-gathering-page.test.js
│ └── timed-gathering-search.test.js
└── tools/ # 工具目錄
├── character-card/ # 角色卡產生器
│ ├── index.html
│ ├── card-state.js # 欄位、字數上限、預設值與記住(localStorage),不碰 DOM
│ ├── card-layout.js # 版面計算(名字縮放、折行、膠囊排列、截圖填滿與拖曳縮放)
│ ├── card-paint.js # 三種風格共用的畫圖小工具(字、膠囊、圖示、預設背景、照片框…),不碰 DOM
│ ├── card-style-a.js # 風格「名片」的顏色、版面與畫法
│ ├── card-style-b.js # 風格「海報」的顏色、版面與畫法
│ ├── card-style-c.js # 風格「資訊卡」的顏色、版面與畫法
│ ├── card-renderer.js # 照 model.style 交給那一種風格把卡片畫在 canvas 上,並列出要載入的字型
│ ├── card-image.js # 角色圖縮小成 JPEG 與讀回、名片的模糊背景小圖
│ ├── card-export.js # 下載、分享、複製與內建瀏覽器偵測
│ ├── script.js # 頁面:表單、風格、預覽、分頁、上傳與拖曳、位置滑桿、輸出
│ └── style.css
├── chocobo-color/ # 陸行鳥染色計算器
├── dungeon-database/ # 副本資料庫
├── faux-hollows-foxes/ # 宗長計算機
├── guide/ # 攻略資料
├── lodestone-lookup/ # Lodestone 角色查詢
├── macro-converter/ # 巨集轉換器
├── mini-cactpot/ # 仙人微彩計算機
├── report-generator/ # 檢舉模板產生器
├── timed-gathering/ # 特殊採集時間管理器
├── treasure-map-finder/# 寶圖搜尋器
├── weather-forecast/ # 天氣預報
└── wondrous-tails/ # Wondrous Tails 預測器
- 動態載入 header/footer 元件(JavaScript 模組化)
- 簡潔導航列(含工具名稱顯示)
- CSS 自訂屬性
FF14Utils全域物件- Class-based JavaScript
- 響應式設計
- 國際化支援(I18nManager)
- 共用元件系統 (
/assets/css/components/) - 佈局元件系統 (
/assets/js/components/)- 按鈕元件 (
buttons.css) - 卡片元件 (
cards.css) - 表單元件 (
forms.css) - 標籤/徽章元件 (
tags.css) - 語言切換器 (
language-switcher.css) - 載入狀態與訊息元件 (
tools-common.css)
- 按鈕元件 (
本專案透過 GitHub Pages 自動部署至 ff14.tw
- Fork 本專案
- 建立功能分支:
git checkout -b feature/new-tool - 提交變更:
git commit -m 'feat: add new tool' - 推送到分支:
git push origin feature/new-tool - 建立 Pull Request
- 繁體中文/台灣用語
- ES6+ class-based JavaScript
- 響應式設計
- FF14 官方配色
- 優先使用共用元件,避免重複定義樣式
- 新工具必須引入
tools-common.css
非官方粉絲網站。FF14 相關內容版權歸 SQUARE ENIX 所有。 圖片來源:Square Enix Official Fankit 僅供教育與非商業用途。
- 開發者:hydai
- GitHub:https://github.com/hydai/ff14.tw
- 網站:https://ff14.tw
Made with ❤️ for FF14 Taiwan Community