実現したいこと
NoteのRSSフィードを読み込んでWebページに記事一覧を表示する処理をおこないたい。
発生している問題・分からないこと
rss2jsonというサービスを使って、NoteのRSSをJSON形式で取得し、HTML上に反映することまでできました。
日付、タイトル、サムネイル画像を反映したいのですが、サムネイル画像が反映されなく困っています。
参考サイト
https://visiongram-project.com/#news
参考サイトを参考に私が作成したCodepen
https://codepen.io/ymymymymmmm/pen/gbpZPLY
該当のソースコード
document.addEventListener("DOMContentLoaded", function () { (async function loadNoteRSS() { try { const apiUrl = "https://api.rss2json.com/v1/api.json?rss_url=https://note.com/visiongram/m/m54d8edffc68f/rss"; const response = await axios.get(apiUrl); const data = response.data; if (data.status === "ok") { let html = ""; for (const item of data.items) { const dateStr = new Date(item.pubDate).toLocaleDateString("ja-JP", { year: "numeric", month: "numeric", day: "numeric" }); const imgMatch = item.description.match(/<img.*?src="(https:\/\/assets\.st-note\.com\/.*?)"/); const thumbnail = imgMatch ? imgMatch[1] : "_assets/img/noimage.jpg"; html += ` <li class="item_note"> <a class="rss-link" href="${item.link}" target="_blank" rel="noopener noreferrer"> <section> <p class="date">${dateStr}</p> <div class="detail"> <div class="txts"> <h3>${item.title}</h3> </div> <div class="img"> <img src="${thumbnail}" alt="${item.title}"> </div> </div> </section> </a> </li> `; } const container = document.getElementById("items"); if (container) { container.innerHTML = html + container.innerHTML; } if (data.items.length <= 3) { document.querySelectorAll(".btn_more").forEach(el => el.classList.add("hide_sp")); } if (data.items.length <= 9) { document.querySelectorAll(".btn_more").forEach(el => el.classList.add("hide_pc")); } } else { console.error("RSSデータの取得に失敗しました:", data.message); } } catch (error) { console.error("RSSの読み込み中にエラーが発生しました:", error); } })(); });
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
const imgMatch = item.description.match(/<img.*?src="(https:\/\/assets\.st-note\.com\/.*?)"/); const thumbnail = imgMatch ? imgMatch[1] : "_assets/img/noimage.jpg";
補足
上記が何か間違っているのかと考えて色々試したのですが、うまくいきません。

あなたの回答
tips
プレビュー