// Blog / Music Column archive function Column() { const musicConfig = window.ALLIN_MUSIC_CONFIG || {}; const archive = musicConfig.archive || {}; const fallbackPosts = [ { tag:'発声', title:'カラオケで "伸びる高音" の正体は、息の使い方だった。', excerpt:'高い音を出そうとすると、どうしても力んでしまう。でも、プロの歌い手はむしろ「抜いて」高音を出しています。その仕組みを、解剖学から解説。', photo:'https://images.unsplash.com/photo-1459749411175-04bf5292ceea?w=1400&q=80', date:'2026.04.18', read:'6 min', url:'#', }, { tag:'機材', title:'大人が選ぶべき、最初のマイクの選び方。', date:'2026.04.12', read:'4 min', url:'#', photo:'https://images.unsplash.com/photo-1520166012956-add9ba0835cb?w=800&q=80' }, { tag:'コラム', title:'なぜ、40代から歌を始める人が増えているのか。', date:'2026.04.05', read:'8 min', url:'#', photo:'https://images.unsplash.com/photo-1514525253161-7a46d19cd819?w=800&q=80' }, { tag:'練習', title:'「自宅で声が出せない」大人のための、呼吸練習10分。', date:'2026.03.28', read:'5 min', url:'#', photo:'https://images.unsplash.com/photo-1478737270239-2f02b77fc618?w=800&q=80' }, { tag:'発表会', title:'初ライブ当日、プロがやっている3つの準備。', date:'2026.03.22', read:'7 min', url:'#', photo:'https://images.unsplash.com/photo-1501612780327-45045538702b?w=800&q=80' }, ]; const sourcePosts = Array.isArray(archive.posts) && archive.posts.length ? archive.posts : fallbackPosts; const featured = sourcePosts[0]; const posts = sourcePosts.slice(1); const total = archive.total || sourcePosts.length; const currentPage = archive.currentPage || 1; const totalPages = archive.totalPages || 1; const archiveUrl = archive.archiveUrl || ((musicConfig.routes || {})['column.html']) || '#'; const photoFor = (post, size = 800) => post.photo || `https://images.unsplash.com/photo-1511379938547-c1f69419868d?w=${size}&q=80`; return ( #09 音楽コラム 歌と音楽の、 もう少し深く。 すべての記事を読む({total}件)→ {featured ? ( {posts.slice(0, 4).map((post) => ( ))} ) : ( まだ記事が公開されていません。 )} {posts.length > 4 && ( {posts.slice(4).map((post) => ( ))} )} {totalPages > 1 && ( {archive.prevUrl ? ( ← 前へ ) : ( ← 前へ )} PAGE {currentPage} / {totalPages} {archive.nextUrl ? ( 次へ → ) : ( 次へ → )} )} ); } function ArticleFeature({ post, photo }) { return ( FEATURED · {post.tag} {post.date} · {post.read} {post.title} {post.excerpt && ( {post.excerpt} )} 続きを読む → ); } function ArticleCard({ post, photo, large }) { return ( e.currentTarget.style.borderColor='var(--accent)'} onMouseLeave={e => e.currentTarget.style.borderColor='var(--rule)'} > {post.tag} {post.title} {large && post.excerpt && ( {post.excerpt} )} {post.date} · {post.read} ); } window.Column = Column;
{post.excerpt}