Communitygithub.com

Shoma-DS/team-info

從 tyoudoii-illust.com 透過 WordPress REST API 搜尋並下載免費插圖,以統一的 CSS 尺寸整合至網頁專案中。適用於需要日系免費插圖來取代表情符號或佔位圖示的網頁建置情境。

team-info 是什麼?

這個技能專為需要日系免費插圖的網頁開發者設計,能透過 WordPress REST API 直接從 tyoudoii-illust.com 取得高品質插圖,避免因網站依賴 JavaScript 渲染而難以直接爬取的困擾。它支援 Claude Code、Cursor 等 AI 代理工具,工作流程包含關鍵字搜尋、插圖 URL 推導、下載與 CSS 整合。首先,它會將專案中的表情符號或文字圖示列出並轉換為搜尋關鍵字;然後透過 REST API 取得縮圖,再以固定規則推導出彩色插圖的實際 URL;最後下載成語意化的檔案名稱,並利用統一的容器尺寸與 `object-fit: contain` 確保所有插圖在卡片或清單中顯示一致。此外,它還提供備用關鍵字與 URL 嘗試機制以提升成功率,並強調商用前需確認授權條款。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Shoma-DS/team-info/tree/HEAD/.agent/skills/web-design/frontend-design/tyoudoii-illust-fetcher

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

預覽

來自技能 README

team-info preview

說明文件

Tyoudoii 插圖擷取技能

目標

  • 當 tyoudoii-illust 網站因 JS 渲染而難以直接爬取時,使用其 WordPress REST API。
  • 以可下載且符合頁面設計的插圖取代表情符號、文字圖示或佔位圖片。
  • 若周圍佈局或卡片 UI 也需要調整,請搭配 .agent/skills/web-design/frontend-design/SKILL.md 使用。

工作流程

階段 1:盤點所需的插圖

  1. 列出 HTML / JSX / component 內的表情符號、文字圖示、佔位圖片。
  2. 將每個位置所需的插圖主題轉換為關鍵字。
  3. 關鍵字先用語意通順的短語表示。
  4. 先決定下載目錄。

範例:

  • worry_man
  • robot
  • handshake
  • {project}/images/
  • {project}/public/images/

階段 2:透過 WordPress REST API 搜尋

  1. 首先使用 REST API 尋找候選文章。
  2. 端點:
https://tyoudoii-illust.com/wp-json/wp/v2/posts?search={keyword}&_embed=true&per_page=5
  1. 從回應的 _embedded["wp:featuredmedia"][0].source_url 取得縮圖 URL。
  2. 若無法取得縮圖 URL,則切換日文與英文關鍵字重新搜尋。

縮圖 URL 範例:

https://tyoudoii-illust.com/wp-content/uploads/2024/01/example_サムネ.png

階段 3:推導實際插圖 URL

  1. 將縮圖 URL 結尾的 _サムネ.png 替換為 _color.png 以產生目標 URL。
  2. 首先確認是否回傳 HTTP 200。
curl -s -o /dev/null -w "%{http_code}" "{candidate_url}"
  1. 若 _color.png 回傳 404,則依序嘗試:
  • _カラー.png
  • _illust.png
  1. 若全部都不是 200,則回到 API 使用其他關鍵字搜尋。

階段 4:下載

  1. 在專案內使用語意明確的英文檔案名稱。
  2. 範例:
  • telework.png
  • robot.png
  • support.png
  1. 下載範例:
curl -L "{url}" -o "{project}/images/{semantic_name}.png"

階段 5:嵌入 HTML 與 CSS

  1. 將表情符號或文字圖示替換為本機圖片。
<div class="icon-container">
  <img src="images/{name}.png" alt="{描述}">
</div>
  1. 在卡片或特色列表中使用相同的容器尺寸。
  2. 圖片本身的長寬比透過 object-fit: contain 處理。
.icon-container {
  width: 100px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.icon-container img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

品質規則

  • 不要執著於 WebFetch 或取得渲染後的 HTML,優先使用 REST API。
  • 若無法取得縮圖 URL,請嘗試日文/英文的同義詞。
  • 若 _color.png 回傳 404,請同時檢查 _カラー.png 與 _illust.png。
  • 相同卡片群組中不要混用不同的圖示容器尺寸。
  • 不可省略 alt 屬性。
  • 儲存檔案名稱需使用專案內語意明確的英文名稱。
  • 商業使用時,務必確認 tyoudoii-illust.com 的最新使用條款。即使假設為免費且可商用,最終確認仍不可省略。

協調

  • 若 themeisle-illustration-fetcher 也是選項,請勿自動選擇,務必詢問使用者要使用哪一個。
  • 若需要整體 UI 改版或區段設計,請先讀取 frontend-design,再由此技能處理圖示替換的步驟。
  • 若已有現有設計,請根據其留白、卡片比例、圖片尺寸方針,僅調整 .icon-container 的尺寸。

驗證

  1. 在新的網頁專案中呼叫此技能,從關鍵字開始進行 API 搜尋。
  2. 確認能夠完整執行:候選 URL 的 200 確認、PNG 下載、HTML 嵌入。
  3. 在瀏覽器中目視確認所有卡片圖片是否以相同尺寸整齊顯示。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能