33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
import regionsData from '../../data/regions.json'
|
|
|
|
export default defineEventHandler((event) => {
|
|
const config = useRuntimeConfig()
|
|
const baseUrl = config.public.siteDomain || 'https://aeseo.store'
|
|
const list = regionsData.list as Array<{ sido: string, sigungu: string, dong: string }>
|
|
|
|
const subjects = ['영어', '수학', '국어', '통합과학', '통합사회']
|
|
const grades = ['중학생', '고등학생']
|
|
|
|
let xml = `<?xml version="1.0" encoding="UTF-8"?>\n`
|
|
xml += `<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n`
|
|
|
|
// 메인
|
|
xml += ` <url>\n <loc>${baseUrl}/</loc>\n <changefreq>daily</changefreq>\n <priority>1.0</priority>\n </url>\n`
|
|
|
|
// 568개 동별 주요 과목 및 학년 URL 생성
|
|
list.forEach(r => {
|
|
// 1. 동 대표
|
|
xml += ` <url>\n <loc>${baseUrl}/${encodeURIComponent(r.dong)}</loc>\n <changefreq>weekly</changefreq>\n <priority>0.8</priority>\n </url>\n`
|
|
|
|
// 2. 동-과목-학년 대표 조합
|
|
subjects.slice(0, 3).forEach(sub => {
|
|
xml += ` <url>\n <loc>${baseUrl}/${encodeURIComponent(r.dong)}-${encodeURIComponent(grades[0])}-${encodeURIComponent(sub)}</loc>\n <changefreq>weekly</changefreq>\n <priority>0.7</priority>\n </url>\n`
|
|
})
|
|
})
|
|
|
|
xml += `</urlset>`
|
|
|
|
setHeader(event, 'content-type', 'application/xml; charset=utf-8')
|
|
return xml
|
|
})
|