今天的內容是要來美化這個工作流所輸出的內容排版,首先我們可以來觀察這個工作流目前會輸出甚麼東西:
我把我的需求丟給ChatGPT之後,他給我了一個範例:
所以我決定先使用這個模板來讓輸出內容變美觀。想要達成這個效果,首先需要思考要怎麼將n8n所使用的json轉換成markdown的格式,我第一個想到的是使用n8n中的程式碼節點,它可以運行javascript或python,利用這個節點我們可以達成轉換格式的效果。第二個是連結到外部網站來直接轉換。
我決定使用n8n來轉換,將我最終輸出的json檔交給ChatGPT處理之後,他給我了這一段js程式碼:
const data = items[0].json["今日工作總覽"];
// 第一個元素是 output 區塊
const overview = data[0].output;
const todos = overview["今日待辦事項"];
const files = overview["有關的雲端硬碟名稱"];
const summary = overview["總覽"];
// 後續元素是新聞
const news = data.slice(1);
let output = "# 📅 今日工作總覽\n\n";
// 總覽描述
output += `> ${summary}\n\n`;
output += "## ✅ 今日待辦事項\n";
todos.forEach((t, i) => {
output += `${i+1}. ${t}\n`;
});
output += "\n---\n\n";
output += "## 📂 相關雲端硬碟檔案\n";
files.forEach(f => {
output += `- ${f}\n`;
});
output += "\n---\n\n";
output += "## 📰 今日新聞精選\n";
news.forEach((n, i) => {
output += `${i+1}. [${n["新聞標題"]}](${n["連結"]}) — ${n["內文摘要"]}\n`;
});
return [{ json: { markdown: output } }];
並且在執行以後會成功將內文轉換成markdown格式,這麼一來就可以在手機上將文字排版了。
不過接下來我遇到了一個問題,就是我要用什麼樣的方法讓markdown可以在手機上被渲染?這個問題可能還需要再思考一天,所以今天我們就先實作到轉換成markdown格式就好。
今天我們將回傳格式的json轉換到了markdown,讓排版有了初步的進度,不過目前需要再思考一下該怎麼渲染markdown。所以明天我們將會嘗試解決這個問題。