diff --git a/README.md b/README.md index 432cb2f..6c588eb 100644 --- a/README.md +++ b/README.md @@ -18,5 +18,5 @@ node build/create.js 节日英文名称(不带标点符号) - [ ] Dragon Boat Festival 古诗 - [ ] Mid-Autumn Festival 古诗 - -- [ ] Winter Solstice 古诗 \ No newline at end of file +- [ ] Winter Solstice 古诗 +- [ ] Beginning of Autumn 古诗 \ No newline at end of file diff --git a/build/generate.js b/build/generate.js index fdb4546..bd27906 100644 --- a/build/generate.js +++ b/build/generate.js @@ -7,7 +7,8 @@ order = JSON.parse(order); let simplifyField = fs.readFileSync(path.join(__dirname, '../data/simplify_field.json'), 'utf8'); simplifyField = JSON.parse(simplifyField); -let holidayList = [], simplifyHolidayList = []; +let ChineseEngilshMapper = {}; +let holidayList = [], simplifyHolidayList = [], solarTermsList = [], simplifySolarTermsList = []; for (let holidayId of order) { let holiday = fs.readFileSync(path.join(__dirname, `../data/holiday/${holidayId}.json`), 'utf8'); holiday = JSON.parse(holiday); @@ -16,6 +17,13 @@ for (let holidayId of order) { let simplifyHoliday = {}; simplifyField.forEach(field => simplifyHoliday[field] = holiday[field]); simplifyHolidayList.push(simplifyHoliday); + + if (holiday.solarTerms) { + solarTermsList.push(holiday); + simplifySolarTermsList.push(simplifyHoliday); + } + + ChineseEngilshMapper[holiday.name] = holiday.englishName; } fs.writeFileSync(path.join(__dirname, `../dist/holiday.json`), JSON.stringify(holidayList, null, 4)); @@ -23,3 +31,15 @@ fs.writeFileSync(path.join(__dirname, `../dist/holiday.min.json`), JSON.stringif fs.writeFileSync(path.join(__dirname, `../dist/holiday.simplify.json`), JSON.stringify(simplifyHolidayList, null, 4)); fs.writeFileSync(path.join(__dirname, `../dist/holiday.simplify.min.json`), JSON.stringify(simplifyHolidayList)); + +fs.writeFileSync(path.join(__dirname, `../dist/holiday.solarTerms.json`), JSON.stringify(solarTermsList, null, 4)); +fs.writeFileSync(path.join(__dirname, `../dist/holiday.solarTerms.min.json`), JSON.stringify(solarTermsList)); + +fs.writeFileSync(path.join(__dirname, `../dist/holiday.solarTerms.simplify.json`), JSON.stringify(simplifySolarTermsList, null, 4)); +fs.writeFileSync(path.join(__dirname, `../dist/holiday.solarTerms.simplify.min.json`), JSON.stringify(simplifySolarTermsList)); + +fs.writeFileSync(path.join(__dirname, `../dist/chinese_english_mapper.json`), JSON.stringify(ChineseEngilshMapper, null, 4)); +fs.writeFileSync(path.join(__dirname, `../dist/chinese_english_mapper.min.json`), JSON.stringify(ChineseEngilshMapper)); + +fs.copyFileSync(path.join(__dirname, `../dist/holiday.min.json`), path.join(__dirname, `../html/data/holiday.min.json`)) +fs.copyFileSync(path.join(__dirname, `../dist/holiday.simplify.min.json`), path.join(__dirname, `../html/data/holiday.simplify.min.json`)) diff --git a/data/holiday/Beginning of Autumn.json b/data/holiday/Beginning of Autumn.json new file mode 100644 index 0000000..d05d2e2 --- /dev/null +++ b/data/holiday/Beginning of Autumn.json @@ -0,0 +1,48 @@ +{ + "id": "Beginning of Autumn", + "skip": false, + "name": "立秋", + "fullName": "立秋", + "englishName": "Beginning of Autumn", + "alias": [], + "friendlyDate": "公历8月7日-8月8日交节", + "date": "~8/7-8/8", + "holidayDate": "", + "calendar": "solar", + "friendlyType": "二十四节气之一", + "type": "SolarTerms", + "statutory": false, + "solarTerms": true, + "solarTermsInfo": { + "ecliptic": "太阳到达黄经135°", + "climate": "降雨、湿度等趋于下降或减少", + "phenology": "凉风至;白露生;寒蝉鸣", + "lawOfNature": "万物开始从繁茂成长趋向成熟", + "farming": "做好整地、施肥的准备、晒秋", + "tradition": "祭祀土地神、晒秋节、秋忙会、贴秋膘", + "living": "", + "meaning": "秋季开始,收获的季节" + }, + "desc": "立秋,是“二十四节气”之第十三个节气,也是秋季的起始。斗指西南,太阳达黄经135°,于每年公历8月7或8日交节。“立”,是开始之意;“秋”,意为禾谷成熟。整个自然界的变化是循序渐进的过程,立秋是阳气渐收、阴气渐长,由阳盛逐渐转变为阴盛的转折。在自然界,万物开始从繁茂成长趋向成熟。", + "subFestival": [], + "activity": [ + "祭祀土地神", + "啃秋瓜", + "贴秋膘", + "晒秋" + ], + "food": [], + "origin": "", + "meaning": "立秋是阳气渐收、阴气渐长,由阳盛逐渐转变为阴盛的转折", + "process": "", + "location": "", + "organization": "", + "startingTime": "", + "popularAreas": "", + "commemorator": [], + "intangibleCulturalHeritageProtectionUnit": "", + "nationalCulturalHeritage": "", + "worldCulturalHeritage": "", + "baike": "https://baike.baidu.com/item/%E7%AB%8B%E7%A7%8B/9465", + "poetry": [] +} \ No newline at end of file diff --git a/data/holiday/Beginning of Spring.json b/data/holiday/Beginning of Spring.json new file mode 100644 index 0000000..b4332b7 --- /dev/null +++ b/data/holiday/Beginning of Spring.json @@ -0,0 +1,62 @@ +{ + "id": "Beginning of Spring", + "skip": false, + "name": "立春", + "fullName": "立春", + "englishName": "Beginning of Spring", + "alias": [ + "岁首", + "岁节", + "改岁", + "立春节", + "正月节" + ], + "friendlyDate": "公历2月3日-2月5日交节", + "date": "~2/3-2/5", + "holidayDate": "", + "calendar": "solar", + "friendlyType": "友好节日类型 多个用/分隔", + "type": "节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)", + "statutory": "是否法定节假日 boolean", + "solarTerms": "是否是二十四节气 boolean", + "solarTermsInfo": { + "ecliptic": "太阳到达黄经315度", + "climate": "气温回升、风和日暖", + "phenology": "东风解冻、蜇虫始振、鱼陟负冰", + "lawOfNature": "", + "farming": "耙耢保墒", + "tradition": "拜神祭祖、纳福祈年、驱邪攘灾、除旧布新等", + "living": "防躁动,避免过度劳累,保证睡眠情绪豁达。", + "meaning": "阳气上升,万物更生,新岁开启" + }, + "desc": "立春,为二十四节气之首。立,是“开始”之意;春,代表着温暖、生长。二十四节气最初是依据“斗转星移”制定,当北斗七星的斗柄指向寅位时为立春。现行是依据太阳黄经度数定节气,当太阳到达黄经315°时为立春,于每年公历2月3-5日交节。干支纪元,以寅月为春正、立春为岁首,立春乃万物起始、一切更生之义也,意味着新的一个轮回已开启。在传统观念中,立春有吉祥的涵义。", + "subFestival": [], + "activity": [ + "迎春", + "糊春牛", + "打春牛", + "咬春", + "踏春", + "立春祭" + ], + "food": [ + "春盘", + "田艾籺", + "春饼", + "春卷|春蚕", + "咬春|吃萝卜" + ], + "origin": "", + "meaning": "立春乃万物起始、一切更生之义也,意味着新的一个轮回已开启", + "process": "", + "location": "", + "organization": "", + "startingTime": "", + "popularAreas": "", + "commemorator": [], + "intangibleCulturalHeritageProtectionUnit": "", + "nationalCulturalHeritage": "", + "worldCulturalHeritage": "", + "baike": "https://baike.baidu.com/item/%E7%AB%8B%E6%98%A5/8896", + "poetry": [] +} \ No newline at end of file diff --git a/data/holiday/Dragon Boat Festival.json b/data/holiday/Dragon Boat Festival.json index 24e3641..aa066fa 100644 --- a/data/holiday/Dragon Boat Festival.json +++ b/data/holiday/Dragon Boat Festival.json @@ -46,7 +46,7 @@ "曹娥", "介子推" ], - "intangibleCulturalHeritageProtectionUnit": "非物质文化遗产保护单位", + "intangibleCulturalHeritageProtectionUnit": "", "nationalCulturalHeritage": "2006年5月20日列入第一批名录", "worldCulturalHeritage": "2009年9月30日入选世界名录", "baike": "https://baike.baidu.com/item/%E7%AB%AF%E5%8D%88%E8%8A%82/1054", diff --git a/data/holiday/Tomb-Sweeping Day.json b/data/holiday/Tomb-Sweeping Day.json index 8327208..4c090eb 100644 --- a/data/holiday/Tomb-Sweeping Day.json +++ b/data/holiday/Tomb-Sweeping Day.json @@ -14,14 +14,15 @@ "date": "~4/4-4/6", "holidayDate": "", "calendar": "solar", - "friendlyType": "中国四大传统节日之一", - "type": "Chinese-4", + "friendlyType": "中国四大传统节日之一/二十四节气之一", + "type": "Chinese-4/SolarTerms", "statutory": true, "solarTerms": true, "solarTermsInfo": { "ecliptic": "太阳到达黄经15°", "climate": "气温转暖、天气冷暖多变、多雨", "phenology": "桐始华;田鼠化为鹌;虹始见", + "lawOfNature": "", "farming": "肥水管理、病虫防治", "tradition": "扫墓、踏青,吃蒿饼、青团、馓子、清明螺", "living": "护肝养肺", diff --git a/data/holiday/Winter Solstice.json b/data/holiday/Winter Solstice.json index a1c9226..a67eff4 100644 --- a/data/holiday/Winter Solstice.json +++ b/data/holiday/Winter Solstice.json @@ -22,6 +22,7 @@ "ecliptic": "太阳到达黄经270°", "climate": "天寒地冻", "phenology": "一候蚯蚓结;二候麋角解;三候水泉动。", + "lawOfNature": "", "farming": "兴修水利", "tradition": "吃水饺、吃麻糍", "living": "及时添衣,适当锻炼", diff --git a/data/order.json b/data/order.json index 636f533..dc76966 100644 --- a/data/order.json +++ b/data/order.json @@ -1,10 +1,12 @@ [ "New Year", "Spring Festival", + "Beginning of Spring", "Cold food festival", "Tomb-Sweeping Day", "International Workers Day", "Dragon Boat Festival", + "Beginning of Autumn", "Mid-Autumn Festival", "the National Day of the Peoples Republic of China", "Winter Solstice" diff --git a/data/template.json b/data/template.json index fb2d7ec..99feae8 100644 --- a/data/template.json +++ b/data/template.json @@ -11,8 +11,8 @@ "date": "日期 10/1 如果有多个,以空格分隔,格式:10/1 10/12;如果是时间范围,以-连接,格式:1/1-12/31;如果无法确定准确时间(如清明节),前面添加~代表不确定,例如~4/4-4/6或~4/5", "holidayDate": "放假日期 格式同上", "calendar": "阳历/阴历 solar/lunar", - "friendlyType": "友好节日类型", - "type": "节日类型 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)", + "friendlyType": "友好节日类型 多个用/分隔", + "type": "节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)", "statutory": "是否法定节假日 boolean", "solarTerms": "是否是二十四节气 boolean", "solarTermsInfo": { @@ -20,10 +20,11 @@ "ecliptic": "黄道位置", "climate": "气候特点", "phenology": "物候现象", + "lawOfNature": "自然规律", "farming": "农事活动", "tradition": "传统习俗", "living": "起居养生", - "meaning": "含义" + "meaning": "含义/代表寓意" }, "desc": "节日描述 xxx", "subFestival": [ diff --git a/dist/chinese_english_mapper.json b/dist/chinese_english_mapper.json new file mode 100644 index 0000000..b70eb6b --- /dev/null +++ b/dist/chinese_english_mapper.json @@ -0,0 +1,13 @@ +{ + "元旦": "New Year", + "春节": "Spring Festival / Chinese New Year", + "立春": "Beginning of Spring", + "寒食节": "Cold food festival", + "清明节": "Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day", + "劳动节": "International Workers' Day / May Day", + "端午节": "Dragon Boat Festival", + "立秋": "Beginning of Autumn", + "中秋节": "Mid-Autumn Festival", + "国庆节": "the National Day of the People's Republic of China", + "冬至": "Winter Solstice" +} \ No newline at end of file diff --git a/dist/chinese_english_mapper.min.json b/dist/chinese_english_mapper.min.json new file mode 100644 index 0000000..402045d --- /dev/null +++ b/dist/chinese_english_mapper.min.json @@ -0,0 +1 @@ +{"元旦":"New Year","春节":"Spring Festival / Chinese New Year","立春":"Beginning of Spring","寒食节":"Cold food festival","清明节":"Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day","劳动节":"International Workers' Day / May Day","端午节":"Dragon Boat Festival","立秋":"Beginning of Autumn","中秋节":"Mid-Autumn Festival","国庆节":"the National Day of the People's Republic of China","冬至":"Winter Solstice"} \ No newline at end of file diff --git a/dist/holiday.json b/dist/holiday.json index fdc6951..c52f325 100644 --- a/dist/holiday.json +++ b/dist/holiday.json @@ -384,6 +384,67 @@ "baike": "https://baike.baidu.com/item/%E6%98%A5%E8%8A%82/136876", "poetry": [] }, + { + "id": "Beginning of Spring", + "skip": false, + "name": "立春", + "fullName": "立春", + "englishName": "Beginning of Spring", + "alias": [ + "岁首", + "岁节", + "改岁", + "立春节", + "正月节" + ], + "friendlyDate": "公历2月3日-2月5日交节", + "date": "~2/3-2/5", + "holidayDate": "放假日期 格式同上", + "calendar": "阳历/阴历 solar/lunar", + "friendlyType": "友好节日类型 多个用/分隔", + "type": "节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)", + "statutory": "是否法定节假日 boolean", + "solarTerms": "是否是二十四节气 boolean", + "solarTermsInfo": { + "_": "如果不是二十四节气,solarTermsInfo 为 null", + "ecliptic": "黄道位置", + "climate": "气候特点", + "phenology": "物候现象", + "farming": "农事活动", + "tradition": "传统习俗", + "living": "起居养生", + "meaning": "含义" + }, + "desc": "节日描述 xxx", + "subFestival": [], + "activity": [ + "节日活动 如果有别名,格式为:年夜饭|晚饭、团年饭" + ], + "food": [ + "节日饮食 如果有别名,格式为:青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团" + ], + "origin": "节日起源", + "meaning": "节日意义", + "process": "节日流程", + "location": "节日设定地点", + "organization": "设立机构", + "startingTime": "设立时间/起源时期", + "popularAreas": "流行地区", + "commemorator": [], + "intangibleCulturalHeritageProtectionUnit": "非物质文化遗产保护单位", + "nationalCulturalHeritage": "", + "worldCulturalHeritage": "", + "baike": "百度百科地址", + "poetry": [ + { + "dynasty": "朝代 晋代/唐代/宋/...", + "status": "作者身份", + "author": "古诗作者 李白", + "name": "古诗名(不加书名号)", + "text": "古诗正文(片段)" + } + ] + }, { "id": "Cold food festival", "skip": false, @@ -516,11 +577,19 @@ "date": "~4/4-4/6", "holidayDate": "", "calendar": "solar", - "friendlyType": "中国四大传统节日之一", - "type": "Chinese-4", + "friendlyType": "中国四大传统节日之一/二十四节气之一", + "type": "Chinese-4/SolarTerms", "statutory": true, "solarTerms": true, - "solarTermsInfo": null, + "solarTermsInfo": { + "ecliptic": "太阳到达黄经15°", + "climate": "气温转暖、天气冷暖多变、多雨", + "phenology": "桐始华;田鼠化为鹌;虹始见", + "farming": "肥水管理、病虫防治", + "tradition": "扫墓、踏青,吃蒿饼、青团、馓子、清明螺", + "living": "护肝养肺", + "meaning": "天气晴朗、草木繁茂" + }, "desc": "清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。", "subFestival": [], "activity": [ @@ -702,6 +771,60 @@ "baike": "https://baike.baidu.com/item/%E7%AB%AF%E5%8D%88%E8%8A%82/1054", "poetry": [] }, + { + "id": "Beginning of Autumn", + "skip": false, + "name": "立秋", + "fullName": "立秋", + "englishName": "Beginning of Autumn", + "alias": [], + "friendlyDate": "公历8月7日-8月8日交节", + "date": "~8/7-8/8", + "holidayDate": "", + "calendar": "solar", + "friendlyType": "二十四节气之一", + "type": "SolarTerms", + "statutory": false, + "solarTerms": true, + "solarTermsInfo": { + "ecliptic": "黄道位置", + "climate": "气候特点", + "phenology": "物候现象", + "farming": "农事活动", + "tradition": "传统习俗", + "living": "起居养生", + "meaning": "含义" + }, + "desc": "今日立秋,立秋是阳气渐收,阴气渐长,由阳盛逐渐转变为阴盛的转折。", + "subFestival": [], + "activity": [ + "节日活动 如果有别名,格式为:年夜饭|晚饭、团年饭" + ], + "food": [ + "节日饮食 如果有别名,格式为:青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团" + ], + "origin": "节日起源", + "meaning": "节日意义", + "process": "节日流程", + "location": "节日设定地点", + "organization": "设立机构", + "startingTime": "设立时间/起源时期", + "popularAreas": "流行地区", + "commemorator": [], + "intangibleCulturalHeritageProtectionUnit": "非物质文化遗产保护单位", + "nationalCulturalHeritage": "", + "worldCulturalHeritage": "", + "baike": "百度百科地址", + "poetry": [ + { + "dynasty": "朝代 晋代/唐代/宋/...", + "status": "作者身份", + "author": "古诗作者 李白", + "name": "古诗名(不加书名号)", + "text": "古诗正文(片段)" + } + ] + }, { "id": "Mid-Autumn Festival", "skip": false, @@ -819,42 +942,33 @@ "statutory": false, "solarTerms": true, "solarTermsInfo": { - "_": "如果不是二十四节气,solarTermsInfo 为 false", - "ecliptic": "黄道位置", - "climate": "气候特点", - "phenology": "物候现象", - "farming": "农事活动", - "living": "起居养生" + "ecliptic": "太阳到达黄经270°", + "climate": "天寒地冻", + "phenology": "一候蚯蚓结;二候麋角解;三候水泉动。", + "farming": "兴修水利", + "tradition": "吃水饺、吃麻糍", + "living": "及时添衣,适当锻炼", + "meaning": "" }, "desc": "冬至,又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。", "subFestival": [], - "activity": [ - "" - ], + "activity": [], "food": [ "吃水饺", "吃麻糍" ], - "origin": "节日起源", + "origin": "", "meaning": "寒冷的冬天来临。", - "process": "节日流程", - "location": "节日设定地点", - "organization": "设立机构", - "startingTime": "设立时间/起源时期", - "popularAreas": "流行地区", + "process": "", + "location": "", + "organization": "", + "startingTime": "", + "popularAreas": "", "commemorator": [], - "intangibleCulturalHeritageProtectionUnit": "非物质文化遗产保护单位", + "intangibleCulturalHeritageProtectionUnit": "", "nationalCulturalHeritage": "", "worldCulturalHeritage": "", - "baike": "百度百科地址", - "poetry": [ - { - "dynasty": "朝代 晋代/唐代/宋/...", - "status": "作者身份", - "author": "古诗作者 李白", - "name": "古诗名(不加书名号)", - "text": "古诗正文(片段)" - } - ] + "baike": "https://baike.baidu.com/item/%E5%86%AC%E8%87%B3/9381", + "poetry": [] } ] \ No newline at end of file diff --git a/dist/holiday.min.json b/dist/holiday.min.json index d1350be..5111c62 100644 --- a/dist/holiday.min.json +++ b/dist/holiday.min.json @@ -1 +1 @@ -[{"id":"New Year","skip":false,"name":"元旦","fullName":"元旦","englishName":"New Year","alias":["公历年","新历年","阳历年"],"friendlyDate":"公历1月1日","date":"1/1","holidayDate":"","calendar":"solar","friendlyType":"世界节日","type":"World","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"元旦,即公历的1月1日,是世界多数国家通称的“新年”。元,谓“始”,凡数之始称为“元”;旦,谓“日”;“元旦”即“初始之日”的意思。“元旦”通常指历法中的首月首日。","subFestival":[],"activity":["张灯结彩"],"food":["佳肴","点心"],"origin":"节日起源","meaning":"一年之始","process":"","location":"","organization":"中国人民政治协商会议","startingTime":"1949年9月27日","popularAreas":"世界各地","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E5%85%83%E6%97%A6/137017","poetry":[{"dynasty":"晋代","status":"诗人","author":"辛兰","name":"元正","text":"元正启令节,嘉庆肇自兹。咸奏万年觞,小大同悦熙。"},{"dynasty":"","status":"","author":"","name":"晋书","text":"颛帝以孟夏正月为元,其实正朔元旦之春。"},{"dynasty":"南朝","status":"文史学家","author":"萧子云","name":"介雅","text":"四季新元旦,万寿初春朝。"},{"dynasty":"宋代","status":"","author":"吴自牧","name":"梦粱录","text":"正月朔日,谓之元旦,俗呼为新年。一岁节序,此为之首。"}]},{"id":"Spring Festival","skip":false,"name":"春节","fullName":"春节","englishName":"Spring Festival / Chinese New Year","alias":["新春","岁节","年节","新禧","新年","大年"],"friendlyDate":"农历正月初一","date":"1/1","holidayDate":"","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"春节(Spring Festival),即中国农历新年,俗称新春、新岁、岁旦等,口头上又称过年、过大年。春节历史悠久,由上古时代岁首祈岁祭祀演变而来。万物本乎天、人本乎祖,祈岁祭祀、敬天法祖,报本反始也。春节的起源蕴含着深邃的文化内涵,在传承发展中承载了丰厚的历史文化底蕴。在春节期间,全国各地均有举行各种庆贺新春活动,带有浓郁的各地地方特色。这些活动以除旧布新、驱邪攘灾、拜神祭祖、纳福祈年为主要内容,形式丰富多彩,凝聚着中华传统文化精华。","subFestival":[{"name":"小年","alias":["忙年"],"friendlyDate":"农历十二月廿三或廿四","date":"12/23 12/24","calendar":"lunar","desc":"小年是整个春节庆祝活动的开始和伏笔,其主要活动有两项:扫尘和祭灶。","activity":["祭灶","蒸花馍","买年红","吃灶糖","扫尘"]},{"name":"年廿八","alias":[],"friendlyDate":"农历十二月廿八日","date":"12/28","calendar":"lunar","desc":"年廿八除旧布新,清除旧的年红,有的地方年廿八开始贴年红。广东有一句俗语“年廿八,洗邋遢”,意思是说在农历十二月廿八日这一天全家人要留在家里打扫卫生,贴年红,迎接新年。北方一些地方有年谣云:“腊月二十八,打糕蒸馍贴花花”或“二十八,把面发”。所谓贴花花,就是张贴年画、春联、窗花和各种春节张贴之物。","activity":["贴年红(挥春)"]},{"name":"除夕","alias":["大年夜","除夕夜","除夜"],"friendlyDate":"农历十二月廿八日","date":"12/28","calendar":"lunar","desc":"除夕,为岁末的最后一天夜晚。岁末的最后一天称为“岁除”,意为旧岁至此而除,另换新岁。除,即去除之意;夕,指夜晚。“除夕”是岁除之夜的意思,又称大年夜、除夕夜、除夜等,时值年尾的最后一个晚上。除夕是除旧布新、阖家团圆、祭祀祖先的日子,与清明节、七月半、重阳节是中国民间传统的祭祖大节。除夕,在国人心中是具有特殊意义的,这个年尾最重要的日子,漂泊再远的游子也是要赶着回家去和家人团聚,在爆竹声中辞旧岁,烟花满天迎新春。除夕,祭祖、吃团年饭,年夜饭后有派发压岁钱和守岁的习俗。","activity":["祭祖","团年饭|年夜饭","压岁钱","守岁","置天地桌","烧炮","接神","踩祟","接财神"]},{"name":"正月初一","alias":[],"friendlyDate":"农历正月初一","date":"1/1","calendar":"lunar","desc":"从年初一开始便进入迎禧接福、拜祭神祖、祈求丰年主题。元日子时交年时刻,鞭炮齐响、烟花照天、辞旧岁、迎新年等各种庆贺新春活动达于高潮。炮竹声中辞旧岁,烟花满天迎新春。春节早晨开门大吉,先烧炮竹,叫做“开门炮仗”,送旧迎新。爆竹声后,碎红满地,灿若云锦,称为“满堂红”。正月初一迎新岁,拜岁。早上各家焚香致礼,敬天地、祭列祖,拜岁神。然后依次给尊长拜年,继而同族亲友互致祝贺。新年初一,人们都早早起来,穿上最漂亮的衣服,打扮得整整齐齐出门,恭祝新年大吉大利。《占书》中说,正月初一是“鸡日”。","activity":["开门炮仗","拜岁","祈年","拜年","占岁","聚财"]},{"name":"正月初二","alias":[],"friendlyDate":"农历正月初二","date":"1/2","calendar":"lunar","desc":"大年初二是开年日,早上拜祭天地神灵,祭礼完毕,烧炮、烧纸宝,然后吃“开年饭”。这餐“开年饭”一般备发菜、生菜、鱼等,意在取其生财利路之意。这天出嫁的女儿回娘家,要夫婿同行,所以俗称“迎婿日”。回娘家的女儿必须携带一些礼品和红包,分给娘家的小孩,并且在娘家吃午饭,但必须在晚饭前赶回婆家。《占书》中说,正月初二是“狗日”。","activity":["拜神","开年饭"]},{"name":"正月初三","alias":["大年初三","赤狗日"],"friendlyDate":"农历正月初三","date":"1/3","calendar":"lunar","desc":"大年初三又称赤狗日,与“赤口”同音,为熛怒之神,是上古五帝(东方青帝灵威仰、南方赤帝赤熛怒、中央黄帝含枢纽、西方白帝白招拒、北方黑帝汁先纪)之一,即南方之神,司夏天。俗以为是日赤熛怒下兄,遇之则不吉,故此,“小年朝”例应祀祖祭神。“赤口”通常不会外出拜年,传说这天容易与人发生口角争执。古时在中国南方民间,大年初三的早上要贴“赤口”(禁口),认为这一天里易生口角,不宜拜年。所谓“赤口”,一般是用约长七八寸、宽一寸的红纸条,上面写上一些出入平安吉利的话。总之,贴“赤口”,是使人们心理上觉得一年到头都能出入平安,不与人发生口角或各种不幸的灾难,家中多多招财进宝,万事如意。","activity":["烧门神纸"]},{"name":"正月初四","alias":["大年初四"],"friendlyDate":"农历正月初四","date":"1/4","calendar":"lunar","desc":"大年初四是祭财神的日子,迎神接神。《占书》中,传说正月初四是女娲造羊的日子,故称“羊日”,在这一天里,人们不能杀羊,如果天气好,则意味着这一年里,羊会养得很好,养羊的人家会有个好收成。","activity":["迎神接神","接五路","吃折罗","扔穷"]},{"name":"正月初五","alias":[],"friendlyDate":"农历正月初五","date":"1/5","calendar":"lunar","desc":"正月初五,按民间习俗是五路财神的生日,因此要迎接财神进家,保佑自家新的一年财源滚滚、年年有余。同时自然也是送走“穷”的日子,故有“送穷出门”一说。这一天又俗称“破五”,意思是之前几天的诸多禁忌至此就结束了。破五习俗除了以上禁忌外,主要是送穷,迎财神,开市贸易。北方民间有吃饺子的习俗,寓意着招财进宝。传说正月初五是“牛日”。","activity":["祭财神(南方)","送穷","开市"]},{"name":"正月初六","alias":["马日"],"friendlyDate":"农历正月初六","date":"1/6","calendar":"lunar","desc":"正月初六是“马日”,叫六六大顺。这一天,每家每户要把节日积存的垃圾扔出去,这叫送穷鬼。大年初六也是启市日,商店酒楼才正式开张营业,而且要大放鞭炮,不亚于除夕的境况。","activity":["送穷","启市"]},{"name":"正月初七","alias":["人日"],"friendlyDate":"农历正月初七","date":"1/7","calendar":"lunar","desc":"初七是人日,即人的生日,通常不外出拜年。《占书》说,由初一开始,上天创造万物的次序是“一鸡二狗、三猪四羊、五牛六马、七人八谷”,所以初七就是人日。从汉朝的文献开始有人日节俗的文字记载,魏晋后开始重视。古代人日有戴“人胜”的习俗,人胜是一种头饰,又叫彩胜、华胜。","activity":["熏天","吃七宝羹","送火神"]},{"name":"正月初八","alias":["开工日"],"friendlyDate":"农历正月初八","date":"1/8","calendar":"lunar","desc":"年初八是开工日,派发开工利是,是广东老板过年后第一天上班首要做的事;利是利是,寓意着一年都能利利是是,大红大紫。年初八前走亲访友拜年基本完毕,从年初八起民间便陆续开展敬神、游神、摆宗、舞狮、舞龙、飘色、游灯、做醮、标炮、做大戏以及各种文艺表演活动。传说初八是谷子的生日,这天天阴则年歉,天气晴朗则这一年稻谷丰收。","activity":["顺星","游神","做斋头","放生祈福"]},{"name":"正月初九","alias":["天日"],"friendlyDate":"农历正月初九","date":"1/9","calendar":"lunar","desc":"正月初九是天日,传说此日为天界最高神祇玉皇大帝生日,俗称“天公生”。有说“天公”就是“玉皇大帝”,道教称之为“四御”,是天界最高的神,他是统领三界十方诸神以及人间万灵的最高神,代表至高无上的“天”。主要习俗有祭玉皇、道观斋天等,有些地方,天日时妇女备清香花烛、斋碗,摆在天井巷口露天地方膜拜苍天,求天公赐福","activity":["祭玉皇","道观斋天"]},{"name":"正月初十","alias":["天日"],"friendlyDate":"农历正月初十","date":"1/10","calendar":"lunar","desc":"正月初十,南方部分地区有开灯的习俗,设开灯酒宴。河南风俗这一日家家向石头焚香致敬,认为“十”,谐音“石”,因此初十为石头生日,这天凡磨、碾等石制工具都不能动,甚至设祭享祀石头,恐伤庄稼。也称“石不动”“十不动”;午餐必食馍饼,认为吃饼一年之内便会财运亨通。在山东郓城等地有抬石头神之举。","activity":["开灯(南方)"]},{"name":"正月十一","alias":["子婿日"],"friendlyDate":"农历正月十一","date":"1/11","calendar":"lunar","desc":"正月十一“子婿日”,此日是岳父宴请子婿的日子。初九庆祝“天公生”剩下的食物,除了在初十吃了一天外,还剩下很多,所以娘家不必再破费,就利用这些剩下的美食招待女婿及女儿,民歌称为“十一请子婿”。","activity":["请子婿"]},{"name":"正月十二","alias":[],"friendlyDate":"农历正月十二","date":"1/12","calendar":"lunar","desc":"正月十二,搭灯棚,花灯酒会,做斋头,做醮,标炮等。从即日起人们开始准备庆祝元宵佳节,选购灯笼,搭盖灯棚,做醮,标炮。有童谣云:“十一嚷喳喳,十二搭灯棚,十三人开灯,十四灯正明,十五行月半,十六人完灯。”","activity":["搭灯棚"]},{"name":"正月十三、十四","alias":["灯头生日(正月十三)"],"friendlyDate":"农历正月十三、十四","date":"1/13 1/14","calendar":"lunar","desc":"正月十三、十四,舞狮、飘色、游神、逛庙会。有传说正月十三是“灯头生日”,民间在这一天要在厨灶下点灯,称为“点灶灯”。","activity":["点灶灯"]},{"name":"元宵节","alias":["正月十五"],"friendlyDate":"农历正月十五","date":"1/15","calendar":"lunar","desc":"正月十五,习俗活动主要有赏灯、游灯、押舟、烧炮、烧烟花、采青、闹元宵等。元宵节的节俗非常有特色,节期与节俗活动,也随历史的发展而延长扩展。元宵节习俗自古以来就以热闹喜庆的观灯习俗为主。","activity":["赏灯","游灯","押舟","烧炮","烧烟花","采青","闹元宵"]}],"activity":["办年货","祭灶","扫尘","割年肉","贴年红(挥春)","年夜饭|晚饭、团年饭","守岁","压岁钱","游神|圣驾巡游、游老爷、营老爷、游菩萨、游神赛会、年例、迎神、迎年、游春、行香、菩萨行乡、抬神像、神像出巡","拜岁","庙会","拜年","派利是","烧炮竹","舞狮"],"food":["年糕","饺子","汤圆","春卷"],"origin":"岁首祈年祭祀","meaning":"传承与弘扬传统文化","process":"","location":"","organization":"","startingTime":"上古时代","popularAreas":"中国,东亚、东南亚等华人华侨聚集地","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"文化和旅游部","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E6%98%A5%E8%8A%82/136876","poetry":[]},{"id":"Cold food festival","skip":false,"name":"寒食节","fullName":"寒食节","englishName":"Cold food festival","alias":["禁烟节","冷节","百五节","禁火节"],"friendlyDate":"清明节前一二日","date":"~4/3","holidayDate":"","calendar":"solar","friendlyType":"中国传统节日","type":"节日类型 Chinese","statutory":false,"solarTerms":false,"solarTermsInfo":null,"desc":"寒食节,中国传统节日,在夏历冬至后的105日,清明节前一二日。是日初为节时,禁烟火,只吃冷食。并在后世的发展中逐渐增加了祭扫、踏青、秋千、蹴鞠、牵勾、斗鸡等风俗,寒食节前后绵延两千余年,曾被称为中国民间第一大祭日。寒食节是汉族传统节日中唯一以饮食习俗来命名的节日。","subFestival":[],"activity":["祭扫","踏青","秋千","蹴鞠","牵勾","斗鸡","禁火","插柳","咏诗","净肠"],"food":["只吃冷食"],"origin":"祭祀","meaning":"为纪念介子推","process":"","location":"晋国","organization":"晋文公","startingTime":"春秋","popularAreas":"东亚文化圈","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E5%AF%92%E9%A3%9F%E8%8A%82/90690","poetry":[{"dynasty":"明代","status":"","author":"高启","name":"送陈秀才还沙上省墓","text":"满衣血泪与尘埃,乱后还乡亦可哀。风雨梨花寒食过,几家坟上子孙来?"},{"dynasty":"明末清初","status":"","author":"屈大均","name":"壬戌清明作","text":"朝作轻寒暮作阴,愁中不觉已春深。落花有泪因风雨,啼鸟无情自古今。故国江山徒梦寐,中华人物又销沉。龙蛇四海归无所,寒食年年怆客心。"},{"dynasty":"唐代","status":"","author":"伍唐珪","name":"寒食日献郡守","text":"入门堪笑复堪怜,三径苔荒一钓船。惭愧四邻教断火,不知厨里久无烟。"},{"dynasty":"唐代","status":"","author":"武元衡","name":"寒食下第","text":"柳挂九衢丝,花飘万家雪。如何憔悴人,对此芳菲节。"},{"dynasty":"唐代","status":"","author":"熊孺登","name":"寒食野望","text":"拜扫无过骨肉亲,一年唯此两三辰。冢头莫种有花树,春色不关泉下人。"},{"dynasty":"唐代","status":"","author":"来鹄","name":"寒食山馆书情","text":"独把一杯山馆中,每经时节恨飘蓬。侵阶草色连朝雨,满地梨花昨夜风。蜀魄啼来春寂寞,楚魂吟后月朦胧。分明记得还家梦,徐孺宅前湖水东。"},{"dynasty":"唐代","status":"","author":"贯休","name":"寒食郊外","text":"寒食将吾族,相随过石溪。冢花沾酒落,林鸟学人啼。白水穿芜疾,新霞出雾低。不堪回首望,家在赤松西。"},{"dynasty":"唐代","status":"","author":"张籍","name":"寒食看花","text":"早入公门到夜归,不因寒食少闲时。颠狂绕树猿离锁,踊跃缘冈马断羁。酒污衣裳从客笑,醉饶言语觅花知。老来自喜常无事,仰面西园得咏诗。"},{"dynasty":"唐代","status":"","author":"韩翃","name":"寒食","text":"春城无处不飞花,寒食东风御柳斜。日暮汉宫传蜡烛,轻烟散入五侯家。"}]},{"id":"Tomb-Sweeping Day","skip":false,"name":"清明节","fullName":"清明节","englishName":"Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day","alias":["踏青节","行清节","三月节","祭祖节"],"friendlyDate":"斗指乙,太阳黄经15°,公历4月5日前后","date":"~4/4-4/6","holidayDate":"","calendar":"solar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":true,"solarTermsInfo":null,"desc":"清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。","subFestival":[],"activity":["踏青郊游","扫墓祭祖","植树","放风筝","插柳","拔河","荡秋千","斗鸡","射柳","蹴鞠","蚕花会"],"food":["祭祖金猪","鲜果茶点","青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团"],"origin":"干支历法、原始信仰、祭祀文化","meaning":"礼敬祖先,亲近自然","process":"清杂草、摆祭品、拜祭、鸣放鞭炮","location":"中国","organization":"","startingTime":"","popularAreas":"中国、东亚、东南亚等华人华侨聚集地","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"文化和旅游部","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E6%B8%85%E6%98%8E%E8%8A%82/137575","poetry":[{"dynasty":"唐代","status":"","author":"杜牧","name":"清明","text":"清明时节雨纷纷,路上行人欲断魂。借问酒家何处有?牧童遥指杏花村。"},{"dynasty":"清代","status":"","author":"厉鹗","name":"百字令·丁酉清明","text":"春光老去,恨年年心事,春能拘管。永日空园双燕语,折尽柳条长短。白眼看天,青袍似草,最觉当歌懒。愔愔门巷,落花早又吹满。凝想烟月当时,饧箫旧市,惯逐嬉春伴。一自笑桃人去后,几叶碧云深浅。乱掷榆钱,细垂桐乳,尚惹游丝转。望中何处?那堪天远山远!"},{"dynasty":"唐代","status":"","author":"张继","name":"闾门即事","text":"耕夫召募爱楼船,春草青青万项田。试上吴门窥郡郭,清明几处有新烟。"},{"dynasty":"宋代","status":"","author":"王禹俏","name":"清明","text":"无花无酒过清明,兴味萧然似野僧。昨日邻家乞新火,晓窗分与读书灯。"},{"dynasty":"宋代","status":"","author":"吴惟信","name":"苏堤清明即事","text":"梨花风起正清明,游子寻春半出城。日暮笙歌收拾去,万株杨柳属流莺。"},{"dynasty":"宋代","status":"","author":"杨万里","name":"寒食上冢","text":"迳直夫何细!桥危可免扶?远山枫外淡,破屋麦边孤。宿草春风又,新阡去岁无。梨花自寒食,进节只愁余。"},{"dynasty":"宋代","status":"","author":"程颢","name":"郊行即事","text":"芳草绿野恣行事,春入遥山碧四周。兴逐乱红穿柳巷,固因流水坐苔矶。莫辞盏酒十分劝,只恐风花一片红。况是清明好天气,不妨游衍莫忘归。"},{"dynasty":"明代","status":"","author":"王磐","name":"清江引 清明日出游","text":"问西楼禁烟何处好?绿野晴天道。马穿杨柳嘶,人倚秋千笑,探莺花总教春醉倒。"}]},{"id":"International Workers Day","skip":false,"name":"劳动节","fullName":"五一国际劳动节","englishName":"International Workers' Day / May Day","alias":["国际劳动节","国际示威游行日"],"friendlyDate":"公历5月1日","date":"5/1","holidayDate":"","calendar":"solar","type":"World","friendlyType":"世界上80多个国家的全国性节日","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"国际劳动节又称“五一国际劳动节”“国际示威游行日”,是世界上80多个国家的全国性节日。定在每年的五月一日。它是全世界劳动人民共同拥有的节日。","subFestival":[],"activity":[],"food":[],"origin":"1886年美国芝加哥城的工人大罢工","meaning":"劳动者争取到了合法权益","location":"","organization":"第二国际","startingTime":"1890年","popularAreas":"世界绝大部分国家","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E4%BA%94%E4%B8%80%E5%9B%BD%E9%99%85%E5%8A%B3%E5%8A%A8%E8%8A%82/810559","poetry":[]},{"id":"Dragon Boat Festival","skip":false,"name":"端午节","fullName":"端午节","englishName":"Dragon Boat Festival","alias":["端阳节","龙节","正阳节","龙舟节","天中节"],"friendlyDate":"农历五月初五","date":"5/5","holidayDate":"","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"端午节,又称端阳节、龙舟节、重五节、天中节等,是集拜神祭祖、祈福辟邪、欢庆娱乐和饮食为一体的民俗大节。端午节源于自然天象崇拜,由上古时代祭龙演变而来。仲夏端午,苍龙七宿飞升于正南中央,处在全年最“中正”之位,正如《易经·乾卦》第五爻:“飞龙在天”。端午是“飞龙在天”吉祥日,龙及龙舟文化始终贯穿在端午节的传承历史中。","subFestival":[],"activity":["扒龙船","放纸鸢","挂艾草菖蒲"],"food":["粽子","五黄","咸鸭蛋","绿豆糕"],"origin":"天象崇拜,龙图腾祭祀","meaning":"传承与弘扬非物质文化","process":"","location":"","organization":"","startingTime":"上古时代","popularAreas":"中国及汉字文化圈诸国","commemorator":["屈原","伍子胥","曹娥","介子推"],"intangibleCulturalHeritageProtectionUnit":"非物质文化遗产保护单位","nationalCulturalHeritage":"2006年5月20日列入第一批名录","worldCulturalHeritage":"2009年9月30日入选世界名录","baike":"https://baike.baidu.com/item/%E7%AB%AF%E5%8D%88%E8%8A%82/1054","poetry":[]},{"id":"Mid-Autumn Festival","skip":false,"name":"中秋节","fullName":"中秋节","englishName":"Mid-Autumn Festival","alias":["祭月节","月光诞","月夕","秋节","仲秋节","拜月节","月娘节","月亮节","团圆节","秋夕"],"friendlyDate":"农历八月十五","date":"8/15","holidayDate":"","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"中秋节,又称祭月节、月光诞、月夕、秋节、仲秋节、拜月节、月娘节、月亮节、团圆节等,是中国民间传统节日。中秋节源自对天象的崇拜,由上古时代秋夕祭月演变而来。中秋节自古便有祭月、赏月、吃月饼、看花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。","subFestival":[],"activity":["拜月","赏月","舞火龙","玩花灯"],"food":["月饼"],"origin":"天象崇拜,秋夕祭月","meaning":"传承与弘扬传统文化","process":"","location":"","organization":"民间流传约定俗成","startingTime":"上古时代","popularAreas":"中国及周边国家或地区","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"文化和旅游部","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E4%B8%AD%E7%A7%8B%E8%8A%82/128234","poetry":[]},{"id":"the National Day of the Peoples Republic of China","skip":false,"name":"国庆节","fullName":"中华人民共和国国庆节","englishName":"the National Day of the People's Republic of China","alias":["十一","国庆节","国庆日","中国国庆节","国庆黄金周"],"friendlyDate":"公历10月1日","date":"10/1","holidayDate":"10/1-10/7","calendar":"solar","friendlyType":"国庆日","type":"Others","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"中华人民共和国中央人民政府宣布自1949年起,以每年的10月1日,即中华人民共和国宣告成立的日子,称为国庆节。","subFestival":[],"activity":["举国同庆","阅兵仪式","国庆长假"],"food":[],"origin":"中华人民共和国成立","meaning":"庆祝中华人民共和国成立","process":"","location":"中华人民共和国","organization":"中华人民共和国国务院","startingTime":"1950年","popularAreas":"中华人民共和国","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD%E5%9B%BD%E5%BA%86%E8%8A%82/1041892","poetry":[]},{"id":"Winter Solstice","skip":false,"name":"冬至","fullName":"冬至","englishName":"Winter Solstice","alias":["日南至","冬节","日短至","亚岁"],"friendlyDate":"公历12月21日-12月23日交节","date":"~12/21-12/23","holidayDate":"","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"solarTermsInfo":{"_":"如果不是二十四节气,solarTermsInfo 为 false","ecliptic":"黄道位置","climate":"气候特点","phenology":"物候现象","farming":"农事活动","living":"起居养生"},"desc":"冬至,又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。","subFestival":[],"activity":[""],"food":["吃水饺","吃麻糍"],"origin":"节日起源","meaning":"寒冷的冬天来临。","process":"节日流程","location":"节日设定地点","organization":"设立机构","startingTime":"设立时间/起源时期","popularAreas":"流行地区","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"非物质文化遗产保护单位","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"百度百科地址","poetry":[{"dynasty":"朝代 晋代/唐代/宋/...","status":"作者身份","author":"古诗作者 李白","name":"古诗名(不加书名号)","text":"古诗正文(片段)"}]}] \ No newline at end of file +[{"id":"New Year","skip":false,"name":"元旦","fullName":"元旦","englishName":"New Year","alias":["公历年","新历年","阳历年"],"friendlyDate":"公历1月1日","date":"1/1","holidayDate":"","calendar":"solar","friendlyType":"世界节日","type":"World","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"元旦,即公历的1月1日,是世界多数国家通称的“新年”。元,谓“始”,凡数之始称为“元”;旦,谓“日”;“元旦”即“初始之日”的意思。“元旦”通常指历法中的首月首日。","subFestival":[],"activity":["张灯结彩"],"food":["佳肴","点心"],"origin":"节日起源","meaning":"一年之始","process":"","location":"","organization":"中国人民政治协商会议","startingTime":"1949年9月27日","popularAreas":"世界各地","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E5%85%83%E6%97%A6/137017","poetry":[{"dynasty":"晋代","status":"诗人","author":"辛兰","name":"元正","text":"元正启令节,嘉庆肇自兹。咸奏万年觞,小大同悦熙。"},{"dynasty":"","status":"","author":"","name":"晋书","text":"颛帝以孟夏正月为元,其实正朔元旦之春。"},{"dynasty":"南朝","status":"文史学家","author":"萧子云","name":"介雅","text":"四季新元旦,万寿初春朝。"},{"dynasty":"宋代","status":"","author":"吴自牧","name":"梦粱录","text":"正月朔日,谓之元旦,俗呼为新年。一岁节序,此为之首。"}]},{"id":"Spring Festival","skip":false,"name":"春节","fullName":"春节","englishName":"Spring Festival / Chinese New Year","alias":["新春","岁节","年节","新禧","新年","大年"],"friendlyDate":"农历正月初一","date":"1/1","holidayDate":"","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"春节(Spring Festival),即中国农历新年,俗称新春、新岁、岁旦等,口头上又称过年、过大年。春节历史悠久,由上古时代岁首祈岁祭祀演变而来。万物本乎天、人本乎祖,祈岁祭祀、敬天法祖,报本反始也。春节的起源蕴含着深邃的文化内涵,在传承发展中承载了丰厚的历史文化底蕴。在春节期间,全国各地均有举行各种庆贺新春活动,带有浓郁的各地地方特色。这些活动以除旧布新、驱邪攘灾、拜神祭祖、纳福祈年为主要内容,形式丰富多彩,凝聚着中华传统文化精华。","subFestival":[{"name":"小年","alias":["忙年"],"friendlyDate":"农历十二月廿三或廿四","date":"12/23 12/24","calendar":"lunar","desc":"小年是整个春节庆祝活动的开始和伏笔,其主要活动有两项:扫尘和祭灶。","activity":["祭灶","蒸花馍","买年红","吃灶糖","扫尘"]},{"name":"年廿八","alias":[],"friendlyDate":"农历十二月廿八日","date":"12/28","calendar":"lunar","desc":"年廿八除旧布新,清除旧的年红,有的地方年廿八开始贴年红。广东有一句俗语“年廿八,洗邋遢”,意思是说在农历十二月廿八日这一天全家人要留在家里打扫卫生,贴年红,迎接新年。北方一些地方有年谣云:“腊月二十八,打糕蒸馍贴花花”或“二十八,把面发”。所谓贴花花,就是张贴年画、春联、窗花和各种春节张贴之物。","activity":["贴年红(挥春)"]},{"name":"除夕","alias":["大年夜","除夕夜","除夜"],"friendlyDate":"农历十二月廿八日","date":"12/28","calendar":"lunar","desc":"除夕,为岁末的最后一天夜晚。岁末的最后一天称为“岁除”,意为旧岁至此而除,另换新岁。除,即去除之意;夕,指夜晚。“除夕”是岁除之夜的意思,又称大年夜、除夕夜、除夜等,时值年尾的最后一个晚上。除夕是除旧布新、阖家团圆、祭祀祖先的日子,与清明节、七月半、重阳节是中国民间传统的祭祖大节。除夕,在国人心中是具有特殊意义的,这个年尾最重要的日子,漂泊再远的游子也是要赶着回家去和家人团聚,在爆竹声中辞旧岁,烟花满天迎新春。除夕,祭祖、吃团年饭,年夜饭后有派发压岁钱和守岁的习俗。","activity":["祭祖","团年饭|年夜饭","压岁钱","守岁","置天地桌","烧炮","接神","踩祟","接财神"]},{"name":"正月初一","alias":[],"friendlyDate":"农历正月初一","date":"1/1","calendar":"lunar","desc":"从年初一开始便进入迎禧接福、拜祭神祖、祈求丰年主题。元日子时交年时刻,鞭炮齐响、烟花照天、辞旧岁、迎新年等各种庆贺新春活动达于高潮。炮竹声中辞旧岁,烟花满天迎新春。春节早晨开门大吉,先烧炮竹,叫做“开门炮仗”,送旧迎新。爆竹声后,碎红满地,灿若云锦,称为“满堂红”。正月初一迎新岁,拜岁。早上各家焚香致礼,敬天地、祭列祖,拜岁神。然后依次给尊长拜年,继而同族亲友互致祝贺。新年初一,人们都早早起来,穿上最漂亮的衣服,打扮得整整齐齐出门,恭祝新年大吉大利。《占书》中说,正月初一是“鸡日”。","activity":["开门炮仗","拜岁","祈年","拜年","占岁","聚财"]},{"name":"正月初二","alias":[],"friendlyDate":"农历正月初二","date":"1/2","calendar":"lunar","desc":"大年初二是开年日,早上拜祭天地神灵,祭礼完毕,烧炮、烧纸宝,然后吃“开年饭”。这餐“开年饭”一般备发菜、生菜、鱼等,意在取其生财利路之意。这天出嫁的女儿回娘家,要夫婿同行,所以俗称“迎婿日”。回娘家的女儿必须携带一些礼品和红包,分给娘家的小孩,并且在娘家吃午饭,但必须在晚饭前赶回婆家。《占书》中说,正月初二是“狗日”。","activity":["拜神","开年饭"]},{"name":"正月初三","alias":["大年初三","赤狗日"],"friendlyDate":"农历正月初三","date":"1/3","calendar":"lunar","desc":"大年初三又称赤狗日,与“赤口”同音,为熛怒之神,是上古五帝(东方青帝灵威仰、南方赤帝赤熛怒、中央黄帝含枢纽、西方白帝白招拒、北方黑帝汁先纪)之一,即南方之神,司夏天。俗以为是日赤熛怒下兄,遇之则不吉,故此,“小年朝”例应祀祖祭神。“赤口”通常不会外出拜年,传说这天容易与人发生口角争执。古时在中国南方民间,大年初三的早上要贴“赤口”(禁口),认为这一天里易生口角,不宜拜年。所谓“赤口”,一般是用约长七八寸、宽一寸的红纸条,上面写上一些出入平安吉利的话。总之,贴“赤口”,是使人们心理上觉得一年到头都能出入平安,不与人发生口角或各种不幸的灾难,家中多多招财进宝,万事如意。","activity":["烧门神纸"]},{"name":"正月初四","alias":["大年初四"],"friendlyDate":"农历正月初四","date":"1/4","calendar":"lunar","desc":"大年初四是祭财神的日子,迎神接神。《占书》中,传说正月初四是女娲造羊的日子,故称“羊日”,在这一天里,人们不能杀羊,如果天气好,则意味着这一年里,羊会养得很好,养羊的人家会有个好收成。","activity":["迎神接神","接五路","吃折罗","扔穷"]},{"name":"正月初五","alias":[],"friendlyDate":"农历正月初五","date":"1/5","calendar":"lunar","desc":"正月初五,按民间习俗是五路财神的生日,因此要迎接财神进家,保佑自家新的一年财源滚滚、年年有余。同时自然也是送走“穷”的日子,故有“送穷出门”一说。这一天又俗称“破五”,意思是之前几天的诸多禁忌至此就结束了。破五习俗除了以上禁忌外,主要是送穷,迎财神,开市贸易。北方民间有吃饺子的习俗,寓意着招财进宝。传说正月初五是“牛日”。","activity":["祭财神(南方)","送穷","开市"]},{"name":"正月初六","alias":["马日"],"friendlyDate":"农历正月初六","date":"1/6","calendar":"lunar","desc":"正月初六是“马日”,叫六六大顺。这一天,每家每户要把节日积存的垃圾扔出去,这叫送穷鬼。大年初六也是启市日,商店酒楼才正式开张营业,而且要大放鞭炮,不亚于除夕的境况。","activity":["送穷","启市"]},{"name":"正月初七","alias":["人日"],"friendlyDate":"农历正月初七","date":"1/7","calendar":"lunar","desc":"初七是人日,即人的生日,通常不外出拜年。《占书》说,由初一开始,上天创造万物的次序是“一鸡二狗、三猪四羊、五牛六马、七人八谷”,所以初七就是人日。从汉朝的文献开始有人日节俗的文字记载,魏晋后开始重视。古代人日有戴“人胜”的习俗,人胜是一种头饰,又叫彩胜、华胜。","activity":["熏天","吃七宝羹","送火神"]},{"name":"正月初八","alias":["开工日"],"friendlyDate":"农历正月初八","date":"1/8","calendar":"lunar","desc":"年初八是开工日,派发开工利是,是广东老板过年后第一天上班首要做的事;利是利是,寓意着一年都能利利是是,大红大紫。年初八前走亲访友拜年基本完毕,从年初八起民间便陆续开展敬神、游神、摆宗、舞狮、舞龙、飘色、游灯、做醮、标炮、做大戏以及各种文艺表演活动。传说初八是谷子的生日,这天天阴则年歉,天气晴朗则这一年稻谷丰收。","activity":["顺星","游神","做斋头","放生祈福"]},{"name":"正月初九","alias":["天日"],"friendlyDate":"农历正月初九","date":"1/9","calendar":"lunar","desc":"正月初九是天日,传说此日为天界最高神祇玉皇大帝生日,俗称“天公生”。有说“天公”就是“玉皇大帝”,道教称之为“四御”,是天界最高的神,他是统领三界十方诸神以及人间万灵的最高神,代表至高无上的“天”。主要习俗有祭玉皇、道观斋天等,有些地方,天日时妇女备清香花烛、斋碗,摆在天井巷口露天地方膜拜苍天,求天公赐福","activity":["祭玉皇","道观斋天"]},{"name":"正月初十","alias":["天日"],"friendlyDate":"农历正月初十","date":"1/10","calendar":"lunar","desc":"正月初十,南方部分地区有开灯的习俗,设开灯酒宴。河南风俗这一日家家向石头焚香致敬,认为“十”,谐音“石”,因此初十为石头生日,这天凡磨、碾等石制工具都不能动,甚至设祭享祀石头,恐伤庄稼。也称“石不动”“十不动”;午餐必食馍饼,认为吃饼一年之内便会财运亨通。在山东郓城等地有抬石头神之举。","activity":["开灯(南方)"]},{"name":"正月十一","alias":["子婿日"],"friendlyDate":"农历正月十一","date":"1/11","calendar":"lunar","desc":"正月十一“子婿日”,此日是岳父宴请子婿的日子。初九庆祝“天公生”剩下的食物,除了在初十吃了一天外,还剩下很多,所以娘家不必再破费,就利用这些剩下的美食招待女婿及女儿,民歌称为“十一请子婿”。","activity":["请子婿"]},{"name":"正月十二","alias":[],"friendlyDate":"农历正月十二","date":"1/12","calendar":"lunar","desc":"正月十二,搭灯棚,花灯酒会,做斋头,做醮,标炮等。从即日起人们开始准备庆祝元宵佳节,选购灯笼,搭盖灯棚,做醮,标炮。有童谣云:“十一嚷喳喳,十二搭灯棚,十三人开灯,十四灯正明,十五行月半,十六人完灯。”","activity":["搭灯棚"]},{"name":"正月十三、十四","alias":["灯头生日(正月十三)"],"friendlyDate":"农历正月十三、十四","date":"1/13 1/14","calendar":"lunar","desc":"正月十三、十四,舞狮、飘色、游神、逛庙会。有传说正月十三是“灯头生日”,民间在这一天要在厨灶下点灯,称为“点灶灯”。","activity":["点灶灯"]},{"name":"元宵节","alias":["正月十五"],"friendlyDate":"农历正月十五","date":"1/15","calendar":"lunar","desc":"正月十五,习俗活动主要有赏灯、游灯、押舟、烧炮、烧烟花、采青、闹元宵等。元宵节的节俗非常有特色,节期与节俗活动,也随历史的发展而延长扩展。元宵节习俗自古以来就以热闹喜庆的观灯习俗为主。","activity":["赏灯","游灯","押舟","烧炮","烧烟花","采青","闹元宵"]}],"activity":["办年货","祭灶","扫尘","割年肉","贴年红(挥春)","年夜饭|晚饭、团年饭","守岁","压岁钱","游神|圣驾巡游、游老爷、营老爷、游菩萨、游神赛会、年例、迎神、迎年、游春、行香、菩萨行乡、抬神像、神像出巡","拜岁","庙会","拜年","派利是","烧炮竹","舞狮"],"food":["年糕","饺子","汤圆","春卷"],"origin":"岁首祈年祭祀","meaning":"传承与弘扬传统文化","process":"","location":"","organization":"","startingTime":"上古时代","popularAreas":"中国,东亚、东南亚等华人华侨聚集地","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"文化和旅游部","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E6%98%A5%E8%8A%82/136876","poetry":[]},{"id":"Beginning of Spring","skip":false,"name":"立春","fullName":"立春","englishName":"Beginning of Spring","alias":["岁首","岁节","改岁","立春节","正月节"],"friendlyDate":"公历2月3日-2月5日交节","date":"~2/3-2/5","holidayDate":"放假日期 格式同上","calendar":"阳历/阴历 solar/lunar","friendlyType":"友好节日类型 多个用/分隔","type":"节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)","statutory":"是否法定节假日 boolean","solarTerms":"是否是二十四节气 boolean","solarTermsInfo":{"_":"如果不是二十四节气,solarTermsInfo 为 null","ecliptic":"黄道位置","climate":"气候特点","phenology":"物候现象","farming":"农事活动","tradition":"传统习俗","living":"起居养生","meaning":"含义"},"desc":"节日描述 xxx","subFestival":[],"activity":["节日活动 如果有别名,格式为:年夜饭|晚饭、团年饭"],"food":["节日饮食 如果有别名,格式为:青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团"],"origin":"节日起源","meaning":"节日意义","process":"节日流程","location":"节日设定地点","organization":"设立机构","startingTime":"设立时间/起源时期","popularAreas":"流行地区","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"非物质文化遗产保护单位","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"百度百科地址","poetry":[{"dynasty":"朝代 晋代/唐代/宋/...","status":"作者身份","author":"古诗作者 李白","name":"古诗名(不加书名号)","text":"古诗正文(片段)"}]},{"id":"Cold food festival","skip":false,"name":"寒食节","fullName":"寒食节","englishName":"Cold food festival","alias":["禁烟节","冷节","百五节","禁火节"],"friendlyDate":"清明节前一二日","date":"~4/3","holidayDate":"","calendar":"solar","friendlyType":"中国传统节日","type":"节日类型 Chinese","statutory":false,"solarTerms":false,"solarTermsInfo":null,"desc":"寒食节,中国传统节日,在夏历冬至后的105日,清明节前一二日。是日初为节时,禁烟火,只吃冷食。并在后世的发展中逐渐增加了祭扫、踏青、秋千、蹴鞠、牵勾、斗鸡等风俗,寒食节前后绵延两千余年,曾被称为中国民间第一大祭日。寒食节是汉族传统节日中唯一以饮食习俗来命名的节日。","subFestival":[],"activity":["祭扫","踏青","秋千","蹴鞠","牵勾","斗鸡","禁火","插柳","咏诗","净肠"],"food":["只吃冷食"],"origin":"祭祀","meaning":"为纪念介子推","process":"","location":"晋国","organization":"晋文公","startingTime":"春秋","popularAreas":"东亚文化圈","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E5%AF%92%E9%A3%9F%E8%8A%82/90690","poetry":[{"dynasty":"明代","status":"","author":"高启","name":"送陈秀才还沙上省墓","text":"满衣血泪与尘埃,乱后还乡亦可哀。风雨梨花寒食过,几家坟上子孙来?"},{"dynasty":"明末清初","status":"","author":"屈大均","name":"壬戌清明作","text":"朝作轻寒暮作阴,愁中不觉已春深。落花有泪因风雨,啼鸟无情自古今。故国江山徒梦寐,中华人物又销沉。龙蛇四海归无所,寒食年年怆客心。"},{"dynasty":"唐代","status":"","author":"伍唐珪","name":"寒食日献郡守","text":"入门堪笑复堪怜,三径苔荒一钓船。惭愧四邻教断火,不知厨里久无烟。"},{"dynasty":"唐代","status":"","author":"武元衡","name":"寒食下第","text":"柳挂九衢丝,花飘万家雪。如何憔悴人,对此芳菲节。"},{"dynasty":"唐代","status":"","author":"熊孺登","name":"寒食野望","text":"拜扫无过骨肉亲,一年唯此两三辰。冢头莫种有花树,春色不关泉下人。"},{"dynasty":"唐代","status":"","author":"来鹄","name":"寒食山馆书情","text":"独把一杯山馆中,每经时节恨飘蓬。侵阶草色连朝雨,满地梨花昨夜风。蜀魄啼来春寂寞,楚魂吟后月朦胧。分明记得还家梦,徐孺宅前湖水东。"},{"dynasty":"唐代","status":"","author":"贯休","name":"寒食郊外","text":"寒食将吾族,相随过石溪。冢花沾酒落,林鸟学人啼。白水穿芜疾,新霞出雾低。不堪回首望,家在赤松西。"},{"dynasty":"唐代","status":"","author":"张籍","name":"寒食看花","text":"早入公门到夜归,不因寒食少闲时。颠狂绕树猿离锁,踊跃缘冈马断羁。酒污衣裳从客笑,醉饶言语觅花知。老来自喜常无事,仰面西园得咏诗。"},{"dynasty":"唐代","status":"","author":"韩翃","name":"寒食","text":"春城无处不飞花,寒食东风御柳斜。日暮汉宫传蜡烛,轻烟散入五侯家。"}]},{"id":"Tomb-Sweeping Day","skip":false,"name":"清明节","fullName":"清明节","englishName":"Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day","alias":["踏青节","行清节","三月节","祭祖节"],"friendlyDate":"斗指乙,太阳黄经15°,公历4月5日前后","date":"~4/4-4/6","holidayDate":"","calendar":"solar","friendlyType":"中国四大传统节日之一/二十四节气之一","type":"Chinese-4/SolarTerms","statutory":true,"solarTerms":true,"solarTermsInfo":{"ecliptic":"太阳到达黄经15°","climate":"气温转暖、天气冷暖多变、多雨","phenology":"桐始华;田鼠化为鹌;虹始见","farming":"肥水管理、病虫防治","tradition":"扫墓、踏青,吃蒿饼、青团、馓子、清明螺","living":"护肝养肺","meaning":"天气晴朗、草木繁茂"},"desc":"清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。","subFestival":[],"activity":["踏青郊游","扫墓祭祖","植树","放风筝","插柳","拔河","荡秋千","斗鸡","射柳","蹴鞠","蚕花会"],"food":["祭祖金猪","鲜果茶点","青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团"],"origin":"干支历法、原始信仰、祭祀文化","meaning":"礼敬祖先,亲近自然","process":"清杂草、摆祭品、拜祭、鸣放鞭炮","location":"中国","organization":"","startingTime":"","popularAreas":"中国、东亚、东南亚等华人华侨聚集地","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"文化和旅游部","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E6%B8%85%E6%98%8E%E8%8A%82/137575","poetry":[{"dynasty":"唐代","status":"","author":"杜牧","name":"清明","text":"清明时节雨纷纷,路上行人欲断魂。借问酒家何处有?牧童遥指杏花村。"},{"dynasty":"清代","status":"","author":"厉鹗","name":"百字令·丁酉清明","text":"春光老去,恨年年心事,春能拘管。永日空园双燕语,折尽柳条长短。白眼看天,青袍似草,最觉当歌懒。愔愔门巷,落花早又吹满。凝想烟月当时,饧箫旧市,惯逐嬉春伴。一自笑桃人去后,几叶碧云深浅。乱掷榆钱,细垂桐乳,尚惹游丝转。望中何处?那堪天远山远!"},{"dynasty":"唐代","status":"","author":"张继","name":"闾门即事","text":"耕夫召募爱楼船,春草青青万项田。试上吴门窥郡郭,清明几处有新烟。"},{"dynasty":"宋代","status":"","author":"王禹俏","name":"清明","text":"无花无酒过清明,兴味萧然似野僧。昨日邻家乞新火,晓窗分与读书灯。"},{"dynasty":"宋代","status":"","author":"吴惟信","name":"苏堤清明即事","text":"梨花风起正清明,游子寻春半出城。日暮笙歌收拾去,万株杨柳属流莺。"},{"dynasty":"宋代","status":"","author":"杨万里","name":"寒食上冢","text":"迳直夫何细!桥危可免扶?远山枫外淡,破屋麦边孤。宿草春风又,新阡去岁无。梨花自寒食,进节只愁余。"},{"dynasty":"宋代","status":"","author":"程颢","name":"郊行即事","text":"芳草绿野恣行事,春入遥山碧四周。兴逐乱红穿柳巷,固因流水坐苔矶。莫辞盏酒十分劝,只恐风花一片红。况是清明好天气,不妨游衍莫忘归。"},{"dynasty":"明代","status":"","author":"王磐","name":"清江引 清明日出游","text":"问西楼禁烟何处好?绿野晴天道。马穿杨柳嘶,人倚秋千笑,探莺花总教春醉倒。"}]},{"id":"International Workers Day","skip":false,"name":"劳动节","fullName":"五一国际劳动节","englishName":"International Workers' Day / May Day","alias":["国际劳动节","国际示威游行日"],"friendlyDate":"公历5月1日","date":"5/1","holidayDate":"","calendar":"solar","type":"World","friendlyType":"世界上80多个国家的全国性节日","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"国际劳动节又称“五一国际劳动节”“国际示威游行日”,是世界上80多个国家的全国性节日。定在每年的五月一日。它是全世界劳动人民共同拥有的节日。","subFestival":[],"activity":[],"food":[],"origin":"1886年美国芝加哥城的工人大罢工","meaning":"劳动者争取到了合法权益","location":"","organization":"第二国际","startingTime":"1890年","popularAreas":"世界绝大部分国家","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E4%BA%94%E4%B8%80%E5%9B%BD%E9%99%85%E5%8A%B3%E5%8A%A8%E8%8A%82/810559","poetry":[]},{"id":"Dragon Boat Festival","skip":false,"name":"端午节","fullName":"端午节","englishName":"Dragon Boat Festival","alias":["端阳节","龙节","正阳节","龙舟节","天中节"],"friendlyDate":"农历五月初五","date":"5/5","holidayDate":"","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"端午节,又称端阳节、龙舟节、重五节、天中节等,是集拜神祭祖、祈福辟邪、欢庆娱乐和饮食为一体的民俗大节。端午节源于自然天象崇拜,由上古时代祭龙演变而来。仲夏端午,苍龙七宿飞升于正南中央,处在全年最“中正”之位,正如《易经·乾卦》第五爻:“飞龙在天”。端午是“飞龙在天”吉祥日,龙及龙舟文化始终贯穿在端午节的传承历史中。","subFestival":[],"activity":["扒龙船","放纸鸢","挂艾草菖蒲"],"food":["粽子","五黄","咸鸭蛋","绿豆糕"],"origin":"天象崇拜,龙图腾祭祀","meaning":"传承与弘扬非物质文化","process":"","location":"","organization":"","startingTime":"上古时代","popularAreas":"中国及汉字文化圈诸国","commemorator":["屈原","伍子胥","曹娥","介子推"],"intangibleCulturalHeritageProtectionUnit":"非物质文化遗产保护单位","nationalCulturalHeritage":"2006年5月20日列入第一批名录","worldCulturalHeritage":"2009年9月30日入选世界名录","baike":"https://baike.baidu.com/item/%E7%AB%AF%E5%8D%88%E8%8A%82/1054","poetry":[]},{"id":"Beginning of Autumn","skip":false,"name":"立秋","fullName":"立秋","englishName":"Beginning of Autumn","alias":[],"friendlyDate":"公历8月7日-8月8日交节","date":"~8/7-8/8","holidayDate":"","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"solarTermsInfo":{"ecliptic":"黄道位置","climate":"气候特点","phenology":"物候现象","farming":"农事活动","tradition":"传统习俗","living":"起居养生","meaning":"含义"},"desc":"今日立秋,立秋是阳气渐收,阴气渐长,由阳盛逐渐转变为阴盛的转折。","subFestival":[],"activity":["节日活动 如果有别名,格式为:年夜饭|晚饭、团年饭"],"food":["节日饮食 如果有别名,格式为:青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团"],"origin":"节日起源","meaning":"节日意义","process":"节日流程","location":"节日设定地点","organization":"设立机构","startingTime":"设立时间/起源时期","popularAreas":"流行地区","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"非物质文化遗产保护单位","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"百度百科地址","poetry":[{"dynasty":"朝代 晋代/唐代/宋/...","status":"作者身份","author":"古诗作者 李白","name":"古诗名(不加书名号)","text":"古诗正文(片段)"}]},{"id":"Mid-Autumn Festival","skip":false,"name":"中秋节","fullName":"中秋节","englishName":"Mid-Autumn Festival","alias":["祭月节","月光诞","月夕","秋节","仲秋节","拜月节","月娘节","月亮节","团圆节","秋夕"],"friendlyDate":"农历八月十五","date":"8/15","holidayDate":"","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"中秋节,又称祭月节、月光诞、月夕、秋节、仲秋节、拜月节、月娘节、月亮节、团圆节等,是中国民间传统节日。中秋节源自对天象的崇拜,由上古时代秋夕祭月演变而来。中秋节自古便有祭月、赏月、吃月饼、看花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。","subFestival":[],"activity":["拜月","赏月","舞火龙","玩花灯"],"food":["月饼"],"origin":"天象崇拜,秋夕祭月","meaning":"传承与弘扬传统文化","process":"","location":"","organization":"民间流传约定俗成","startingTime":"上古时代","popularAreas":"中国及周边国家或地区","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"文化和旅游部","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E4%B8%AD%E7%A7%8B%E8%8A%82/128234","poetry":[]},{"id":"the National Day of the Peoples Republic of China","skip":false,"name":"国庆节","fullName":"中华人民共和国国庆节","englishName":"the National Day of the People's Republic of China","alias":["十一","国庆节","国庆日","中国国庆节","国庆黄金周"],"friendlyDate":"公历10月1日","date":"10/1","holidayDate":"10/1-10/7","calendar":"solar","friendlyType":"国庆日","type":"Others","statutory":true,"solarTerms":false,"solarTermsInfo":null,"desc":"中华人民共和国中央人民政府宣布自1949年起,以每年的10月1日,即中华人民共和国宣告成立的日子,称为国庆节。","subFestival":[],"activity":["举国同庆","阅兵仪式","国庆长假"],"food":[],"origin":"中华人民共和国成立","meaning":"庆祝中华人民共和国成立","process":"","location":"中华人民共和国","organization":"中华人民共和国国务院","startingTime":"1950年","popularAreas":"中华人民共和国","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD%E5%9B%BD%E5%BA%86%E8%8A%82/1041892","poetry":[]},{"id":"Winter Solstice","skip":false,"name":"冬至","fullName":"冬至","englishName":"Winter Solstice","alias":["日南至","冬节","日短至","亚岁"],"friendlyDate":"公历12月21日-12月23日交节","date":"~12/21-12/23","holidayDate":"","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"solarTermsInfo":{"ecliptic":"太阳到达黄经270°","climate":"天寒地冻","phenology":"一候蚯蚓结;二候麋角解;三候水泉动。","farming":"兴修水利","tradition":"吃水饺、吃麻糍","living":"及时添衣,适当锻炼","meaning":""},"desc":"冬至,又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。","subFestival":[],"activity":[],"food":["吃水饺","吃麻糍"],"origin":"","meaning":"寒冷的冬天来临。","process":"","location":"","organization":"","startingTime":"","popularAreas":"","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E5%86%AC%E8%87%B3/9381","poetry":[]}] \ No newline at end of file diff --git a/dist/holiday.simplify.json b/dist/holiday.simplify.json index 952c12a..e730282 100644 --- a/dist/holiday.simplify.json +++ b/dist/holiday.simplify.json @@ -38,6 +38,26 @@ "solarTerms": false, "desc": "春节(Spring Festival),即中国农历新年,俗称新春、新岁、岁旦等,口头上又称过年、过大年。春节历史悠久,由上古时代岁首祈岁祭祀演变而来。万物本乎天、人本乎祖,祈岁祭祀、敬天法祖,报本反始也。春节的起源蕴含着深邃的文化内涵,在传承发展中承载了丰厚的历史文化底蕴。在春节期间,全国各地均有举行各种庆贺新春活动,带有浓郁的各地地方特色。这些活动以除旧布新、驱邪攘灾、拜神祭祖、纳福祈年为主要内容,形式丰富多彩,凝聚着中华传统文化精华。" }, + { + "name": "立春", + "fullName": "立春", + "englishName": "Beginning of Spring", + "alias": [ + "岁首", + "岁节", + "改岁", + "立春节", + "正月节" + ], + "friendlyDate": "公历2月3日-2月5日交节", + "date": "~2/3-2/5", + "calendar": "阳历/阴历 solar/lunar", + "friendlyType": "友好节日类型 多个用/分隔", + "type": "节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)", + "statutory": "是否法定节假日 boolean", + "solarTerms": "是否是二十四节气 boolean", + "desc": "节日描述 xxx" + }, { "name": "寒食节", "fullName": "寒食节", @@ -70,8 +90,8 @@ "friendlyDate": "斗指乙,太阳黄经15°,公历4月5日前后", "date": "~4/4-4/6", "calendar": "solar", - "friendlyType": "中国四大传统节日之一", - "type": "Chinese-4", + "friendlyType": "中国四大传统节日之一/二十四节气之一", + "type": "Chinese-4/SolarTerms", "statutory": true, "solarTerms": true, "desc": "清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。" @@ -113,6 +133,20 @@ "solarTerms": false, "desc": "端午节,又称端阳节、龙舟节、重五节、天中节等,是集拜神祭祖、祈福辟邪、欢庆娱乐和饮食为一体的民俗大节。端午节源于自然天象崇拜,由上古时代祭龙演变而来。仲夏端午,苍龙七宿飞升于正南中央,处在全年最“中正”之位,正如《易经·乾卦》第五爻:“飞龙在天”。端午是“飞龙在天”吉祥日,龙及龙舟文化始终贯穿在端午节的传承历史中。" }, + { + "name": "立秋", + "fullName": "立秋", + "englishName": "Beginning of Autumn", + "alias": [], + "friendlyDate": "公历8月7日-8月8日交节", + "date": "~8/7-8/8", + "calendar": "solar", + "friendlyType": "二十四节气之一", + "type": "SolarTerms", + "statutory": false, + "solarTerms": true, + "desc": "今日立秋,立秋是阳气渐收,阴气渐长,由阳盛逐渐转变为阴盛的转折。" + }, { "name": "中秋节", "fullName": "中秋节", diff --git a/dist/holiday.simplify.min.json b/dist/holiday.simplify.min.json index 3fbfb96..e51f34f 100644 --- a/dist/holiday.simplify.min.json +++ b/dist/holiday.simplify.min.json @@ -1 +1 @@ -[{"name":"元旦","fullName":"元旦","englishName":"New Year","alias":["公历年","新历年","阳历年"],"friendlyDate":"公历1月1日","date":"1/1","calendar":"solar","friendlyType":"世界节日","type":"World","statutory":true,"solarTerms":false,"desc":"元旦,即公历的1月1日,是世界多数国家通称的“新年”。元,谓“始”,凡数之始称为“元”;旦,谓“日”;“元旦”即“初始之日”的意思。“元旦”通常指历法中的首月首日。"},{"name":"春节","fullName":"春节","englishName":"Spring Festival / Chinese New Year","alias":["新春","岁节","年节","新禧","新年","大年"],"friendlyDate":"农历正月初一","date":"1/1","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"desc":"春节(Spring Festival),即中国农历新年,俗称新春、新岁、岁旦等,口头上又称过年、过大年。春节历史悠久,由上古时代岁首祈岁祭祀演变而来。万物本乎天、人本乎祖,祈岁祭祀、敬天法祖,报本反始也。春节的起源蕴含着深邃的文化内涵,在传承发展中承载了丰厚的历史文化底蕴。在春节期间,全国各地均有举行各种庆贺新春活动,带有浓郁的各地地方特色。这些活动以除旧布新、驱邪攘灾、拜神祭祖、纳福祈年为主要内容,形式丰富多彩,凝聚着中华传统文化精华。"},{"name":"寒食节","fullName":"寒食节","englishName":"Cold food festival","alias":["禁烟节","冷节","百五节","禁火节"],"friendlyDate":"清明节前一二日","date":"~4/3","calendar":"solar","friendlyType":"中国传统节日","type":"节日类型 Chinese","statutory":false,"solarTerms":false,"desc":"寒食节,中国传统节日,在夏历冬至后的105日,清明节前一二日。是日初为节时,禁烟火,只吃冷食。并在后世的发展中逐渐增加了祭扫、踏青、秋千、蹴鞠、牵勾、斗鸡等风俗,寒食节前后绵延两千余年,曾被称为中国民间第一大祭日。寒食节是汉族传统节日中唯一以饮食习俗来命名的节日。"},{"name":"清明节","fullName":"清明节","englishName":"Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day","alias":["踏青节","行清节","三月节","祭祖节"],"friendlyDate":"斗指乙,太阳黄经15°,公历4月5日前后","date":"~4/4-4/6","calendar":"solar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":true,"desc":"清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。"},{"name":"劳动节","fullName":"五一国际劳动节","englishName":"International Workers' Day / May Day","alias":["国际劳动节","国际示威游行日"],"friendlyDate":"公历5月1日","date":"5/1","calendar":"solar","friendlyType":"世界上80多个国家的全国性节日","type":"World","statutory":true,"solarTerms":false,"desc":"国际劳动节又称“五一国际劳动节”“国际示威游行日”,是世界上80多个国家的全国性节日。定在每年的五月一日。它是全世界劳动人民共同拥有的节日。"},{"name":"端午节","fullName":"端午节","englishName":"Dragon Boat Festival","alias":["端阳节","龙节","正阳节","龙舟节","天中节"],"friendlyDate":"农历五月初五","date":"5/5","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"desc":"端午节,又称端阳节、龙舟节、重五节、天中节等,是集拜神祭祖、祈福辟邪、欢庆娱乐和饮食为一体的民俗大节。端午节源于自然天象崇拜,由上古时代祭龙演变而来。仲夏端午,苍龙七宿飞升于正南中央,处在全年最“中正”之位,正如《易经·乾卦》第五爻:“飞龙在天”。端午是“飞龙在天”吉祥日,龙及龙舟文化始终贯穿在端午节的传承历史中。"},{"name":"中秋节","fullName":"中秋节","englishName":"Mid-Autumn Festival","alias":["祭月节","月光诞","月夕","秋节","仲秋节","拜月节","月娘节","月亮节","团圆节","秋夕"],"friendlyDate":"农历八月十五","date":"8/15","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"desc":"中秋节,又称祭月节、月光诞、月夕、秋节、仲秋节、拜月节、月娘节、月亮节、团圆节等,是中国民间传统节日。中秋节源自对天象的崇拜,由上古时代秋夕祭月演变而来。中秋节自古便有祭月、赏月、吃月饼、看花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。"},{"name":"国庆节","fullName":"中华人民共和国国庆节","englishName":"the National Day of the People's Republic of China","alias":["十一","国庆节","国庆日","中国国庆节","国庆黄金周"],"friendlyDate":"公历10月1日","date":"10/1","calendar":"solar","friendlyType":"国庆日","type":"Others","statutory":true,"solarTerms":false,"desc":"中华人民共和国中央人民政府宣布自1949年起,以每年的10月1日,即中华人民共和国宣告成立的日子,称为国庆节。"},{"name":"冬至","fullName":"冬至","englishName":"Winter Solstice","alias":["日南至","冬节","日短至","亚岁"],"friendlyDate":"公历12月21日-12月23日交节","date":"~12/21-12/23","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"desc":"冬至,又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。"}] \ No newline at end of file +[{"name":"元旦","fullName":"元旦","englishName":"New Year","alias":["公历年","新历年","阳历年"],"friendlyDate":"公历1月1日","date":"1/1","calendar":"solar","friendlyType":"世界节日","type":"World","statutory":true,"solarTerms":false,"desc":"元旦,即公历的1月1日,是世界多数国家通称的“新年”。元,谓“始”,凡数之始称为“元”;旦,谓“日”;“元旦”即“初始之日”的意思。“元旦”通常指历法中的首月首日。"},{"name":"春节","fullName":"春节","englishName":"Spring Festival / Chinese New Year","alias":["新春","岁节","年节","新禧","新年","大年"],"friendlyDate":"农历正月初一","date":"1/1","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"desc":"春节(Spring Festival),即中国农历新年,俗称新春、新岁、岁旦等,口头上又称过年、过大年。春节历史悠久,由上古时代岁首祈岁祭祀演变而来。万物本乎天、人本乎祖,祈岁祭祀、敬天法祖,报本反始也。春节的起源蕴含着深邃的文化内涵,在传承发展中承载了丰厚的历史文化底蕴。在春节期间,全国各地均有举行各种庆贺新春活动,带有浓郁的各地地方特色。这些活动以除旧布新、驱邪攘灾、拜神祭祖、纳福祈年为主要内容,形式丰富多彩,凝聚着中华传统文化精华。"},{"name":"立春","fullName":"立春","englishName":"Beginning of Spring","alias":["岁首","岁节","改岁","立春节","正月节"],"friendlyDate":"公历2月3日-2月5日交节","date":"~2/3-2/5","calendar":"阳历/阴历 solar/lunar","friendlyType":"友好节日类型 多个用/分隔","type":"节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)","statutory":"是否法定节假日 boolean","solarTerms":"是否是二十四节气 boolean","desc":"节日描述 xxx"},{"name":"寒食节","fullName":"寒食节","englishName":"Cold food festival","alias":["禁烟节","冷节","百五节","禁火节"],"friendlyDate":"清明节前一二日","date":"~4/3","calendar":"solar","friendlyType":"中国传统节日","type":"节日类型 Chinese","statutory":false,"solarTerms":false,"desc":"寒食节,中国传统节日,在夏历冬至后的105日,清明节前一二日。是日初为节时,禁烟火,只吃冷食。并在后世的发展中逐渐增加了祭扫、踏青、秋千、蹴鞠、牵勾、斗鸡等风俗,寒食节前后绵延两千余年,曾被称为中国民间第一大祭日。寒食节是汉族传统节日中唯一以饮食习俗来命名的节日。"},{"name":"清明节","fullName":"清明节","englishName":"Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day","alias":["踏青节","行清节","三月节","祭祖节"],"friendlyDate":"斗指乙,太阳黄经15°,公历4月5日前后","date":"~4/4-4/6","calendar":"solar","friendlyType":"中国四大传统节日之一/二十四节气之一","type":"Chinese-4/SolarTerms","statutory":true,"solarTerms":true,"desc":"清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。"},{"name":"劳动节","fullName":"五一国际劳动节","englishName":"International Workers' Day / May Day","alias":["国际劳动节","国际示威游行日"],"friendlyDate":"公历5月1日","date":"5/1","calendar":"solar","friendlyType":"世界上80多个国家的全国性节日","type":"World","statutory":true,"solarTerms":false,"desc":"国际劳动节又称“五一国际劳动节”“国际示威游行日”,是世界上80多个国家的全国性节日。定在每年的五月一日。它是全世界劳动人民共同拥有的节日。"},{"name":"端午节","fullName":"端午节","englishName":"Dragon Boat Festival","alias":["端阳节","龙节","正阳节","龙舟节","天中节"],"friendlyDate":"农历五月初五","date":"5/5","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"desc":"端午节,又称端阳节、龙舟节、重五节、天中节等,是集拜神祭祖、祈福辟邪、欢庆娱乐和饮食为一体的民俗大节。端午节源于自然天象崇拜,由上古时代祭龙演变而来。仲夏端午,苍龙七宿飞升于正南中央,处在全年最“中正”之位,正如《易经·乾卦》第五爻:“飞龙在天”。端午是“飞龙在天”吉祥日,龙及龙舟文化始终贯穿在端午节的传承历史中。"},{"name":"立秋","fullName":"立秋","englishName":"Beginning of Autumn","alias":[],"friendlyDate":"公历8月7日-8月8日交节","date":"~8/7-8/8","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"desc":"今日立秋,立秋是阳气渐收,阴气渐长,由阳盛逐渐转变为阴盛的转折。"},{"name":"中秋节","fullName":"中秋节","englishName":"Mid-Autumn Festival","alias":["祭月节","月光诞","月夕","秋节","仲秋节","拜月节","月娘节","月亮节","团圆节","秋夕"],"friendlyDate":"农历八月十五","date":"8/15","calendar":"lunar","friendlyType":"中国四大传统节日之一","type":"Chinese-4","statutory":true,"solarTerms":false,"desc":"中秋节,又称祭月节、月光诞、月夕、秋节、仲秋节、拜月节、月娘节、月亮节、团圆节等,是中国民间传统节日。中秋节源自对天象的崇拜,由上古时代秋夕祭月演变而来。中秋节自古便有祭月、赏月、吃月饼、看花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。"},{"name":"国庆节","fullName":"中华人民共和国国庆节","englishName":"the National Day of the People's Republic of China","alias":["十一","国庆节","国庆日","中国国庆节","国庆黄金周"],"friendlyDate":"公历10月1日","date":"10/1","calendar":"solar","friendlyType":"国庆日","type":"Others","statutory":true,"solarTerms":false,"desc":"中华人民共和国中央人民政府宣布自1949年起,以每年的10月1日,即中华人民共和国宣告成立的日子,称为国庆节。"},{"name":"冬至","fullName":"冬至","englishName":"Winter Solstice","alias":["日南至","冬节","日短至","亚岁"],"friendlyDate":"公历12月21日-12月23日交节","date":"~12/21-12/23","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"desc":"冬至,又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。"}] \ No newline at end of file diff --git a/dist/holiday.solarTerms.json b/dist/holiday.solarTerms.json new file mode 100644 index 0000000..516df9a --- /dev/null +++ b/dist/holiday.solarTerms.json @@ -0,0 +1,287 @@ +[ + { + "id": "Beginning of Spring", + "skip": false, + "name": "立春", + "fullName": "立春", + "englishName": "Beginning of Spring", + "alias": [ + "岁首", + "岁节", + "改岁", + "立春节", + "正月节" + ], + "friendlyDate": "公历2月3日-2月5日交节", + "date": "~2/3-2/5", + "holidayDate": "放假日期 格式同上", + "calendar": "阳历/阴历 solar/lunar", + "friendlyType": "友好节日类型 多个用/分隔", + "type": "节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)", + "statutory": "是否法定节假日 boolean", + "solarTerms": "是否是二十四节气 boolean", + "solarTermsInfo": { + "_": "如果不是二十四节气,solarTermsInfo 为 null", + "ecliptic": "黄道位置", + "climate": "气候特点", + "phenology": "物候现象", + "farming": "农事活动", + "tradition": "传统习俗", + "living": "起居养生", + "meaning": "含义" + }, + "desc": "节日描述 xxx", + "subFestival": [], + "activity": [ + "节日活动 如果有别名,格式为:年夜饭|晚饭、团年饭" + ], + "food": [ + "节日饮食 如果有别名,格式为:青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团" + ], + "origin": "节日起源", + "meaning": "节日意义", + "process": "节日流程", + "location": "节日设定地点", + "organization": "设立机构", + "startingTime": "设立时间/起源时期", + "popularAreas": "流行地区", + "commemorator": [], + "intangibleCulturalHeritageProtectionUnit": "非物质文化遗产保护单位", + "nationalCulturalHeritage": "", + "worldCulturalHeritage": "", + "baike": "百度百科地址", + "poetry": [ + { + "dynasty": "朝代 晋代/唐代/宋/...", + "status": "作者身份", + "author": "古诗作者 李白", + "name": "古诗名(不加书名号)", + "text": "古诗正文(片段)" + } + ] + }, + { + "id": "Tomb-Sweeping Day", + "skip": false, + "name": "清明节", + "fullName": "清明节", + "englishName": "Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day", + "alias": [ + "踏青节", + "行清节", + "三月节", + "祭祖节" + ], + "friendlyDate": "斗指乙,太阳黄经15°,公历4月5日前后", + "date": "~4/4-4/6", + "holidayDate": "", + "calendar": "solar", + "friendlyType": "中国四大传统节日之一/二十四节气之一", + "type": "Chinese-4/SolarTerms", + "statutory": true, + "solarTerms": true, + "solarTermsInfo": { + "ecliptic": "太阳到达黄经15°", + "climate": "气温转暖、天气冷暖多变、多雨", + "phenology": "桐始华;田鼠化为鹌;虹始见", + "farming": "肥水管理、病虫防治", + "tradition": "扫墓、踏青,吃蒿饼、青团、馓子、清明螺", + "living": "护肝养肺", + "meaning": "天气晴朗、草木繁茂" + }, + "desc": "清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。", + "subFestival": [], + "activity": [ + "踏青郊游", + "扫墓祭祖", + "植树", + "放风筝", + "插柳", + "拔河", + "荡秋千", + "斗鸡", + "射柳", + "蹴鞠", + "蚕花会" + ], + "food": [ + "祭祖金猪", + "鲜果茶点", + "青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团" + ], + "origin": "干支历法、原始信仰、祭祀文化", + "meaning": "礼敬祖先,亲近自然", + "process": "清杂草、摆祭品、拜祭、鸣放鞭炮", + "location": "中国", + "organization": "", + "startingTime": "", + "popularAreas": "中国、东亚、东南亚等华人华侨聚集地", + "commemorator": [], + "intangibleCulturalHeritageProtectionUnit": "文化和旅游部", + "nationalCulturalHeritage": "", + "worldCulturalHeritage": "", + "baike": "https://baike.baidu.com/item/%E6%B8%85%E6%98%8E%E8%8A%82/137575", + "poetry": [ + { + "dynasty": "唐代", + "status": "", + "author": "杜牧", + "name": "清明", + "text": "清明时节雨纷纷,路上行人欲断魂。借问酒家何处有?牧童遥指杏花村。" + }, + { + "dynasty": "清代", + "status": "", + "author": "厉鹗", + "name": "百字令·丁酉清明", + "text": "春光老去,恨年年心事,春能拘管。永日空园双燕语,折尽柳条长短。白眼看天,青袍似草,最觉当歌懒。愔愔门巷,落花早又吹满。凝想烟月当时,饧箫旧市,惯逐嬉春伴。一自笑桃人去后,几叶碧云深浅。乱掷榆钱,细垂桐乳,尚惹游丝转。望中何处?那堪天远山远!" + }, + { + "dynasty": "唐代", + "status": "", + "author": "张继", + "name": "闾门即事", + "text": "耕夫召募爱楼船,春草青青万项田。试上吴门窥郡郭,清明几处有新烟。" + }, + { + "dynasty": "宋代", + "status": "", + "author": "王禹俏", + "name": "清明", + "text": "无花无酒过清明,兴味萧然似野僧。昨日邻家乞新火,晓窗分与读书灯。" + }, + { + "dynasty": "宋代", + "status": "", + "author": "吴惟信", + "name": "苏堤清明即事", + "text": "梨花风起正清明,游子寻春半出城。日暮笙歌收拾去,万株杨柳属流莺。" + }, + { + "dynasty": "宋代", + "status": "", + "author": "杨万里", + "name": "寒食上冢", + "text": "迳直夫何细!桥危可免扶?远山枫外淡,破屋麦边孤。宿草春风又,新阡去岁无。梨花自寒食,进节只愁余。" + }, + { + "dynasty": "宋代", + "status": "", + "author": "程颢", + "name": "郊行即事", + "text": "芳草绿野恣行事,春入遥山碧四周。兴逐乱红穿柳巷,固因流水坐苔矶。莫辞盏酒十分劝,只恐风花一片红。况是清明好天气,不妨游衍莫忘归。" + }, + { + "dynasty": "明代", + "status": "", + "author": "王磐", + "name": "清江引 清明日出游", + "text": "问西楼禁烟何处好?绿野晴天道。马穿杨柳嘶,人倚秋千笑,探莺花总教春醉倒。" + } + ] + }, + { + "id": "Beginning of Autumn", + "skip": false, + "name": "立秋", + "fullName": "立秋", + "englishName": "Beginning of Autumn", + "alias": [], + "friendlyDate": "公历8月7日-8月8日交节", + "date": "~8/7-8/8", + "holidayDate": "", + "calendar": "solar", + "friendlyType": "二十四节气之一", + "type": "SolarTerms", + "statutory": false, + "solarTerms": true, + "solarTermsInfo": { + "ecliptic": "黄道位置", + "climate": "气候特点", + "phenology": "物候现象", + "farming": "农事活动", + "tradition": "传统习俗", + "living": "起居养生", + "meaning": "含义" + }, + "desc": "今日立秋,立秋是阳气渐收,阴气渐长,由阳盛逐渐转变为阴盛的转折。", + "subFestival": [], + "activity": [ + "节日活动 如果有别名,格式为:年夜饭|晚饭、团年饭" + ], + "food": [ + "节日饮食 如果有别名,格式为:青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团" + ], + "origin": "节日起源", + "meaning": "节日意义", + "process": "节日流程", + "location": "节日设定地点", + "organization": "设立机构", + "startingTime": "设立时间/起源时期", + "popularAreas": "流行地区", + "commemorator": [], + "intangibleCulturalHeritageProtectionUnit": "非物质文化遗产保护单位", + "nationalCulturalHeritage": "", + "worldCulturalHeritage": "", + "baike": "百度百科地址", + "poetry": [ + { + "dynasty": "朝代 晋代/唐代/宋/...", + "status": "作者身份", + "author": "古诗作者 李白", + "name": "古诗名(不加书名号)", + "text": "古诗正文(片段)" + } + ] + }, + { + "id": "Winter Solstice", + "skip": false, + "name": "冬至", + "fullName": "冬至", + "englishName": "Winter Solstice", + "alias": [ + "日南至", + "冬节", + "日短至", + "亚岁" + ], + "friendlyDate": "公历12月21日-12月23日交节", + "date": "~12/21-12/23", + "holidayDate": "", + "calendar": "solar", + "friendlyType": "二十四节气之一", + "type": "SolarTerms", + "statutory": false, + "solarTerms": true, + "solarTermsInfo": { + "ecliptic": "太阳到达黄经270°", + "climate": "天寒地冻", + "phenology": "一候蚯蚓结;二候麋角解;三候水泉动。", + "farming": "兴修水利", + "tradition": "吃水饺、吃麻糍", + "living": "及时添衣,适当锻炼", + "meaning": "" + }, + "desc": "冬至,又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。", + "subFestival": [], + "activity": [], + "food": [ + "吃水饺", + "吃麻糍" + ], + "origin": "", + "meaning": "寒冷的冬天来临。", + "process": "", + "location": "", + "organization": "", + "startingTime": "", + "popularAreas": "", + "commemorator": [], + "intangibleCulturalHeritageProtectionUnit": "", + "nationalCulturalHeritage": "", + "worldCulturalHeritage": "", + "baike": "https://baike.baidu.com/item/%E5%86%AC%E8%87%B3/9381", + "poetry": [] + } +] \ No newline at end of file diff --git a/dist/holiday.solarTerms.min.json b/dist/holiday.solarTerms.min.json new file mode 100644 index 0000000..16dcc9c --- /dev/null +++ b/dist/holiday.solarTerms.min.json @@ -0,0 +1 @@ +[{"id":"Beginning of Spring","skip":false,"name":"立春","fullName":"立春","englishName":"Beginning of Spring","alias":["岁首","岁节","改岁","立春节","正月节"],"friendlyDate":"公历2月3日-2月5日交节","date":"~2/3-2/5","holidayDate":"放假日期 格式同上","calendar":"阳历/阴历 solar/lunar","friendlyType":"友好节日类型 多个用/分隔","type":"节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)","statutory":"是否法定节假日 boolean","solarTerms":"是否是二十四节气 boolean","solarTermsInfo":{"_":"如果不是二十四节气,solarTermsInfo 为 null","ecliptic":"黄道位置","climate":"气候特点","phenology":"物候现象","farming":"农事活动","tradition":"传统习俗","living":"起居养生","meaning":"含义"},"desc":"节日描述 xxx","subFestival":[],"activity":["节日活动 如果有别名,格式为:年夜饭|晚饭、团年饭"],"food":["节日饮食 如果有别名,格式为:青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团"],"origin":"节日起源","meaning":"节日意义","process":"节日流程","location":"节日设定地点","organization":"设立机构","startingTime":"设立时间/起源时期","popularAreas":"流行地区","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"非物质文化遗产保护单位","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"百度百科地址","poetry":[{"dynasty":"朝代 晋代/唐代/宋/...","status":"作者身份","author":"古诗作者 李白","name":"古诗名(不加书名号)","text":"古诗正文(片段)"}]},{"id":"Tomb-Sweeping Day","skip":false,"name":"清明节","fullName":"清明节","englishName":"Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day","alias":["踏青节","行清节","三月节","祭祖节"],"friendlyDate":"斗指乙,太阳黄经15°,公历4月5日前后","date":"~4/4-4/6","holidayDate":"","calendar":"solar","friendlyType":"中国四大传统节日之一/二十四节气之一","type":"Chinese-4/SolarTerms","statutory":true,"solarTerms":true,"solarTermsInfo":{"ecliptic":"太阳到达黄经15°","climate":"气温转暖、天气冷暖多变、多雨","phenology":"桐始华;田鼠化为鹌;虹始见","farming":"肥水管理、病虫防治","tradition":"扫墓、踏青,吃蒿饼、青团、馓子、清明螺","living":"护肝养肺","meaning":"天气晴朗、草木繁茂"},"desc":"清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。","subFestival":[],"activity":["踏青郊游","扫墓祭祖","植树","放风筝","插柳","拔河","荡秋千","斗鸡","射柳","蹴鞠","蚕花会"],"food":["祭祖金猪","鲜果茶点","青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团"],"origin":"干支历法、原始信仰、祭祀文化","meaning":"礼敬祖先,亲近自然","process":"清杂草、摆祭品、拜祭、鸣放鞭炮","location":"中国","organization":"","startingTime":"","popularAreas":"中国、东亚、东南亚等华人华侨聚集地","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"文化和旅游部","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E6%B8%85%E6%98%8E%E8%8A%82/137575","poetry":[{"dynasty":"唐代","status":"","author":"杜牧","name":"清明","text":"清明时节雨纷纷,路上行人欲断魂。借问酒家何处有?牧童遥指杏花村。"},{"dynasty":"清代","status":"","author":"厉鹗","name":"百字令·丁酉清明","text":"春光老去,恨年年心事,春能拘管。永日空园双燕语,折尽柳条长短。白眼看天,青袍似草,最觉当歌懒。愔愔门巷,落花早又吹满。凝想烟月当时,饧箫旧市,惯逐嬉春伴。一自笑桃人去后,几叶碧云深浅。乱掷榆钱,细垂桐乳,尚惹游丝转。望中何处?那堪天远山远!"},{"dynasty":"唐代","status":"","author":"张继","name":"闾门即事","text":"耕夫召募爱楼船,春草青青万项田。试上吴门窥郡郭,清明几处有新烟。"},{"dynasty":"宋代","status":"","author":"王禹俏","name":"清明","text":"无花无酒过清明,兴味萧然似野僧。昨日邻家乞新火,晓窗分与读书灯。"},{"dynasty":"宋代","status":"","author":"吴惟信","name":"苏堤清明即事","text":"梨花风起正清明,游子寻春半出城。日暮笙歌收拾去,万株杨柳属流莺。"},{"dynasty":"宋代","status":"","author":"杨万里","name":"寒食上冢","text":"迳直夫何细!桥危可免扶?远山枫外淡,破屋麦边孤。宿草春风又,新阡去岁无。梨花自寒食,进节只愁余。"},{"dynasty":"宋代","status":"","author":"程颢","name":"郊行即事","text":"芳草绿野恣行事,春入遥山碧四周。兴逐乱红穿柳巷,固因流水坐苔矶。莫辞盏酒十分劝,只恐风花一片红。况是清明好天气,不妨游衍莫忘归。"},{"dynasty":"明代","status":"","author":"王磐","name":"清江引 清明日出游","text":"问西楼禁烟何处好?绿野晴天道。马穿杨柳嘶,人倚秋千笑,探莺花总教春醉倒。"}]},{"id":"Beginning of Autumn","skip":false,"name":"立秋","fullName":"立秋","englishName":"Beginning of Autumn","alias":[],"friendlyDate":"公历8月7日-8月8日交节","date":"~8/7-8/8","holidayDate":"","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"solarTermsInfo":{"ecliptic":"黄道位置","climate":"气候特点","phenology":"物候现象","farming":"农事活动","tradition":"传统习俗","living":"起居养生","meaning":"含义"},"desc":"今日立秋,立秋是阳气渐收,阴气渐长,由阳盛逐渐转变为阴盛的转折。","subFestival":[],"activity":["节日活动 如果有别名,格式为:年夜饭|晚饭、团年饭"],"food":["节日饮食 如果有别名,格式为:青团(南方)|清明饼、棉菜馍糍、茨壳粿、清明粑、艾叶粑粑、艾糍、清明果、菠菠粿、清明粿、艾叶糍粑、艾粄、艾草糕、清明团子、暖菇包、艾草青团"],"origin":"节日起源","meaning":"节日意义","process":"节日流程","location":"节日设定地点","organization":"设立机构","startingTime":"设立时间/起源时期","popularAreas":"流行地区","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"非物质文化遗产保护单位","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"百度百科地址","poetry":[{"dynasty":"朝代 晋代/唐代/宋/...","status":"作者身份","author":"古诗作者 李白","name":"古诗名(不加书名号)","text":"古诗正文(片段)"}]},{"id":"Winter Solstice","skip":false,"name":"冬至","fullName":"冬至","englishName":"Winter Solstice","alias":["日南至","冬节","日短至","亚岁"],"friendlyDate":"公历12月21日-12月23日交节","date":"~12/21-12/23","holidayDate":"","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"solarTermsInfo":{"ecliptic":"太阳到达黄经270°","climate":"天寒地冻","phenology":"一候蚯蚓结;二候麋角解;三候水泉动。","farming":"兴修水利","tradition":"吃水饺、吃麻糍","living":"及时添衣,适当锻炼","meaning":""},"desc":"冬至,又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。","subFestival":[],"activity":[],"food":["吃水饺","吃麻糍"],"origin":"","meaning":"寒冷的冬天来临。","process":"","location":"","organization":"","startingTime":"","popularAreas":"","commemorator":[],"intangibleCulturalHeritageProtectionUnit":"","nationalCulturalHeritage":"","worldCulturalHeritage":"","baike":"https://baike.baidu.com/item/%E5%86%AC%E8%87%B3/9381","poetry":[]}] \ No newline at end of file diff --git a/dist/holiday.solarTerms.simplify.json b/dist/holiday.solarTerms.simplify.json new file mode 100644 index 0000000..36f4e63 --- /dev/null +++ b/dist/holiday.solarTerms.simplify.json @@ -0,0 +1,74 @@ +[ + { + "name": "立春", + "fullName": "立春", + "englishName": "Beginning of Spring", + "alias": [ + "岁首", + "岁节", + "改岁", + "立春节", + "正月节" + ], + "friendlyDate": "公历2月3日-2月5日交节", + "date": "~2/3-2/5", + "calendar": "阳历/阴历 solar/lunar", + "friendlyType": "友好节日类型 多个用/分隔", + "type": "节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)", + "statutory": "是否法定节假日 boolean", + "solarTerms": "是否是二十四节气 boolean", + "desc": "节日描述 xxx" + }, + { + "name": "清明节", + "fullName": "清明节", + "englishName": "Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day", + "alias": [ + "踏青节", + "行清节", + "三月节", + "祭祖节" + ], + "friendlyDate": "斗指乙,太阳黄经15°,公历4月5日前后", + "date": "~4/4-4/6", + "calendar": "solar", + "friendlyType": "中国四大传统节日之一/二十四节气之一", + "type": "Chinese-4/SolarTerms", + "statutory": true, + "solarTerms": true, + "desc": "清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。" + }, + { + "name": "立秋", + "fullName": "立秋", + "englishName": "Beginning of Autumn", + "alias": [], + "friendlyDate": "公历8月7日-8月8日交节", + "date": "~8/7-8/8", + "calendar": "solar", + "friendlyType": "二十四节气之一", + "type": "SolarTerms", + "statutory": false, + "solarTerms": true, + "desc": "今日立秋,立秋是阳气渐收,阴气渐长,由阳盛逐渐转变为阴盛的转折。" + }, + { + "name": "冬至", + "fullName": "冬至", + "englishName": "Winter Solstice", + "alias": [ + "日南至", + "冬节", + "日短至", + "亚岁" + ], + "friendlyDate": "公历12月21日-12月23日交节", + "date": "~12/21-12/23", + "calendar": "solar", + "friendlyType": "二十四节气之一", + "type": "SolarTerms", + "statutory": false, + "solarTerms": true, + "desc": "冬至,又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。" + } +] \ No newline at end of file diff --git a/dist/holiday.solarTerms.simplify.min.json b/dist/holiday.solarTerms.simplify.min.json new file mode 100644 index 0000000..b910804 --- /dev/null +++ b/dist/holiday.solarTerms.simplify.min.json @@ -0,0 +1 @@ +[{"name":"立春","fullName":"立春","englishName":"Beginning of Spring","alias":["岁首","岁节","改岁","立春节","正月节"],"friendlyDate":"公历2月3日-2月5日交节","date":"~2/3-2/5","calendar":"阳历/阴历 solar/lunar","friendlyType":"友好节日类型 多个用/分隔","type":"节日类型 多个用/分隔 Chinese/Chinese-4/Western/World/SolarTerms/Others(中国传统节日/中国四大传统节日/西方传统节日/世界节日|国际节日/二十四节气/其他类型)","statutory":"是否法定节假日 boolean","solarTerms":"是否是二十四节气 boolean","desc":"节日描述 xxx"},{"name":"清明节","fullName":"清明节","englishName":"Tomb-Sweeping Day / The Pure Brightness Day / The Mourning Day","alias":["踏青节","行清节","三月节","祭祖节"],"friendlyDate":"斗指乙,太阳黄经15°,公历4月5日前后","date":"~4/4-4/6","calendar":"solar","friendlyType":"中国四大传统节日之一/二十四节气之一","type":"Chinese-4/SolarTerms","statutory":true,"solarTerms":true,"desc":"清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。清明节源自上古时代的祖先信仰与春祭礼俗,是中华民族最隆重盛大的祭祖大节。清明节兼具自然与人文两大内涵,既是自然节气点,也是传统节日,扫墓祭祖与踏青郊游是清明节的两大礼俗主题,这两大传统礼俗主题在中国自古传承,至今不辍。"},{"name":"立秋","fullName":"立秋","englishName":"Beginning of Autumn","alias":[],"friendlyDate":"公历8月7日-8月8日交节","date":"~8/7-8/8","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"desc":"今日立秋,立秋是阳气渐收,阴气渐长,由阳盛逐渐转变为阴盛的转折。"},{"name":"冬至","fullName":"冬至","englishName":"Winter Solstice","alias":["日南至","冬节","日短至","亚岁"],"friendlyDate":"公历12月21日-12月23日交节","date":"~12/21-12/23","calendar":"solar","friendlyType":"二十四节气之一","type":"SolarTerms","statutory":false,"solarTerms":true,"desc":"冬至,又称日南至、冬节、亚岁等,兼具自然与人文两大内涵,既是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。"}] \ No newline at end of file diff --git a/html/assets/lib/axios.min.js b/html/assets/lib/axios.min.js new file mode 100644 index 0000000..1f67e00 --- /dev/null +++ b/html/assets/lib/axios.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,(function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{},a=i.allOwnKeys,s=void 0!==a&&a;if(null!=t)if("object"!==e(t)&&(t=[t]),h(t))for(r=0,o=t.length;r0;)if(t===(n=r[o]).toLowerCase())return n;return null}var N="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,x=function(e){return!p(e)&&e!==N};var C,P=(C="undefined"!=typeof Uint8Array&&c(Uint8Array),function(e){return C&&e instanceof C}),k=l("HTMLFormElement"),U=function(e){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),_=l("RegExp"),L=function(e,t){var n=Object.getOwnPropertyDescriptors(e),r={};T(n,(function(n,o){!1!==t(n,o,e)&&(r[o]=n)})),Object.defineProperties(e,r)},B="abcdefghijklmnopqrstuvwxyz",F="0123456789",D={DIGIT:F,ALPHA:B,ALPHA_DIGIT:B+B.toUpperCase()+F};var I={isArray:h,isArrayBuffer:m,isBuffer:function(e){return null!==e&&!p(e)&&null!==e.constructor&&!p(e.constructor)&&v(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t="[object FormData]";return e&&("function"==typeof FormData&&e instanceof FormData||u.call(e)===t||v(e.toString)&&e.toString()===t)},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&m(e.buffer)},isString:y,isNumber:b,isBoolean:function(e){return!0===e||!1===e},isObject:g,isPlainObject:w,isUndefined:p,isDate:E,isFile:O,isBlob:S,isRegExp:_,isFunction:v,isStream:function(e){return g(e)&&v(e.pipe)},isURLSearchParams:A,isTypedArray:P,isFileList:R,forEach:T,merge:function e(){for(var t=x(this)&&this||{},n=t.caseless,r={},o=function(t,o){var i=n&&j(r,o)||o;w(r[i])&&w(t)?r[i]=e(r[i],t):w(t)?r[i]=e({},t):h(t)?r[i]=t.slice():r[i]=t},i=0,a=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{},o=r.allOwnKeys;return T(t,(function(t,r){n&&v(t)?e[r]=a(t,n):e[r]=t}),{allOwnKeys:o}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,n,r){e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:function(e,t,n,r){var o,i,a,s={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],r&&!r(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==n&&c(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:f,kindOfTest:l,endsWith:function(e,t,n){e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;var r=e.indexOf(t,n);return-1!==r&&r===n},toArray:function(e){if(!e)return null;if(h(e))return e;var t=e.length;if(!b(t))return null;for(var n=new Array(t);t-- >0;)n[t]=e[t];return n},forEachEntry:function(e,t){for(var n,r=(e&&e[Symbol.iterator]).call(e);(n=r.next())&&!n.done;){var o=n.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var n,r=[];null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:k,hasOwnProperty:U,hasOwnProp:U,reduceDescriptors:L,freezeMethods:function(e){L(e,(function(t,n){if(v(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;var r=e[n];v(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:function(e,t){var n={},r=function(e){e.forEach((function(e){n[e]=!0}))};return h(e)?r(e):r(String(e).split(t)),n},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(e,t){return e=+e,Number.isFinite(e)?e:t},findKey:j,global:N,isContextDefined:x,ALPHABET:D,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:D.ALPHA_DIGIT,n="",r=t.length;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&v(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(n,r){if(g(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[r]=n;var o=h(n)?[]:{};return T(n,(function(t,n){var i=e(t,r+1);!p(i)&&(o[n]=i)})),t[r]=void 0,o}}return n}(e,0)}};function q(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}I.inherits(q,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:I.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var M=q.prototype,z={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){z[e]={value:e}})),Object.defineProperties(q,z),Object.defineProperty(M,"isAxiosError",{value:!0}),q.from=function(e,t,n,r,o,i){var a=Object.create(M);return I.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),q.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function H(e){return I.isPlainObject(e)||I.isArray(e)}function J(e){return I.endsWith(e,"[]")?e.slice(0,-2):e}function W(e,t,n){return e?e.concat(t).map((function(e,t){return e=J(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}var K=I.toFlatObject(I,{},null,(function(e){return/^is[A-Z]/.test(e)}));function V(t,n,r){if(!I.isObject(t))throw new TypeError("target must be an object");n=n||new FormData;var o=(r=I.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!I.isUndefined(t[e])}))).metaTokens,i=r.visitor||f,a=r.dots,s=r.indexes,u=(r.Blob||"undefined"!=typeof Blob&&Blob)&&I.isSpecCompliantForm(n);if(!I.isFunction(i))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(I.isDate(e))return e.toISOString();if(!u&&I.isBlob(e))throw new q("Blob is not supported. Use a Buffer instead.");return I.isArrayBuffer(e)||I.isTypedArray(e)?u&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function f(t,r,i){var u=t;if(t&&!i&&"object"===e(t))if(I.endsWith(r,"{}"))r=o?r:r.slice(0,-2),t=JSON.stringify(t);else if(I.isArray(t)&&function(e){return I.isArray(e)&&!e.some(H)}(t)||I.isFileList(t)||I.endsWith(r,"[]")&&(u=I.toArray(t)))return r=J(r),u.forEach((function(e,t){!I.isUndefined(e)&&null!==e&&n.append(!0===s?W([r],t,a):null===s?r:r+"[]",c(e))})),!1;return!!H(t)||(n.append(W(i,r,a),c(t)),!1)}var l=[],d=Object.assign(K,{defaultVisitor:f,convertValue:c,isVisitable:H});if(!I.isObject(t))throw new TypeError("data must be an object");return function e(t,r){if(!I.isUndefined(t)){if(-1!==l.indexOf(t))throw Error("Circular reference detected in "+r.join("."));l.push(t),I.forEach(t,(function(t,o){!0===(!(I.isUndefined(t)||null===t)&&i.call(n,t,I.isString(o)?o.trim():o,r,d))&&e(t,r?r.concat(o):[o])})),l.pop()}}(t),n}function G(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function $(e,t){this._pairs=[],e&&V(e,this,t)}var X=$.prototype;function Q(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Z(e,t,n){if(!t)return e;var r,o=n&&n.encode||Q,i=n&&n.serialize;if(r=i?i(t,n):I.isURLSearchParams(t)?t.toString():new $(t,n).toString(o)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}X.append=function(e,t){this._pairs.push([e,t])},X.toString=function(e){var t=e?function(t){return e.call(this,t,G)}:G;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Y,ee=function(){function e(){t(this,e),this.handlers=[]}return r(e,[{key:"use",value:function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){I.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),te={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ne="undefined"!=typeof URLSearchParams?URLSearchParams:$,re=FormData,oe=("undefined"==typeof navigator||"ReactNative"!==(Y=navigator.product)&&"NativeScript"!==Y&&"NS"!==Y)&&"undefined"!=typeof window&&"undefined"!=typeof document,ie="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,ae={isBrowser:!0,classes:{URLSearchParams:ne,FormData:re,Blob:Blob},isStandardBrowserEnv:oe,isStandardBrowserWebWorkerEnv:ie,protocols:["http","https","file","blob","url","data"]};function se(e){function t(e,n,r,o){var i=e[o++],a=Number.isFinite(+i),s=o>=e.length;return i=!i&&I.isArray(r)?r.length:i,s?(I.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a):(r[i]&&I.isObject(r[i])||(r[i]=[]),t(e,n,r[i],o)&&I.isArray(r[i])&&(r[i]=function(e){var t,n,r={},o=Object.keys(e),i=o.length;for(t=0;t-1,i=I.isObject(e);if(i&&I.isHTMLForm(e)&&(e=new FormData(e)),I.isFormData(e))return o&&o?JSON.stringify(se(e)):e;if(I.isArrayBuffer(e)||I.isBuffer(e)||I.isStream(e)||I.isFile(e)||I.isBlob(e))return e;if(I.isArrayBufferView(e))return e.buffer;if(I.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return V(e,new ae.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return ae.isNode&&I.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((n=I.isFileList(e))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return V(n?{"files[]":e}:e,a&&new a,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,n){if(I.isString(e))try{return(t||JSON.parse)(e),I.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||ce.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&I.isString(e)&&(n&&!this.responseType||r)){var o=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw q.from(e,q.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ae.classes.FormData,Blob:ae.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};I.forEach(["delete","get","head"],(function(e){ce.headers[e]={}})),I.forEach(["post","put","patch"],(function(e){ce.headers[e]=I.merge(ue)}));var fe=ce,le=I.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),de=Symbol("internals");function he(e){return e&&String(e).trim().toLowerCase()}function pe(e){return!1===e||null==e?e:I.isArray(e)?e.map(pe):String(e)}function me(e,t,n,r){return I.isFunction(r)?r.call(this,t,n):I.isString(t)?I.isString(r)?-1!==t.indexOf(r):I.isRegExp(r)?r.test(t):void 0:void 0}var ye=function(e,n){function i(e){t(this,i),e&&this.set(e)}return r(i,[{key:"set",value:function(e,t,n){var r=this;function o(e,t,n){var o=he(t);if(!o)throw new Error("header name must be a non-empty string");var i=I.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=pe(e))}var i,a,s,u,c,f=function(e,t){return I.forEach(e,(function(e,n){return o(e,n,t)}))};return I.isPlainObject(e)||e instanceof this.constructor?f(e,t):I.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z]+$/.test(e.trim())?f((c={},(i=e)&&i.split("\n").forEach((function(e){u=e.indexOf(":"),a=e.substring(0,u).trim().toLowerCase(),s=e.substring(u+1).trim(),!a||c[a]&&le[a]||("set-cookie"===a?c[a]?c[a].push(s):c[a]=[s]:c[a]=c[a]?c[a]+", "+s:s)})),c),t):null!=e&&o(t,e,n),this}},{key:"get",value:function(e,t){if(e=he(e)){var n=I.findKey(this,e);if(n){var r=this[n];if(!t)return r;if(!0===t)return function(e){for(var t,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=r.exec(e);)n[t[1]]=t[2];return n}(r);if(I.isFunction(t))return t.call(this,r,n);if(I.isRegExp(t))return t.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=he(e)){var n=I.findKey(this,e);return!(!n||t&&!me(0,this[n],n,t))}return!1}},{key:"delete",value:function(e,t){var n=this,r=!1;function o(e){if(e=he(e)){var o=I.findKey(n,e);!o||t&&!me(0,n[o],o,t)||(delete n[o],r=!0)}}return I.isArray(e)?e.forEach(o):o(e),r}},{key:"clear",value:function(e){for(var t=Object.keys(this),n=t.length,r=!1;n--;){var o=t[n];e&&!me(0,this[o],o,e)||(delete this[o],r=!0)}return r}},{key:"normalize",value:function(e){var t=this,n={};return I.forEach(this,(function(r,o){var i=I.findKey(n,o);if(i)return t[i]=pe(r),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n}))}(o):String(o).trim();a!==o&&delete t[o],t[a]=pe(r),n[a]=!0})),this}},{key:"concat",value:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r1?n-1:0),o=1;o0;){var a=o[i],s=n[a];if(s){var u=t[a],c=void 0===u||s(u,a,t);if(!0!==c)throw new q("option "+a+" must be "+c,q.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new q("Unknown option "+a,q.ERR_BAD_OPTION)}},validators:ke},Le=_e.validators,Be=function(){function e(n){t(this,e),this.defaults=n,this.interceptors={request:new ee,response:new ee}}return r(e,[{key:"request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var n,r=t=Ce(this.defaults,t),o=r.transitional,i=r.paramsSerializer,a=r.headers;void 0!==o&&_e.assertOptions(o,{silentJSONParsing:Le.transitional(Le.boolean),forcedJSONParsing:Le.transitional(Le.boolean),clarifyTimeoutError:Le.transitional(Le.boolean)},!1),void 0!==i&&_e.assertOptions(i,{encode:Le.function,serialize:Le.function},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase(),(n=a&&I.merge(a.common,a[t.method]))&&I.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete a[e]})),t.headers=ve.concat(n,a);var s=[],u=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(u=u&&e.synchronous,s.unshift(e.fulfilled,e.rejected))}));var c,f=[];this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)}));var l,d=0;if(!u){var h=[Ne.bind(this),void 0];for(h.unshift.apply(h,s),h.push.apply(h,f),l=h.length,c=Promise.resolve(t);d0;)o._listeners[t](e);o._listeners=null}})),this.promise.then=function(e){var t,n=new Promise((function(e){o.subscribe(e),t=e})).then(e);return n.cancel=function(){o.unsubscribe(t)},n},n((function(e,t,n){o.reason||(o.reason=new we(e,t,n),r(o.reason))}))}return r(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}();var Ie={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ie).forEach((function(e){var t=o(e,2),n=t[0],r=t[1];Ie[r]=n}));var qe=Ie;var Me=function e(t){var n=new Fe(t),r=a(Fe.prototype.request,n);return I.extend(r,Fe.prototype,n,{allOwnKeys:!0}),I.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Ce(t,n))},r}(fe);return Me.Axios=Fe,Me.CanceledError=we,Me.CancelToken=De,Me.isCancel=ge,Me.VERSION=Pe,Me.toFormData=V,Me.AxiosError=q,Me.Cancel=Me.CanceledError,Me.all=function(e){return Promise.all(e)},Me.spread=function(e){return function(t){return e.apply(null,t)}},Me.isAxiosError=function(e){return I.isObject(e)&&!0===e.isAxiosError},Me.mergeConfig=Ce,Me.AxiosHeaders=ve,Me.formToJSON=function(e){return se(I.isHTMLForm(e)?new FormData(e):e)},Me.HttpStatusCode=qe,Me.default=Me,Me})); +//# sourceMappingURL=axios.min.js.map diff --git a/html/assets/lib/vue.global.min.js b/html/assets/lib/vue.global.min.js new file mode 100644 index 0000000..dfb0bc9 --- /dev/null +++ b/html/assets/lib/vue.global.min.js @@ -0,0 +1,8 @@ +/** + * Minified by jsDelivr using Terser v5.15.1. + * Original file: /npm/vue@3.2.45/dist/vue.global.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +var Vue=function(e){"use strict";function t(e,t){const n=Object.create(null),o=e.split(",");for(let e=0;e!!n[e.toLowerCase()]:e=>!!n[e]}const n={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"HYDRATE_EVENTS",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},o={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},r=t("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt");function s(e){if(O(e)){const t={};for(let n=0;n{if(e){const n=e.split(c);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function u(e){let t="";if(P(e))t=e;else if(O(e))for(let n=0;ng(e,t)))}const v=(e,t)=>t&&t.__v_isRef?v(e,t.value):A(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:I(t)?{[`Set(${t.size})`]:[...t.values()]}:!j(t)||O(t)||D(t)?t:String(t),b=Object.freeze({}),_=Object.freeze([]),w=()=>{},x=()=>!1,S=/^on[^a-z]/,C=e=>S.test(e),k=e=>e.startsWith("onUpdate:"),T=Object.assign,$=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},E=Object.prototype.hasOwnProperty,N=(e,t)=>E.call(e,t),O=Array.isArray,A=e=>"[object Map]"===B(e),I=e=>"[object Set]"===B(e),R=e=>"[object Date]"===B(e),M=e=>"function"==typeof e,P=e=>"string"==typeof e,F=e=>"symbol"==typeof e,j=e=>null!==e&&"object"==typeof e,V=e=>j(e)&&M(e.then)&&M(e.catch),L=Object.prototype.toString,B=e=>L.call(e),U=e=>B(e).slice(8,-1),D=e=>"[object Object]"===B(e),H=e=>P(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,z=t(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),W=t("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),K=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},G=/-(\w)/g,J=K((e=>e.replace(G,((e,t)=>t?t.toUpperCase():"")))),q=/\B([A-Z])/g,Y=K((e=>e.replace(q,"-$1").toLowerCase())),Z=K((e=>e.charAt(0).toUpperCase()+e.slice(1))),X=K((e=>e?`on${Z(e)}`:"")),Q=(e,t)=>!Object.is(e,t),ee=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},ne=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let oe;const re=()=>oe||(oe="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});function se(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let ie;class ce{constructor(e=!1){this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=ie,!e&&ie&&(this.index=(ie.scopes||(ie.scopes=[])).push(this)-1)}run(e){if(this.active){const t=ie;try{return ie=this,e()}finally{ie=t}}else se("cannot run an inactive effect scope.")}on(){ie=this}off(){ie=this.parent}stop(e){if(this.active){let t,n;for(t=0,n=this.effects.length;t{const t=new Set(e);return t.w=0,t.n=0,t},ue=e=>(e.w&he)>0,pe=e=>(e.n&he)>0,de=new WeakMap;let fe=0,he=1;let me;const ge=Symbol("iterate"),ye=Symbol("Map key iterate");class ve{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,le(this,n)}run(){if(!this.active)return this.fn();let e=me,t=_e;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=me,me=this,_e=!0,he=1<<++fe,fe<=30?(({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o{("length"===n||n>=e)&&c.push(t)}))}else switch(void 0!==n&&c.push(i.get(n)),t){case"add":O(e)?H(n)&&c.push(i.get("length")):(c.push(i.get(ge)),A(e)&&c.push(i.get(ye)));break;case"delete":O(e)||(c.push(i.get(ge)),A(e)&&c.push(i.get(ye)));break;case"set":A(e)&&c.push(i.get(ge))}const l={target:e,type:t,key:n,newValue:o,oldValue:r,oldTarget:s};if(1===c.length)c[0]&&$e(c[0],l);else{const e=[];for(const t of c)t&&e.push(...t);$e(ae(e),l)}}function $e(e,t){const n=O(e)?e:[...e];for(const e of n)e.computed&&Ee(e,t);for(const e of n)e.computed||Ee(e,t)}function Ee(e,t){(e!==me||e.allowRecurse)&&(e.onTrigger&&e.onTrigger(T({effect:e},t)),e.scheduler?e.scheduler():e.run())}const Ne=t("__proto__,__v_isRef,__isVue"),Oe=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(F)),Ae=je(),Ie=je(!1,!0),Re=je(!0),Me=je(!0,!0),Pe=Fe();function Fe(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=kt(this);for(let e=0,t=this.length;e{e[t]=function(...e){xe();const n=kt(this)[t].apply(this,e);return Se(),n}})),e}function je(e=!1,t=!1){return function(n,o,r){if("__v_isReactive"===o)return!e;if("__v_isReadonly"===o)return e;if("__v_isShallow"===o)return t;if("__v_raw"===o&&r===(e?t?mt:ht:t?ft:dt).get(n))return n;const s=O(n);if(!e&&s&&N(Pe,o))return Reflect.get(Pe,o,r);const i=Reflect.get(n,o,r);return(F(o)?Oe.has(o):Ne(o))?i:(e||Ce(n,"get",o),t?i:At(i)?s&&H(o)?i:i.value:j(i)?e?vt(i):gt(i):i)}}function Ve(e=!1){return function(t,n,o,r){let s=t[n];if(xt(s)&&At(s)&&!At(o))return!1;if(!e&&(St(o)||xt(o)||(s=kt(s),o=kt(o)),!O(t)&&At(s)&&!At(o)))return s.value=o,!0;const i=O(t)&&H(n)?Number(n)(se(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0),deleteProperty:(e,t)=>(se(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0)},Ue=T({},Le,{get:Ie,set:Ve(!0)}),De=T({},Be,{get:Me}),He=e=>e,ze=e=>Reflect.getPrototypeOf(e);function We(e,t,n=!1,o=!1){const r=kt(e=e.__v_raw),s=kt(t);n||(t!==s&&Ce(r,"get",t),Ce(r,"get",s));const{has:i}=ze(r),c=o?He:n?Et:$t;return i.call(r,t)?c(e.get(t)):i.call(r,s)?c(e.get(s)):void(e!==r&&e.get(t))}function Ke(e,t=!1){const n=this.__v_raw,o=kt(n),r=kt(e);return t||(e!==r&&Ce(o,"has",e),Ce(o,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function Ge(e,t=!1){return e=e.__v_raw,!t&&Ce(kt(e),"iterate",ge),Reflect.get(e,"size",e)}function Je(e){e=kt(e);const t=kt(this);return ze(t).has.call(t,e)||(t.add(e),Te(t,"add",e,e)),this}function qe(e,t){t=kt(t);const n=kt(this),{has:o,get:r}=ze(n);let s=o.call(n,e);s?pt(n,o,e):(e=kt(e),s=o.call(n,e));const i=r.call(n,e);return n.set(e,t),s?Q(t,i)&&Te(n,"set",e,t,i):Te(n,"add",e,t),this}function Ye(e){const t=kt(this),{has:n,get:o}=ze(t);let r=n.call(t,e);r?pt(t,n,e):(e=kt(e),r=n.call(t,e));const s=o?o.call(t,e):void 0,i=t.delete(e);return r&&Te(t,"delete",e,void 0,s),i}function Ze(){const e=kt(this),t=0!==e.size,n=A(e)?new Map(e):new Set(e),o=e.clear();return t&&Te(e,"clear",void 0,void 0,n),o}function Xe(e,t){return function(n,o){const r=this,s=r.__v_raw,i=kt(s),c=t?He:e?Et:$t;return!e&&Ce(i,"iterate",ge),s.forEach(((e,t)=>n.call(o,c(e),c(t),r)))}}function Qe(e,t,n){return function(...o){const r=this.__v_raw,s=kt(r),i=A(s),c="entries"===e||e===Symbol.iterator&&i,l="keys"===e&&i,a=r[e](...o),u=n?He:t?Et:$t;return!t&&Ce(s,"iterate",l?ye:ge),{next(){const{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:c?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function et(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";console.warn(`${Z(e)} operation ${n}failed: target is readonly.`,kt(this))}return"delete"!==e&&this}}function tt(){const e={get(e){return We(this,e)},get size(){return Ge(this)},has:Ke,add:Je,set:qe,delete:Ye,clear:Ze,forEach:Xe(!1,!1)},t={get(e){return We(this,e,!1,!0)},get size(){return Ge(this)},has:Ke,add:Je,set:qe,delete:Ye,clear:Ze,forEach:Xe(!1,!0)},n={get(e){return We(this,e,!0)},get size(){return Ge(this,!0)},has(e){return Ke.call(this,e,!0)},add:et("add"),set:et("set"),delete:et("delete"),clear:et("clear"),forEach:Xe(!0,!1)},o={get(e){return We(this,e,!0,!0)},get size(){return Ge(this,!0)},has(e){return Ke.call(this,e,!0)},add:et("add"),set:et("set"),delete:et("delete"),clear:et("clear"),forEach:Xe(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((r=>{e[r]=Qe(r,!1,!1),n[r]=Qe(r,!0,!1),t[r]=Qe(r,!1,!0),o[r]=Qe(r,!0,!0)})),[e,n,t,o]}const[nt,ot,rt,st]=tt();function it(e,t){const n=t?e?st:rt:e?ot:nt;return(t,o,r)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(N(n,o)&&o in t?n:t,o,r)}const ct={get:it(!1,!1)},lt={get:it(!1,!0)},at={get:it(!0,!1)},ut={get:it(!0,!0)};function pt(e,t,n){const o=kt(n);if(o!==n&&t.call(e,o)){const t=U(e);console.warn(`Reactive ${t} contains both the raw and reactive versions of the same object${"Map"===t?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const dt=new WeakMap,ft=new WeakMap,ht=new WeakMap,mt=new WeakMap;function gt(e){return xt(e)?e:_t(e,!1,Le,ct,dt)}function yt(e){return _t(e,!1,Ue,lt,ft)}function vt(e){return _t(e,!0,Be,at,ht)}function bt(e){return _t(e,!0,De,ut,mt)}function _t(e,t,n,o,r){if(!j(e))return console.warn(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const s=r.get(e);if(s)return s;const i=(c=e).__v_skip||!Object.isExtensible(c)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(U(c));var c;if(0===i)return e;const l=new Proxy(e,2===i?o:n);return r.set(e,l),l}function wt(e){return xt(e)?wt(e.__v_raw):!(!e||!e.__v_isReactive)}function xt(e){return!(!e||!e.__v_isReadonly)}function St(e){return!(!e||!e.__v_isShallow)}function Ct(e){return wt(e)||xt(e)}function kt(e){const t=e&&e.__v_raw;return t?kt(t):e}function Tt(e){return te(e,"__v_skip",!0),e}const $t=e=>j(e)?gt(e):e,Et=e=>j(e)?vt(e):e;function Nt(e){_e&&me&&ke((e=kt(e)).dep||(e.dep=ae()),{target:e,type:"get",key:"value"})}function Ot(e,t){(e=kt(e)).dep&&$e(e.dep,{target:e,type:"set",key:"value",newValue:t})}function At(e){return!(!e||!0!==e.__v_isRef)}function It(e){return Rt(e,!1)}function Rt(e,t){return At(e)?e:new Mt(e,t)}class Mt{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:kt(e),this._value=t?e:$t(e)}get value(){return Nt(this),this._value}set value(e){const t=this.__v_isShallow||St(e)||xt(e);e=t?e:kt(e),Q(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:$t(e),Ot(this,e))}}function Pt(e){return At(e)?e.value:e}const Ft={get:(e,t,n)=>Pt(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return At(r)&&!At(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function jt(e){return wt(e)?e:new Proxy(e,Ft)}class Vt{constructor(e){this.dep=void 0,this.__v_isRef=!0;const{get:t,set:n}=e((()=>Nt(this)),(()=>Ot(this)));this._get=t,this._set=n}get value(){return this._get()}set value(e){this._set(e)}}class Lt{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0}get value(){const e=this._object[this._key];return void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}}function Bt(e,t,n){const o=e[t];return At(o)?o:new Lt(e,t,n)}var Ut;class Dt{constructor(e,t,n,o){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[Ut]=!1,this._dirty=!0,this.effect=new ve(e,(()=>{this._dirty||(this._dirty=!0,Ot(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=n}get value(){const e=kt(this);return Nt(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}Ut="__v_isReadonly";const Ht=[];function zt(e){Ht.push(e)}function Wt(){Ht.pop()}function Kt(e,...t){xe();const n=Ht.length?Ht[Ht.length-1].component:null,o=n&&n.appContext.config.warnHandler,r=function(){let e=Ht[Ht.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}();if(o)Yt(o,n,11,[e+t.join(""),n&&n.proxy,r.map((({vnode:e})=>`at <${si(n,e.type)}>`)).join("\n"),r]);else{const n=[`[Vue warn]: ${e}`,...t];r.length&&n.push("\n",...function(e){const t=[];return e.forEach(((e,n)=>{t.push(...0===n?[]:["\n"],...function({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=!!e.component&&null==e.component.parent,r=` at <${si(e.component,e.type,o)}`,s=">"+n;return e.props?[r,...Gt(e.props),s]:[r+s]}(e))})),t}(r)),console.warn(...n)}Se()}function Gt(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach((n=>{t.push(...Jt(n,e[n]))})),n.length>3&&t.push(" ..."),t}function Jt(e,t,n){return P(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):"number"==typeof t||"boolean"==typeof t||null==t?n?t:[`${e}=${t}`]:At(t)?(t=Jt(e,kt(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):M(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=kt(t),n?t:[`${e}=`,t])}const qt={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"};function Yt(e,t,n,o){let r;try{r=o?e(...o):e()}catch(e){Xt(e,t,n)}return r}function Zt(e,t,n,o){if(M(e)){const r=Yt(e,t,n,o);return r&&V(r)&&r.catch((e=>{Xt(e,t,n)})),r}const r=[];for(let s=0;s>>1;mn(tn[o])mn(e)-mn(t))),sn=0;snnull==e.id?1/0:e.id,gn=(e,t)=>{const n=mn(e)-mn(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function yn(e){en=!1,Qt=!0,e=e||new Map,tn.sort(gn);const t=t=>vn(e,t);try{for(nn=0;nn100){const e=t.ownerInstance,n=e&&ri(e.type);return Kt(`Maximum recursive updates exceeded${n?` in component <${n}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`),!0}e.set(t,n+1)}else e.set(t,1)}let bn=!1;const _n=new Set;re().__VUE_HMR_RUNTIME__={createRecord:kn(xn),rerender:kn((function(e,t){const n=wn.get(e);if(!n)return;n.initialDef.render=t,[...n.instances].forEach((e=>{t&&(e.render=t,Sn(e.type).render=t),e.renderCache=[],bn=!0,e.update(),bn=!1}))})),reload:kn((function(e,t){const n=wn.get(e);if(!n)return;t=Sn(t),Cn(n.initialDef,t);const o=[...n.instances];for(const e of o){const o=Sn(e.type);_n.has(o)||(o!==n.initialDef&&Cn(o,t),_n.add(o)),e.appContext.optionsCache.delete(e.type),e.ceReload?(_n.add(o),e.ceReload(t.styles),_n.delete(o)):e.parent?un(e.parent.update):e.appContext.reload?e.appContext.reload():"undefined"!=typeof window?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required.")}dn((()=>{for(const e of o)_n.delete(Sn(e.type))}))}))};const wn=new Map;function xn(e,t){return!wn.has(e)&&(wn.set(e,{initialDef:Sn(t),instances:new Set}),!0)}function Sn(e){return ii(e)?e.__vccOpts:e}function Cn(e,t){T(e,t);for(const n in e)"__file"===n||n in t||delete e[n]}function kn(e){return(t,n)=>{try{return e(t,n)}catch(e){console.error(e),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let Tn=[],$n=!1;function En(t,...n){e.devtools?e.devtools.emit(t,...n):$n||Tn.push({event:t,args:n})}function Nn(t,n){var o,r;if(e.devtools=t,e.devtools)e.devtools.enabled=!0,Tn.forEach((({event:t,args:n})=>e.devtools.emit(t,...n))),Tn=[];else if("undefined"!=typeof window&&window.HTMLElement&&!(null===(r=null===(o=window.navigator)||void 0===o?void 0:o.userAgent)||void 0===r?void 0:r.includes("jsdom"))){(n.__VUE_DEVTOOLS_HOOK_REPLAY__=n.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push((e=>{Nn(e,n)})),setTimeout((()=>{e.devtools||(n.__VUE_DEVTOOLS_HOOK_REPLAY__=null,$n=!0,Tn=[])}),3e3)}else $n=!0,Tn=[]}const On=Rn("component:added"),An=Rn("component:updated"),In=Rn("component:removed");function Rn(e){return t=>{En(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const Mn=Fn("perf:start"),Pn=Fn("perf:end");function Fn(e){return(t,n,o)=>{En(e,t.appContext.app,t.uid,t,n,o)}}function jn(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||b;{const{emitsOptions:o,propsOptions:[r]}=e;if(o)if(t in o){const e=o[t];if(M(e)){e(...n)||Kt(`Invalid event arguments: event validation failed for event "${t}".`)}}else r&&X(t)in r||Kt(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${X(t)}" prop.`)}let r=n;const s=t.startsWith("update:"),i=s&&t.slice(7);if(i&&i in o){const e=`${"modelValue"===i?"model":i}Modifiers`,{number:t,trim:s}=o[e]||b;s&&(r=n.map((e=>P(e)?e.trim():e))),t&&(r=n.map(ne))}!function(e,t,n){En("component:emit",e.appContext.app,e,t,n)}(e,t,r);{const n=t.toLowerCase();n!==t&&o[X(n)]&&Kt(`Event "${n}" is emitted in component ${si(e,e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${Y(t)}" instead of "${t}".`)}let c,l=o[c=X(t)]||o[c=X(J(t))];!l&&s&&(l=o[c=X(Y(t))]),l&&Zt(l,e,6,r);const a=o[c+"Once"];if(a){if(e.emitted){if(e.emitted[c])return}else e.emitted={};e.emitted[c]=!0,Zt(a,e,6,r)}}function Vn(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(void 0!==r)return r;const s=e.emits;let i={},c=!1;if(!M(e)){const o=e=>{const n=Vn(e,t,!0);n&&(c=!0,T(i,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return s||c?(O(s)?s.forEach((e=>i[e]=null)):T(i,s),j(e)&&o.set(e,i),i):(j(e)&&o.set(e,null),null)}function Ln(e,t){return!(!e||!C(t))&&(t=t.slice(2).replace(/Once$/,""),N(e,t[0].toLowerCase()+t.slice(1))||N(e,Y(t))||N(e,t))}let Bn=null,Un=null;function Dn(e){const t=Bn;return Bn=e,Un=e&&e.type.__scopeId||null,t}function Hn(e,t=Bn,n){if(!t)return e;if(e._n)return e;const o=(...n)=>{o._d&&_s(-1);const r=Dn(t);let s;try{s=e(...n)}finally{Dn(r),o._d&&_s(1)}return An(t),s};return o._n=!0,o._c=!0,o._d=!0,o}let zn=!1;function Wn(){zn=!0}function Kn(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:s,propsOptions:[i],slots:c,attrs:l,emit:a,render:u,renderCache:p,data:d,setupState:f,ctx:h,inheritAttrs:m}=e;let g,y;const v=Dn(e);zn=!1;try{if(4&n.shapeFlag){const e=r||o;g=Ms(u.call(e,e,p,s,f,d,h)),y=l}else{const e=t;l===s&&Wn(),g=Ms(e.length>1?e(s,{get attrs(){return Wn(),l},slots:c,emit:a}):e(s,null)),y=t.props?l:qn(l)}}catch(t){hs.length=0,Xt(t,e,1),g=Ns(ds)}let b,_=g;if(g.patchFlag>0&&2048&g.patchFlag&&([_,b]=Gn(g)),y&&!1!==m){const e=Object.keys(y),{shapeFlag:t}=_;if(e.length)if(7&t)i&&e.some(k)&&(y=Yn(y,i)),_=As(_,y);else if(!zn&&_.type!==ds){const e=Object.keys(l),t=[],n=[];for(let o=0,r=e.length;o renders non-element root node that cannot be animated."),_.transition=n.transition),b?b(_):g=_,Dn(v),g}const Gn=e=>{const t=e.children,n=e.dynamicChildren,o=Jn(t);if(!o)return[e,void 0];const r=t.indexOf(o),s=n?n.indexOf(o):-1;return[Ms(o),o=>{t[r]=o,n&&(s>-1?n[s]=o:o.patchFlag>0&&(e.dynamicChildren=[...n,o]))}]};function Jn(e){let t;for(let n=0;n{let t;for(const n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},Yn=(e,t)=>{const n={};for(const o in e)k(o)&&o.slice(9)in t||(n[o]=e[o]);return n},Zn=e=>7&e.shapeFlag||e.type===ds;function Xn(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let r=0;re.__isSuspense,to={name:"Suspense",__isSuspense:!0,process(e,t,n,o,r,s,i,c,l,a){null==e?function(e,t,n,o,r,s,i,c,l){const{p:a,o:{createElement:u}}=l,p=u("div"),d=e.suspense=ro(e,r,o,t,p,n,s,i,c,l);a(null,d.pendingBranch=e.ssContent,p,null,o,d,s,i),d.deps>0?(no(e,"onPending"),no(e,"onFallback"),a(null,e.ssFallback,t,n,o,null,s,i),co(d,e.ssFallback)):d.resolve()}(t,n,o,r,s,i,c,l,a):function(e,t,n,o,r,s,i,c,{p:l,um:a,o:{createElement:u}}){const p=t.suspense=e.suspense;p.vnode=t,t.el=e.el;const d=t.ssContent,f=t.ssFallback,{activeBranch:h,pendingBranch:m,isInFallback:g,isHydrating:y}=p;if(m)p.pendingBranch=d,Cs(d,m)?(l(m,d,p.hiddenContainer,null,r,p,s,i,c),p.deps<=0?p.resolve():g&&(l(h,f,n,o,r,null,s,i,c),co(p,f))):(p.pendingId++,y?(p.isHydrating=!1,p.activeBranch=m):a(m,r,p),p.deps=0,p.effects.length=0,p.hiddenContainer=u("div"),g?(l(null,d,p.hiddenContainer,null,r,p,s,i,c),p.deps<=0?p.resolve():(l(h,f,n,o,r,null,s,i,c),co(p,f))):h&&Cs(d,h)?(l(h,d,n,o,r,p,s,i,c),p.resolve(!0)):(l(null,d,p.hiddenContainer,null,r,p,s,i,c),p.deps<=0&&p.resolve()));else if(h&&Cs(d,h))l(h,d,n,o,r,p,s,i,c),co(p,d);else if(no(t,"onPending"),p.pendingBranch=d,p.pendingId++,l(null,d,p.hiddenContainer,null,r,p,s,i,c),p.deps<=0)p.resolve();else{const{timeout:e,pendingId:t}=p;e>0?setTimeout((()=>{p.pendingId===t&&p.fallback(f)}),e):0===e&&p.fallback(f)}}(e,t,n,o,r,i,c,l,a)},hydrate:function(e,t,n,o,r,s,i,c,l){const a=t.suspense=ro(t,o,n,e.parentNode,document.createElement("div"),null,r,s,i,c,!0),u=l(e,a.pendingBranch=t.ssContent,n,a,s,i);0===a.deps&&a.resolve();return u},create:ro,normalize:function(e){const{shapeFlag:t,children:n}=e,o=32&t;e.ssContent=so(o?n.default:n),e.ssFallback=o?so(n.fallback):Ns(ds)}};function no(e,t){const n=e.props&&e.props[t];M(n)&&n()}let oo=!1;function ro(e,t,n,o,r,s,i,c,l,a,u=!1){oo||(oo=!0,console[console.info?"info":"log"](" is an experimental feature and its API will likely change."));const{p:p,m:d,um:f,n:h,o:{parentNode:m,remove:g}}=a,y=ne(e.props&&e.props.timeout),v={vnode:e,parent:t,parentComponent:n,isSVG:i,container:o,hiddenContainer:r,anchor:s,deps:0,pendingId:0,timeout:"number"==typeof y?y:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1){if(!e&&!v.pendingBranch)throw new Error("suspense.resolve() is called without a pending branch.");if(v.isUnmounted)throw new Error("suspense.resolve() is called on an already unmounted suspense boundary.");const{vnode:t,activeBranch:n,pendingBranch:o,pendingId:r,effects:s,parentComponent:i,container:c}=v;if(v.isHydrating)v.isHydrating=!1;else if(!e){const e=n&&o.transition&&"out-in"===o.transition.mode;e&&(n.transition.afterLeave=()=>{r===v.pendingId&&d(o,c,t,0)});let{anchor:t}=v;n&&(t=h(n),f(n,i,v,!0)),e||d(o,c,t,0)}co(v,o),v.pendingBranch=null,v.isInFallback=!1;let l=v.parent,a=!1;for(;l;){if(l.pendingBranch){l.effects.push(...s),a=!0;break}l=l.parent}a||dn(s),v.effects=[],no(t,"onResolve")},fallback(e){if(!v.pendingBranch)return;const{vnode:t,activeBranch:n,parentComponent:o,container:r,isSVG:s}=v;no(t,"onFallback");const i=h(n),a=()=>{v.isInFallback&&(p(null,e,r,i,o,null,s,c,l),co(v,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=a),v.isInFallback=!0,f(n,o,null,!0),u||a()},move(e,t,n){v.activeBranch&&d(v.activeBranch,e,t,n),v.container=e},next:()=>v.activeBranch&&h(v.activeBranch),registerDep(e,t){const n=!!v.pendingBranch;n&&v.deps++;const o=e.vnode.el;e.asyncDep.catch((t=>{Xt(t,e,0)})).then((r=>{if(e.isUnmounted||v.isUnmounted||v.pendingId!==e.suspenseId)return;e.asyncResolved=!0;const{vnode:s}=e;zt(s),Zs(e,r,!1),o&&(s.el=o);const c=!o&&e.subTree.el;t(e,s,m(o||e.subTree.el),o?null:h(e.subTree),v,i,l),c&&g(c),Qn(e,s.el),Wt(),n&&0==--v.deps&&v.resolve()}))},unmount(e,t){v.isUnmounted=!0,v.activeBranch&&f(v.activeBranch,n,e,t),v.pendingBranch&&f(v.pendingBranch,n,e,t)}};return v}function so(e){let t;if(M(e)){const n=bs&&e._c;n&&(e._d=!1,gs()),e=e(),n&&(e._d=!0,t=ms,ys())}if(O(e)){const t=Jn(e);t||Kt(" slots expect a single root node."),e=t}return e=Ms(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter((t=>t!==e))),e}function io(e,t){t&&t.pendingBranch?O(e)?t.effects.push(...e):t.effects.push(e):dn(e)}function co(e,t){e.activeBranch=t;const{vnode:n,parentComponent:o}=e,r=n.el=t.el;o&&o.subTree===n&&(o.vnode.el=r,Qn(o,r))}function lo(e,t){if(Us){let n=Us.provides;const o=Us.parent&&Us.parent.provides;o===n&&(n=Us.provides=Object.create(o)),n[e]=t}else Kt("provide() can only be used inside setup().")}function ao(e,t,n=!1){const o=Us||Bn;if(o){const r=null==o.parent?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&M(t)?t.call(o.proxy):t;Kt(`injection "${String(e)}" not found.`)}else Kt("inject() can only be used inside setup() or functional components.")}function uo(e,t){return ho(e,null,Object.assign(Object.assign({},t),{flush:"post"}))}const po={};function fo(e,t,n){return M(t)||Kt("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),ho(e,t,n)}function ho(e,t,{immediate:n,deep:o,flush:r,onTrack:s,onTrigger:i}=b){t||(void 0!==n&&Kt('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),void 0!==o&&Kt('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'));const c=e=>{Kt("Invalid watch source: ",e,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},l=Us;let a,u,p=!1,d=!1;if(At(e)?(a=()=>e.value,p=St(e)):wt(e)?(a=()=>e,o=!0):O(e)?(d=!0,p=e.some((e=>wt(e)||St(e))),a=()=>e.map((e=>At(e)?e.value:wt(e)?yo(e):M(e)?Yt(e,l,2):void c(e)))):M(e)?a=t?()=>Yt(e,l,2):()=>{if(!l||!l.isUnmounted)return u&&u(),Zt(e,l,3,[f])}:(a=w,c(e)),t&&o){const e=a;a=()=>yo(e())}let f=e=>{u=y.onStop=()=>{Yt(e,l,4)}},h=d?new Array(e.length).fill(po):po;const m=()=>{if(y.active)if(t){const e=y.run();(o||p||(d?e.some(((e,t)=>Q(e,h[t]))):Q(e,h)))&&(u&&u(),Zt(t,l,3,[e,h===po?void 0:d&&h[0]===po?[]:h,f]),h=e)}else y.run()};let g;m.allowRecurse=!!t,"sync"===r?g=m:"post"===r?g=()=>Xr(m,l&&l.suspense):(m.pre=!0,l&&(m.id=l.uid),g=()=>un(m));const y=new ve(a,g);y.onTrack=s,y.onTrigger=i,t?n?m():h=y.run():"post"===r?Xr(y.run.bind(y),l&&l.suspense):y.run();return()=>{y.stop(),l&&l.scope&&$(l.scope.effects,y)}}function mo(e,t,n){const o=this.proxy,r=P(e)?e.includes(".")?go(o,e):()=>o[e]:e.bind(o,o);let s;M(t)?s=t:(s=t.handler,n=t);const i=Us;Hs(this);const c=ho(r,s.bind(o),n);return i?Hs(i):zs(),c}function go(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e{yo(e,t)}));else if(D(e))for(const n in e)yo(e[n],t);return e}function vo(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Do((()=>{e.isMounted=!0})),Wo((()=>{e.isUnmounting=!0})),e}const bo=[Function,Array],_o={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:bo,onEnter:bo,onAfterEnter:bo,onEnterCancelled:bo,onBeforeLeave:bo,onLeave:bo,onAfterLeave:bo,onLeaveCancelled:bo,onBeforeAppear:bo,onAppear:bo,onAfterAppear:bo,onAppearCancelled:bo},setup(e,{slots:t}){const n=Ds(),o=vo();let r;return()=>{const s=t.default&&To(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1){let e=!1;for(const t of s)if(t.type!==ds){if(e){Kt(" can only be used on a single element or component. Use for lists.");break}i=t,e=!0}}const c=kt(e),{mode:l}=c;if(l&&"in-out"!==l&&"out-in"!==l&&"default"!==l&&Kt(`invalid mode: ${l}`),o.isLeaving)return So(i);const a=Co(i);if(!a)return So(i);const u=xo(a,c,o,n);ko(a,u);const p=n.subTree,d=p&&Co(p);let f=!1;const{getTransitionKey:h}=a.type;if(h){const e=h();void 0===r?r=e:e!==r&&(r=e,f=!0)}if(d&&d.type!==ds&&(!Cs(a,d)||f)){const e=xo(d,c,o,n);if(ko(d,e),"out-in"===l)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,!1!==n.update.active&&n.update()},So(i);"in-out"===l&&a.type!==ds&&(e.delayLeave=(e,t,n)=>{wo(o,d)[String(d.key)]=d,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=n})}return i}}};function wo(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function xo(e,t,n,o){const{appear:r,mode:s,persisted:i=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:a,onEnterCancelled:u,onBeforeLeave:p,onLeave:d,onAfterLeave:f,onLeaveCancelled:h,onBeforeAppear:m,onAppear:g,onAfterAppear:y,onAppearCancelled:v}=t,b=String(e.key),_=wo(n,e),w=(e,t)=>{e&&Zt(e,o,9,t)},x=(e,t)=>{const n=t[1];w(e,t),O(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},S={mode:s,persisted:i,beforeEnter(t){let o=c;if(!n.isMounted){if(!r)return;o=m||c}t._leaveCb&&t._leaveCb(!0);const s=_[b];s&&Cs(e,s)&&s.el._leaveCb&&s.el._leaveCb(),w(o,[t])},enter(e){let t=l,o=a,s=u;if(!n.isMounted){if(!r)return;t=g||l,o=y||a,s=v||u}let i=!1;const c=e._enterCb=t=>{i||(i=!0,w(t?s:o,[e]),S.delayedLeave&&S.delayedLeave(),e._enterCb=void 0)};t?x(t,[e,c]):c()},leave(t,o){const r=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return o();w(p,[t]);let s=!1;const i=t._leaveCb=n=>{s||(s=!0,o(),w(n?h:f,[t]),t._leaveCb=void 0,_[r]===e&&delete _[r])};_[r]=e,d?x(d,[t,i]):i()},clone:e=>xo(e,t,n,o)};return S}function So(e){if(Oo(e))return(e=As(e)).children=null,e}function Co(e){return Oo(e)?e.children?e.children[0]:void 0:e}function ko(e,t){6&e.shapeFlag&&e.component?ko(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function To(e,t=!1,n){let o=[],r=0;for(let s=0;s1)for(let e=0;e!!e.type.__asyncLoader;function No(e,t){const{ref:n,props:o,children:r,ce:s}=t.vnode,i=Ns(e,o,r);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const Oo=e=>e.type.__isKeepAlive,Ao={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=Ds(),o=n.ctx,r=new Map,s=new Set;let i=null;n.__v_cache=r;const c=n.suspense,{renderer:{p:l,m:a,um:u,o:{createElement:p}}}=o,d=p("div");function f(e){jo(e),u(e,n,c,!0)}function h(e){r.forEach(((t,n)=>{const o=ri(t.type);!o||e&&e(o)||m(n)}))}function m(e){const t=r.get(e);i&&t.type===i.type?i&&jo(i):f(t),r.delete(e),s.delete(e)}o.activate=(e,t,n,o,r)=>{const s=e.component;a(e,t,n,0,c),l(s.vnode,e,t,n,s,c,o,e.slotScopeIds,r),Xr((()=>{s.isDeactivated=!1,s.a&&ee(s.a);const t=e.props&&e.props.onVnodeMounted;t&&Vs(t,s.parent,e)}),c),On(s)},o.deactivate=e=>{const t=e.component;a(e,d,null,1,c),Xr((()=>{t.da&&ee(t.da);const n=e.props&&e.props.onVnodeUnmounted;n&&Vs(n,t.parent,e),t.isDeactivated=!0}),c),On(t)},fo((()=>[e.include,e.exclude]),(([e,t])=>{e&&h((t=>Io(e,t))),t&&h((e=>!Io(t,e)))}),{flush:"post",deep:!0});let g=null;const y=()=>{null!=g&&r.set(g,Vo(n.subTree))};return Do(y),zo(y),Wo((()=>{r.forEach((e=>{const{subTree:t,suspense:o}=n,r=Vo(t);if(e.type!==r.type)f(e);else{jo(r);const e=r.component.da;e&&Xr(e,o)}}))})),()=>{if(g=null,!t.default)return null;const n=t.default(),o=n[0];if(n.length>1)return Kt("KeepAlive should contain exactly one component child."),i=null,n;if(!(Ss(o)&&(4&o.shapeFlag||128&o.shapeFlag)))return i=null,o;let c=Vo(o);const l=c.type,a=ri(Eo(c)?c.type.__asyncResolved||{}:l),{include:u,exclude:p,max:d}=e;if(u&&(!a||!Io(u,a))||p&&a&&Io(p,a))return i=c,o;const f=null==c.key?l:c.key,h=r.get(f);return c.el&&(c=As(c),128&o.shapeFlag&&(o.ssContent=c)),g=f,h?(c.el=h.el,c.component=h.component,c.transition&&ko(c,c.transition),c.shapeFlag|=512,s.delete(f),s.add(f)):(s.add(f),d&&s.size>parseInt(d,10)&&m(s.values().next().value)),c.shapeFlag|=256,i=c,eo(o.type)?o:c}}};function Io(e,t){return O(e)?e.some((e=>Io(e,t))):P(e)?e.split(",").includes(t):!!e.test&&e.test(t)}function Ro(e,t){Po(e,"a",t)}function Mo(e,t){Po(e,"da",t)}function Po(e,t,n=Us){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(Lo(t,o,n),n){let e=n.parent;for(;e&&e.parent;)Oo(e.parent.vnode)&&Fo(o,t,n,e),e=e.parent}}function Fo(e,t,n,o){const r=Lo(t,e,o,!0);Ko((()=>{$(o[t],r)}),n)}function jo(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Vo(e){return 128&e.shapeFlag?e.ssContent:e}function Lo(e,t,n=Us,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;xe(),Hs(n);const r=Zt(t,n,e,o);return zs(),Se(),r});return o?r.unshift(s):r.push(s),s}Kt(`${X(qt[e].replace(/ hook$/,""))} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}const Bo=e=>(t,n=Us)=>(!Ys||"sp"===e)&&Lo(e,((...e)=>t(...e)),n),Uo=Bo("bm"),Do=Bo("m"),Ho=Bo("bu"),zo=Bo("u"),Wo=Bo("bum"),Ko=Bo("um"),Go=Bo("sp"),Jo=Bo("rtg"),qo=Bo("rtc");function Yo(e,t=Us){Lo("ec",e,t)}function Zo(e){W(e)&&Kt("Do not use built-in directive ids as custom directive id: "+e)}function Xo(e,t,n,o){const r=e.dirs,s=t&&t.dirs;for(let i=0;i!Ss(e)||e.type!==ds&&!(e.type===us&&!or(e.children))))?e:null}const rr=e=>e?Gs(e)?ni(e)||e.proxy:rr(e.parent):null,sr=T(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>bt(e.props),$attrs:e=>bt(e.attrs),$slots:e=>bt(e.slots),$refs:e=>bt(e.refs),$parent:e=>rr(e.parent),$root:e=>rr(e.root),$emit:e=>e.emit,$options:e=>hr(e),$forceUpdate:e=>e.f||(e.f=()=>un(e.update)),$nextTick:e=>e.n||(e.n=an.bind(e.proxy)),$watch:e=>mo.bind(e)}),ir=e=>"_"===e||"$"===e,cr=(e,t)=>e!==b&&!e.__isScriptSetup&&N(e,t),lr={get({_:e},t){const{ctx:n,setupState:o,data:r,props:s,accessCache:i,type:c,appContext:l}=e;if("__isVue"===t)return!0;let a;if("$"!==t[0]){const c=i[t];if(void 0!==c)switch(c){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(cr(o,t))return i[t]=1,o[t];if(r!==b&&N(r,t))return i[t]=2,r[t];if((a=e.propsOptions[0])&&N(a,t))return i[t]=3,s[t];if(n!==b&&N(n,t))return i[t]=4,n[t];ur&&(i[t]=0)}}const u=sr[t];let p,d;return u?("$attrs"===t&&(Ce(e,"get",t),Wn()),u(e)):(p=c.__cssModules)&&(p=p[t])?p:n!==b&&N(n,t)?(i[t]=4,n[t]):(d=l.config.globalProperties,N(d,t)?d[t]:void(!Bn||P(t)&&0===t.indexOf("__v")||(r!==b&&ir(t[0])&&N(r,t)?Kt(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===Bn&&Kt(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))))},set({_:e},t,n){const{data:o,setupState:r,ctx:s}=e;return cr(r,t)?(r[t]=n,!0):r.__isScriptSetup&&N(r,t)?(Kt(`Cannot mutate + + + + + +
+
+

节日列表

+ + + + + + +
{{ festival.name }}{{ festival.date }}{{ festival.englishName.split('/')[0] }}
+
+
+

节日信息对比

+ + + +
+ +
+
+

节日详细信息

+
+ +

{{ festival.date }} | {{ festival.fullName }} | {{ festival.englishName }}

+ + + + + +
{{ key }}{{ festival[key] }}
+
+
+
+

{{ JSON.stringify(dataList, null, 4) }}

+
+ + + + \ No newline at end of file