diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..abd647b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +_site/ +dist-*/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..1d3b296 --- /dev/null +++ b/README.md @@ -0,0 +1,145 @@ +# Writech Web-Doc + +Static website for 深圳自然写科技 (Shenzhen Writech Technology Co., Ltd.) — built with Eleventy (11ty) and supporting multiple languages. + +## Prerequisites + +- Node.js 18+ +- npm + +## Setup + +```bash +npm install +``` + +## Build + +### Single locale + +```bash +# Chinese +ELEVENTY_LOCALE=zh npx @11ty/eleventy + +# English +ELEVENTY_LOCALE=en npx @11ty/eleventy +``` + +Output goes to `_site/`. Deploy the contents of `_site/` to your server. + +### Using npm scripts (recommended) + +```bash +npm run build:zh # build Chinese → _site/ +npm run build:en # build English → _site/ + +npm run dev:zh # Chinese dev server with hot reload +npm run dev:en # English dev server with hot reload +``` + +you may edit package.json to add more dev/build commands + +### Separate output directories + +```bash +ELEVENTY_LOCALE=zh npx @11ty/eleventy --output=dist-zh +ELEVENTY_LOCALE=en npx @11ty/eleventy --output=dist-en +``` + +## Project Structure + +``` +src/ +├── _data/ +│ ├── locales.js ← list of available languages +│ ├── locale.js ← reads ELEVENTY_LOCALE env (default: "zh") +│ ├── site.js ← merges site.zh.json + site.en.json +│ ├── site.zh.json ← nav, hero, about, footer, brand rules, news summary +│ ├── site.en.json +│ ├── products.js ← merges products.zh.json + products.en.json +│ ├── products.zh.json ← 8 hardware products (array) +│ ├── products.en.json +│ ├── news.js ← merges news.zh.json + news.en.json +│ ├── news.zh.json ← 23 policy items in 3 categories +│ └── news.en.json +├── _includes/ +│ ├── layouts/base.njk ← master layout (, CSS, JS) +│ ├── nav.njk ← homepage navigation bar +│ ├── nav-news.njk ← news page navigation bar +│ ├── footer.njk ← footer with contact info +│ ├── product-card.njk ← single product detail card +│ └── news-card.njk ← single policy news card +├── css/style.css ← all site styles (extracted from original inline CSS) +├── js/main.js ← mobile menu, scroll animations, back-to-top +├── index.njk → /index.html +├── product.njk → /product/index.html +├── news.njk → /news/index.html +├── img/ ← passthrough to _site/img/ +├── product/img/ ← passthrough to _site/product/img/ +└── News/img/ ← passthrough to _site/News/img/ +``` + +## How Templates Reference Data + +Every page template gets a `locale` variable (set by `_data/locale.js` from the environment). Data files export `{ zh: ..., en: ... }`, so templates look up content dynamically: + +```njk +

{{ site[locale].hero.h1 }}

+

{{ site[locale].hero.p | safe }}

+ +{% for product in products[locale] %} + {% include "product-card.njk" %} +{% endfor %} +``` + +Use `| safe` filter when the data contains HTML tags (e.g. `
`, ``). + +## Adding a New Language + +To add Japanese as a third language: + +### 1. Add the locale code + +```js +// src/_data/locales.js +module.exports = ["zh", "en", "ja"]; +``` + +### 2. Create data files + +``` +src/_data/ +├── site.ja.json ← translate from site.zh.json or site.en.json +├── products.ja.json ← translate all 8 products +└── news.ja.json ← translate 23 policy items (or set to empty categories) +``` + +### 3. Build + +```bash +ELEVENTY_LOCALE=ja npx @11ty/eleventy --output=dist-ja +``` + +Deploy `dist-ja/` to your Japanese domain. + +### Data file structure reference + +**site.XX.json** — site metadata, navigation labels, hero text, download items, about section, footer content, brand rules, design rules, news hero/summary/trend text. + +**products.XX.json** — array of 8 products, each with: `id`, `seq`, `name`, `enName`, `tableName`, `tableImage`, `tableEtymology`, `tableTag`, `intro`, `positioning`, `features[]`, `specs[]`, `images[]`, `installNote`, `hasSceneSection`. + +**news.XX.json** — object with `categories[]`, each category having `title`, `tag`, `items[]`. Each item has: `seq`, `title`, `date`, `source`, `summary`, `url`, `poster`. + +## Image Paths + +All image paths in data files are absolute (start with `/`), e.g. `/product/img/Bink01.png`. This ensures images work correctly from any page regardless of URL depth. + +## Existing Files + +The original static files (`index.html`, `product/product.html`, `News/news.html`, `index.md`, `News/News-1.md`, `product/硬件商标.md`) are kept as reference and are not used by the Eleventy build. They can be removed once the new build is verified. + +## Deployment + +1. Build the desired locale: `npm run build:zh` +2. Copy `_site/` contents to your web server root +3. Repeat for other locales targeting different domains diff --git a/_old/News/News-1.md b/_old/News/News-1.md new file mode 100644 index 0000000..1a52bba --- /dev/null +++ b/_old/News/News-1.md @@ -0,0 +1,219 @@ +# 互动课堂与教育数字化国家政策汇编 + +> 围绕三大方向整理:①互动课堂效率数字化;②不提倡学生课堂使用平板等电子终端;③课堂效率与学生行为采集。 + +--- + +## 一、互动课堂效率数字化相关政策 + +### 1. 教育部等九部门《关于加快推进教育数字化的意见》(2025年4月) + +![poster_01](img/poster_01.png) + +- **发文单位**:教育部、国家发改委等九部门 +- **文号**:教办〔2025〕3号 +- **核心内容**:全面推进教育数字化2.0,完善国家智慧教育公共服务平台,推动"互动课堂"、数字教材、智能教学等创新模式,强化师生数字素养,构建"人人皆学、处处能学、时时可学"的终身学习体系。 +- **政策链接**:http://www.moe.gov.cn/srcsite/A01/s7048/202504/t20250416_1187476.html + +### 2. 教育部《教育信息化2.0行动计划》(2018年4月) + +![poster_02](img/poster_02.png) + +- **发文单位**:教育部 +- **核心内容**:利用互联网、大数据、人工智能等新一代信息技术,深化教育理念变革和模式创新。推动全覆盖数字校园、构建"互联网+教育"大平台,推广互动课堂和数字化教学,实现教育资源共享与智能化应用。 +- **政策链接**:http://www.moe.gov.cn/srcsite/A16/s3342/201804/t20180425_334188.html + +### 3. 中共中央国务院《教育强国建设规划纲要(2024—2035年)》(2025年1月) + +![poster_03](img/poster_03.png) + +- **发文单位**:中共中央、国务院 +- **核心内容**:首个以教育强国为主题的国家行动计划。加快教材数字化转型、推动线上线下融合的智慧教育体系,提升数字资源建设和应用能力,促进个性化、智能化教学。到2027年基础教育实现优质均衡发展。 +- **政策链接**:http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202501/t20250119_1176193.html + +### 4. 教育部《中国智慧教育白皮书》及国家教育数字化战略行动2.0(2025年5月) + +![poster_04](img/poster_04.png) + +- **发文单位**:教育部 +- **核心内容**:在"世界数字教育大会"上发布,系统总结我国数字教育发展历程。坚持"3C"理念(连接、内容、合作)和"3I"战略(集成化、智能化、国际化),推动智慧课堂、数字化教学和互动教学的深度融合。 +- **政策链接**:http://www.moe.gov.cn/jyb_xwfb/xw_zt/moe_357/2025/2025_zt06/cgfb/202505/t20250507_1189603.html +- **PDF原文**:https://bm.cugb.edu.cn/jsfzzx/upload/resources/file/2025/05/26/266517.pdf + +### 5. 教育部办公厅《国家智慧教育平台数字教育资源入库出库管理规范》(2024年5月) + +![poster_05](img/poster_05.png) + +- **发文单位**:教育部办公厅 +- **核心内容**:规范国家智慧教育平台的数字教育资源管理,确保资源内容安全、合法、符合标准,支持多渠道资源汇聚与共享,促进数字化教学、智慧课堂和互动教学的实施。 +- **政策链接**:https://www.gov.cn/zhengce/zhengceku/202407/content_6961951.htm + +### 6. 教育部等六部门《关于推进教育新型基础设施建设构建高质量教育支撑体系的指导意见》(2021年7月) + +![poster_06](img/poster_06.png) + +- **发文单位**:教育部等六部门 +- **核心内容**:推动教育数字化转型、构建智慧校园和数字资源体系。利用大数据、人工智能等技术推动教育创新,开发数字学习档案,利用数据分析学生学习过程,实现多元评价方式。 +- **政策链接**:http://www.moe.gov.cn/srcsite/A16/s3342/202107/t20210720_545783.html + +### 7. 教育部"十四五"期间教育数字化进展成效新闻发布会(2025年) + +![poster_07](img/poster_07.png) + +- **发文单位**:教育部 +- **核心内容**:介绍"十四五"期间教育数字化显著进展,涵盖智慧校园建设、课堂互动提升。通过数字技术推动教育公平和学生行为数据采集分析,推动教育向智能化方向发展。 +- **政策链接**:http://www.moe.gov.cn/fbh/live/2025/77791/ + +### 8. 中国教育和科研计算机网《回顾2025|教育数字化相关政策和大事》 + +![poster_08](img/poster_08.png) + +- **来源**:中国教育和科研计算机网 +- **核心内容**:系统梳理2023-2025年间教育数字化政策大事:2023年推动AI和虚拟仿真技术创新教学模式;2024年发布教育信息化标准化管理办法;2025年启动"国家教育数字化战略行动2.0",推动智慧课堂和互动教学的深度融合。 +- **政策链接**:https://www.edu.cn/xxh/yc/202512/t20251231_2713557.shtml + +--- + +## 二、不提倡学生课堂使用平板等电子终端的相关政策 + +### 9. 教育部办公厅《关于加强中小学生手机管理工作的通知》(2021年1月) + +![poster_09](img/poster_09.png) + +- **发文单位**:教育部办公厅 +- **核心内容**:明确中小学生原则上不得将手机带入校园,禁止带入课堂。学校须制定具体管理措施,设立统一保管场所,禁止用手机布置作业或要求学生用手机完成作业。 +- **政策链接**:http://www.moe.gov.cn/srcsite/A06/s7053/202101/t20210126_511120.html + +### 10. 教育部等八部门《综合防控儿童青少年近视实施方案》(2018年8月) + +![poster_10](img/poster_10.png) + +- **发文单位**:教育部、国家卫健委等八部门 +- **核心内容**:严格限制电子屏幕在教学中的使用时间,**原则上不超过教学总时长的30%**。科学合理使用电子设备,推广户外活动和体育锻炼,改善用眼环境,强化视力监测与早期干预。 +- **政策链接**:http://www.moe.gov.cn/srcsite/A17/moe_943/s3285/201808/t20180830_346672.html + +### 11. 教育部等十五部门《儿童青少年近视防控光明行动工作方案(2021—2025年)》(2021年5月) + +![poster_11](img/poster_11.png) + +- **发文单位**:教育部等十五部门 +- **核心内容**:明确规定学校在教学中使用电子产品的时间原则上**不得超过总教学时长的30%**。鼓励采用纸质作业和多样化教学方式,减少对电子设备的依赖。 +- **政策链接**:http://www.moe.gov.cn/srcsite/A17/moe_943/s3285/202105/t20210511_530655.html + +### 12. 教育部《进一步加强中小学生心理健康工作十条措施》(2025年10月) + +![poster_12](img/poster_12.png) + +- **发文单位**:教育部 +- **核心内容**:**严禁将手机等电子产品带入课堂**,培养学生健康用网习惯,减少网络依赖。推动"息屏行动",鼓励家庭每周设立"无作业日"以缓解学生升学焦虑。加强网络内容监管,推广"未成年人模式"。 +- **政策链接**:https://news.e23.cn/guonei/2025-10-24/2025A2400169.html + +### 13. 教育部等三部门《关于科学保护儿童远视储备量的通知》(2025年11月) + +![poster_13](img/poster_13.png) + +- **发文单位**:教育部、国家卫健委、国家疾控局 +- **核心内容**:建议0-3岁幼儿禁用电子产品,3-6岁学龄前儿童尽量避免接触和使用视屏类电子产品。小学阶段每天保证2小时户外活动,限制电子屏幕使用。课堂教学电子屏幕使用时长不得超过30%。 +- **政策链接**:https://www.moe.gov.cn/srcsite/A17/moe_943/s3285/202511/t20251107_1419599.html + +### 14. 教育部等三部门《关于切实抓牢幼儿园和小学近视防控关键阶段防控工作的通知》(2024年) + +![poster_14](img/poster_14.png) + +- **发文单位**:教育部、国家卫健委、国家疾控局 +- **核心内容**:重点强调幼儿园和小学近视防控。鼓励每天至少2小时户外活动,严格控制电子产品在教学中的使用时间不超过总时长的30%,减少课业负担,避免超前和超纲教学。 +- **政策链接**:http://big5.www.gov.cn/gate/big5/www.gov.cn/zhengce/zhengceku/202411/content_6986582.htm + +### 15. 国家卫健委《儿童青少年近视防控健康教育核心信息》(2019年) + +![poster_15](img/poster_15.png) + +- **发文单位**:国家卫健委 +- **核心内容**:明确学校教学电子屏幕使用时间不得超过总教学时长的30%。课余电子设备学习时间建议不超30-40分钟,非学习目的使用不超15分钟,每天总使用时间不超1小时。 +- **政策链接**:https://www.nhc.gov.cn/jkj/c100063/201903/b7b87b418b144e4b86c4d1d68d8d12b6.shtml + +### 16. 山东省《学生体质健康促进条例》——全国首部地方电子产品课堂禁令(2018年) + +![poster_16](img/poster_16.png) + +- **来源**:山东省人大 +- **核心内容**:全国首部以法规形式明确**禁止中小学生将手机、平板电脑等电子产品带入课堂**。小学每日课堂学习不超6小时,中学不超8小时,确保每天不少于1小时体育活动。 +- **政策链接**:https://www.edu.cn/xxh/focus/zc/201810/t20181009_1627736.shtml + +--- + +## 三、课堂效率与学生行为采集相关政策 + +### 17. 中共中央国务院《深化新时代教育评价改革总体方案》(2020年10月) + +![poster_17](img/poster_17.png) + +- **发文单位**:中共中央、国务院 +- **核心内容**:全面推进教育评价改革,破除"唯分数、唯升学、唯文凭、唯论文、唯帽子"五唯顽疾。强调**过程性评价和增值评价**,利用信息技术和数据分析监测学生成长轨迹与行为表现,推动形成科学、多元、数据驱动的评价机制。 +- **政策链接**:http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202010/t20201013_494381.html +- **专题页面**:http://www.moe.gov.cn/jyb_xwfb/xw_zt/moe_357/jyzt_2020n/2020_zt21/ + +### 18. 教育部《国家义务教育质量监测方案(2021年修订版)》(2021年9月) + +![poster_18](img/poster_18.png) + +- **发文单位**:教育部 +- **核心内容**:以学生全面发展为核心,结合学科表现、心理健康、劳动与艺术等多维度指标,监测四年级和八年级学生的学业水平和**行为表现**。利用大数据、AI技术推动教育评价改革,强化结果应用于决策、督导和改进。 +- **政策链接**:https://www.gov.cn/zhengce/zhengceku/2021-09/28/content_5639763.htm + +### 19. 教育部办公厅《关于组织实施数字化赋能教师发展行动的通知》(2025年7月) + +![poster_19](img/poster_19.png) + +- **发文单位**:教育部办公厅 +- **核心内容**:通过六大行动推动教师数字素养提升。利用AI技术推动课堂效率提升和**学生行为分析**,深化AI在课堂中的应用(智能助手、行为分析、个性化教学),建设智慧校园和数字基础设施。 +- **政策链接**:http://www.moe.gov.cn/srcsite/A10/s7034/202507/t20250704_1196586.html + +### 20. 教育部《教师生成式人工智能应用指引(第一版)》(2025年12月) + +![poster_20](img/poster_20.png) + +- **发文单位**:教育部 +- **核心内容**:推动AI在教育中的科学、安全和合规应用。强调利用生成式AI进行**学情分析、学生行为采集和个性化教学设计**,支持教师通过智能分析学生数据优化教学方案,提升课堂互动和学习质量。 +- **政策链接**:https://jyt.hlj.gov.cn/jyt/c110476/202512/c00_31893033.shtml + +### 21. 教育部《关于实施人工智能助推教师队伍建设行动试点工作的通知》(2018年起,2021年二期) + +![poster_21](img/poster_21.png) + +- **发文单位**:教育部 +- **核心内容**:融合AI、大数据、5G等新技术,在全国103个地市和高校推广试点。建设4.3万间智能教室,培训297万人次。利用大数据和AI技术支持教师**行为分析、教学诊断**和教育管理,推动"人机协同"的"双师课堂"。 +- **政策链接**: + - 一期:http://www.moe.gov.cn/jyb_xwfb/gzdt_gzdt/moe_1485/202207/t20220701_642477.html + - 二期:https://www.edu.cn/rd/gai_kuang/xin_wen_gong_gao/202109/t20210916_2155698.shtml + - 交流活动:http://www.moe.gov.cn/jyb_xwfb/gzdt_gzdt/s5987/202411/t20241128_1164926.html + +### 22. 教育部《关于加强新时代中小学体育教师队伍建设若干举措的通知》(2025年2月) + +![poster_22](img/poster_22.png) + +- **发文单位**:教育部 +- **核心内容**:深入实施人工智能赋能教育行动,利用AI进行**学生行为分析和体质健康监测**。加强体育教师AI技术应用培训,通过可穿戴设备和大数据技术开展个性化体育教学。 +- **政策链接**:https://www.edu.cn/xxh/focus/zc/202502/t20250206_2653899.shtml + +### 23. 推进教育数字化赋能教育现代化(2023年PDF报告) + +![poster_23](img/poster_23.png) + +- **来源**:国家教育行政学院 +- **核心内容**:系统总结教育数字化推进策略,强调利用数字技术进行**学情分析、课堂观察、学生行为数据采集与分析**,推动教育评价体系创新。通过VOS-viewer知识图谱分析高被引文献,展示数字化在基础教育中的应用成效。 +- **PDF链接**:https://www.naea.edu.cn/library/fileDir/resource/cms/article/93673/undefined/2023022110551471892.pdf + +--- + +## 政策要点总结 + +| 政策方向 | 核心要点 | 代表性文件 | +|---------|---------|-----------| +| **互动课堂数字化** | 智慧教育平台、AI融合教学、数字教材、互动课堂 | 教育信息化2.0(2018)、教育数字化九部门意见(2025)、教育强国纲要(2024-2035) | +| **限制电子终端使用** | 手机/平板禁入课堂、电子屏幕≤30%教学时长、近视防控 | 手机管理通知(2021)、近视防控方案(2018)、光明行动方案(2021-2025)、心理健康十条(2025) | +| **学生行为采集** | 过程性评价、学情分析、AI行为监测、数据驱动评价 | 教育评价改革方案(2020)、义务教育质量监测(2021)、AI助推教师行动(2018-)、教师AI应用指引(2025) | + +--- + +> **关键政策趋势**:国家一方面大力推进教育数字化和智慧课堂建设,另一方面严格限制学生直接使用平板、手机等电子终端。这意味着:**课堂数字化的实现路径不应是"人手一块平板",而应通过教室端智能设备(如智能黑板、智能网关)+ 学生行为无感采集(如智能笔、行为分析摄像头)来实现高效互动教学与精准学情分析**。 diff --git a/_old/News/img/poster_01.png b/_old/News/img/poster_01.png new file mode 100644 index 0000000..c31f0b4 Binary files /dev/null and b/_old/News/img/poster_01.png differ diff --git a/_old/News/img/poster_02.png b/_old/News/img/poster_02.png new file mode 100644 index 0000000..5036b36 Binary files /dev/null and b/_old/News/img/poster_02.png differ diff --git a/_old/News/img/poster_03.png b/_old/News/img/poster_03.png new file mode 100644 index 0000000..b861f05 Binary files /dev/null and b/_old/News/img/poster_03.png differ diff --git a/_old/News/img/poster_04.png b/_old/News/img/poster_04.png new file mode 100644 index 0000000..ae792d5 Binary files /dev/null and b/_old/News/img/poster_04.png differ diff --git a/_old/News/img/poster_05.png b/_old/News/img/poster_05.png new file mode 100644 index 0000000..0a4d7b0 Binary files /dev/null and b/_old/News/img/poster_05.png differ diff --git a/_old/News/img/poster_06.png b/_old/News/img/poster_06.png new file mode 100644 index 0000000..31fc9df Binary files /dev/null and b/_old/News/img/poster_06.png differ diff --git a/_old/News/img/poster_07.png b/_old/News/img/poster_07.png new file mode 100644 index 0000000..8e756bb Binary files /dev/null and b/_old/News/img/poster_07.png differ diff --git a/_old/News/img/poster_08.png b/_old/News/img/poster_08.png new file mode 100644 index 0000000..b2b71d6 Binary files /dev/null and b/_old/News/img/poster_08.png differ diff --git a/_old/News/img/poster_09.png b/_old/News/img/poster_09.png new file mode 100644 index 0000000..de675b9 Binary files /dev/null and b/_old/News/img/poster_09.png differ diff --git a/_old/News/img/poster_10.png b/_old/News/img/poster_10.png new file mode 100644 index 0000000..2a64559 Binary files /dev/null and b/_old/News/img/poster_10.png differ diff --git a/_old/News/img/poster_11.png b/_old/News/img/poster_11.png new file mode 100644 index 0000000..68a4d55 Binary files /dev/null and b/_old/News/img/poster_11.png differ diff --git a/_old/News/img/poster_12.png b/_old/News/img/poster_12.png new file mode 100644 index 0000000..ba758b4 Binary files /dev/null and b/_old/News/img/poster_12.png differ diff --git a/_old/News/img/poster_13.png b/_old/News/img/poster_13.png new file mode 100644 index 0000000..de2986b Binary files /dev/null and b/_old/News/img/poster_13.png differ diff --git a/_old/News/img/poster_14.png b/_old/News/img/poster_14.png new file mode 100644 index 0000000..4035e94 Binary files /dev/null and b/_old/News/img/poster_14.png differ diff --git a/_old/News/img/poster_15.png b/_old/News/img/poster_15.png new file mode 100644 index 0000000..a13319c Binary files /dev/null and b/_old/News/img/poster_15.png differ diff --git a/_old/News/img/poster_16.png b/_old/News/img/poster_16.png new file mode 100644 index 0000000..15bd2ea Binary files /dev/null and b/_old/News/img/poster_16.png differ diff --git a/_old/News/img/poster_17.png b/_old/News/img/poster_17.png new file mode 100644 index 0000000..8ecd26d Binary files /dev/null and b/_old/News/img/poster_17.png differ diff --git a/_old/News/img/poster_18.png b/_old/News/img/poster_18.png new file mode 100644 index 0000000..8e1e5c8 Binary files /dev/null and b/_old/News/img/poster_18.png differ diff --git a/_old/News/img/poster_19.png b/_old/News/img/poster_19.png new file mode 100644 index 0000000..e2f0db4 Binary files /dev/null and b/_old/News/img/poster_19.png differ diff --git a/_old/News/img/poster_20.png b/_old/News/img/poster_20.png new file mode 100644 index 0000000..23bd483 Binary files /dev/null and b/_old/News/img/poster_20.png differ diff --git a/_old/News/img/poster_21.png b/_old/News/img/poster_21.png new file mode 100644 index 0000000..bb09ed8 Binary files /dev/null and b/_old/News/img/poster_21.png differ diff --git a/_old/News/img/poster_22.png b/_old/News/img/poster_22.png new file mode 100644 index 0000000..40fe2ee Binary files /dev/null and b/_old/News/img/poster_22.png differ diff --git a/_old/News/img/poster_23.png b/_old/News/img/poster_23.png new file mode 100644 index 0000000..e99d2ee Binary files /dev/null and b/_old/News/img/poster_23.png differ diff --git a/_old/News/news.html b/_old/News/news.html new file mode 100644 index 0000000..0648946 --- /dev/null +++ b/_old/News/news.html @@ -0,0 +1,517 @@ + + + + + +行业资讯 | 互动课堂与教育数字化国家政策汇编 + + + + + + + + +
+

互动课堂与教育数字化国家政策汇编

+

围绕三大方向整理:互动课堂效率数字化 · 不提倡学生课堂使用平板等电子终端 · 课堂效率与学生行为采集

+
+ +
+ + +
+

互动课堂效率数字化相关政策

+ +
+ +
+
+ + +
+
+ + + +
+ +
+ +
+
+ +
+
4. 教育部《中国智慧教育白皮书》及国家教育数字化战略行动2.0
+
2025年5月
+ + 教育部坚持"3C"理念和"3I"战略,推动智慧课堂、数字化教学和互动教学的深度融合。→ + +
+
+
+ +
+
+ +
+
5. 教育部办公厅《国家智慧教育平台数字教育资源入库出库管理规范》
+
2024年5月
+ + 教育部办公厅规范国家智慧教育平台的数字教育资源管理,促进数字化教学、智慧课堂和互动教学的实施。→ + +
+
+
+ +
+
+ +
+
6. 教育部等六部门《关于推进教育新型基础设施建设构建高质量教育支撑体系的指导意见》
+
2021年7月
+ + 教育部等六部门推动教育数字化转型、构建智慧校园和数字资源体系,利用大数据、AI等技术推动教育创新。→ + +
+
+
+ + + +
+
+ +
+
8. 中国教育和科研计算机网《回顾2025|教育数字化相关政策和大事》
+
2025年
+ + 中国教育和科研计算机网系统梳理2023-2025年间教育数字化政策大事,推动智慧课堂和互动教学的深度融合。→ + +
+
+
+ + +
+

不提倡学生课堂使用平板等电子终端的相关政策

+ +
+ +
+
+ +
+
9. 教育部办公厅《关于加强中小学生手机管理工作的通知》
+
2021年1月
+ + 教育部办公厅明确中小学生原则上不得将手机带入校园,禁止带入课堂,禁止用手机布置作业。→ + +
+
+
+ +
+
+ +
+
10. 教育部等八部门《综合防控儿童青少年近视实施方案》
+
2018年8月
+ + 教育部等八部门严格限制电子屏幕在教学中的使用时间,原则上不超过教学总时长的30%。→ + +
+
+
+ +
+
+ +
+
11. 教育部等十五部门《儿童青少年近视防控光明行动工作方案(2021—2025年)》
+
2021年5月
+ + 教育部等十五部门学校教学中使用电子产品时间原则上不得超过总教学时长的30%,鼓励采用纸质作业。→ + +
+
+
+ +
+
+ +
+
12. 教育部《进一步加强中小学生心理健康工作十条措施》
+
2025年10月
+ + 教育部严禁将手机等电子产品带入课堂,推动"息屏行动",培养学生健康用网习惯。→ + +
+
+
+ +
+
+ +
+
13. 教育部等三部门《关于科学保护儿童远视储备量的通知》
+
2025年11月
+ + 教育部等三部门0-3岁幼儿禁用电子产品,课堂教学电子屏幕使用时长不得超过30%。→ + +
+
+
+ +
+
+ +
+
14. 教育部等三部门《关于切实抓牢幼儿园和小学近视防控关键阶段防控工作的通知》
+
2024年
+ + 教育部等三部门严格控制电子产品在教学中的使用时间不超过总时长的30%,鼓励每天至少2小时户外活动。→ + +
+
+
+ +
+
+ +
+
15. 国家卫健委《儿童青少年近视防控健康教育核心信息》
+
2019年
+ + 国家卫健委学校教学电子屏幕使用时间不得超过总教学时长的30%,每天总使用时间不超1小时。→ + +
+
+
+ +
+
+ +
+
16. 山东省《学生体质健康促进条例》——全国首部地方电子产品课堂禁令
+
2018年
+ + 山东省人大全国首部以法规形式明确禁止中小学生将手机、平板电脑等电子产品带入课堂。→ + +
+
+
+ + +
+

课堂效率与学生行为采集相关政策

+ +
+ + + +
+
+ +
+
18. 教育部《国家义务教育质量监测方案(2021年修订版)》
+
2021年9月
+ + 教育部以学生全面发展为核心,结合学科表现、心理健康等多维度指标,监测学生学业水平和行为表现。→ + +
+
+
+ +
+
+ +
+
19. 教育部办公厅《关于组织实施数字化赋能教师发展行动的通知》
+
2025年7月
+ + 教育部办公厅利用AI技术推动课堂效率提升和学生行为分析,深化AI在课堂中的应用。→ + +
+
+
+ +
+
+ +
+
20. 教育部《教师生成式人工智能应用指引(第一版)》
+
2025年12月
+ + 教育部推动AI在教育中的科学应用,利用生成式AI进行学情分析、学生行为采集和个性化教学设计。→ + +
+
+
+ +
+
+ +
+
21. 教育部《关于实施人工智能助推教师队伍建设行动试点工作的通知》
+
2018年起,2021年二期
+ + 教育部在全国103个地市和高校推广试点,建设4.3万间智能教室,利用大数据和AI技术支持教师行为分析与教学诊断。→ + +
+
+
+ +
+
+ +
+
22. 教育部《关于加强新时代中小学体育教师队伍建设若干举措的通知》
+
2025年2月
+ + 教育部深入实施人工智能赋能教育行动,利用AI进行学生行为分析和体质健康监测。→ + +
+
+
+ + + + +
+

政策要点总结

+
+
+ + + + + + + +
政策方向核心要点代表性文件
互动课堂数字化智慧教育平台、AI融合教学、数字教材、互动课堂教育信息化2.0(2018)、教育数字化九部门意见(2025)、教育强国纲要(2024-2035)
限制电子终端使用手机/平板禁入课堂、电子屏幕≤30%教学时长、近视防控手机管理通知(2021)、近视防控方案(2018)、光明行动方案(2021-2025)
学生行为采集过程性评价、学情分析、AI行为监测、数据驱动评价教育评价改革方案(2020)、义务教育质量监测(2021)、教师AI应用指引(2025)
+
+ + +
+ 关键政策趋势:国家一方面大力推进教育数字化和智慧课堂建设,另一方面严格限制学生直接使用平板、手机等电子终端。这意味着:课堂数字化的实现路径不应是"人手一块平板",而应通过教室端智能设备(如智能黑板、智能网关)+ 学生行为无感采集(如智能笔、行为分析摄像头)来实现高效互动教学与精准学情分析。 +
+ +
+ + + + + diff --git a/_old/img/founder.jpeg b/_old/img/founder.jpeg new file mode 100644 index 0000000..fa4072b Binary files /dev/null and b/_old/img/founder.jpeg differ diff --git a/_old/img/home.jpg b/_old/img/home.jpg new file mode 100644 index 0000000..d69c95d Binary files /dev/null and b/_old/img/home.jpg differ diff --git a/_old/img/logo-black-font.png b/_old/img/logo-black-font.png new file mode 100644 index 0000000..e4c0c1f Binary files /dev/null and b/_old/img/logo-black-font.png differ diff --git a/_old/img/logo-black.png b/_old/img/logo-black.png new file mode 100644 index 0000000..6b7d3c4 Binary files /dev/null and b/_old/img/logo-black.png differ diff --git a/_old/img/logo-gray-font.png b/_old/img/logo-gray-font.png new file mode 100644 index 0000000..21ce11a Binary files /dev/null and b/_old/img/logo-gray-font.png differ diff --git a/_old/img/logo-gray.png b/_old/img/logo-gray.png new file mode 100644 index 0000000..305d161 Binary files /dev/null and b/_old/img/logo-gray.png differ diff --git a/_old/img/logo-green-font.png b/_old/img/logo-green-font.png new file mode 100644 index 0000000..53448c5 Binary files /dev/null and b/_old/img/logo-green-font.png differ diff --git a/_old/img/logo-green.png b/_old/img/logo-green.png new file mode 100644 index 0000000..92dca8d Binary files /dev/null and b/_old/img/logo-green.png differ diff --git a/_old/img/logo-white-font.png b/_old/img/logo-white-font.png new file mode 100644 index 0000000..0d5cc27 Binary files /dev/null and b/_old/img/logo-white-font.png differ diff --git a/_old/img/logo-white.png b/_old/img/logo-white.png new file mode 100644 index 0000000..e3b3f13 Binary files /dev/null and b/_old/img/logo-white.png differ diff --git a/_old/img/logo-yellow-font.png b/_old/img/logo-yellow-font.png new file mode 100644 index 0000000..655681d Binary files /dev/null and b/_old/img/logo-yellow-font.png differ diff --git a/_old/img/logo-yellow.png b/_old/img/logo-yellow.png new file mode 100644 index 0000000..988d89e Binary files /dev/null and b/_old/img/logo-yellow.png differ diff --git a/_old/index.html b/_old/index.html new file mode 100644 index 0000000..88b0589 --- /dev/null +++ b/_old/index.html @@ -0,0 +1,1108 @@ + + + + + +自然写科技 | 书写智能 yink.ai + + + + + + + + + +
+
+

自然书写数字化

+

中性笔手握自然书写,无感数字化采集笔迹
AI 实时分析,让课堂更高效

+
+
+ + +
+
+

软件下载

+

全平台覆盖,随时随地使用自然写产品

+
+
+
📱
+
手机端 iOS
+
随时查看学情数据
+
+ iPhone / iPad +
+
+
+
📱
+
手机端 Android
+
随时查看学情数据
+
+ Android +
+
+
+
📱
+
手机端 鸿蒙
+
随时查看学情数据
+
+ HarmonyOS +
+
+
+
💻
+
PC 教师端
+
备课与课堂管理
+
+ Windows +
+
+
+
🖥️
+
智慧黑板
+
教室互动大屏应用
+
+ Windows +
+
+
+
📺
+
电视端
+
家庭学习场景
+
+ Android +
+
+
+
📋
+
Pad iOS
+
便携课堂终端
+
+ iPad +
+
+
+
📋
+
Pad Android
+
便携课堂终端
+
+ Android +
+
+
+
+
+ + +
+
+

关于我们

+

以自然书写为核心,用科技赋能教育

+
+
+
+ 创始团队 +
+
+

Company Profile

+

深圳自然写科技有限公司

+

由徐佳宏博士创办于 2025 年 8 月,自主研发自然书写数字化产品方案,由智能笔、IoT 网关、教室互动 APP、手机 APP、云服务组成。中小学生在学校课室及家里手握中性圆珠笔自然书写无感数字化,在教室课堂实时互动。

+

云端协同下教室智能黑板上安装的 APP 与师生高效互动,大大提高课堂效率。公司秉承教育部提出数智教育理念,保护青少年眼睛视力的责任担当,以自然书写的中性笔为学生课堂最效率的智能终端为核心。

+
+
+
13
+
软件著作权
+
+
+
3
+
发明专利
+
+
+
9
+
实用新型专利
+
+
+
+
+
+ + +
+
+

产品方案

+

从智能笔到云端 AI,完整的数字化书写生态

+
+ +
+ +

品牌命名规则

+
+

所有硬件产品采用统一的四字母英文标识命名,后三个字母固定为 ink(寓意“书写、墨迹”,呼应智能点阵笔教育系统的核心基因),首字母根据产品特性赋予语义区分。

+
+ +

硬件产品列表

+
+ + + + + + + + + + + + +
#产品名称英文标识产品图示命名释义词汇属性
1黑板网关Wink / BinkBinkW = Wall,壁挂式黑板网关;B = Blackboard,黑板专用网关兼 UWB 接收器Wink 英语单词(眨眼),Bink 创造词
2教室网关Cink / NinkCinkC = Classroom,教室级智能网关;N = NetworkCink 创造词
3教师笔MinkMinkM = Master,教师(师傅)专用智能笔英语单词(貂),品牌感强
4学生笔TinkTinkT = Trainee,学生(学员)专用智能笔创造词,近似 Think(思考)
5指向遥控器头QinkQinkQ = Quick(快速指向),插入智能笔的 UWB 发射模组创造词
6指向遥控器Link / RinkRinkL = Link,远程连接指向遥控器;R = RemoteLink 英语单词(链接);Rink 英语单词
7手写板Hink / XinkHinkH = Handwriting,手写输入板;X = eXpressionHink / Xink 均为创造词
8算力盒Dink / ZinkZinkD = Data,边缘数据计算盒;Z = Zone,区域算力中枢Dink 英语单词;Zink 创造词
+
+ +

标识设计要求

+
+
    +
  • 字体:全大写 WINK / CINK / … 用于正式场景;首字母大写 Wink / Cink / … 用于文档行文
  • +
  • 色彩:各产品标识可搭配独立的品牌色,但统一保留 ink 部分的视觉一致性
  • +
  • 应用场景:产品外壳丝印、包装盒、软件界面、官网产品页
  • +
+
+ +

产品功能介绍

+ + +
+
01 / 黑板网关

Wink / Bink

Blackboard Wireless Gateway
+
+
一句话介绍:嵌入智慧黑板的无线通信枢纽,笔迹汇聚 + UWB 精准接收,USB 接入即插即用,最多同时连接 64 支智能笔实时上屏。
+
产品定位安装于智慧黑板(86寸交互式一体机)背面或侧面墙壁的壁挂式网关,是教室前端的数据汇聚与转发中枢。通过 USB 接入黑板主板取电,同时承担两大核心角色:一是通过 BLE 5.0 / SLE 1.0 汇聚全班智能笔书写数据并推送至大屏;二是作为 UWB 接收器,实时接收教师笔(Mink + Qink)发出的空间指向信号,将指向坐标转化为大屏光标操控。
+
核心功能
+
    +
  • 大容量笔连接:通过 BLE 5.0 / SLE 1.0 同时连接最多 64 支智能笔,实时接收书写坐标、压力和笔画数据
  • +
  • 大屏实时呈现:将笔迹数据通过 WebSocket 推送至黑板显示应用,实现板书实时上屏,延迟低于 50ms
  • +
  • UWB 精准接收:作为 UWB 接收端,接收 Mink 教师笔上 Qink 模组发出的空间指向信号,定位精度达厘米级
  • +
  • 互动课堂指令:发题、收卷、分组抢答等课堂控制指令的下发与响应
  • +
  • 设备自动发现:基于 mDNS 协议自动发现并绑定教室内的算力盒和云平台,即插即用
  • +
  • IoT 设备联动:控制教室内的智能灯、智能开关、智能窗帘、空调等 IoT 设备
  • +
+
硬件配置
+
+
Bink 产品外观
Bink 黑板网关 — 直径 160mm,壁挂安装
+
+
+ + + + + + + + + + +
参数规格
无线连接(笔迹)BLE 5.0 / SLE 1.0 多连接
最大连接笔数64 支
UWB 接收内置 UWB 接收模组,厘米级定位精度
供电方式USB 取电(连接黑板主板)
上行网络WiFi 上联互联网
外形尺寸直径 160mm 圆形
安装方式壁挂式,固定于黑板背部或侧面墙壁
+
+
+
+

应用场景

+
+
Bink 安装效果
Bink 壁挂式黑板网关 — 白色外壳融入教室环境
+
+
+
会议室教室场景
会议室 / 教室场景 — 智慧大屏搭配 Bink 网关,教师板书内容实时呈现
+
互动课堂场景
互动课堂场景 — 全班学生使用智能笔书写,Bink 实时汇聚笔迹数据
+
+
+
+
+ + +
+
02 / 教室网关

Cink / Nink

Classroom Wireless Gateway
+
+
一句话介绍:嵌入墙面开关位的隐形网关,取电于墙壁,无需额外布线,最多同时连接 20 支智能笔。
+
产品定位安装于教室墙面开关底盒位置的嵌入式网关设备,直接从墙壁开关位取电,外观与普通开关面板融为一体,完全隐形于教室环境。覆盖笔连接数为 20 支,满足小班或分组教学场景。
+
核心功能
+
    +
  • 笔连接:通过 BLE 5.0 / SLE 1.0 同时连接最多 20 支智能笔
  • +
  • 数据转发网关:将笔迹数据通过 WiFi 上联互联网,转发至算力盒或云平台
  • +
  • 离线缓存:网络中断时本地缓存笔迹数据(最大 256MB),网络恢复后自动上传
  • +
  • LED 状态指示:黄色 = 未激活,蓝色 = 已激活在线,红色 = 故障
  • +
  • 远程运维:支持 OTA 固件升级、远程日志查看、设备参数远程配置
  • +
+
硬件配置
+
+
Cink 外观
Cink 教室网关 — 白色方形外观,嵌入墙面开关底盒
+
+
+ + + + + + + + +
参数规格
无线连接BLE 5.0 / SLE 1.0 多连接
最大连接笔数20 支
供电方式墙壁开关位取电
上行网络WiFi 上联互联网
安装方式嵌入墙面开关底盒
+
+
+
+

应用场景

+
+
Cink 应用场景
Cink 教室网关应用场景
+
+
+
+
+ + +
+
03 / 教师笔

Mink

Master Smart Pen
+
+
一句话介绍:铝合金笔身 + 高帧率光学模组,教师手中的智慧教学核心工具。
+
产品定位教师专用高端智能点阵笔,铝合金笔身设计,具备高帧率光学采集、麦克风语音控制和丰富的交互功能,是教师课堂教学的核心工具。教师只需在点阵纸上正常书写,Mink 即可将每一笔板书数字化,实时同步至智慧大屏。
+
核心功能
+
    +
  • 高精度书写:内置高帧率(130FPS)CMOS 光学模组,书写精度达 0.1mm,延迟 < 20ms
  • +
  • 压力感应:内置压力传感器,感知书写力度,实现粗细变化的自然笔迹还原
  • +
  • 语音交互:内置麦克风,支持按键说话进行语音指令控制(发题、翻页、切屏等)
  • +
  • 蜂鸣提示:答题超时、收卷完成等事件的声音提醒
  • +
  • 多设备连接:BLE 5.0 / SLE 1.0 直连黑板网关或教室网关,数据实时同步至大屏
  • +
+
硬件配置(典型)
+
+
Tink 外观
Tink 学生笔 — 橙色 ABS 笔身,轻巧耐摔
+
+
+ + + + + + + + + + +
参数规格
镜头帧率130 FPS
笔身材质铝合金,电镀笔帽/笔尖
电池180 mAh 可充电锂电池
陀螺仪6轴
存储32 MB
无线连接BLE 5.0 / SLE 1.0
充电方式USB-C 磁吸充电
+
+
+
+

应用场景

+
+
板书教学场景
板书教学场景 — 教师手持 Mink 在点阵教案上书写,板书实时呈现在智慧黑板上
+
批改作业场景
批改作业场景 — 教师使用 Mink 在学生点阵作业本上批改,批改痕迹自动数字化
+
讲台桌面场景
讲台桌面场景 — Mink 搭配液晶手写板在讲台使用,保持与学生目光交流
+
+
+
+
+ + +
+
04 / 学生笔

Tink

Trainee Smart Pen
+
+
一句话介绍:轻量耐摔的学生专属智能笔,像普通笔一样书写,让每一笔作业自动数字化。
+
产品定位面向中小学生的日常书写智能点阵笔,注重轻量化、耐用性和性价比,满足课堂互动和作业数字化的基本需求。学生无需改变书写习惯,在点阵纸上正常书写即可完成作业提交、课堂互动和考试答题。
+
核心功能
+
    +
  • 书写数字化:在点阵纸上正常书写,笔迹坐标实时采集并通过 BLE 传输至教室网关
  • +
  • 自动点名:笔进入教室范围自动与网关建立连接,实现电子签到
  • +
  • 离线存储:未联网状态下暂存笔迹数据(16~32MB),联网后自动同步
  • +
  • 墨水窗:透明墨水窗设计,直观查看笔芯余墨量
  • +
  • 耐摔设计:ABS 塑料笔身,抗 1.2m 高度跌落,适合学生日常使用
  • +
+
硬件配置(典型)
+
+
Tink 外观
Tink 学生笔 — 橙色 ABS 笔身,轻巧耐摔
+
+
+ + + + + + + + + + + +
参数规格
镜头帧率130 FPS
笔身材质ABS 塑料,未电镀
电池180 mAh 可充电锂电池
陀螺仪6轴
存储16~32 MB
无线连接BLE 5.0 / SLE 1.0
充电方式USB-C
笔身重量约 18g(含电池)
+
+
+
+

应用场景

+
+
Tink 握笔
Tink 握笔姿态 — 符合学生书写习惯的人体工学设计
+
+
+
日常练习
日常练习 — 学生使用 Tink 在点阵练习本上书写,笔迹实时同步至云端
+
考试答题
考试答题 — 学生在点阵试卷上答题,系统自动收卷、AI 自动批改
+
+
+
+
+ + +
+
05 / 指向遥控器头

Qink

Quick UWB Transmitter Module
+
+
一句话介绍:插入 Mink 教师笔的 UWB 发射模组,让智能笔同时具备指向遥控器功能。
+
产品定位微型 UWB 发射模组,通过 USB 接口插入 Mink 教师笔顶部。插入后教师手持 Mink 书写的同时即可作为空间指向遥控器使用——Qink 持续向 Bink 黑板网关发送空间方位信号,Bink 解算出指向坐标并转化为大屏光标位置,实现"所指即所得"的精准操控。
+
核心功能
+
    +
  • UWB 精准发射:内置超宽带发射模组,持续向 Bink 发送空间方位信号,厘米级定位精度
  • +
  • 即插即用:USB 接口插入 Mink 顶部,由智能笔供电,无需独立充电
  • +
  • 书写与指向融合:书写时同步发射 UWB 信号,书写、翻页、光标控制无缝切换
  • +
  • 轻巧便携:体积小巧,插入后不影响握笔手感和重心
  • +
+
硬件配置
+
+
Qink 产品外观
Qink UWB 发射模组 — 插入智能笔顶部
+
+
+ + + + + + + + +
参数规格
发射技术UWB(超宽带)
接口USB,插入 Mink 教师笔顶部
供电由 Mink 智能笔经 USB 供电
配合接收端Bink 黑板网关(UWB 接收)
定位精度厘米级(< 5cm)
+
+
+
安装方式直接插入 Mink 教师笔顶部 USB 接口,即插即用,无需配置。取下后 Mink 恢复普通智能笔模式。
+
+

产品外观

+
+
Qink 深灰款
深灰款 — T 型 UWB 发射模组
+
Qink 橙色款
橙色款 — 与 Tink 配色一致
+
Qink 黑头橙身款
黑头橙身款 — 品牌辨识度高
+
+

应用场景

+
+
互动课堂
互动课堂 — 教师手持插有 Qink 的 Mink,UWB 信号至 Bink,精准指向控制大屏光标
+
+
+
+
+ + +
+
06 / 指向遥控器

Link / Rink

Remote Smart Controller
+
+
一句话介绍:一把遥控器替代所有,空间指向 + 语音 + 红外 + IoT 联动,教室智能操控的全能终端。
+
产品定位智能指向遥控器手持端,集成 UWB 空间指向、蓝牙语音、红外控制、IoT 联动等多种能力,实现对教室大屏、灯光、窗帘、空调的一体化智能操控。教师只需一把 Rink 遥控器,即可在教室任意位置从容操控所有设备。
+
核心功能
+
    +
  • 空间指向操控:内置 UWB + 陀螺仪,空中挥动精准控制屏幕光标,厘米级精度
  • +
  • 触控板操控:方向键区域支持触控滑动,用于精细操作和翻页
  • +
  • 语音控制:内置麦克风,支持语音搜索和语音指令控制教室设备
  • +
  • 红外学习与发射:学习电视机、空调、投影仪等红外编码,一键替代多个遥控器
  • +
  • RF433 射频控制:控制窗帘电机、智能开关等 433MHz 射频设备
  • +
  • IoT 场景联动:一键切换"上课模式""护眼模式""放学模式"等场景预设
  • +
+
硬件配置
+
+
Rink 外观
Rink 指向遥控器 — 银色金属机身
+
+
+ + + + + + + + + + +
参数规格
主芯片TL7215A(星闪/蓝牙 SOC)
UWB 芯片GT1500
按键数量7 键 + 触控区
供电1000mAh 充电锂电池
无线协议星闪 / BLE / UWB / 红外
充电方式USB-C
续航常规使用约 30 天
+
+
+
+

应用场景

+
+
智慧教育场景
智慧教育场景 — 教师手持 Rink 在教室中自由走动,隔空操控大屏,同时控制灯光和窗帘
+
+
+
+
+ + +
+
07 / 手写板

Hink / Xink

Handwriting Tablet
+
+
一句话介绍:无需配套笔的液晶手写板,手指即可书写,笔迹实时同步大屏。
+
产品定位免笔压感式手写输入板,教师在板面上用手指或任意硬物书写,笔迹实时同步至大屏显示,是传统黑板粉笔书写的数字化替代方案。解决了"教师面对黑板背对学生"的传统痛点。
+
核心功能
+
    +
  • 免笔书写:电容/电阻触摸膜技术,手指或任意硬物均可书写
  • +
  • 一键擦除:专用擦除按键,一键清空当前画面
  • +
  • 蓝牙无线:BLE 5.0 / SLE 1.0 连接教室网关或黑板,无需布线
  • +
  • USB 供电:USB-C 充电,内置电池无线使用
  • +
  • 多点触控:支持多点同时书写,师生协作共同操作
  • +
+
硬件配置
+
+ + + + + + + + +
参数规格
触控技术电容触摸膜
无线连接BLE 5.0 / SLE 1.0
供电方式USB-C(5V),内置锂电池
书写区域A4 幅面
显示技术LCD 液晶书写屏
+
+

产品外观

+
+
Hink 外观
Hink 液晶手写板 — 黑色书写面板,A4 幅面,轻薄便携
+
+

应用场景

+
+
讲台教学
讲台教学 — 教师在 Hink 上书写,笔迹实时同步至大屏,保持与学生目光交流
+
化学课堂
化学课堂 — 在 Hink 上书写化学方程式和知识图谱,大屏同步显示
+
+
+
+
+ + +
+
08 / 算力盒

Dink / Zink

Edge AI Computing Box
+
+
一句话介绍:教室里的边缘 AI 大脑,离线也能秒级完成手写识别,写完即出结果。
+
产品定位部署在教室内的边缘 AI 计算设备,将云端 AI 推理能力下沉至本地,实现离线或弱网环境下的实时手写识别,是互动课堂系统的智能大脑。确保即使校园网络不稳定,AI 识别能力也不降级。
+
核心功能
+
    +
  • 端侧 AI 推理:本地运行轻量化 AI 模型,支持中英文手写 OCR、数学列式识别、笔顺评分
  • +
  • 超低延迟:单次 OCR 识别 < 200ms,写完即出结果
  • +
  • 离线可用:断网环境下 AI 识别不降级,结果本地缓存待恢复后上传
  • +
  • 多终端分发:通过 WebSocket 实时推送至黑板、教师 PC、学生 Pad
  • +
  • 云边协同:MQTT 上报运行状态,支持 AI 模型在线更新
  • +
  • 集群管理:校级多台算力盒组成集群,统一调度与负载均衡
  • +
  • OTA 升级:固件和 AI 模型远程升级,A/B 分区无损升级
  • +
+
硬件配置
+
+
Zink 外观
Zink 算力盒 — 深灰色金属外壳,紧凑小巧
+
+
+ + + + + + + + + + + +
参数规格
处理器RK3588 八核 / NVIDIA Jetson
AI 算力NPU 6 TOPS / GPU 512 CUDA 核
内存8~32 GB LPDDR4x
存储64GB eMMC + NVMe SSD
网络千兆以太网 x2 + WiFi 6
功耗15~30W(自适应)
尺寸180mm x 160mm x 28mm
接口双千兆网口、3x HDMI、2x USB、DC 电源
+
+
+
安装方式壁挂或桌面放置,有线接入校园网。可隐藏安装于智慧黑板/电视机背面,通过网络远程管理。
+
+

产品外观

+
+
Zink 接口
Zink 接口面板 — 双千兆网口、3x HDMI、2x USB、DC 电源接口
+
+

应用场景

+
+
壁挂部署
壁挂部署 — Zink 固定于智慧黑板侧面墙壁,搭配摄像头实现 AI 视觉辅助教学
+
+
+
+
+ +
+
+ + + + + + + + diff --git a/_old/index.md b/_old/index.md new file mode 100644 index 0000000..8bc622f --- /dev/null +++ b/_old/index.md @@ -0,0 +1,49 @@ + + + +**产品方案** + +**行业资讯** + +**社区交流** + + + + + ## 软件下载 Download +|类型|Windows|iOS|Android|鸿蒙| +|:----:|:----:|:----:|:----:|:----:| +|手机||下载|下载|| +|PC|下载|| +|智慧黑板|下载||| +|电视|||下载| +|Pad||下载|下载| + +

+ +## 公司介绍 Company profile + + +深圳自然写科技有限公司由徐佳宏博士创办于2025年8月,自主研发自然书写数字化产品方案,由智能笔、IoT网关、教室互动APP、手机APP、云服务组成,中小学生在学校课室及家里手握中性圆珠笔自然书写无感数字化,在教室课堂实时互动,在云端协同下教室智能黑板上安装的APP与师生高效互动,大大提高课堂效率。 +

+公司拥有软件著作权13项,发明专利3项,实用新型专利9项;持续研发与创新,自主训练针对课堂互动数据的AI分析模型,打磨成高效反馈的AI模型,它既可以运行在云端,也可以运行在课堂算力盒上,针对一个班级可同时处理64个学生笔的数据,并给出分类与统计反馈。 +

+公司秉承教育部提出数智教育理念,保护青少年眼睛视力的责任担当,以自然书写的中性笔为学生课堂最效率的智能终端为核心,实时与全时探测笔的使用状态及书写结果,记录书写的原始笔迹,云端AI进行深度数据分析。 +

+ +## 产品 Product + + +## 联系我们 Contact + +全国统一服务热线:+8613808800509 +
+地 址:广东省深圳市福田区百花四路 +
招人邮箱:ren@writech.cn +
技术邮箱:tech@writech.cn +
合作邮箱:hezuo@writech.cn +

+
+Copyright © 2021-2026 粤ICP备2026021413号-1 +
+

\ No newline at end of file diff --git a/_old/product/img/Bink.jpg b/_old/product/img/Bink.jpg new file mode 100644 index 0000000..2423a70 Binary files /dev/null and b/_old/product/img/Bink.jpg differ diff --git a/_old/product/img/Bink0.jpg b/_old/product/img/Bink0.jpg new file mode 100644 index 0000000..f55836c Binary files /dev/null and b/_old/product/img/Bink0.jpg differ diff --git a/_old/product/img/Bink01.png b/_old/product/img/Bink01.png new file mode 100644 index 0000000..eab3593 Binary files /dev/null and b/_old/product/img/Bink01.png differ diff --git a/_old/product/img/Bink1.jpg b/_old/product/img/Bink1.jpg new file mode 100644 index 0000000..83b8435 Binary files /dev/null and b/_old/product/img/Bink1.jpg differ diff --git a/_old/product/img/Cink.jpg b/_old/product/img/Cink.jpg new file mode 100644 index 0000000..6d2858e Binary files /dev/null and b/_old/product/img/Cink.jpg differ diff --git a/_old/product/img/Cink1.png b/_old/product/img/Cink1.png new file mode 100644 index 0000000..bb179d4 Binary files /dev/null and b/_old/product/img/Cink1.png differ diff --git a/_old/product/img/Hink.png b/_old/product/img/Hink.png new file mode 100644 index 0000000..83a3569 Binary files /dev/null and b/_old/product/img/Hink.png differ diff --git a/_old/product/img/Hink2.png b/_old/product/img/Hink2.png new file mode 100644 index 0000000..6534ec9 Binary files /dev/null and b/_old/product/img/Hink2.png differ diff --git a/_old/product/img/Mink1.png b/_old/product/img/Mink1.png new file mode 100644 index 0000000..06e3152 Binary files /dev/null and b/_old/product/img/Mink1.png differ diff --git a/_old/product/img/Mink2.jpg b/_old/product/img/Mink2.jpg new file mode 100644 index 0000000..5ad8ee2 Binary files /dev/null and b/_old/product/img/Mink2.jpg differ diff --git a/_old/product/img/Mink3.jpg b/_old/product/img/Mink3.jpg new file mode 100644 index 0000000..02b4c1c Binary files /dev/null and b/_old/product/img/Mink3.jpg differ diff --git a/_old/product/img/Mink4.jpg b/_old/product/img/Mink4.jpg new file mode 100644 index 0000000..0487433 Binary files /dev/null and b/_old/product/img/Mink4.jpg differ diff --git a/_old/product/img/Mink5.jpg b/_old/product/img/Mink5.jpg new file mode 100644 index 0000000..e2875af Binary files /dev/null and b/_old/product/img/Mink5.jpg differ diff --git a/_old/product/img/Qink.png b/_old/product/img/Qink.png new file mode 100644 index 0000000..9c63c14 Binary files /dev/null and b/_old/product/img/Qink.png differ diff --git a/_old/product/img/Qink1.png b/_old/product/img/Qink1.png new file mode 100644 index 0000000..7a6a7b6 Binary files /dev/null and b/_old/product/img/Qink1.png differ diff --git a/_old/product/img/Qink2.png b/_old/product/img/Qink2.png new file mode 100644 index 0000000..da6b36d Binary files /dev/null and b/_old/product/img/Qink2.png differ diff --git a/_old/product/img/Qink3.png b/_old/product/img/Qink3.png new file mode 100644 index 0000000..e384d39 Binary files /dev/null and b/_old/product/img/Qink3.png differ diff --git a/_old/product/img/Rink.png b/_old/product/img/Rink.png new file mode 100644 index 0000000..099c3ac Binary files /dev/null and b/_old/product/img/Rink.png differ diff --git a/_old/product/img/Rink4.jpg b/_old/product/img/Rink4.jpg new file mode 100644 index 0000000..d17d613 Binary files /dev/null and b/_old/product/img/Rink4.jpg differ diff --git a/_old/product/img/Tink.png b/_old/product/img/Tink.png new file mode 100644 index 0000000..e2110a3 Binary files /dev/null and b/_old/product/img/Tink.png differ diff --git a/_old/product/img/Tink1.jpg b/_old/product/img/Tink1.jpg new file mode 100644 index 0000000..eecd3f7 Binary files /dev/null and b/_old/product/img/Tink1.jpg differ diff --git a/_old/product/img/Tink2.jpg b/_old/product/img/Tink2.jpg new file mode 100644 index 0000000..6535fbc Binary files /dev/null and b/_old/product/img/Tink2.jpg differ diff --git a/_old/product/img/Tink3.png b/_old/product/img/Tink3.png new file mode 100644 index 0000000..03ebbb8 Binary files /dev/null and b/_old/product/img/Tink3.png differ diff --git a/_old/product/img/Zink.png b/_old/product/img/Zink.png new file mode 100644 index 0000000..6310328 Binary files /dev/null and b/_old/product/img/Zink.png differ diff --git a/_old/product/img/Zink1.png b/_old/product/img/Zink1.png new file mode 100644 index 0000000..8483abb Binary files /dev/null and b/_old/product/img/Zink1.png differ diff --git a/_old/product/img/Zink3.jpg b/_old/product/img/Zink3.jpg new file mode 100644 index 0000000..c941bd8 Binary files /dev/null and b/_old/product/img/Zink3.jpg differ diff --git a/_old/product/product.html b/_old/product/product.html new file mode 100644 index 0000000..d316b96 --- /dev/null +++ b/_old/product/product.html @@ -0,0 +1,1030 @@ + + + + + + 硬件商标 — ink 系列产品介绍 + + + + +
+
+
+

ink 系列硬件商标

+
+
+ +
+ + +

品牌命名规则

+
+

所有硬件产品采用统一的四字母英文标识命名,后三个字母固定为 ink(寓意"书写、墨迹",呼应智能点阵笔教育系统的核心基因),首字母根据产品特性赋予语义区分。

+
+ + +

硬件产品列表

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#产品名称英文标识产品图示命名释义词汇属性
1黑板网关Wink / BinkBinkW = Wall,壁挂式黑板网关;B = Blackboard,黑板专用网关兼 UWB 接收器Wink 英语单词(眨眼),Bink 创造词
2教室网关Cink / Sink / NinkCinkC = Classroom,教室级智能网关;S = Smart;N = Network,教室组网节点Cink 创造词;Sink 英语单词(汇聚)
3教师笔MinkMinkM = Master,教师(师傅)专用智能笔英语单词(貂),品牌感强
4学生笔TinkTinkT = Trainee,学生(学员)专用智能笔创造词,近似 Think(思考)
5指向遥控器头QinkQinkQ = Quick(快速指向),插入智能笔的 UWB 发射模组创造词
6指向遥控器Link / RinkRinkL = Link,远程连接指向遥控器;R = Remote,远程遥控指向器Link 英语单词(链接);Rink 英语单词
7手写板Hink / XinkHinkH = Handwriting,手写输入板;X = eXpression,书写表达终端Hink / Xink 均为创造词
8算力盒Dink / ZinkZinkD = Data,边缘数据计算盒;Z = Zone,区域算力中枢Dink 英语单词;Zink 创造词近似 Zinc(锌)
+
+ + +

标识设计要求

+
+
    +
  • 字体:全大写 WINK / CINK / … 用于正式场景;首字母大写 Wink / Cink / … 用于文档行文
  • +
  • 色彩:各产品标识可搭配独立的品牌色,但统一保留 ink 部分的视觉一致性
  • +
  • 应用场景:产品外壳丝印、包装盒、软件界面、官网产品页
  • +
+
+ + +

产品功能介绍

+ + +
+
+
01 / 黑板网关
+

Wink / Bink

+
Blackboard Wireless Gateway
+
+
+
一句话介绍:嵌入智慧黑板的无线通信枢纽,笔迹汇聚 + UWB 精准接收,USB 接入即插即用,最多同时连接 64 支智能笔实时上屏。
+ +
+ 产品定位 + 安装于智慧黑板(86寸交互式一体机)背面或侧面墙壁的壁挂式网关,是教室前端的数据汇聚与转发中枢。通过 USB 接入黑板主板取电,同时承担两大核心角色:一是通过 BLE 5.0 / SLE 1.0 汇聚全班智能笔书写数据并推送至大屏;二是作为 UWB 接收器,实时接收教师笔(Mink + Qink)发出的空间指向信号,将指向坐标转化为大屏光标操控,实现教师手持智能笔即可完成板书与遥控的双重功能。 +
+ +
核心功能
+
    +
  • 大容量笔连接:通过 BLE 5.0 / SLE 1.0 同时连接最多 64 支智能笔(教师笔 + 学生笔),实时接收书写坐标、压力和笔画数据
  • +
  • 大屏实时呈现:将笔迹数据通过 WebSocket 推送至黑板显示应用,实现板书实时上屏,延迟低于 50ms
  • +
  • UWB 精准接收:作为 UWB 接收端,接收 Mink 教师笔上 Qink 模组发出的空间指向信号,定位精度达厘米级,将教师手持方向实时转化为大屏光标位置
  • +
  • 互动课堂指令:发题、收卷、分组抢答等课堂控制指令的下发与响应
  • +
  • 设备自动发现:基于 mDNS 协议自动发现并绑定教室内的算力盒和云平台,即插即用
  • +
  • IoT 设备联动:控制教室内的智能灯、智能开关、智能窗帘、空调等 IoT 设备,一键切换护眼模式、上课模式、放学模式
  • +
+ +
技术参数
+
+ + + + + + + + + + + + + +
参数规格
无线连接(笔迹)BLE 5.0 / SLE 1.0 多连接
最大连接笔数64 支
UWB 接收内置 UWB 接收模组,厘米级定位精度
供电方式USB 取电(连接黑板主板)
上行网络WiFi 上联互联网
处理器嵌入式 ARM/RISC
协议WebSocket / mDNS / MQTT
外形尺寸直径 160mm 圆形
安装方式壁挂式,固定于黑板背部或侧面墙壁
+
+ +
+ 安装方式 + 壁挂式,固定于黑板背面或侧面墙壁,通过 USB 线缆接入黑板主板取电,无需额外布线。教师和学生完全无感知,不改变原有教学习惯。 +
+ +
+

产品外观

+
+
+ Bink 产品外观 +
直径:160mm  |  厚度:22mm  |  墙面安装
+
+
+ Bink 安装效果 +
Bink 壁挂式黑板网关 — 直径 160mm 圆形设计,白色外壳融入教室环境,安装于黑板背部不占用教学空间
+
+
+

应用场景

+
+
+ 会议室教室场景 +
会议室 / 教室场景 — 智慧大屏搭配 Bink 网关,教师板书内容实时呈现在大屏上,前排后排学生均可清晰看到
+
+
+ 互动课堂场景 +
互动课堂场景 — 全班学生使用智能笔在点阵练习本上书写,Bink 网关实时汇聚笔迹数据并同步至大屏,教师可即时查看每位学生的作答情况
+
+
+
+
+
+ + +
+
+
02 / 教室网关
+

Cink / Sink / Nink

+
Classroom Wireless Gateway
+
+
+
一句话介绍:嵌入墙面开关位的隐形网关,取电于墙壁,无需额外布线,最多同时连接 20 支智能笔。
+ +
+ 产品定位 + 安装于教室墙面开关底盒位置的嵌入式网关设备,直接从墙壁开关位取电,外观与普通开关面板融为一体,完全隐形于教室环境。与 Bink 黑板网关相比,Cink 不依赖黑板设备供电,适合在教室内灵活部署于任意开关位,覆盖笔连接数为 20 支,满足小班或分组教学场景。 +
+ +
核心功能
+
    +
  • 笔连接:通过 BLE 5.0 / SLE 1.0 同时连接最多 20 支智能笔,实时采集笔迹数据
  • +
  • 数据转发网关:将笔迹数据通过 WiFi 上联互联网,转发至算力盒(gRPC)或云平台(HTTPS),确保数据稳定传输
  • +
  • 离线缓存:网络中断时本地缓存笔迹数据(最大 256MB 缓存空间),网络恢复后自动上传,不丢失任何一笔书写
  • +
  • LED 状态指示:黄色 = 未激活,蓝色 = 已激活在线,红色 = 故障,运维人员一目了然
  • +
  • 远程运维:支持 OTA 固件升级、远程日志查看、设备参数远程配置,降低学校 IT 维护成本
  • +
+ +
技术参数
+
+ + + + + + + + + + + +
参数规格
无线连接BLE 5.0 / SLE 1.0 多连接
最大连接笔数20 支
供电方式墙壁开关位取电
上行网络WiFi 上联互联网
处理器嵌入式 ARM/RISC
协议gRPC / WebSocket / MQTT / mDNS
安装方式嵌入墙面开关底盒,外观与开关面板一致
+
+ +
+ 安装方式 + 安装于教室墙面开关底盒,替换或并排于普通开关面板,直接从墙壁取电,无需额外布线。外观与开关面板融为一体,教室整洁美观,学生完全无感知。 +
+ +
+

产品外观

+
+
+ Cink 外观 +
Cink 教室网关 — 白色方形外观,嵌入墙面开关底盒,与教室装修风格融为一体,学生无感知
+
+
+

应用场景

+
+
+ Cink 应用场景 +
Cink 教室网关应用场景
+
+
+
    +
  • 小班教学(20 人以内):单台 Cink 嵌入教室开关位,隐形部署,全班学生同时使用智能笔在点阵练习本上书写,即装即用,安装无感
  • +
  • 分组教学:一间教室内多个学习小组各由一台 Cink 就近覆盖,各组数据独立采集、互不干扰,教师可按组查看学生作答情况
  • +
  • 考试场景:学生使用智能笔在点阵试卷上答题,Cink 实时采集答题数据并加密传输至服务器,考试结束即出成绩,教师无需手动收卷阅卷
  • +
  • 无黑板场景:适合未部署智慧黑板但需要笔迹数字化的教室,仅需在墙壁开关位安装 Cink,配合普通显示器即可实现互动课堂功能
  • +
+
+
+
+ + +
+
+
03 / 教师笔
+

Mink

+
Master Smart Pen
+
+
+
一句话介绍:铝合金笔身 + 高帧率光学模组,教师手中的智慧教学核心工具。
+ +
+ 产品定位 + 教师专用高端智能点阵笔,铝合金笔身设计,具备高帧率光学采集、麦克风语音控制和丰富的交互功能,是教师课堂教学的核心工具。教师只需在点阵纸上正常书写,Mink 即可将每一笔板书数字化,实时同步至智慧大屏,让后排学生也能清晰看到板书内容。 +
+ +
核心功能
+
    +
  • 高精度书写:内置高帧率(130FPS)CMOS 光学模组,在点阵纸上书写精度达 0.1mm,延迟 < 20ms,书写体验与普通笔一致
  • +
  • 压力感应:内置压力传感器,感知书写力度,实现粗细变化的自然笔迹还原,板书更生动
  • +
  • 语音交互:内置麦克风,支持按键说话进行语音指令控制(发题、翻页、切屏等),无需走到电脑前操作
  • +
  • 蜂鸣提示:答题超时、收卷完成等事件的声音提醒,教师第一时间掌握课堂动态
  • +
  • 多设备连接:BLE 5.0 / SLE 1.0 直连黑板网关或教室网关,数据实时同步至大屏
  • +
+ +
硬件配置(典型)
+
+ + + + + + + + + + + +
参数规格
镜头帧率130 FPS
笔身材质铝合金,电镀笔帽/笔尖
电池180 mAh 可充电锂电池
陀螺仪6轴
存储32 MB
无线连接BLE 5.0 / SLE 1.0
充电方式USB-C 磁吸充电
+
+ +
+

应用场景

+
+
+ 板书教学场景 +
板书教学场景 — 教师手持 Mink 教师笔在点阵教案上书写,板书内容通过 Bink 网关实时呈现在智慧黑板上
+
+
+ 批改作业场景 +
批改作业场景 — 教师使用 Mink 教师笔在学生点阵作业本上批改,批改痕迹自动数字化,家长可通过 APP 查看
+
+
+ 讲台桌面场景 +
讲台桌面场景 — Mink 教师笔搭配液晶手写板在讲台使用,教师无需面对黑板即可完成板书,保持与学生目光交流
+
+
+
+
+
+ + +
+
+
04 / 学生笔
+

Tink

+
Trainee Smart Pen
+
+
+
一句话介绍:轻量耐摔的学生专属智能笔,像普通笔一样书写,让每一笔作业自动数字化。
+ +
+ 产品定位 + 面向中小学生的日常书写智能点阵笔,注重轻量化、耐用性和性价比,满足课堂互动和作业数字化的基本需求。学生无需改变书写习惯,在点阵纸上正常书写即可完成作业提交、课堂互动和考试答题。 +
+ +
核心功能
+
    +
  • 书写数字化:在点阵纸上正常书写,笔迹坐标实时采集并通过 BLE 5.0 / SLE 1.0 传输至教室网关,书写体验与普通笔完全一致
  • +
  • 自动点名:笔进入教室范围自动与网关建立连接,实现电子签到,无需人工操作
  • +
  • 离线存储:笔在未联网状态下可将笔迹数据暂存于内置存储(16~32MB),联网后自动同步,不丢失任何书写内容
  • +
  • 墨水窗:透明墨水窗设计,直观查看笔芯余墨量,及时更换笔芯
  • +
  • 耐摔设计:ABS 塑料笔身,抗 1.2m 高度跌落,适合学生日常使用
  • +
+ +
硬件配置(典型)
+
+ + + + + + + + + + + + +
参数规格
镜头帧率130 FPS
笔身材质ABS 塑料,未电镀
电池180 mAh 可充电锂电池
陀螺仪6轴
存储16~32 MB
无线连接BLE 5.0 / SLE 1.0
充电方式USB-C
笔身重量约 18g(含电池)
+
+ +
+

产品外观

+
+
+ Tink 外观 +
Tink 学生笔产品外观 — 橙色 ABS 笔身,轻巧耐摔,带笔夹设计,外形与普通签字笔接近,学生易于接受
+
+
+ Tink 握笔姿态 +
Tink 学生笔握笔姿态 — 符合学生书写习惯的人体工学握持设计,笔身粗细适中,长时间书写不疲劳
+
+
+

应用场景

+
+
+ 日常练习场景 +
日常练习场景 — 学生使用 Tink 学生笔在点阵练习本上书写,笔迹数据实时采集并同步至云端,教师可随时查看练习进度
+
+
+ 考试答题场景 +
考试答题场景 — 学生使用 Tink 学生笔在点阵试卷上答题,答题结束后系统自动收卷、AI 自动批改,教师当堂即可查看成绩
+
+
+
+
+
+ + +
+
+
05 / 指向遥控器头
+

Qink

+
Quick UWB Transmitter Module
+
+
+
一句话介绍:插入 Mink 教师笔的 UWB 发射模组,让教师手中的智能笔同时具备指向遥控器功能。
+ +
+ 产品定位 + Qink 是一个微型 UWB 发射模组,通过 USB 接口插入 Mink 教师笔顶部。插入后,教师手持 Mink 书写的同时即可作为空间指向遥控器使用——Qink 持续向 Bink 黑板网关(UWB 接收端)发送空间方位信号,Bink 解算出指向坐标并转化为大屏光标位置,实现"所指即所得"的精准操控。教师无需另携遥控器,一支笔即可完成板书与遥控的双重功能。 +
+ +
核心功能
+
    +
  • UWB 精准发射:内置超宽带(UWB)发射模组,持续向 Bink 发送空间方位信号,配合 Bink 接收端实现厘米级定位精度
  • +
  • 即插即用:通过 USB 接口插入 Mink 教师笔顶部,由智能笔供电,无需独立充电,插上即激活
  • +
  • 书写与指向融合:教师正常书写时同步发射 UWB 信号,书写、翻页、光标控制在一支笔上无缝切换
  • +
  • 轻巧便携:体积小巧,插入后不影响教师握笔书写的手感和重心
  • +
+ +
技术参数
+
+
+ Qink 产品外观 +
Qink UWB 发射模组 — 插入智能笔顶部
+
+
+
+ + + + + + + + + + +
参数规格
发射技术UWB(超宽带)
接口USB,插入 Mink 教师笔顶部
供电由 Mink 智能笔经 USB 供电
配合接收端Bink 黑板网关(UWB 接收)
定位精度厘米级(< 5cm,配合 Bink)
外形微型模组,插入后与笔身融为一体
+
+
+
+ +
+ 安装方式 + 直接插入 Mink 教师笔顶部 USB 接口,即插即用,无需配置。取下后 Mink 恢复普通智能笔模式,Qink 可随时插拔。 +
+ +
+

产品外观

+
+
+ Qink 深灰款 +
深灰款 — T 型 UWB 发射模组设计,插入智能笔顶部,轻巧便携
+
+
+ Qink 橙色款 +
橙色款 — 与 Tink 学生笔配色一致,一体化视觉设计
+
+
+ Qink 黑头橙身款 +
黑头橙身款 — 黑色发射头搭配橙色笔身,品牌辨识度高
+
+
+

应用场景

+
+
+ 互动课堂场景 +
互动课堂场景 — 教师手持插有 Qink 的 Mink 教师笔,Qink 发射 UWB 信号至 Bink,实现精准指向控制大屏光标
+
+
+
+
+
+ + +
+
+
06 / 指向遥控器
+

Link / Rink

+
Remote Smart Controller
+
+
+
一句话介绍:一把遥控器替代所有,空间指向 + 语音 + 红外 + IoT 联动,教室智能操控的全能终端。
+ +
+ 产品定位 + 智能指向遥控器手持端,集成 UWB 空间指向、蓝牙语音、红外控制、IoT 联动等多种能力,实现对教室大屏、灯光、窗帘、空调的一体化智能操控。教师只需一把 Rink 遥控器,即可告别教室讲台上杂乱的多个遥控器,在教室任意位置从容操控所有设备。 +
+ +
核心功能
+
    +
  • 空间指向操控:内置 UWB 模组 + 陀螺仪传感器,在空中挥动即可精准控制屏幕光标,所指即所得,操控精度达厘米级
  • +
  • 触控板操控:方向键区域支持触控滑动,用于精细操作和翻页,像笔记本触控板一样流畅
  • +
  • 语音控制:内置麦克风,支持语音搜索、语音指令控制教室设备,解放双手
  • +
  • 红外学习与发射:学习电视机、空调、投影仪等设备的红外编码,一键替代多个遥控器
  • +
  • RF433 射频控制:控制窗帘电机、智能开关等 433MHz 射频设备,覆盖更多教室终端
  • +
  • IoT 场景联动:一键切换"上课模式""护眼模式""放学模式"等场景预设,大屏、灯光、窗帘、空调联动响应
  • +
+ +
硬件配置
+
+ + + + + + + + + + + +
参数规格
主芯片TL7215A(星闪/蓝牙 SOC)
UWB 芯片GT1500
按键数量7 键 + 触控区
供电1000mAh 充电锂电池
无线协议星闪 / BLE / UWB / 红外
充电方式USB-C
续航常规使用约 30 天
+
+ +
+

产品外观

+
+
+ Rink 外观 +
Rink 指向遥控器产品外观 — 银色金属机身,正面集成触控板与功能按键,侧面配备红外发射窗口,手感舒适、质感出色
+
+
+

应用场景

+
+
+ 智慧教育场景 +
智慧教育场景 — 教师手持 Rink 指向遥控器在教室中自由走动,隔空操控大屏翻页、标注,同时控制灯光和窗帘,打造沉浸式教学体验
+
+
+
+
+
+ + +
+
+
07 / 手写板
+

Hink / Xink

+
Handwriting Tablet
+
+
+
一句话介绍:无需配套笔的液晶手写板,手指即可书写,笔迹实时同步大屏。
+ +
+ 产品定位 + 免笔压感式手写输入板,教师在板面上用手指或任意硬物书写,笔迹实时同步至大屏显示,是传统黑板粉笔书写的数字化替代方案。Hink 手写板解决了"教师面对黑板背对学生"的传统痛点,教师可以在讲台上低头书写,抬头即可与学生互动。 +
+ +
核心功能
+
    +
  • 免笔书写:采用电容/电阻触摸膜技术,无需配套笔,手指或任意硬物均可书写,使用门槛为零
  • +
  • 一键擦除:专用擦除按键,一键清空当前画面,切换题目快速高效
  • +
  • 蓝牙无线:通过 BLE 5.0 / SLE 1.0 与教室网关或黑板连接,无需布线,讲台整洁无杂乱
  • +
  • USB 供电:通过 USB-C 接口充电,内置电池,无线使用续航持久
  • +
  • 多点触控:支持多点同时书写,教师可同步书写与标注,或师生协作共同操作
  • +
+ +
硬件配置
+
+ + + + + + + + + + +
参数规格
触控技术电容触摸膜
无线连接BLE 5.0 / SLE 1.0
供电方式USB-C(5V),内置锂电池
书写区域A4 幅面
主控芯片蓝牙 SOC
显示技术LCD 液晶书写屏
+
+ +
+

产品外观

+
+
+ Hink 外观 +
Hink 液晶手写板产品外观 — 黑色书写面板,圆角边框设计,A4 幅面书写区域,轻薄便携可随手携带
+
+
+

应用场景

+
+
+ 讲台教学场景 +
讲台教学场景 — 教师在 Hink 手写板上书写化学公式,笔迹实时同步至大屏,教师无需转身面对黑板,保持与学生的目光交流
+
+
+ 化学课堂场景 +
化学课堂场景 — 教师在 Hink 液晶手写板上书写化学方程式和知识图谱,大屏同步显示,前排后排学生均可清晰看到板书内容
+
+
+
+
+
+ + +
+
+
08 / 算力盒
+

Dink / Zink

+
Edge AI Computing Box
+
+
+
一句话介绍:教室里的边缘 AI 大脑,离线也能秒级完成手写识别,写完即出结果。
+ +
+ 产品定位 + 部署在教室内的边缘 AI 计算设备,将云端 AI 推理能力下沉至本地,实现离线或弱网环境下的实时手写识别,是互动课堂系统的智能大脑。Zink 算力盒确保即使校园网络不稳定,AI 识别能力也不降级,学生"写完即出结果"的体验始终如一。 +
+ +
核心功能
+
    +
  • 端侧 AI 推理:本地运行轻量化 AI 模型,支持中英文手写 OCR 识别、数学列式识别、中文笔顺评分,不依赖云端
  • +
  • 超低延迟:单次 OCR 识别延迟 < 200ms,学生写完即出结果,课堂节奏不中断
  • +
  • 离线可用:断网环境下 AI 识别能力不降级,结果本地缓存待网络恢复后自动上传
  • +
  • 多终端分发:识别结果通过 WebSocket 实时推送至智慧黑板、教师 PC、学生 Pad,多屏同步展示
  • +
  • 云边协同:通过 MQTT 向云端上报运行状态(GPU 利用率、温度、推理 QPS),支持 AI 模型在线更新
  • +
  • 集群管理:支持校级多台算力盒组成集群,统一调度与负载均衡,一个管理后台管控全校设备
  • +
  • OTA 升级:支持固件和 AI 模型的远程在线升级,A/B 分区无损升级,升级失败自动回滚
  • +
+ +
硬件配置
+
+ + + + + + + + + + + + + +
参数规格
处理器RK3588 八核 / NVIDIA Jetson
AI 算力NPU 6 TOPS / GPU 512 CUDA 核
内存8~32 GB LPDDR4x
存储64GB eMMC + NVMe SSD
网络千兆以太网 x2 + WiFi 6
功耗15~30W(自适应)
尺寸180mm x 160mm x 28mm
工作温度-10°C ~ 50°C
接口双千兆网口、3x HDMI、USB、DC 电源
+
+ +
+ 安装方式 + 壁挂或桌面放置,有线接入校园网。可隐藏安装于智慧黑板/电视机背面,无需红外遥控,通过网络远程管理。教室正面完全看不到设备,整洁无线缆外露。 +
+ +
+

产品外观

+
+
+ Zink 外观 +
Zink 算力盒产品外观 — 深灰色金属外壳,尺寸 180mm × 160mm × 28mm,紧凑小巧,正面展示双千兆网口、3x HDMI、USB 及电源接口
+
+
+ Zink 接口面板 +
Zink 算力盒接口面板详图 — 从左至右依次为双千兆网口、3 个 HDMI 输出接口、USB 接口和 DC 电源接口,满足多屏输出和外设扩展需求
+
+
+

应用场景

+
+
+ 壁挂部署场景 +
壁挂部署场景 — Zink 算力盒通过支架固定于智慧黑板侧面墙壁,HDMI 线缆连接大屏,上方搭配摄像头实现 AI 视觉辅助教学,整体部署整洁美观
+
+
+
+
+
+ +
+ + + + + + diff --git a/_old/product/硬件商标.md b/_old/product/硬件商标.md new file mode 100644 index 0000000..380236d --- /dev/null +++ b/_old/product/硬件商标.md @@ -0,0 +1,431 @@ +--- +title: "硬件商标" +output: + pdf_document: + path: 硬件商标.pdf + toc: true + pdf_engine: xelatex + pandoc_args: + - "-V" + - "CJKmainfont=STSong" + - "-V" + - "geometry:margin=2.5cm" + - "--resource-path=." + - "--lua-filter=/Users/jiahong/Documents/Job/docs/.vscode/img-filter.lua" + word_document: + path: 硬件商标.docx + pandoc_args: + - "--resource-path=." + - "--lua-filter=/Users/jiahong/Documents/Job/docs/.vscode/img-filter.lua" + html_document: + path: 硬件商标.html + toc: true +--- + +# 硬件商标 + +## 品牌命名规则 + +所有硬件产品采用统一的四字母英文标识命名,后三个字母固定为 **ink**(寓意"书写、墨迹",呼应智能点阵笔教育系统的核心基因),首字母根据产品特性赋予语义区分。 + +--- + +## 硬件产品列表 + +| 序号 | 产品名称 | 英文标识 | 产品图示 | 命名释义 | 词汇属性 | +|:---:|---------|---------|:------:|---------|---------| +| 1 | 黑板网关 | **Wink / Bink** | | W = Wall,壁挂式黑板网关;B = Blackboard,黑板专用网关兼 UWB 接收器 | Wink 为英语单词(眨眼),寓意智能感知;Bink 为创造词,近似 Bing(叮),轻快感 | +| 2 | 教室网关 | **Cink / Nink** | | C = Classroom,教室级智能网关;N = Network,教室组网节点 | Cink 为创造词;Nink 为创造词 | +| 3 | 教师笔 | **Mink** | | M = Master,教师(师傅)专用智能笔 | 英语单词(貂),品牌感强、辨识度高 | +| 4 | 学生笔 | **Tink** | | T = Trainee,学生(学员)专用智能笔 | 创造词,近似 Think(思考),契合学习场景 | +| 5 | 指向遥控器头 | **Qink** | | Q = Quick(快速指向),插入智能笔的 UWB 发射模组,赋予教师笔遥控器功能 | 创造词 | +| 6 | 指向遥控器 | **Link / Rink** | | L = Link,远程连接指向遥控器;R = Remote,远程遥控指向器 | Link 为英语单词(链接),直扣产品功能;Rink 为英语单词(溜冰场),品牌辨识度高 | +| 7 | 手写板 | **Hink / Xink** | | H = Handwriting,手写输入板;X = eXpression,书写表达终端 | Hink 为创造词;Xink 为创造词,X 赋予科技感与未来感 | +| 8 | 算力盒 | **Dink / Zink** | | D = Data,边缘数据计算盒;Z = Zone,区域算力中枢 | Dink 为英语单词(双职工无孩缩写),作品牌名无歧义;Zink 为创造词,近似 Zinc(锌),暗喻能量与金属质感 | + +--- + +## 标识设计要求 + +- **字体**:全大写 WINK / CINK / ... 用于正式场景;首字母大写 Wink / Cink / ... 用于文档行文 +- **色彩**:各产品标识可搭配独立的品牌色,但统一保留 ink 部分的视觉一致性 +- **应用场景**:产品外壳丝印、包装盒、软件界面、官网产品页 + +--- + +## 产品功能介绍 + +### 1. 黑板网关 — Wink / Bink + +> **一句话介绍**:嵌入智慧黑板的无线通信枢纽,笔迹汇聚 + UWB 精准接收,USB 接入即插即用,最多同时连接 64 支智能笔实时上屏。 + +**产品定位**:安装于智慧黑板(86寸交互式一体机)背面或侧面墙壁的壁挂式网关,是教室前端的数据汇聚与转发中枢。通过 USB 接入黑板主板取电,同时承担两大核心角色:一是通过 BLE 5.0 / SLE 1.0 汇聚全班智能笔书写数据并推送至大屏;二是作为 UWB 接收器,实时接收教师笔(Mink + Qink)发出的空间指向信号,将指向坐标转化为大屏光标操控,实现教师手持智能笔即可完成板书与遥控的双重功能。 + +**核心功能**: + +- **大容量笔连接**:通过 BLE 5.0 / SLE 1.0 同时连接最多 64 支智能笔(教师笔 + 学生笔),实时接收书写坐标、压力和笔画数据 +- **大屏实时呈现**:将笔迹数据通过 WebSocket 推送至黑板显示应用,实现板书实时上屏,延迟低于 50ms +- **UWB 精准接收**:作为 UWB 接收端,接收 Mink 教师笔上 Qink 模组发出的空间指向信号,定位精度达厘米级,将教师手持方向实时转化为大屏光标位置 +- **互动课堂指令**:发题、收卷、分组抢答等课堂控制指令的下发与响应 +- **设备自动发现**:基于 mDNS 协议自动发现并绑定教室内的算力盒和云平台,即插即用 +- **IoT 设备联动**:控制教室内的智能灯、智能开关、智能窗帘、空调等 IoT 设备,一键切换护眼模式、上课模式、放学模式 + +**技术参数**: + +| 参数 | 规格 | +|------|------| +| 无线连接(笔迹) | BLE 5.0 / SLE 1.0 多连接 | +| 最大连接笔数 | 64 支 | +| UWB 接收 | 内置 UWB 接收模组,厘米级定位精度 | +| 供电方式 | USB 取电(连接黑板主板)| +| 上行网络 | WiFi 上联互联网 | +| 处理器 | 嵌入式 ARM/RISC | +| 协议 | WebSocket / mDNS / MQTT | +| 外形尺寸 | 直径 160mm 圆形 | +| 安装方式 | 壁挂式,固定于黑板背部或侧面墙壁 | + +**安装方式**:壁挂式,固定于黑板背面或侧面墙壁,通过 USB 线缆接入黑板主板取电,无需额外布线。教师和学生完全无感知,不改变原有教学习惯。 + +**产品外观**: + +产品外观为 + +直径:160mm +厚度:22mm +安装:墙面安装 + + + +> Bink 壁挂式黑板网关 — 直径 160mm 圆形设计,白色外壳融入教室环境,安装于黑板背部不占用教学空间 + +**应用场景**: + + + +> 会议室 / 教室场景 — 智慧大屏搭配 Bink 网关,教师板书内容实时呈现在大屏上,前排后排学生均可清晰看到 + + + +> 互动课堂场景 — 全班学生使用智能笔在点阵练习本上书写,Bink 网关实时汇聚笔迹数据并同步至大屏,教师可即时查看每位学生的作答情况 + +--- + +### 2. 教室网关 — Cink / Nink + +> **一句话介绍**:嵌入墙面开关位的隐形网关,取电于墙壁,无需额外布线,最多同时连接 20 支智能笔。 + +**产品定位**:安装于教室墙面开关底盒位置的嵌入式网关设备,直接从墙壁开关位取电,外观与普通开关面板融为一体,完全隐形于教室环境。与 Bink 黑板网关相比,Cink 不依赖黑板设备供电,适合在教室内灵活部署于任意开关位,覆盖笔连接数为 20 支,满足小班或分组教学场景。 + +**核心功能**: + +- **笔连接**:通过 BLE 5.0 / SLE 1.0 同时连接最多 20 支智能笔,实时采集笔迹数据 +- **数据转发网关**:将笔迹数据通过 WiFi 上联互联网,转发至算力盒(gRPC)或云平台(HTTPS),确保数据稳定传输 +- **离线缓存**:网络中断时本地缓存笔迹数据(最大 256MB 缓存空间),网络恢复后自动上传,不丢失任何一笔书写 +- **LED 状态指示**:黄色 = 未激活,蓝色 = 已激活在线,红色 = 故障,运维人员一目了然 +- **远程运维**:支持 OTA 固件升级、远程日志查看、设备参数远程配置,降低学校 IT 维护成本 + +**技术参数**: + +| 参数 | 规格 | +|------|------| +| 无线连接 | BLE 5.0 / SLE 1.0 多连接 | +| 最大连接笔数 | 20 支 | +| 供电方式 | 墙壁开关位取电 | +| 上行网络 | WiFi 上联互联网 | +| 处理器 | 嵌入式 ARM/RISC | +| 协议 | gRPC / WebSocket / MQTT / mDNS | +| 安装方式 | 嵌入墙面开关底盒,外观与开关面板一致 | + +**安装方式**:安装于教室墙面开关底盒,替换或并排于普通开关面板,直接从墙壁取电,无需额外布线。外观与开关面板融为一体,教室整洁美观,学生完全无感知。 + +**产品外观**: + + + +> Cink 教室网关壁挂安装效果 — 白色方形外观,壁挂于教室墙面高处,与教室装修风格融为一体,学生无感知 + +**应用场景**: + +Cink 教室网关适用于以下典型场景: + +- **小班教学(20 人以内)**:单台 Cink 嵌入教室开关位,隐形部署,全班学生同时使用智能笔在点阵练习本上书写,笔迹数据实时汇聚并推送至教师大屏,即装即用,安装无感 +- **分组教学**:一间教室内多个学习小组各由一台 Cink 就近覆盖,各组数据独立采集、互不干扰,教师在教师端可按组查看学生作答情况 +- **考试场景**:学生使用智能笔在点阵试卷上答题,Cink 实时采集答题数据并加密传输至服务器,考试结束即出成绩,教师无需手动收卷阅卷 +- **无黑板场景**:适合未部署智慧黑板但需要笔迹数字化的教室,仅需在墙壁开关位安装 Cink,配合普通显示器即可实现互动课堂功能 + +--- + +### 3. 教师笔 — Mink + +> **一句话介绍**:铝合金笔身 + 高帧率光学模组,教师手中的智慧教学核心工具。 + +**产品定位**:教师专用高端智能点阵笔,铝合金笔身设计,具备高帧率光学采集、麦克风语音控制和丰富的交互功能,是教师课堂教学的核心工具。教师只需在点阵纸上正常书写,Mink 即可将每一笔板书数字化,实时同步至智慧大屏,让后排学生也能清晰看到板书内容。 + +**核心功能**: + +- **高精度书写**:内置高帧率(130FPS)CMOS 光学模组,在点阵纸上书写精度达 0.1mm,延迟 < 20ms,书写体验与普通笔一致 +- **压力感应**:内置压力传感器,感知书写力度,实现粗细变化的自然笔迹还原,板书更生动 +- **语音交互**:内置麦克风,支持按键说话进行语音指令控制(发题、翻页、切屏等),无需走到电脑前操作 +- **蜂鸣提示**:答题超时、收卷完成等事件的声音提醒,教师第一时间掌握课堂动态 +- **多设备连接**:BLE 5.0 / SLE 1.0 直连黑板网关或教室网关,数据实时同步至大屏 + +**硬件配置(典型)**: + +| 参数 | 规格 | +|------|------| +| 镜头帧率 | 130 FPS | +| 笔身材质 | 铝合金,电镀笔帽/笔尖 | +| 电池 | 180 mAh 可充电锂电池 | +| 陀螺仪 | 6轴 | +| 存储 | 32 MB | +| 无线连接 | BLE 5.0 / SLE 1.0 | +| 充电方式 | USB-C 磁吸充电 | + +**产品外观**: + +Mink 教师笔采用铝合金一体成型笔身,表面经阳极氧化处理,手感细腻温润。电镀笔帽与笔尖赋予整支笔专业仪器般的精致质感。笔身长度与普通签字笔相当,重量适中,教师长时间握持书写不易疲劳。笔身中段内嵌功能按键,可快速切换书写/指令/语音模式,操作便捷不打断教学节奏。 + +**应用场景**: + + + +> 板书教学场景 — 教师手持 Mink 教师笔在点阵教案上书写,板书内容通过 Bink 网关实时呈现在智慧黑板上,前排后排学生均可清晰看到 + + + +> 批改作业场景 — 教师使用 Mink 教师笔在学生点阵作业本上批改,批改痕迹自动数字化,家长可通过 APP 查看批改详情 + + + +> 讲台桌面场景 — Mink 教师笔搭配液晶手写板在讲台使用,教师无需面对黑板即可完成板书,同时保持与学生的目光交流 + +--- + +### 4. 学生笔 — Tink + +> **一句话介绍**:轻量耐摔的学生专属智能笔,像普通笔一样书写,让每一笔作业自动数字化。 + +**产品定位**:面向中小学生的日常书写智能点阵笔,注重轻量化、耐用性和性价比,满足课堂互动和作业数字化的基本需求。学生无需改变书写习惯,在点阵纸上正常书写即可完成作业提交、课堂互动和考试答题。 + +**核心功能**: + +- **书写数字化**:在点阵纸上正常书写,笔迹坐标实时采集并通过 BLE 5.0 / SLE 1.0 传输至教室网关,书写体验与普通笔完全一致 +- **自动点名**:笔进入教室范围自动与网关建立连接,实现电子签到,无需人工操作 +- **离线存储**:笔在未联网状态下可将笔迹数据暂存于内置存储(16~32MB),联网后自动同步,不丢失任何书写内容 +- **墨水窗**:透明墨水窗设计,直观查看笔芯余墨量,及时更换笔芯 +- **耐摔设计**:ABS 塑料笔身,抗 1.2m 高度跌落,适合学生日常使用 + +**硬件配置(典型)**: + +| 参数 | 规格 | +|------|------| +| 镜头帧率 | 130 FPS | +| 笔身材质 | ABS 塑料,未电镀 | +| 电池 | 180 mAh 可充电锂电池 | +| 陀螺仪 | 6轴 | +| 存储 | 16~32 MB | +| 无线连接 | BLE 5.0 / SLE 1.0 | +| 充电方式 | USB-C | +| 笔身重量 | 约 18g(含电池) | + +**产品外观**: + + + +> Tink 学生笔产品外观 — 橙色 ABS 笔身,轻巧耐摔,带笔夹设计,外形与普通签字笔接近,学生易于接受 + + + +> Tink 学生笔握笔姿态 — 符合学生书写习惯的人体工学握持设计,笔身粗细适中,长时间书写不疲劳 + +**应用场景**: + + + +> 日常练习场景 — 学生使用 Tink 学生笔在点阵练习本上书写,笔迹数据实时采集并同步至云端,教师可随时查看练习进度 + + + +> 考试答题场景 — 学生使用 Tink 学生笔在点阵试卷上答题,答题结束后系统自动收卷、AI 自动批改,教师当堂即可查看成绩 + +--- + +### 5. 指向遥控器头 — Qink + +> **一句话介绍**:插入 Mink 教师笔的 UWB 发射模组,让教师手中的智能笔同时具备指向遥控器功能。 + +**产品定位**:Qink 是一个微型 UWB 发射模组,通过 USB 接口插入 Mink 教师笔顶部。插入后,教师手持 Mink 书写的同时即可作为空间指向遥控器使用——Qink 持续向 Bink 黑板网关(UWB 接收端)发送空间方位信号,Bink 解算出指向坐标并转化为大屏光标位置,实现"所指即所得"的精准操控。教师无需另携遥控器,一支笔即可完成板书与遥控的双重功能。 + +**核心功能**: + +- **UWB 精准发射**:内置超宽带(UWB)发射模组,持续向 Bink 发送空间方位信号,配合 Bink 接收端实现厘米级定位精度 +- **即插即用**:通过 USB 接口插入 Mink 教师笔顶部,由智能笔供电,无需独立充电,插上即激活 +- **书写与指向融合**:教师正常书写时同步发射 UWB 信号,书写、翻页、光标控制在一支笔上无缝切换 +- **轻巧便携**:体积小巧,插入后不影响教师握笔书写的手感和重心 + +**技术参数**: + +| 参数 | 规格 | +|------|------| +| 发射技术 | UWB(超宽带)| +| 接口 | USB,插入 Mink 教师笔顶部 | +| 供电 | 由 Mink 智能笔经 USB 供电 | +| 配合接收端 | Bink 黑板网关(UWB 接收)| +| 定位精度 | 厘米级(< 5cm,配合 Bink)| +| 外形 | 微型模组,插入后与笔身融为一体 | + +**安装方式**:直接插入 Mink 教师笔顶部 USB 接口,即插即用,无需配置。取下后 Mink 恢复普通智能笔模式,Qink 可随时插拔。 + +**产品外观**: + + + +> Qink 指向遥控器头(深灰款)— T 型 UWB 接收模组设计,插入智能笔顶部,轻巧便携 + + + +> Qink 指向遥控器头(橙色款)— 与 Tink 学生笔配色一致,一体化视觉设计 + + + +> Qink 指向遥控器头(黑头橙身款)— 黑色接收头搭配橙色笔身,品牌辨识度高 + +**应用场景**: + + + +> 互动课堂场景 — Qink 接收头部署于大屏旁侧,实时接收教师遥控器和学生智能笔的指向信号,实现全班多人同屏互动操控 + +--- + +### 6. 指向遥控器 — Link / Rink + +> **一句话介绍**:一把遥控器替代所有,空间指向 + 语音 + 红外 + IoT 联动,教室智能操控的全能终端。 + +**产品定位**:智能指向遥控器手持端,集成 UWB 空间指向、蓝牙语音、红外控制、IoT 联动等多种能力,实现对教室大屏、灯光、窗帘、空调的一体化智能操控。教师只需一把 Rink 遥控器,即可告别教室讲台上杂乱的多个遥控器,在教室任意位置从容操控所有设备。 + +**核心功能**: + +- **空间指向操控**:内置 UWB 模组 + 陀螺仪传感器,在空中挥动即可精准控制屏幕光标,所指即所得,操控精度达厘米级 +- **触控板操控**:方向键区域支持触控滑动,用于精细操作和翻页,像笔记本触控板一样流畅 +- **语音控制**:内置麦克风,支持语音搜索、语音指令控制教室设备,解放双手 +- **红外学习与发射**:学习电视机、空调、投影仪等设备的红外编码,一键替代多个遥控器 +- **RF433 射频控制**:控制窗帘电机、智能开关等 433MHz 射频设备,覆盖更多教室终端 +- **IoT 场景联动**:一键切换"上课模式""护眼模式""放学模式"等场景预设,大屏、灯光、窗帘、空调联动响应 + +**硬件配置**: + +| 参数 | 规格 | +|------|------| +| 主芯片 | TL7215A(星闪/蓝牙 SOC) | +| UWB 芯片 | GT1500 | +| 按键数量 | 7 键 + 触控区 | +| 供电 | 1000mAh 充电锂电池 | +| 无线协议 | 星闪 / BLE / UWB / 红外 | +| 充电方式 | USB-C | +| 续航 | 常规使用约 30 天 | + +**产品外观**: + + + +> Rink 指向遥控器产品外观 — 银色金属机身,正面集成触控板与功能按键,侧面配备红外发射窗口,手感舒适、质感出色 + +**应用场景**: + + + +> 智慧教育场景 — 教师手持 Rink 指向遥控器在教室中自由走动,隔空操控大屏翻页、标注,同时控制灯光和窗帘,打造沉浸式教学体验 + +--- + +### 7. 手写板 — Hink / Xink + +> **一句话介绍**:无需配套笔的液晶手写板,手指即可书写,笔迹实时同步大屏。 + +**产品定位**:免笔压感式手写输入板,教师在板面上用手指或任意硬物书写,笔迹实时同步至大屏显示,是传统黑板粉笔书写的数字化替代方案。Hink 手写板解决了"教师面对黑板背对学生"的传统痛点,教师可以在讲台上低头书写,抬头即可与学生互动。 + +**核心功能**: + +- **免笔书写**:采用电容/电阻触摸膜技术,无需配套笔,手指或任意硬物均可书写,使用门槛为零 +- **一键擦除**:专用擦除按键,一键清空当前画面,切换题目快速高效 +- **蓝牙无线**:通过 BLE 5.0 / SLE 1.0 与教室网关或黑板连接,无需布线,讲台整洁无杂乱 +- **USB 供电**:通过 USB-C 接口充电,内置电池,无线使用续航持久 +- **多点触控**:支持多点同时书写,教师可同步书写与标注,或师生协作共同操作 + +**硬件配置**: + +| 参数 | 规格 | +|------|------| +| 触控技术 | 电容触摸膜 | +| 无线连接 | BLE 5.0 / SLE 1.0 | +| 供电方式 | USB-C(5V),内置锂电池 | +| 书写区域 | A4 幅面 | +| 主控芯片 | 蓝牙 SOC | +| 显示技术 | LCD 液晶书写屏 | + +**产品外观**: + + + +> Hink 液晶手写板产品外观 — 黑色书写面板,圆角边框设计,A4 幅面书写区域,轻薄便携可随手携带 + +**应用场景**: + + + +> 讲台教学场景 — 教师在 Hink 手写板上书写化学公式,笔迹实时同步至大屏,教师无需转身面对黑板,保持与学生的目光交流 + + + +> 化学课堂场景 — 教师在 Hink 液晶手写板上书写化学方程式和知识图谱,大屏同步显示,前排后排学生均可清晰看到板书内容 + +--- + +### 8. 算力盒 — Dink / Zink + +> **一句话介绍**:教室里的边缘 AI 大脑,离线也能秒级完成手写识别,写完即出结果。 + +**产品定位**:部署在教室内的边缘 AI 计算设备,将云端 AI 推理能力下沉至本地,实现离线或弱网环境下的实时手写识别,是互动课堂系统的智能大脑。Zink 算力盒确保即使校园网络不稳定,AI 识别能力也不降级,学生"写完即出结果"的体验始终如一。 + +**核心功能**: + +- **端侧 AI 推理**:本地运行轻量化 AI 模型,支持中英文手写 OCR 识别、数学列式识别、中文笔顺评分,不依赖云端 +- **超低延迟**:单次 OCR 识别延迟 < 200ms,学生写完即出结果,课堂节奏不中断 +- **离线可用**:断网环境下 AI 识别能力不降级,结果本地缓存待网络恢复后自动上传 +- **多终端分发**:识别结果通过 WebSocket 实时推送至智慧黑板、教师 PC、学生 Pad,多屏同步展示 +- **云边协同**:通过 MQTT 向云端上报运行状态(GPU 利用率、温度、推理 QPS),支持 AI 模型在线更新 +- **集群管理**:支持校级多台算力盒组成集群,统一调度与负载均衡,一个管理后台管控全校设备 +- **OTA 升级**:支持固件和 AI 模型的远程在线升级,A/B 分区无损升级,升级失败自动回滚 + +**硬件配置**: + +| 参数 | 规格 | +|------|------| +| 处理器 | RK3588 八核 / NVIDIA Jetson | +| AI 算力 | NPU 6 TOPS / GPU 512 CUDA 核 | +| 内存 | 8~32 GB LPDDR4x | +| 存储 | 64GB eMMC + NVMe SSD | +| 网络 | 千兆以太网 x2 + WiFi 6 | +| 功耗 | 15~30W(自适应) | +| 尺寸 | 180mm x 160mm x 28mm | +| 工作温度 | -10°C ~ 50°C | +| 接口 | 双千兆网口、3x HDMI、USB、DC 电源 | + +**安装方式**:壁挂或桌面放置,有线接入校园网。可隐藏安装于智慧黑板/电视机背面,无需红外遥控,通过网络远程管理。教室正面完全看不到设备,整洁无线缆外露。 + +**产品外观**: + + + +> Zink 算力盒产品外观 — 深灰色金属外壳,尺寸 180mm x 160mm x 28mm,紧凑小巧,正面展示双千兆网口、3x HDMI、USB 及电源接口 + + + +> Zink 算力盒接口面板详图 — 从左至右依次为双千兆网口、3 个 HDMI 输出接口、USB 接口和 DC 电源接口,满足多屏输出和外设扩展需求 + +**应用场景**: + + + +> 壁挂部署场景 — Zink 算力盒通过支架固定于智慧黑板侧面墙壁,HDMI 线缆连接大屏,上方搭配摄像头实现 AI 视觉辅助教学,整体部署整洁美观 diff --git a/eleventy.config.js b/eleventy.config.js new file mode 100644 index 0000000..b8aba5c --- /dev/null +++ b/eleventy.config.js @@ -0,0 +1,13 @@ +module.exports = function (eleventyConfig) { + eleventyConfig.addPassthroughCopy("src/img"); + eleventyConfig.addPassthroughCopy("src/product/img"); + eleventyConfig.addPassthroughCopy("src/News/img"); + eleventyConfig.addPassthroughCopy("src/css"); + eleventyConfig.addPassthroughCopy("src/js"); + + return { + dir: { input: "src", output: "_site" }, + templateFormats: ["njk", "html"], + htmlTemplateEngine: "njk", + }; +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0824cd1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1686 @@ +{ + "name": "writech-web", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "writech-web", + "version": "1.0.0", + "devDependencies": { + "@11ty/eleventy": "^3.0.0" + } + }, + "node_modules/@11ty/dependency-tree": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-4.0.2.tgz", + "integrity": "sha512-RTF6VTZHatYf7fSZBUN3RKwiUeJh5dhWV61gDPrHhQF2/gzruAkYz8yXuvGLx3w3ZBKreGrR+MfYpSVkdbdbLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.1" + } + }, + "node_modules/@11ty/dependency-tree-esm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.4.tgz", + "integrity": "sha512-MYKC0Ac77ILr1HnRJalzKDlb9Z8To3kXQCltx299pUXXUFtJ1RIONtULlknknqW8cLe19DLVgmxVCtjEFm7h0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "acorn": "^8.15.0", + "dependency-graph": "^1.0.0", + "normalize-path": "^3.0.0" + } + }, + "node_modules/@11ty/eleventy": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.1.6.tgz", + "integrity": "sha512-ZlSiR1PLdS2lv7TelBgWAhcvMiLNZkPBlLEb+lh7kGYZ+Mk0bo9qcYgVsewvw9W7Em0RH3wd01h5fAstNDh0zA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@11ty/dependency-tree": "^4.0.2", + "@11ty/dependency-tree-esm": "^2.0.4", + "@11ty/eleventy-dev-server": "^2.0.8", + "@11ty/eleventy-plugin-bundle": "^3.0.7", + "@11ty/eleventy-utils": "^2.0.7", + "@11ty/lodash-custom": "^4.17.21", + "@11ty/posthtml-urls": "^1.0.3", + "@11ty/recursive-copy": "^4.0.4", + "@sindresorhus/slugify": "^2.2.1", + "bcp-47-normalize": "^2.3.0", + "chokidar": "^3.6.0", + "debug": "^4.4.3", + "dependency-graph": "^1.0.0", + "entities": "^6.0.1", + "filesize": "^10.1.6", + "gray-matter": "^4.0.3", + "iso-639-1": "^3.1.5", + "js-yaml": "^4.1.1", + "kleur": "^4.1.5", + "liquidjs": "^10.27.0", + "luxon": "^3.7.2", + "markdown-it": "^14.2.0", + "minimist": "^1.2.8", + "moo": "0.5.2", + "node-retrieve-globals": "^6.0.1", + "nunjucks": "^3.2.4", + "picomatch": "^4.0.4", + "please-upgrade-node": "^3.2.0", + "posthtml": "^0.16.7", + "posthtml-match-helper": "^2.0.3", + "semver": "^7.8.1", + "slugify": "^1.6.9", + "tinyglobby": "^0.2.16" + }, + "bin": { + "eleventy": "cmd.cjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-dev-server": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.8.tgz", + "integrity": "sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.1", + "chokidar": "^3.6.0", + "debug": "^4.4.0", + "finalhandler": "^1.3.1", + "mime": "^3.0.0", + "minimist": "^1.2.8", + "morphdom": "^2.7.4", + "please-upgrade-node": "^3.2.0", + "send": "^1.1.0", + "ssri": "^11.0.0", + "urlpattern-polyfill": "^10.0.0", + "ws": "^8.18.1" + }, + "bin": { + "eleventy-dev-server": "cmd.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-plugin-bundle": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.7.tgz", + "integrity": "sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.2", + "debug": "^4.4.0", + "posthtml-match-helper": "^2.0.3" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-2.0.7.tgz", + "integrity": "sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/lodash-custom": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz", + "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/posthtml-urls": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.3.tgz", + "integrity": "sha512-1YvhnkaNlFnnJic1rBMWmTC2adbuy+JQiBfl1Hecr1Wjjik1pQZmGyk/eC9zKX/FQv52s2Nht1Gi/UwhYqrBeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "evaluate-value": "^2.0.0", + "http-equiv-refresh": "^2.0.1", + "list-to-array": "^1.1.0", + "parse-srcset": "^1.0.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@11ty/recursive-copy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.4.tgz", + "integrity": "sha512-oI7m8pa7/IAU/3lqRU9vjBbs20iKFo7x+1K9kT3aVira6scc1X9MjBdgLCHzLJeJ7iB6wydioA+kr9/qPnvmlQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "errno": "^1.0.0", + "junk": "^3.1.0", + "minimatch": "^3.1.5", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sindresorhus/slugify": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", + "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/transliterate": "^1.0.0", + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/transliterate": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz", + "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bcp-47": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", + "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-match": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", + "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-normalize": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-2.3.0.tgz", + "integrity": "sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "bcp-47": "^2.0.0", + "bcp-47-match": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/errno/-/errno-1.0.0.tgz", + "integrity": "sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esm-import-transformer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/esm-import-transformer/-/esm-import-transformer-3.0.5.tgz", + "integrity": "sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/evaluate-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/evaluate-value/-/evaluate-value-2.0.0.tgz", + "integrity": "sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/filesize": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", + "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 10.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz", + "integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-equiv-refresh": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-2.0.1.tgz", + "integrity": "sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/iso-639-1": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.6.tgz", + "integrity": "sha512-ZFar/L4ngX7wZh2QX+Fiftmuf0igWJsrJtfizrovWifF1gAWkfmRa5Z1m0LQZbm0hKCHRDYhLRSLFrSqNe4EJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/js-yaml": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/linkify-it": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz", + "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/liquidjs": { + "version": "10.27.1", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.27.1.tgz", + "integrity": "sha512-ylE+1q2kSef1UxAyxqbyuWM3FRWS1v48JK1Y3CoW3bD6TSNXZh0+GsVnihujEpKyR+Jejx2aRAFfC3AHm9rElg==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^10.0.0" + }, + "bin": { + "liquid": "bin/liquid.js", + "liquidjs": "bin/liquid.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/liquidjs" + } + }, + "node_modules/list-to-array": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz", + "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/markdown-it": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.0.tgz", + "integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.5.0", + "linkify-it": "^5.0.2", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/morphdom": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.8.tgz", + "integrity": "sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-retrieve-globals": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-6.0.1.tgz", + "integrity": "sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.1", + "acorn-walk": "^8.3.4", + "esm-import-transformer": "^3.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/posthtml": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.7.tgz", + "integrity": "sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-match-helper": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.3.tgz", + "integrity": "sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "posthtml": "^0.16.6" + } + }, + "node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT" + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/range-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT" + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slugify": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.9.tgz", + "integrity": "sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz", + "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", + "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8b01d02 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "writech-web", + "version": "1.0.0", + "private": true, + "scripts": { + "build:zh": "ELEVENTY_LOCALE=zh npx @11ty/eleventy --output=./_site/dist-zh", + "build:en": "ELEVENTY_LOCALE=en npx @11ty/eleventy --output=./_site/dist-en", + "build:zh-hant": "ELEVENTY_LOCALE=zh-hant npx @11ty/eleventy --output=./_site/dist-zh-hant", + "dev:zh": "ELEVENTY_LOCALE=zh npx @11ty/eleventy --serve", + "dev:en": "ELEVENTY_LOCALE=en npx @11ty/eleventy --serve", + "dev:zh-hant": "ELEVENTY_LOCALE=zh-hant npx @11ty/eleventy --serve", + "clean": "rm -rf _site/*" + }, + "devDependencies": { + "@11ty/eleventy": "^3.0.0" + } +} diff --git a/src/News/img/poster_01.png b/src/News/img/poster_01.png new file mode 100644 index 0000000..c31f0b4 Binary files /dev/null and b/src/News/img/poster_01.png differ diff --git a/src/News/img/poster_02.png b/src/News/img/poster_02.png new file mode 100644 index 0000000..5036b36 Binary files /dev/null and b/src/News/img/poster_02.png differ diff --git a/src/News/img/poster_03.png b/src/News/img/poster_03.png new file mode 100644 index 0000000..b861f05 Binary files /dev/null and b/src/News/img/poster_03.png differ diff --git a/src/News/img/poster_04.png b/src/News/img/poster_04.png new file mode 100644 index 0000000..ae792d5 Binary files /dev/null and b/src/News/img/poster_04.png differ diff --git a/src/News/img/poster_05.png b/src/News/img/poster_05.png new file mode 100644 index 0000000..0a4d7b0 Binary files /dev/null and b/src/News/img/poster_05.png differ diff --git a/src/News/img/poster_06.png b/src/News/img/poster_06.png new file mode 100644 index 0000000..31fc9df Binary files /dev/null and b/src/News/img/poster_06.png differ diff --git a/src/News/img/poster_07.png b/src/News/img/poster_07.png new file mode 100644 index 0000000..8e756bb Binary files /dev/null and b/src/News/img/poster_07.png differ diff --git a/src/News/img/poster_08.png b/src/News/img/poster_08.png new file mode 100644 index 0000000..b2b71d6 Binary files /dev/null and b/src/News/img/poster_08.png differ diff --git a/src/News/img/poster_09.png b/src/News/img/poster_09.png new file mode 100644 index 0000000..de675b9 Binary files /dev/null and b/src/News/img/poster_09.png differ diff --git a/src/News/img/poster_10.png b/src/News/img/poster_10.png new file mode 100644 index 0000000..2a64559 Binary files /dev/null and b/src/News/img/poster_10.png differ diff --git a/src/News/img/poster_11.png b/src/News/img/poster_11.png new file mode 100644 index 0000000..68a4d55 Binary files /dev/null and b/src/News/img/poster_11.png differ diff --git a/src/News/img/poster_12.png b/src/News/img/poster_12.png new file mode 100644 index 0000000..ba758b4 Binary files /dev/null and b/src/News/img/poster_12.png differ diff --git a/src/News/img/poster_13.png b/src/News/img/poster_13.png new file mode 100644 index 0000000..de2986b Binary files /dev/null and b/src/News/img/poster_13.png differ diff --git a/src/News/img/poster_14.png b/src/News/img/poster_14.png new file mode 100644 index 0000000..4035e94 Binary files /dev/null and b/src/News/img/poster_14.png differ diff --git a/src/News/img/poster_15.png b/src/News/img/poster_15.png new file mode 100644 index 0000000..a13319c Binary files /dev/null and b/src/News/img/poster_15.png differ diff --git a/src/News/img/poster_16.png b/src/News/img/poster_16.png new file mode 100644 index 0000000..15bd2ea Binary files /dev/null and b/src/News/img/poster_16.png differ diff --git a/src/News/img/poster_17.png b/src/News/img/poster_17.png new file mode 100644 index 0000000..8ecd26d Binary files /dev/null and b/src/News/img/poster_17.png differ diff --git a/src/News/img/poster_18.png b/src/News/img/poster_18.png new file mode 100644 index 0000000..8e1e5c8 Binary files /dev/null and b/src/News/img/poster_18.png differ diff --git a/src/News/img/poster_19.png b/src/News/img/poster_19.png new file mode 100644 index 0000000..e2f0db4 Binary files /dev/null and b/src/News/img/poster_19.png differ diff --git a/src/News/img/poster_20.png b/src/News/img/poster_20.png new file mode 100644 index 0000000..23bd483 Binary files /dev/null and b/src/News/img/poster_20.png differ diff --git a/src/News/img/poster_21.png b/src/News/img/poster_21.png new file mode 100644 index 0000000..bb09ed8 Binary files /dev/null and b/src/News/img/poster_21.png differ diff --git a/src/News/img/poster_22.png b/src/News/img/poster_22.png new file mode 100644 index 0000000..40fe2ee Binary files /dev/null and b/src/News/img/poster_22.png differ diff --git a/src/News/img/poster_23.png b/src/News/img/poster_23.png new file mode 100644 index 0000000..e99d2ee Binary files /dev/null and b/src/News/img/poster_23.png differ diff --git a/src/_data/locale.js b/src/_data/locale.js new file mode 100644 index 0000000..07e467e --- /dev/null +++ b/src/_data/locale.js @@ -0,0 +1 @@ +module.exports = process.env.ELEVENTY_LOCALE || "zh"; diff --git a/src/_data/locales.js b/src/_data/locales.js new file mode 100644 index 0000000..d6d0c6c --- /dev/null +++ b/src/_data/locales.js @@ -0,0 +1 @@ +module.exports = ["zh", "en", "zh-hant"]; diff --git a/src/_data/news.en.json b/src/_data/news.en.json new file mode 100644 index 0000000..51ff9e7 --- /dev/null +++ b/src/_data/news.en.json @@ -0,0 +1,45 @@ +{ + "categories": [ + { + "title": "Interactive Classroom Digitization Policies", + "tag": "8 items", + "items": [ + { "seq": 1, "title": "Nine Ministries' Opinion on Accelerating Education Digitization", "date": "April 2025", "source": "Nine Ministries", "summary": "Comprehensively advancing Education Digitization 2.0, improving the national smart education platform, promoting interactive classrooms and digital textbooks.", "url": "http://www.moe.gov.cn/srcsite/A01/s7048/202504/t20250416_1187476.html", "poster": "poster_01.png" }, + { "seq": 2, "title": "Education Informatization 2.0 Action Plan", "date": "April 2018", "source": "Ministry of Education", "summary": "Using internet, big data, AI and other new-generation IT to deepen educational reform and innovation, promoting interactive classrooms and digital teaching.", "url": "http://www.moe.gov.cn/srcsite/A16/s3342/201804/t20180425_334188.html", "poster": "poster_02.png" }, + { "seq": 3, "title": "Education Power Construction Plan (2024–2035)", "date": "January 2025", "source": "CPC Central Committee & State Council", "summary": "The first national action plan focused on building educational power, accelerating digital textbook transformation and blended smart education systems.", "url": "http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202501/t20250119_1176193.html", "poster": "poster_03.png" }, + { "seq": 4, "title": "China Smart Education White Paper & Digital Education Strategy 2.0", "date": "May 2025", "source": "Ministry of Education", "summary": "Adhering to the '3C' philosophy and '3I' strategy, promoting deep integration of smart classrooms and interactive teaching.", "url": "http://www.moe.gov.cn/jyb_xwfb/xw_zt/moe_357/2025/2025_zt06/cgfb/202505/t20250507_1189603.html", "poster": "poster_04.png" }, + { "seq": 5, "title": "National Smart Education Platform Resource Management Standards", "date": "May 2024", "source": "Ministry of Education", "summary": "Standardizing digital education resource management on the national smart education platform.", "url": "https://www.gov.cn/zhengce/zhengceku/202407/content_6961951.htm", "poster": "poster_05.png" }, + { "seq": 6, "title": "Guiding Opinions on New Education Infrastructure", "date": "July 2021", "source": "Six Ministries", "summary": "Promoting education digital transformation, building smart campuses and digital resource systems using big data and AI.", "url": "http://www.moe.gov.cn/srcsite/A16/s3342/202107/t20210720_545783.html", "poster": "poster_06.png" }, + { "seq": 7, "title": "Education Digitization Progress Press Conference (14th Five-Year Plan)", "date": "2025", "source": "Ministry of Education", "summary": "Reporting significant progress in education digitization during the 14th Five-Year Plan period.", "url": "http://www.moe.gov.cn/fbh/live/2025/77791/", "poster": "poster_07.png" }, + { "seq": 8, "title": "Review of 2025 Education Digitization Policies and Events", "date": "2025", "source": "CERNET", "summary": "Systematic review of education digitization policies from 2023-2025.", "url": "https://www.edu.cn/xxh/yc/202512/t20251231_2713557.shtml", "poster": "poster_08.png" } + ] + }, + { + "title": "Policies Against Student Use of Tablets and Electronic Devices", + "tag": "8 items", + "items": [ + { "seq": 9, "title": "Notice on Strengthening Mobile Phone Management for Primary and Secondary Students", "date": "January 2021", "source": "Ministry of Education", "summary": "Students should generally not bring phones to school; phones banned from classrooms.", "url": "http://www.moe.gov.cn/srcsite/A06/s7053/202101/t20210126_511120.html", "poster": "poster_09.png" }, + { "seq": 10, "title": "Comprehensive Prevention and Control of Myopia in Children and Adolescents", "date": "August 2018", "source": "Eight Ministries", "summary": "Strictly limiting electronic screen time in teaching to no more than 30% of total instruction time.", "url": "http://www.moe.gov.cn/srcsite/A17/moe_943/s3285/201808/t20180830_346672.html", "poster": "poster_10.png" }, + { "seq": 11, "title": "Bright Light Action Plan for Myopia Prevention (2021-2025)", "date": "May 2021", "source": "Fifteen Ministries", "summary": "Electronic device use in teaching should not exceed 30% of total instruction time; paper homework encouraged.", "url": "http://www.moe.gov.cn/srcsite/A17/moe_943/s3285/202105/t20210511_530655.html", "poster": "poster_11.png" }, + { "seq": 12, "title": "Ten Measures to Strengthen Student Mental Health", "date": "October 2025", "source": "Ministry of Education", "summary": "Strictly prohibiting electronic devices in classrooms, promoting screen-free initiatives.", "url": "https://news.e23.cn/guonei/2025-10-24/2025A2400169.html", "poster": "poster_12.png" }, + { "seq": 13, "title": "Notice on Scientifically Protecting Children's Hyperopia Reserve", "date": "November 2025", "source": "Three Ministries", "summary": "No electronic devices for children 0-3; classroom screen time not to exceed 30%.", "url": "https://www.moe.gov.cn/srcsite/A17/moe_943/s3285/202511/t20251107_1419599.html", "poster": "poster_13.png" }, + { "seq": 14, "title": "Notice on Myopia Prevention in Kindergartens and Primary Schools", "date": "2024", "source": "Three Ministries", "summary": "Strictly controlling electronic device use to under 30% of teaching time; at least 2 hours outdoor activity daily.", "url": "http://big5.www.gov.cn/gate/big5/www.gov.cn/zhengce/zhengceku/202411/content_6986582.htm", "poster": "poster_14.png" }, + { "seq": 15, "title": "Core Health Education Information on Myopia Prevention", "date": "2019", "source": "National Health Commission", "summary": "Classroom screen time not to exceed 30% of total teaching time, total daily use under 1 hour.", "url": "https://www.nhc.gov.cn/jkj/c100063/201903/b7b87b418b144e4b86c4d1d68d8d12b6.shtml", "poster": "poster_15.png" }, + { "seq": 16, "title": "Shandong Student Health Promotion Regulation", "date": "2018", "source": "Shandong People's Congress", "summary": "China's first local regulation explicitly banning phones, tablets and other electronics from classrooms.", "url": "https://www.edu.cn/xxh/focus/zc/201810/t20181009_1627736.shtml", "poster": "poster_16.png" } + ] + }, + { + "title": "Classroom Efficiency & Student Behavior Collection Policies", + "tag": "7 items", + "items": [ + { "seq": 17, "title": "Overall Plan for Deepening Education Evaluation Reform", "date": "October 2020", "source": "CPC Central Committee & State Council", "summary": "Emphasizing process evaluation and value-added evaluation, using IT and data analysis to monitor student growth.", "url": "http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202010/t20201013_494381.html", "poster": "poster_17.png" }, + { "seq": 18, "title": "National Compulsory Education Quality Monitoring Plan (2021 Revision)", "date": "September 2021", "source": "Ministry of Education", "summary": "Monitoring student academic performance and behavior through multi-dimensional indicators.", "url": "https://www.gov.cn/zhengce/zhengceku/2021-09/28/content_5639763.htm", "poster": "poster_18.png" }, + { "seq": 19, "title": "Notice on Implementing Digital Empowerment of Teacher Development", "date": "July 2025", "source": "Ministry of Education", "summary": "Using AI to improve classroom efficiency and student behavior analysis.", "url": "http://www.moe.gov.cn/srcsite/A10/s7034/202507/t20250704_1196586.html", "poster": "poster_19.png" }, + { "seq": 20, "title": "Teacher Generative AI Application Guide (First Edition)", "date": "December 2025", "source": "Ministry of Education", "summary": "Promoting scientific AI use in education for learning analytics and personalized instruction.", "url": "https://jyt.hlj.gov.cn/jyt/c110476/202512/c00_31893033.shtml", "poster": "poster_20.png" }, + { "seq": 21, "title": "Notice on AI-Empowered Teacher Development Pilot", "date": "2018 (Phase 2: 2021)", "source": "Ministry of Education", "summary": "Piloting in 103 cities, building 43,000 smart classrooms using AI for teacher behavior analysis.", "url": "http://www.moe.gov.cn/jyb_xwfb/gzdt_gzdt/moe_1485/202207/t20220701_642477.html", "poster": "poster_21.png" }, + { "seq": 22, "title": "Measures to Strengthen PE Teacher Development in the New Era", "date": "February 2025", "source": "Ministry of Education", "summary": "Deepening AI-empowered education initiatives, using AI for student behavior analysis and fitness monitoring.", "url": "https://www.edu.cn/xxh/focus/zc/202502/t20250206_2653899.shtml", "poster": "poster_22.png" }, + { "seq": 23, "title": "Promoting Education Digitization for Modernization (2023 Report)", "date": "2023", "source": "National Academy of Education Administration", "summary": "Systematically summarizing strategies for using digital technology for learning analytics and student behavior data collection.", "url": "https://www.naea.edu.cn/library/fileDir/resource/cms/article/93673/undefined/2023022110551471892.pdf", "poster": "poster_23.png" } + ] + } + ] +} diff --git a/src/_data/news.js b/src/_data/news.js new file mode 100644 index 0000000..d933bab --- /dev/null +++ b/src/_data/news.js @@ -0,0 +1,5 @@ +module.exports = { + zh: require("./news.zh.json"), + en: require("./news.en.json"), + "zh-hant": require("./news.zh-hant.json"), +}; diff --git a/src/_data/news.zh-hant.json b/src/_data/news.zh-hant.json new file mode 100644 index 0000000..353f704 --- /dev/null +++ b/src/_data/news.zh-hant.json @@ -0,0 +1,45 @@ +{ + "categories": [ + { + "title": "互動課堂效率數位化相關政策", + "tag": "共 8 項", + "items": [ + { "seq": 1, "title": "教育部等九部門《關於加快推進教育數位化的意見》", "date": "2025年4月 · 教辦〔2025〕3號", "source": "教育部等九部門", "summary": "全面推進教育數位化2.0,完善國家智慧教育公共服務平台,推動\"互動課堂\"、數位教材、智能教學等創新模式。", "url": "http://www.moe.gov.cn/srcsite/A01/s7048/202504/t20250416_1187476.html", "poster": "poster_01.png" }, + { "seq": 2, "title": "教育部《教育資訊化2.0行動計畫》", "date": "2018年4月", "source": "教育部", "summary": "利用網際網路、大數據、人工智慧等新一代資訊技術,深化教育理念變革和模式創新,推廣互動課堂和數位化教學。", "url": "http://www.moe.gov.cn/srcsite/A16/s3342/201804/t20180425_334188.html", "poster": "poster_02.png" }, + { "seq": 3, "title": "中共中央國務院《教育強國建設規劃綱要(2024—2035年)》", "date": "2025年1月", "source": "中共中央、國務院", "summary": "首個以教育強國為主題的國家行動計畫,加快教材數位化轉型、推動線上線下融合的智慧教育體系。", "url": "http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202501/t20250119_1176193.html", "poster": "poster_03.png" }, + { "seq": 4, "title": "教育部《中國智慧教育白皮書》及國家教育數位化戰略行動2.0", "date": "2025年5月", "source": "教育部", "summary": "堅持\"3C\"理念和\"3I\"戰略,推動智慧課堂、數位化教學和互動教學的深度融合。", "url": "http://www.moe.gov.cn/jyb_xwfb/xw_zt/moe_357/2025/2025_zt06/cgfb/202505/t20250507_1189603.html", "poster": "poster_04.png" }, + { "seq": 5, "title": "教育部辦公廳《國家智慧教育平台數位教育資源入庫出庫管理規範》", "date": "2024年5月", "source": "教育部辦公廳", "summary": "規範國家智慧教育平台的數位教育資源管理,促進數位化教學、智慧課堂和互動教學的實施。", "url": "https://www.gov.cn/zhengce/zhengceku/202407/content_6961951.htm", "poster": "poster_05.png" }, + { "seq": 6, "title": "教育部等六部門《關於推進教育新型基礎設施建設構建高品質教育支撐體系的指導意見》", "date": "2021年7月", "source": "教育部等六部門", "summary": "推動教育數位化轉型、構建智慧校園和數位資源體系,利用大數據、AI等技術推動教育創新。", "url": "http://www.moe.gov.cn/srcsite/A16/s3342/202107/t20210720_545783.html", "poster": "poster_06.png" }, + { "seq": 7, "title": "教育部\"十四五\"期間教育數位化進展成效新聞發布會", "date": "2025年", "source": "教育部", "summary": "介紹\"十四五\"期間教育數位化顯著進展,涵蓋智慧校園建設、課堂互動提升,推動教育向智能化方向發展。", "url": "http://www.moe.gov.cn/fbh/live/2025/77791/", "poster": "poster_07.png" }, + { "seq": 8, "title": "中國教育和科研計算機網《回顧2025|教育數位化相關政策和大事》", "date": "2025年", "source": "中國教育和科研計算機網", "summary": "系統梳理2023-2025年間教育數位化政策大事,推動智慧課堂和互動教學的深度融合。", "url": "https://www.edu.cn/xxh/yc/202512/t20251231_2713557.shtml", "poster": "poster_08.png" } + ] + }, + { + "title": "不提倡學生課堂使用平板等電子終端的相關政策", + "tag": "共 8 項", + "items": [ + { "seq": 9, "title": "教育部辦公廳《關於加強中小學生手機管理工作的通知》", "date": "2021年1月", "source": "教育部辦公廳", "summary": "明確中小學生原則上不得將手機帶入校園,禁止帶入課堂,禁止用手機布置作業。", "url": "http://www.moe.gov.cn/srcsite/A06/s7053/202101/t20210126_511120.html", "poster": "poster_09.png" }, + { "seq": 10, "title": "教育部等八部門《綜合防控兒童青少年近視實施方案》", "date": "2018年8月", "source": "教育部等八部門", "summary": "嚴格限制電子螢幕在教學中的使用時間,原則上不超過教學總時長的30%。", "url": "http://www.moe.gov.cn/srcsite/A17/moe_943/s3285/201808/t20180830_346672.html", "poster": "poster_10.png" }, + { "seq": 11, "title": "教育部等十五部門《兒童青少年近視防控光明行動工作方案(2021—2025年)》", "date": "2021年5月", "source": "教育部等十五部門", "summary": "學校教學中使用電子產品時間原則上不得超過總教學時長的30%,鼓勵採用紙質作業。", "url": "http://www.moe.gov.cn/srcsite/A17/moe_943/s3285/202105/t20210511_530655.html", "poster": "poster_11.png" }, + { "seq": 12, "title": "教育部《進一步加強中小學生心理健康工作十條措施》", "date": "2025年10月", "source": "教育部", "summary": "嚴禁將手機等電子產品帶入課堂,推動\"息屏行動\",培養學生健康用網習慣。", "url": "https://news.e23.cn/guonei/2025-10-24/2025A2400169.html", "poster": "poster_12.png" }, + { "seq": 13, "title": "教育部等三部門《關於科學保護兒童遠視儲備量的通知》", "date": "2025年11月", "source": "教育部等三部門", "summary": "0-3歲幼兒禁用電子產品,課堂教學電子螢幕使用時長不得超過30%。", "url": "https://www.moe.gov.cn/srcsite/A17/moe_943/s3285/202511/t20251107_1419599.html", "poster": "poster_13.png" }, + { "seq": 14, "title": "教育部等三部門《關於切實抓牢幼兒園和小學近視防控關鍵階段防控工作的通知》", "date": "2024年", "source": "教育部等三部門", "summary": "嚴格控制電子產品在教學中的使用時間不超過總時長的30%,鼓勵每天至少2小時戶外活動。", "url": "http://big5.www.gov.cn/gate/big5/www.gov.cn/zhengce/zhengceku/202411/content_6986582.htm", "poster": "poster_14.png" }, + { "seq": 15, "title": "國家衛健委《兒童青少年近視防控健康教育核心資訊》", "date": "2019年", "source": "國家衛健委", "summary": "學校教學電子螢幕使用時間不得超過總教學時長的30%,每天總使用時間不超1小時。", "url": "https://www.nhc.gov.cn/jkj/c100063/201903/b7b87b418b144e4b86c4d1d68d8d12b6.shtml", "poster": "poster_15.png" }, + { "seq": 16, "title": "山東省《學生體質健康促進條例》——全國首部地方電子產品課堂禁令", "date": "2018年", "source": "山東省人大", "summary": "全國首部以法規形式明確禁止中小學生將手機、平板電腦等電子產品帶入課堂。", "url": "https://www.edu.cn/xxh/focus/zc/201810/t20181009_1627736.shtml", "poster": "poster_16.png" } + ] + }, + { + "title": "課堂效率與學生行為採集相關政策", + "tag": "共 7 項", + "items": [ + { "seq": 17, "title": "中共中央國務院《深化新時代教育評價改革總體方案》", "date": "2020年10月", "source": "中共中央、國務院", "summary": "全面推進教育評價改革,強調過程性評價和增值評價,利用資訊技術和資料分析監測學生成長軌跡與行為表現。", "url": "http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202010/t20201013_494381.html", "poster": "poster_17.png" }, + { "seq": 18, "title": "教育部《國家義務教育質量監測方案(2021年修訂版)》", "date": "2021年9月", "source": "教育部", "summary": "以學生全面發展為核心,結合學科表現、心理健康等多維度指標,監測學生學業水平和行為表現。", "url": "https://www.gov.cn/zhengce/zhengceku/2021-09/28/content_5639763.htm", "poster": "poster_18.png" }, + { "seq": 19, "title": "教育部辦公廳《關於組織實施數位化賦能教師發展行動的通知》", "date": "2025年7月", "source": "教育部辦公廳", "summary": "利用AI技術推動課堂效率提升和學生行為分析,深化AI在課堂中的應用。", "url": "http://www.moe.gov.cn/srcsite/A10/s7034/202507/t20250704_1196586.html", "poster": "poster_19.png" }, + { "seq": 20, "title": "教育部《教師生成式人工智慧應用指引(第一版)》", "date": "2025年12月", "source": "教育部", "summary": "推動AI在教育中的科學應用,利用生成式AI進行學情分析、學生行為採集和個性化教學設計。", "url": "https://jyt.hlj.gov.cn/jyt/c110476/202512/c00_31893033.shtml", "poster": "poster_20.png" }, + { "seq": 21, "title": "教育部《關於實施人工智慧助推教師隊伍建設行動試點工作的通知》", "date": "2018年起,2021年二期", "source": "教育部", "summary": "在全國103個地市和高校推廣試點,建設4.3萬間智能教室,利用大數據和AI技術支援教師行為分析與教學診斷。", "url": "http://www.moe.gov.cn/jyb_xwfb/gzdt_gzdt/moe_1485/202207/t20220701_642477.html", "poster": "poster_21.png" }, + { "seq": 22, "title": "教育部《關於加強新時代中小學體育教師隊伍建設若干舉措的通知》", "date": "2025年2月", "source": "教育部", "summary": "深入實施人工智慧賦能教育行動,利用AI進行學生行為分析和體質健康監測。", "url": "https://www.edu.cn/xxh/focus/zc/202502/t20250206_2653899.shtml", "poster": "poster_22.png" }, + { "seq": 23, "title": "推進教育數位化賦能教育現代化(2023年PDF報告)", "date": "2023年", "source": "國家教育行政學院", "summary": "系統總結教育數位化推進策略,強調利用數位技術進行學情分析、課堂觀察、學生行為資料採集與分析。", "url": "https://www.naea.edu.cn/library/fileDir/resource/cms/article/93673/undefined/2023022110551471892.pdf", "poster": "poster_23.png" } + ] + } + ] +} diff --git a/src/_data/news.zh.json b/src/_data/news.zh.json new file mode 100644 index 0000000..20fc8c9 --- /dev/null +++ b/src/_data/news.zh.json @@ -0,0 +1,45 @@ +{ + "categories": [ + { + "title": "互动课堂效率数字化相关政策", + "tag": "共 8 项", + "items": [ + { "seq": 1, "title": "教育部等九部门《关于加快推进教育数字化的意见》", "date": "2025年4月 · 教办〔2025〕3号", "source": "教育部等九部门", "summary": "全面推进教育数字化2.0,完善国家智慧教育公共服务平台,推动\"互动课堂\"、数字教材、智能教学等创新模式。", "url": "http://www.moe.gov.cn/srcsite/A01/s7048/202504/t20250416_1187476.html", "poster": "poster_01.png" }, + { "seq": 2, "title": "教育部《教育信息化2.0行动计划》", "date": "2018年4月", "source": "教育部", "summary": "利用互联网、大数据、人工智能等新一代信息技术,深化教育理念变革和模式创新,推广互动课堂和数字化教学。", "url": "http://www.moe.gov.cn/srcsite/A16/s3342/201804/t20180425_334188.html", "poster": "poster_02.png" }, + { "seq": 3, "title": "中共中央国务院《教育强国建设规划纲要(2024—2035年)》", "date": "2025年1月", "source": "中共中央、国务院", "summary": "首个以教育强国为主题的国家行动计划,加快教材数字化转型、推动线上线下融合的智慧教育体系。", "url": "http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202501/t20250119_1176193.html", "poster": "poster_03.png" }, + { "seq": 4, "title": "教育部《中国智慧教育白皮书》及国家教育数字化战略行动2.0", "date": "2025年5月", "source": "教育部", "summary": "坚持\"3C\"理念和\"3I\"战略,推动智慧课堂、数字化教学和互动教学的深度融合。", "url": "http://www.moe.gov.cn/jyb_xwfb/xw_zt/moe_357/2025/2025_zt06/cgfb/202505/t20250507_1189603.html", "poster": "poster_04.png" }, + { "seq": 5, "title": "教育部办公厅《国家智慧教育平台数字教育资源入库出库管理规范》", "date": "2024年5月", "source": "教育部办公厅", "summary": "规范国家智慧教育平台的数字教育资源管理,促进数字化教学、智慧课堂和互动教学的实施。", "url": "https://www.gov.cn/zhengce/zhengceku/202407/content_6961951.htm", "poster": "poster_05.png" }, + { "seq": 6, "title": "教育部等六部门《关于推进教育新型基础设施建设构建高质量教育支撑体系的指导意见》", "date": "2021年7月", "source": "教育部等六部门", "summary": "推动教育数字化转型、构建智慧校园和数字资源体系,利用大数据、AI等技术推动教育创新。", "url": "http://www.moe.gov.cn/srcsite/A16/s3342/202107/t20210720_545783.html", "poster": "poster_06.png" }, + { "seq": 7, "title": "教育部\"十四五\"期间教育数字化进展成效新闻发布会", "date": "2025年", "source": "教育部", "summary": "介绍\"十四五\"期间教育数字化显著进展,涵盖智慧校园建设、课堂互动提升,推动教育向智能化方向发展。", "url": "http://www.moe.gov.cn/fbh/live/2025/77791/", "poster": "poster_07.png" }, + { "seq": 8, "title": "中国教育和科研计算机网《回顾2025|教育数字化相关政策和大事》", "date": "2025年", "source": "中国教育和科研计算机网", "summary": "系统梳理2023-2025年间教育数字化政策大事,推动智慧课堂和互动教学的深度融合。", "url": "https://www.edu.cn/xxh/yc/202512/t20251231_2713557.shtml", "poster": "poster_08.png" } + ] + }, + { + "title": "不提倡学生课堂使用平板等电子终端的相关政策", + "tag": "共 8 项", + "items": [ + { "seq": 9, "title": "教育部办公厅《关于加强中小学生手机管理工作的通知》", "date": "2021年1月", "source": "教育部办公厅", "summary": "明确中小学生原则上不得将手机带入校园,禁止带入课堂,禁止用手机布置作业。", "url": "http://www.moe.gov.cn/srcsite/A06/s7053/202101/t20210126_511120.html", "poster": "poster_09.png" }, + { "seq": 10, "title": "教育部等八部门《综合防控儿童青少年近视实施方案》", "date": "2018年8月", "source": "教育部等八部门", "summary": "严格限制电子屏幕在教学中的使用时间,原则上不超过教学总时长的30%。", "url": "http://www.moe.gov.cn/srcsite/A17/moe_943/s3285/201808/t20180830_346672.html", "poster": "poster_10.png" }, + { "seq": 11, "title": "教育部等十五部门《儿童青少年近视防控光明行动工作方案(2021—2025年)》", "date": "2021年5月", "source": "教育部等十五部门", "summary": "学校教学中使用电子产品时间原则上不得超过总教学时长的30%,鼓励采用纸质作业。", "url": "http://www.moe.gov.cn/srcsite/A17/moe_943/s3285/202105/t20210511_530655.html", "poster": "poster_11.png" }, + { "seq": 12, "title": "教育部《进一步加强中小学生心理健康工作十条措施》", "date": "2025年10月", "source": "教育部", "summary": "严禁将手机等电子产品带入课堂,推动\"息屏行动\",培养学生健康用网习惯。", "url": "https://news.e23.cn/guonei/2025-10-24/2025A2400169.html", "poster": "poster_12.png" }, + { "seq": 13, "title": "教育部等三部门《关于科学保护儿童远视储备量的通知》", "date": "2025年11月", "source": "教育部等三部门", "summary": "0-3岁幼儿禁用电子产品,课堂教学电子屏幕使用时长不得超过30%。", "url": "https://www.moe.gov.cn/srcsite/A17/moe_943/s3285/202511/t20251107_1419599.html", "poster": "poster_13.png" }, + { "seq": 14, "title": "教育部等三部门《关于切实抓牢幼儿园和小学近视防控关键阶段防控工作的通知》", "date": "2024年", "source": "教育部等三部门", "summary": "严格控制电子产品在教学中的使用时间不超过总时长的30%,鼓励每天至少2小时户外活动。", "url": "http://big5.www.gov.cn/gate/big5/www.gov.cn/zhengce/zhengceku/202411/content_6986582.htm", "poster": "poster_14.png" }, + { "seq": 15, "title": "国家卫健委《儿童青少年近视防控健康教育核心信息》", "date": "2019年", "source": "国家卫健委", "summary": "学校教学电子屏幕使用时间不得超过总教学时长的30%,每天总使用时间不超1小时。", "url": "https://www.nhc.gov.cn/jkj/c100063/201903/b7b87b418b144e4b86c4d1d68d8d12b6.shtml", "poster": "poster_15.png" }, + { "seq": 16, "title": "山东省《学生体质健康促进条例》——全国首部地方电子产品课堂禁令", "date": "2018年", "source": "山东省人大", "summary": "全国首部以法规形式明确禁止中小学生将手机、平板电脑等电子产品带入课堂。", "url": "https://www.edu.cn/xxh/focus/zc/201810/t20181009_1627736.shtml", "poster": "poster_16.png" } + ] + }, + { + "title": "课堂效率与学生行为采集相关政策", + "tag": "共 7 项", + "items": [ + { "seq": 17, "title": "中共中央国务院《深化新时代教育评价改革总体方案》", "date": "2020年10月", "source": "中共中央、国务院", "summary": "全面推进教育评价改革,强调过程性评价和增值评价,利用信息技术和数据分析监测学生成长轨迹与行为表现。", "url": "http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202010/t20201013_494381.html", "poster": "poster_17.png" }, + { "seq": 18, "title": "教育部《国家义务教育质量监测方案(2021年修订版)》", "date": "2021年9月", "source": "教育部", "summary": "以学生全面发展为核心,结合学科表现、心理健康等多维度指标,监测学生学业水平和行为表现。", "url": "https://www.gov.cn/zhengce/zhengceku/2021-09/28/content_5639763.htm", "poster": "poster_18.png" }, + { "seq": 19, "title": "教育部办公厅《关于组织实施数字化赋能教师发展行动的通知》", "date": "2025年7月", "source": "教育部办公厅", "summary": "利用AI技术推动课堂效率提升和学生行为分析,深化AI在课堂中的应用。", "url": "http://www.moe.gov.cn/srcsite/A10/s7034/202507/t20250704_1196586.html", "poster": "poster_19.png" }, + { "seq": 20, "title": "教育部《教师生成式人工智能应用指引(第一版)》", "date": "2025年12月", "source": "教育部", "summary": "推动AI在教育中的科学应用,利用生成式AI进行学情分析、学生行为采集和个性化教学设计。", "url": "https://jyt.hlj.gov.cn/jyt/c110476/202512/c00_31893033.shtml", "poster": "poster_20.png" }, + { "seq": 21, "title": "教育部《关于实施人工智能助推教师队伍建设行动试点工作的通知》", "date": "2018年起,2021年二期", "source": "教育部", "summary": "在全国103个地市和高校推广试点,建设4.3万间智能教室,利用大数据和AI技术支持教师行为分析与教学诊断。", "url": "http://www.moe.gov.cn/jyb_xwfb/gzdt_gzdt/moe_1485/202207/t20220701_642477.html", "poster": "poster_21.png" }, + { "seq": 22, "title": "教育部《关于加强新时代中小学体育教师队伍建设若干举措的通知》", "date": "2025年2月", "source": "教育部", "summary": "深入实施人工智能赋能教育行动,利用AI进行学生行为分析和体质健康监测。", "url": "https://www.edu.cn/xxh/focus/zc/202502/t20250206_2653899.shtml", "poster": "poster_22.png" }, + { "seq": 23, "title": "推进教育数字化赋能教育现代化(2023年PDF报告)", "date": "2023年", "source": "国家教育行政学院", "summary": "系统总结教育数字化推进策略,强调利用数字技术进行学情分析、课堂观察、学生行为数据采集与分析。", "url": "https://www.naea.edu.cn/library/fileDir/resource/cms/article/93673/undefined/2023022110551471892.pdf", "poster": "poster_23.png" } + ] + } + ] +} diff --git a/src/_data/products.en.json b/src/_data/products.en.json new file mode 100644 index 0000000..2b9ef7f --- /dev/null +++ b/src/_data/products.en.json @@ -0,0 +1,283 @@ +[ + { + "id": "bink", + "seq": "01 / Blackboard Gateway", + "name": "Wink / Bink", + "enName": "Blackboard Wireless Gateway", + "tableName": "Blackboard Gateway", + "tableImage": "/product/img/Bink01.png", + "tableEtymology": "W = Wall, wall-mounted gateway; B = Blackboard, dedicated gateway with UWB receiver", + "tableTag": "Wink (English word), Bink (invented)", + "intro": "A wireless communication hub embedded in smart blackboards, aggregating handwriting data and UWB positioning — USB plug-and-play, connects up to 64 smart pens in real time.", + "positioning": "Wall-mounted gateway installed behind or beside the smart blackboard (86\" interactive all-in-one). It serves as the classroom's front-end data aggregation and forwarding hub, powered via USB from the blackboard. Its two core roles: aggregating all smart pen writing data via BLE 5.0 / SLE 1.0 and pushing to the large screen; and acting as a UWB receiver for real-time spatial pointing signals from the teacher's pen (Mink + Qink).", + "features": [ + "High-capacity pen connection: connects up to 64 smart pens simultaneously via BLE 5.0 / SLE 1.0", + "Real-time large-screen display: pushes handwriting data via WebSocket to the blackboard display app with <50ms latency", + "UWB precision reception: receives spatial pointing signals from Mink teacher pen's Qink module with centimeter-level accuracy", + "Interactive classroom commands: question distribution, test collection, group quizzes and more", + "Auto-discovery: mDNS-based automatic discovery and binding with edge AI boxes and cloud platform", + "IoT device control: smart lights, switches, curtains, air conditioning and other IoT devices" + ], + "specs": [ + { "param": "Wireless (handwriting)", "value": "BLE 5.0 / SLE 1.0 multi-connection" }, + { "param": "Max pen connections", "value": "64 pens" }, + { "param": "UWB reception", "value": "Built-in UWB module, centimeter accuracy" }, + { "param": "Power", "value": "USB (from blackboard mainboard)" }, + { "param": "Uplink", "value": "WiFi to internet" }, + { "param": "Dimensions", "value": "160mm diameter circular" }, + { "param": "Mounting", "value": "Wall-mounted behind or beside blackboard" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Bink01.png", "alt": "Bink product", "caption": "Bink Blackboard Gateway — 160mm diameter, wall-mounted" }, + { "src": "/product/img/Bink.jpg", "alt": "Bink installation", "caption": "Bink wall-mounted gateway — white casing blends into classroom" }, + { "src": "/product/img/Bink0.jpg", "alt": "Classroom scene", "caption": "Smart board with Bink gateway — real-time teacher handwriting display" }, + { "src": "/product/img/Bink1.jpg", "alt": "Interactive class", "caption": "Interactive classroom — all students writing with smart pens, Bink aggregating data in real time" } + ], + "hasSceneSection": true + }, + { + "id": "cink", + "seq": "02 / Classroom Gateway", + "name": "Cink / Nink", + "enName": "Classroom Wireless Gateway", + "tableName": "Classroom Gateway", + "tableImage": "/product/img/Cink1.png", + "tableEtymology": "C = Classroom; N = Network", + "tableTag": "Cink (invented)", + "intro": "An invisible gateway embedded in a wall switch position, powered from the wall with no extra wiring, connects up to 20 smart pens.", + "positioning": "Embedded gateway installed in a classroom wall switch box, powered directly from the wall switch position. Its exterior blends with ordinary switch panels, completely invisible in the classroom. Supports up to 20 pen connections, ideal for small classes or group teaching scenarios.", + "features": [ + "Pen connection: connects up to 20 smart pens simultaneously via BLE 5.0 / SLE 1.0", + "Data forwarding: uploads handwriting data to edge AI box or cloud via WiFi", + "Offline cache: locally caches data (up to 256MB) during network outages, auto-uploads when restored", + "LED status: yellow = inactive, blue = active online, red = fault", + "Remote management: OTA firmware updates, remote log viewing, remote configuration" + ], + "specs": [ + { "param": "Wireless", "value": "BLE 5.0 / SLE 1.0 multi-connection" }, + { "param": "Max pen connections", "value": "20 pens" }, + { "param": "Power", "value": "From wall switch position" }, + { "param": "Uplink", "value": "WiFi to internet" }, + { "param": "Mounting", "value": "Embedded in wall switch box" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Cink1.png", "alt": "Cink product", "caption": "Cink Classroom Gateway — white square, embedded in wall switch box" }, + { "src": "/product/img/Cink.jpg", "alt": "Cink scene", "caption": "Cink Classroom Gateway application scenario" } + ], + "hasSceneSection": true + }, + { + "id": "mink", + "seq": "03 / Teacher Pen", + "name": "Mink", + "enName": "Master Smart Pen", + "tableName": "Master Pen", + "tableImage": "/product/img/Mink3.jpg", + "tableEtymology": "M = Master, premium smart pen for teachers", + "tableTag": "English word (mink), strong brand identity", + "intro": "Aluminum body + high-frame-rate optical module — the core smart teaching tool for teachers.", + "positioning": "Premium smart dot-matrix pen for teachers with an aluminum alloy body, high-frame-rate optical capture, microphone voice control, and rich interactive features. Teachers simply write normally on dot-matrix paper, and the Mink digitizes every stroke in real time, syncing to the smart blackboard.", + "features": [ + "High-precision writing: 130FPS CMOS optical module, 0.1mm accuracy, <20ms latency", + "Pressure sensing: built-in pressure sensor for variable stroke width natural handwriting", + "Voice interaction: built-in microphone, push-to-talk voice commands (distribute questions, page turn, screen switch)", + "Buzzer alerts: sound notifications for timeouts, test collection, etc.", + "Multi-device connection: BLE 5.0 / SLE 1.0 direct connection to blackboard or classroom gateway" + ], + "specs": [ + { "param": "Camera frame rate", "value": "130 FPS" }, + { "param": "Body material", "value": "Aluminum alloy, plated cap/tip" }, + { "param": "Battery", "value": "180 mAh rechargeable Li-ion" }, + { "param": "Gyroscope", "value": "6-axis" }, + { "param": "Storage", "value": "32 MB" }, + { "param": "Wireless", "value": "BLE 5.0 / SLE 1.0" }, + { "param": "Charging", "value": "USB-C magnetic charging" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Mink2.jpg", "alt": "Teaching scene", "caption": "Teacher using Mink on dot-matrix lesson plan, writing displayed on smart blackboard in real time" }, + { "src": "/product/img/Mink3.jpg", "alt": "Grading scene", "caption": "Teacher grading with Mink on student dot-matrix homework — marks automatically digitized" }, + { "src": "/product/img/Mink4.jpg", "alt": "Podium scene", "caption": "Mink on podium with LCD writing tablet — teacher maintains eye contact with students" } + ], + "hasSceneSection": true + }, + { + "id": "tink", + "seq": "04 / Student Pen", + "name": "Tink", + "enName": "Trainee Smart Pen", + "tableName": "Student Pen", + "tableImage": "/product/img/Tink1.jpg", + "tableEtymology": "T = Trainee, smart pen for students", + "tableTag": "Invented, similar to Think", + "intro": "A lightweight, durable smart pen for students — write like an ordinary pen, every stroke automatically digitized.", + "positioning": "An everyday smart dot-matrix pen for primary and secondary school students, focused on light weight, durability, and cost-effectiveness. Students don't need to change their writing habits — writing normally on dot-matrix paper completes homework submission, classroom interaction, and exam answering.", + "features": [ + "Handwriting digitization: writes on dot-matrix paper, coordinates transmitted via BLE to classroom gateway", + "Auto attendance: automatically connects to gateway when entering classroom range", + "Offline storage: buffers up to 16~32MB when offline, auto-syncs when connected", + "Ink window: transparent window to visually check remaining ink", + "Drop-resistant: ABS plastic body, withstands 1.2m drops" + ], + "specs": [ + { "param": "Camera frame rate", "value": "130 FPS" }, + { "param": "Body material", "value": "ABS plastic, unplated" }, + { "param": "Battery", "value": "180 mAh rechargeable Li-ion" }, + { "param": "Gyroscope", "value": "6-axis" }, + { "param": "Storage", "value": "16~32 MB" }, + { "param": "Wireless", "value": "BLE 5.0 / SLE 1.0" }, + { "param": "Charging", "value": "USB-C" }, + { "param": "Weight", "value": "~18g (with battery)" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Tink.png", "alt": "Tink appearance", "caption": "Tink Student Pen — orange ABS body, lightweight and durable" }, + { "src": "/product/img/Tink3.png", "alt": "Tink grip", "caption": "Tink grip posture — ergonomic design for student writing habits" }, + { "src": "/product/img/Tink1.jpg", "alt": "Daily practice", "caption": "Daily practice — student writing with Tink, handwriting synced to cloud" }, + { "src": "/product/img/Tink2.jpg", "alt": "Exam scene", "caption": "Exam — student writing on dot-matrix test paper, auto collection and AI grading" } + ], + "hasSceneSection": true + }, + { + "id": "qink", + "seq": "05 / Pointer Module", + "name": "Qink", + "enName": "Quick UWB Transmitter Module", + "tableName": "Pointer Module", + "tableImage": "/product/img/Qink1.png", + "tableEtymology": "Q = Quick, UWB transmitter module for smart pen", + "tableTag": "Invented", + "intro": "A UWB transmitter module that plugs into the Mink teacher pen, giving it pointer remote control capability.", + "positioning": "A miniature UWB transmitter module that plugs into the Mink teacher pen's top USB port. Once inserted, the teacher can write and use spatial pointing simultaneously — Qink continuously sends spatial signals to Bink, which calculates coordinates and converts them to cursor position on the large screen.", + "features": [ + "UWB precision transmission: built-in UWB module, centimeter-level positioning", + "Plug and play: USB connection to Mink top, powered by the pen, no separate charging", + "Writing + pointing fusion: transmits UWB signals while writing — seamless switching between writing, page-turning, and cursor control", + "Compact and lightweight: does not affect grip or balance" + ], + "specs": [ + { "param": "Technology", "value": "UWB (Ultra-Wideband)" }, + { "param": "Interface", "value": "USB, plugs into Mink top" }, + { "param": "Power", "value": "From Mink smart pen via USB" }, + { "param": "Receiver", "value": "Bink Blackboard Gateway (UWB)" }, + { "param": "Accuracy", "value": "Centimeter-level (< 5cm)" } + ], + "installNote": "Simply plug into Mink teacher pen's top USB port. No configuration needed. Remove to return Mink to normal smart pen mode.", + "images": [ + { "src": "/product/img/Qink.png", "alt": "Qink product", "caption": "Qink UWB Transmitter Module — plugs into pen top" }, + { "src": "/product/img/Qink1.png", "alt": "Qink dark gray", "caption": "Dark gray — T-shaped UWB module" }, + { "src": "/product/img/Qink2.png", "alt": "Qink orange", "caption": "Orange — matches Tink color scheme" }, + { "src": "/product/img/Qink3.png", "alt": "Qink black-orange", "caption": "Black head + orange body — strong brand recognition" }, + { "src": "/product/img/Bink1.jpg", "alt": "Interactive class", "caption": "Teacher holding Mink with Qink, sending UWB to Bink for precise cursor control" } + ], + "hasSceneSection": false + }, + { + "id": "rink", + "seq": "06 / Smart Controller", + "name": "Link / Rink", + "enName": "Remote Smart Controller", + "tableName": "Smart Controller", + "tableImage": "/product/img/Rink.png", + "tableEtymology": "L = Link, remote smart controller; R = Remote", + "tableTag": "Link/Rink (English words)", + "intro": "One remote to rule them all — spatial pointing + voice + IR + IoT, the ultimate classroom smart controller.", + "positioning": "A handheld smart pointing remote integrating UWB spatial pointing, Bluetooth voice, IR control, and IoT connectivity for unified control of classroom large screens, lights, curtains, and air conditioning. Teachers can control all devices from anywhere in the classroom with just one Rink remote.", + "features": [ + "Spatial pointing: built-in UWB + gyroscope, wave in air to precisely control screen cursor", + "Touchpad: directional key area supports touch sliding for fine control and page turning", + "Voice control: built-in microphone for voice search and device control", + "IR learning & emission: learns IR codes from TVs, ACs, projectors to replace multiple remotes", + "RF433 control: controls curtain motors, smart switches and other 433MHz RF devices", + "IoT scene联动: one-touch switch between teaching mode, eye-care mode, dismissal mode presets" + ], + "specs": [ + { "param": "Main chip", "value": "TL7215A (SLE/BLE SoC)" }, + { "param": "UWB chip", "value": "GT1500" }, + { "param": "Buttons", "value": "7 keys + touch area" }, + { "param": "Power", "value": "1000mAh rechargeable Li-ion" }, + { "param": "Wireless protocols", "value": "SLE / BLE / UWB / IR" }, + { "param": "Charging", "value": "USB-C" }, + { "param": "Battery life", "value": "~30 days normal use" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Rink.png", "alt": "Rink appearance", "caption": "Rink Smart Controller — silver metal body" }, + { "src": "/product/img/Rink4.jpg", "alt": "Smart education", "caption": "Teacher using Rink to freely move around classroom, controlling screen, lights and curtains remotely" } + ], + "hasSceneSection": true + }, + { + "id": "hink", + "seq": "07 / Handwriting Tablet", + "name": "Hink / Xink", + "enName": "Handwriting Tablet", + "tableName": "Handwriting Tablet", + "tableImage": "/product/img/Hink.png", + "tableEtymology": "H = Handwriting; X = eXpression", + "tableTag": "Hink / Xink (invented)", + "intro": "A pen-free LCD writing tablet — write with your finger, handwriting synced to the large screen in real time.", + "positioning": "A pen-free pressure-sensitive handwriting input tablet. Teachers write with fingers or any hard object on the surface, with handwriting synced to the large screen in real time — a digital replacement for traditional chalkboard writing. Solves the classic problem of teachers turning their backs to students while writing on the blackboard.", + "features": [ + "Pen-free writing: capacitive/resistive touch membrane, finger or any object works", + "One-touch erase: dedicated erase button to clear the screen instantly", + "Bluetooth wireless: BLE 5.0 / SLE 1.0 connection to gateway or blackboard", + "USB power: USB-C charging, built-in battery for wireless use", + "Multi-touch: supports simultaneous multi-point writing for collaborative use" + ], + "specs": [ + { "param": "Touch technology", "value": "Capacitive touch membrane" }, + { "param": "Wireless", "value": "BLE 5.0 / SLE 1.0" }, + { "param": "Power", "value": "USB-C (5V), built-in Li-ion battery" }, + { "param": "Writing area", "value": "A4 size" }, + { "param": "Display", "value": "LCD writing screen" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Hink.png", "alt": "Hink appearance", "caption": "Hink LCD Writing Tablet — black panel, A4 size, slim and portable" }, + { "src": "/product/img/Mink1.png", "alt": "Podium teaching", "caption": "Teacher writing on Hink, content synced to large screen in real time" }, + { "src": "/product/img/Hink2.png", "alt": "Chemistry class", "caption": "Chemistry equations written on Hink, displayed simultaneously on large screen" } + ], + "hasSceneSection": true + }, + { + "id": "zink", + "seq": "08 / AI Computing Box", + "name": "Dink / Zink", + "enName": "Edge AI Computing Box", + "tableName": "AI Computing Box", + "tableImage": "/product/img/Zink.png", + "tableEtymology": "D = Data, edge computing box; Z = Zone, regional AI hub", + "tableTag": "Dink (English word); Zink (invented)", + "intro": "The edge AI brain in your classroom — handwriting recognition in seconds even offline, results as soon as you finish writing.", + "positioning": "An edge AI computing device deployed in classrooms, bringing cloud AI inference capability locally for real-time handwriting recognition in offline or weak network environments. It's the intelligent brain of the interactive classroom system, ensuring AI recognition never degrades even when the campus network is unstable.", + "features": [ + "On-device AI inference: runs lightweight AI models locally supporting Chinese/English OCR, math formula recognition, stroke order grading", + "Ultra-low latency: single OCR recognition < 200ms, results instantly", + "Offline capable: AI recognition does not degrade offline, results cached and uploaded when network restores", + "Multi-device distribution: pushes results via WebSocket to blackboard, teacher PC, student Pad", + "Cloud-edge collaboration: reports status via MQTT, supports online AI model updates", + "Cluster management: multiple units form a school-wide cluster with unified scheduling and load balancing", + "OTA updates: firmware and AI model remote upgrades with A/B partition safe rollback" + ], + "specs": [ + { "param": "Processor", "value": "RK3588 octa-core / NVIDIA Jetson" }, + { "param": "AI compute", "value": "NPU 6 TOPS / GPU 512 CUDA cores" }, + { "param": "Memory", "value": "8~32 GB LPDDR4x" }, + { "param": "Storage", "value": "64GB eMMC + NVMe SSD" }, + { "param": "Network", "value": "Dual Gigabit Ethernet + WiFi 6" }, + { "param": "Power", "value": "15~30W (adaptive)" }, + { "param": "Dimensions", "value": "180mm x 160mm x 28mm" }, + { "param": "Ports", "value": "Dual GbE, 3x HDMI, 2x USB, DC power" } + ], + "installNote": "Wall-mount or desktop placement, wired campus network connection. Can be hidden behind smart blackboard/TV, managed remotely via network.", + "images": [ + { "src": "/product/img/Zink.png", "alt": "Zink appearance", "caption": "Zink Edge AI Box — dark gray metal casing, compact design" }, + { "src": "/product/img/Zink1.png", "alt": "Zink ports", "caption": "Zink I/O panel — dual GbE, 3x HDMI, 2x USB, DC power" }, + { "src": "/product/img/Zink3.jpg", "alt": "Wall mount", "caption": "Wall-mounted Zink beside smart blackboard with AI vision camera" } + ], + "hasSceneSection": true + } +] diff --git a/src/_data/products.js b/src/_data/products.js new file mode 100644 index 0000000..a1273d2 --- /dev/null +++ b/src/_data/products.js @@ -0,0 +1,5 @@ +module.exports = { + zh: require("./products.zh.json"), + en: require("./products.en.json"), + "zh-hant": require("./products.zh-hant.json"), +}; diff --git a/src/_data/products.zh-hant.json b/src/_data/products.zh-hant.json new file mode 100644 index 0000000..3736f4d --- /dev/null +++ b/src/_data/products.zh-hant.json @@ -0,0 +1,283 @@ +[ + { + "id": "bink", + "seq": "01 / 黑板網關", + "name": "Wink / Bink", + "enName": "Blackboard Wireless Gateway", + "tableName": "黑板網關", + "tableImage": "/product/img/Bink01.png", + "tableEtymology": "W = Wall,壁掛式黑板網關;B = Blackboard,黑板專用網關兼 UWB 接收器", + "tableTag": "Wink 英語單字(眨眼),Bink 創造詞", + "intro": "嵌入智慧黑板的無線通訊樞紐,筆跡匯聚 + UWB 精準接收,USB 接入即插即用,最多同時連接 64 支智能筆即時上屏。", + "positioning": "安裝於智慧黑板(86寸互動式一體機)背面或側面牆壁的壁掛式網關,是教室前端的資料匯聚與轉發中樞。透過 USB 接入黑板主機板取電,同時承擔兩大核心角色:一是透過 BLE 5.0 / SLE 1.0 匯聚全班智能筆書寫資料並推送至大屏;二是作為 UWB 接收器,即時接收教師筆(Mink + Qink)發出的空間指向訊號,將指向座標轉化為大屏游標操控。", + "features": [ + "大容量筆連接:透過 BLE 5.0 / SLE 1.0 同時連接最多 64 支智能筆,即時接收書寫座標、壓力與筆畫資料", + "大屏即時呈現:將筆跡資料透過 WebSocket 推送至黑板顯示應用,實現板書即時上屏,延遲低於 50ms", + "UWB 精準接收:作為 UWB 接收端,接收 Mink 教師筆上 Qink 模組發出的空間指向訊號,定位精度達公分級", + "互動課堂指令:發題、收卷、分組搶答等課堂控制指令的下發與回應", + "設備自動發現:基於 mDNS 協定自動發現並綁定教室內的算力盒和雲平台,即插即用", + "IoT 設備聯動:控制教室內的智能燈、智能開關、智能窗簾、空調等 IoT 設備" + ], + "specs": [ + { "param": "無線連接(筆跡)", "value": "BLE 5.0 / SLE 1.0 多連接" }, + { "param": "最大連接筆數", "value": "64 支" }, + { "param": "UWB 接收", "value": "內建 UWB 接收模組,公分級定位精度" }, + { "param": "供電方式", "value": "USB 取電(連接黑板主機板)" }, + { "param": "上行網路", "value": "WiFi 上聯網際網路" }, + { "param": "外形尺寸", "value": "直徑 160mm 圓形" }, + { "param": "安裝方式", "value": "壁掛式,固定於黑板背部或側面牆壁" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Bink01.png", "alt": "Bink 產品外觀", "caption": "Bink 黑板網關 — 直徑 160mm,壁掛安裝" }, + { "src": "/product/img/Bink.jpg", "alt": "Bink 安裝效果", "caption": "Bink 壁掛式黑板網關 — 白色外殼融入教室環境" }, + { "src": "/product/img/Bink0.jpg", "alt": "會議室教室場景", "caption": "會議室 / 教室場景 — 智慧大屏搭配 Bink 網關,教師板書內容即時呈現" }, + { "src": "/product/img/Bink1.jpg", "alt": "互動課堂場景", "caption": "互動課堂場景 — 全班學生使用智能筆書寫,Bink 即時匯聚筆跡資料" } + ], + "hasSceneSection": true + }, + { + "id": "cink", + "seq": "02 / 教室網關", + "name": "Cink / Nink", + "enName": "Classroom Wireless Gateway", + "tableName": "教室網關", + "tableImage": "/product/img/Cink1.png", + "tableEtymology": "C = Classroom,教室級智能網關;N = Network", + "tableTag": "Cink 創造詞", + "intro": "嵌入牆面開關位的隱形網關,取電於牆壁,無需額外佈線,最多同時連接 20 支智能筆。", + "positioning": "安裝於教室牆面開關底盒位置的嵌入式網關設備,直接從牆壁開關位取電,外觀與普通開關面板融為一體,完全隱形於教室環境。覆蓋筆連接數為 20 支,滿足小班或分組教學場景。", + "features": [ + "筆連接:透過 BLE 5.0 / SLE 1.0 同時連接最多 20 支智能筆", + "資料轉發網關:將筆跡資料透過 WiFi 上聯網際網路,轉發至算力盒或雲平台", + "離線快取:網路中斷時本機快取筆跡資料(最大 256MB),網路恢復後自動上傳", + "LED 狀態指示:黃色 = 未啟用,藍色 = 已啟用上線,紅色 = 故障", + "遠端運維:支援 OTA 韌體升級、遠端日誌查看、設備參數遠端設定" + ], + "specs": [ + { "param": "無線連接", "value": "BLE 5.0 / SLE 1.0 多連接" }, + { "param": "最大連接筆數", "value": "20 支" }, + { "param": "供電方式", "value": "牆壁開關位取電" }, + { "param": "上行網路", "value": "WiFi 上聯網際網路" }, + { "param": "安裝方式", "value": "嵌入牆面開關底盒" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Cink1.png", "alt": "Cink 外觀", "caption": "Cink 教室網關 — 白色方形外觀,嵌入牆面開關底盒" }, + { "src": "/product/img/Cink.jpg", "alt": "Cink 應用場景", "caption": "Cink 教室網關應用場景" } + ], + "hasSceneSection": true + }, + { + "id": "mink", + "seq": "03 / 教師筆", + "name": "Mink", + "enName": "Master Smart Pen", + "tableName": "教師筆", + "tableImage": "/product/img/Mink3.jpg", + "tableEtymology": "M = Master,教師(師傅)專用智能筆", + "tableTag": "英語單字(貂),品牌感強", + "intro": "鋁合金筆身 + 高幀率光學模組,教師手中的智慧教學核心工具。", + "positioning": "教師專用高端智能點陣筆,鋁合金筆身設計,具備高幀率光學採集、麥克風語音控制和豐富的互動功能,是教師課堂教學的核心工具。教師只需在點陣紙上正常書寫,Mink 即可將每一筆板書數位化,即時同步至智慧大屏。", + "features": [ + "高精度書寫:內建高幀率(130FPS)CMOS 光學模組,書寫精度達 0.1mm,延遲 < 20ms", + "壓力感應:內建壓力感測器,感知書寫力度,實現粗細變化的自然筆跡還原", + "語音互動:內建麥克風,支援按鍵說話進行語音指令控制(發題、翻頁、切屏等)", + "蜂鳴提示:答題超時、收卷完成等事件的聲音提醒", + "多設備連接:BLE 5.0 / SLE 1.0 直連黑板網關或教室網關,資料即時同步至大屏" + ], + "specs": [ + { "param": "鏡頭幀率", "value": "130 FPS" }, + { "param": "筆身材質", "value": "鋁合金,電鍍筆帽/筆尖" }, + { "param": "電池", "value": "180 mAh 可充電鋰電池" }, + { "param": "陀螺儀", "value": "6軸" }, + { "param": "儲存", "value": "32 MB" }, + { "param": "無線連接", "value": "BLE 5.0 / SLE 1.0" }, + { "param": "充電方式", "value": "USB-C 磁吸充電" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Mink2.jpg", "alt": "板書教學場景", "caption": "板書教學場景 — 教師手持 Mink 在點陣教案上書寫,板書即時呈現在智慧黑板上" }, + { "src": "/product/img/Mink3.jpg", "alt": "批改作業場景", "caption": "批改作業場景 — 教師使用 Mink 在學生點陣作業本上批改,批改痕跡自動數位化" }, + { "src": "/product/img/Mink4.jpg", "alt": "講台桌面場景", "caption": "講台桌面場景 — Mink 搭配液晶手寫板在講台使用,保持與學生目光交流" } + ], + "hasSceneSection": true + }, + { + "id": "tink", + "seq": "04 / 學生筆", + "name": "Tink", + "enName": "Trainee Smart Pen", + "tableName": "學生筆", + "tableImage": "/product/img/Tink1.jpg", + "tableEtymology": "T = Trainee,學生(學員)專用智能筆", + "tableTag": "創造詞,近似 Think(思考)", + "intro": "輕量耐摔的學生專屬智能筆,像普通筆一樣書寫,讓每一筆作業自動數位化。", + "positioning": "面向中小學生的日常書寫智能點陣筆,注重輕量化、耐用性和性價比,滿足課堂互動和作業數位化的基本需求。學生無需改變書寫習慣,在點陣紙上正常書寫即可完成作業提交、課堂互動和考試答題。", + "features": [ + "書寫數位化:在點陣紙上正常書寫,筆跡座標即時採集並透過 BLE 傳輸至教室網關", + "自動點名:筆進入教室範圍自動與網關建立連接,實現電子簽到", + "離線儲存:未聯網狀態下暫存筆跡資料(16~32MB),聯網後自動同步", + "墨水窗:透明墨水窗設計,直觀查看筆芯餘墨量", + "耐摔設計:ABS 塑膠筆身,抗 1.2m 高度跌落,適合學生日常使用" + ], + "specs": [ + { "param": "鏡頭幀率", "value": "130 FPS" }, + { "param": "筆身材質", "value": "ABS 塑膠,未電鍍" }, + { "param": "電池", "value": "180 mAh 可充電鋰電池" }, + { "param": "陀螺儀", "value": "6軸" }, + { "param": "儲存", "value": "16~32 MB" }, + { "param": "無線連接", "value": "BLE 5.0 / SLE 1.0" }, + { "param": "充電方式", "value": "USB-C" }, + { "param": "筆身重量", "value": "約 18g(含電池)" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Tink.png", "alt": "Tink 外觀", "caption": "Tink 學生筆 — 橙色 ABS 筆身,輕巧耐摔" }, + { "src": "/product/img/Tink3.png", "alt": "Tink 握筆", "caption": "Tink 握筆姿勢 — 符合學生書寫習慣的人體工學設計" }, + { "src": "/product/img/Tink1.jpg", "alt": "日常練習", "caption": "日常練習 — 學生使用 Tink 在點陣練習本上書寫,筆跡即時同步至雲端" }, + { "src": "/product/img/Tink2.jpg", "alt": "考試答題", "caption": "考試答題 — 學生在點陣試卷上答題,系統自動收卷、AI 自動批改" } + ], + "hasSceneSection": true + }, + { + "id": "qink", + "seq": "05 / 指向遙控器頭", + "name": "Qink", + "enName": "Quick UWB Transmitter Module", + "tableName": "指向遙控器頭", + "tableImage": "/product/img/Qink1.png", + "tableEtymology": "Q = Quick(快速指向),插入智能筆的 UWB 發射模組", + "tableTag": "創造詞", + "intro": "插入 Mink 教師筆的 UWB 發射模組,讓智能筆同時具備指向遙控器功能。", + "positioning": "微型 UWB 發射模組,透過 USB 介面插入 Mink 教師筆頂部。插入後教師手持 Mink 書寫的同時即可作為空間指向遙控器使用——Qink 持續向 Bink 黑板網關發送空間方位訊號,Bink 解算出指向座標並轉化為大屏游標位置,實現\"所指即所得\"的精準操控。", + "features": [ + "UWB 精準發射:內建超寬頻發射模組,持續向 Bink 發送空間方位訊號,公分級定位精度", + "即插即用:USB 介面插入 Mink 頂部,由智能筆供電,無需獨立充電", + "書寫與指向融合:書寫時同步發射 UWB 訊號,書寫、翻頁、游標控制無縫切換", + "輕巧便攜:體積小巧,插入後不影響握筆手感和重心" + ], + "specs": [ + { "param": "發射技術", "value": "UWB(超寬頻)" }, + { "param": "介面", "value": "USB,插入 Mink 教師筆頂部" }, + { "param": "供電", "value": "由 Mink 智能筆經 USB 供電" }, + { "param": "配合接收端", "value": "Bink 黑板網關(UWB 接收)" }, + { "param": "定位精度", "value": "公分級(< 5cm)" } + ], + "installNote": "直接插入 Mink 教師筆頂部 USB 介面,即插即用,無需設定。取下後 Mink 恢復普通智能筆模式。", + "images": [ + { "src": "/product/img/Qink.png", "alt": "Qink 產品外觀", "caption": "Qink UWB 發射模組 — 插入智能筆頂部" }, + { "src": "/product/img/Qink1.png", "alt": "Qink 深灰款", "caption": "深灰款 — T 型 UWB 發射模組" }, + { "src": "/product/img/Qink2.png", "alt": "Qink 橙色款", "caption": "橙色款 — 與 Tink 配色一致" }, + { "src": "/product/img/Qink3.png", "alt": "Qink 黑頭橙身款", "caption": "黑頭橙身款 — 品牌辨識度高" }, + { "src": "/product/img/Bink1.jpg", "alt": "互動課堂", "caption": "互動課堂 — 教師手持插有 Qink 的 Mink,UWB 訊號至 Bink,精準指向控制大屏游標" } + ], + "hasSceneSection": false + }, + { + "id": "rink", + "seq": "06 / 指向遙控器", + "name": "Link / Rink", + "enName": "Remote Smart Controller", + "tableName": "指向遙控器", + "tableImage": "/product/img/Rink.png", + "tableEtymology": "L = Link,遠端連接指向遙控器;R = Remote", + "tableTag": "Link 英語單字(連結);Rink 英語單字", + "intro": "一把遙控器替代所有,空間指向 + 語音 + 紅外 + IoT 聯動,教室智能操控的全能終端。", + "positioning": "智能指向遙控器手持端,整合 UWB 空間指向、藍牙語音、紅外控制、IoT 聯動等多種能力,實現對教室大屏、燈光、窗簾、空調的一體化智能操控。教師只需一把 Rink 遙控器,即可在教室任意位置從容操控所有設備。", + "features": [ + "空間指向操控:內建 UWB + 陀螺儀,空中揮動精準控制螢幕游標,公分級精度", + "觸控板操控:方向鍵區域支援觸控滑動,用於精細操作和翻頁", + "語音控制:內建麥克風,支援語音搜尋和語音指令控制教室設備", + "紅外學習與發射:學習電視機、空調、投影機等紅外編碼,一鍵替代多個遙控器", + "RF433 射頻控制:控制窗簾馬達、智能開關等 433MHz 射頻設備", + "IoT 場景聯動:一鍵切換\"上課模式\"\"護眼模式\"\"放學模式\"等場景預設" + ], + "specs": [ + { "param": "主晶片", "value": "TL7215A(星閃/藍牙 SOC)" }, + { "param": "UWB 晶片", "value": "GT1500" }, + { "param": "按鍵數量", "value": "7 鍵 + 觸控區" }, + { "param": "供電", "value": "1000mAh 充電鋰電池" }, + { "param": "無線協定", "value": "星閃 / BLE / UWB / 紅外" }, + { "param": "充電方式", "value": "USB-C" }, + { "param": "續航", "value": "常規使用約 30 天" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Rink.png", "alt": "Rink 外觀", "caption": "Rink 指向遙控器 — 銀色金屬機身" }, + { "src": "/product/img/Rink4.jpg", "alt": "智慧教育場景", "caption": "智慧教育場景 — 教師手持 Rink 在教室中自由走動,隔空操控大屏,同時控制燈光和窗簾" } + ], + "hasSceneSection": true + }, + { + "id": "hink", + "seq": "07 / 手寫板", + "name": "Hink / Xink", + "enName": "Handwriting Tablet", + "tableName": "手寫板", + "tableImage": "/product/img/Hink.png", + "tableEtymology": "H = Handwriting,手寫輸入板;X = eXpression", + "tableTag": "Hink / Xink 均為創造詞", + "intro": "無需配套筆的液晶手寫板,手指即可書寫,筆跡即時同步大屏。", + "positioning": "免筆壓感式手寫輸入板,教師在板面上用手指或任意硬物書寫,筆跡即時同步至大屏顯示,是傳統黑板粉筆書寫的數位化替代方案。解決了\"教師面對黑板背對學生\"的傳統痛點。", + "features": [ + "免筆書寫:電容/電阻觸摸膜技術,手指或任意硬物均可書寫", + "一鍵擦除:專用擦除按鍵,一鍵清空當前畫面", + "藍牙無線:BLE 5.0 / SLE 1.0 連接教室網關或黑板,無需佈線", + "USB 供電:USB-C 充電,內建電池無線使用", + "多點觸控:支援多點同時書寫,師生協作共同操作" + ], + "specs": [ + { "param": "觸控技術", "value": "電容觸摸膜" }, + { "param": "無線連接", "value": "BLE 5.0 / SLE 1.0" }, + { "param": "供電方式", "value": "USB-C(5V),內建鋰電池" }, + { "param": "書寫區域", "value": "A4 幅面" }, + { "param": "顯示技術", "value": "LCD 液晶書寫屏" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Hink.png", "alt": "Hink 外觀", "caption": "Hink 液晶手寫板 — 黑色書寫面板,A4 幅面,輕薄便攜" }, + { "src": "/product/img/Mink1.png", "alt": "講台教學", "caption": "講台教學 — 教師在 Hink 上書寫,筆跡即時同步至大屏,保持與學生目光交流" }, + { "src": "/product/img/Hink2.png", "alt": "化學課堂", "caption": "化學課堂 — 在 Hink 上書寫化學方程式和知識圖譜,大屏同步顯示" } + ], + "hasSceneSection": true + }, + { + "id": "zink", + "seq": "08 / 算力盒", + "name": "Dink / Zink", + "enName": "Edge AI Computing Box", + "tableName": "算力盒", + "tableImage": "/product/img/Zink.png", + "tableEtymology": "D = Data,邊緣資料計算盒;Z = Zone,區域算力中樞", + "tableTag": "Dink 英語單字;Zink 創造詞", + "intro": "教室裡的邊緣 AI 大腦,離線也能秒級完成手寫辨識,寫完即出結果。", + "positioning": "部署在教室內的邊緣 AI 計算設備,將雲端 AI 推理能力下沉至本機,實現離線或弱網環境下的即時手寫辨識,是互動課堂系統的智能大腦。確保即使校園網路不穩定,AI 辨識能力也不降級。", + "features": [ + "端側 AI 推理:本機執行輕量化 AI 模型,支援中英文手寫 OCR、數學列式辨識、筆順評分", + "超低延遲:單次 OCR 辨識 < 200ms,寫完即出結果", + "離線可用:斷網環境下 AI 辨識不降級,結果本機快取待恢復後上傳", + "多終端分發:透過 WebSocket 即時推送至黑板、教師 PC、學生 Pad", + "雲邊協同:MQTT 上報運行狀態,支援 AI 模型線上更新", + "叢集管理:校級多台算力盒組成叢集,統一調度與負載均衡", + "OTA 升級:韌體和 AI 模型遠端升級,A/B 分區無損升級" + ], + "specs": [ + { "param": "處理器", "value": "RK3588 八核 / NVIDIA Jetson" }, + { "param": "AI 算力", "value": "NPU 6 TOPS / GPU 512 CUDA 核" }, + { "param": "記憶體", "value": "8~32 GB LPDDR4x" }, + { "param": "儲存", "value": "64GB eMMC + NVMe SSD" }, + { "param": "網路", "value": "千兆乙太網路 x2 + WiFi 6" }, + { "param": "功耗", "value": "15~30W(自適應)" }, + { "param": "尺寸", "value": "180mm x 160mm x 28mm" }, + { "param": "介面", "value": "雙千兆網路埠、3x HDMI、2x USB、DC 電源" } + ], + "installNote": "壁掛或桌面放置,有線接入校園網。可隱藏安裝於智慧黑板/電視機背面,透過網路遠端管理。", + "images": [ + { "src": "/product/img/Zink.png", "alt": "Zink 外觀", "caption": "Zink 算力盒 — 深灰色金屬外殼,緊湊小巧" }, + { "src": "/product/img/Zink1.png", "alt": "Zink 介面", "caption": "Zink 介面面板 — 雙千兆網路埠、3x HDMI、2x USB、DC 電源介面" }, + { "src": "/product/img/Zink3.jpg", "alt": "壁掛部署", "caption": "壁掛部署 — Zink 固定於智慧黑板側面牆壁,搭配攝像頭實現 AI 視覺輔助教學" } + ], + "hasSceneSection": true + } +] diff --git a/src/_data/products.zh.json b/src/_data/products.zh.json new file mode 100644 index 0000000..2019c68 --- /dev/null +++ b/src/_data/products.zh.json @@ -0,0 +1,283 @@ +[ + { + "id": "bink", + "seq": "01 / 黑板网关", + "name": "Wink / Bink", + "enName": "Blackboard Wireless Gateway", + "tableName": "黑板网关", + "tableImage": "/product/img/Bink01.png", + "tableEtymology": "W = Wall,壁挂式黑板网关;B = Blackboard,黑板专用网关兼 UWB 接收器", + "tableTag": "Wink 英语单词(眨眼),Bink 创造词", + "intro": "嵌入智慧黑板的无线通信枢纽,笔迹汇聚 + UWB 精准接收,USB 接入即插即用,最多同时连接 64 支智能笔实时上屏。", + "positioning": "安装于智慧黑板(86寸交互式一体机)背面或侧面墙壁的壁挂式网关,是教室前端的数据汇聚与转发中枢。通过 USB 接入黑板主板取电,同时承担两大核心角色:一是通过 BLE 5.0 / SLE 1.0 汇聚全班智能笔书写数据并推送至大屏;二是作为 UWB 接收器,实时接收教师笔(Mink + Qink)发出的空间指向信号,将指向坐标转化为大屏光标操控。", + "features": [ + "大容量笔连接:通过 BLE 5.0 / SLE 1.0 同时连接最多 64 支智能笔,实时接收书写坐标、压力和笔画数据", + "大屏实时呈现:将笔迹数据通过 WebSocket 推送至黑板显示应用,实现板书实时上屏,延迟低于 50ms", + "UWB 精准接收:作为 UWB 接收端,接收 Mink 教师笔上 Qink 模组发出的空间指向信号,定位精度达厘米级", + "互动课堂指令:发题、收卷、分组抢答等课堂控制指令的下发与响应", + "设备自动发现:基于 mDNS 协议自动发现并绑定教室内的算力盒和云平台,即插即用", + "IoT 设备联动:控制教室内的智能灯、智能开关、智能窗帘、空调等 IoT 设备" + ], + "specs": [ + { "param": "无线连接(笔迹)", "value": "BLE 5.0 / SLE 1.0 多连接" }, + { "param": "最大连接笔数", "value": "64 支" }, + { "param": "UWB 接收", "value": "内置 UWB 接收模组,厘米级定位精度" }, + { "param": "供电方式", "value": "USB 取电(连接黑板主板)" }, + { "param": "上行网络", "value": "WiFi 上联互联网" }, + { "param": "外形尺寸", "value": "直径 160mm 圆形" }, + { "param": "安装方式", "value": "壁挂式,固定于黑板背部或侧面墙壁" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Bink01.png", "alt": "Bink 产品外观", "caption": "Bink 黑板网关 — 直径 160mm,壁挂安装" }, + { "src": "/product/img/Bink.jpg", "alt": "Bink 安装效果", "caption": "Bink 壁挂式黑板网关 — 白色外壳融入教室环境" }, + { "src": "/product/img/Bink0.jpg", "alt": "会议室教室场景", "caption": "会议室 / 教室场景 — 智慧大屏搭配 Bink 网关,教师板书内容实时呈现" }, + { "src": "/product/img/Bink1.jpg", "alt": "互动课堂场景", "caption": "互动课堂场景 — 全班学生使用智能笔书写,Bink 实时汇聚笔迹数据" } + ], + "hasSceneSection": true + }, + { + "id": "cink", + "seq": "02 / 教室网关", + "name": "Cink / Nink", + "enName": "Classroom Wireless Gateway", + "tableName": "教室网关", + "tableImage": "/product/img/Cink1.png", + "tableEtymology": "C = Classroom,教室级智能网关;N = Network", + "tableTag": "Cink 创造词", + "intro": "嵌入墙面开关位的隐形网关,取电于墙壁,无需额外布线,最多同时连接 20 支智能笔。", + "positioning": "安装于教室墙面开关底盒位置的嵌入式网关设备,直接从墙壁开关位取电,外观与普通开关面板融为一体,完全隐形于教室环境。覆盖笔连接数为 20 支,满足小班或分组教学场景。", + "features": [ + "笔连接:通过 BLE 5.0 / SLE 1.0 同时连接最多 20 支智能笔", + "数据转发网关:将笔迹数据通过 WiFi 上联互联网,转发至算力盒或云平台", + "离线缓存:网络中断时本地缓存笔迹数据(最大 256MB),网络恢复后自动上传", + "LED 状态指示:黄色 = 未激活,蓝色 = 已激活在线,红色 = 故障", + "远程运维:支持 OTA 固件升级、远程日志查看、设备参数远程配置" + ], + "specs": [ + { "param": "无线连接", "value": "BLE 5.0 / SLE 1.0 多连接" }, + { "param": "最大连接笔数", "value": "20 支" }, + { "param": "供电方式", "value": "墙壁开关位取电" }, + { "param": "上行网络", "value": "WiFi 上联互联网" }, + { "param": "安装方式", "value": "嵌入墙面开关底盒" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Cink1.png", "alt": "Cink 外观", "caption": "Cink 教室网关 — 白色方形外观,嵌入墙面开关底盒" }, + { "src": "/product/img/Cink.jpg", "alt": "Cink 应用场景", "caption": "Cink 教室网关应用场景" } + ], + "hasSceneSection": true + }, + { + "id": "mink", + "seq": "03 / 教师笔", + "name": "Mink", + "enName": "Master Smart Pen", + "tableName": "教师笔", + "tableImage": "/product/img/Mink3.jpg", + "tableEtymology": "M = Master,教师(师傅)专用智能笔", + "tableTag": "英语单词(貂),品牌感强", + "intro": "铝合金笔身 + 高帧率光学模组,教师手中的智慧教学核心工具。", + "positioning": "教师专用高端智能点阵笔,铝合金笔身设计,具备高帧率光学采集、麦克风语音控制和丰富的交互功能,是教师课堂教学的核心工具。教师只需在点阵纸上正常书写,Mink 即可将每一笔板书数字化,实时同步至智慧大屏。", + "features": [ + "高精度书写:内置高帧率(130FPS)CMOS 光学模组,书写精度达 0.1mm,延迟 < 20ms", + "压力感应:内置压力传感器,感知书写力度,实现粗细变化的自然笔迹还原", + "语音交互:内置麦克风,支持按键说话进行语音指令控制(发题、翻页、切屏等)", + "蜂鸣提示:答题超时、收卷完成等事件的声音提醒", + "多设备连接:BLE 5.0 / SLE 1.0 直连黑板网关或教室网关,数据实时同步至大屏" + ], + "specs": [ + { "param": "镜头帧率", "value": "130 FPS" }, + { "param": "笔身材质", "value": "铝合金,电镀笔帽/笔尖" }, + { "param": "电池", "value": "180 mAh 可充电锂电池" }, + { "param": "陀螺仪", "value": "6轴" }, + { "param": "存储", "value": "32 MB" }, + { "param": "无线连接", "value": "BLE 5.0 / SLE 1.0" }, + { "param": "充电方式", "value": "USB-C 磁吸充电" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Mink2.jpg", "alt": "板书教学场景", "caption": "板书教学场景 — 教师手持 Mink 在点阵教案上书写,板书实时呈现在智慧黑板上" }, + { "src": "/product/img/Mink3.jpg", "alt": "批改作业场景", "caption": "批改作业场景 — 教师使用 Mink 在学生点阵作业本上批改,批改痕迹自动数字化" }, + { "src": "/product/img/Mink4.jpg", "alt": "讲台桌面场景", "caption": "讲台桌面场景 — Mink 搭配液晶手写板在讲台使用,保持与学生目光交流" } + ], + "hasSceneSection": true + }, + { + "id": "tink", + "seq": "04 / 学生笔", + "name": "Tink", + "enName": "Trainee Smart Pen", + "tableName": "学生笔", + "tableImage": "/product/img/Tink1.jpg", + "tableEtymology": "T = Trainee,学生(学员)专用智能笔", + "tableTag": "创造词,近似 Think(思考)", + "intro": "轻量耐摔的学生专属智能笔,像普通笔一样书写,让每一笔作业自动数字化。", + "positioning": "面向中小学生的日常书写智能点阵笔,注重轻量化、耐用性和性价比,满足课堂互动和作业数字化的基本需求。学生无需改变书写习惯,在点阵纸上正常书写即可完成作业提交、课堂互动和考试答题。", + "features": [ + "书写数字化:在点阵纸上正常书写,笔迹坐标实时采集并通过 BLE 传输至教室网关", + "自动点名:笔进入教室范围自动与网关建立连接,实现电子签到", + "离线存储:未联网状态下暂存笔迹数据(16~32MB),联网后自动同步", + "墨水窗:透明墨水窗设计,直观查看笔芯余墨量", + "耐摔设计:ABS 塑料笔身,抗 1.2m 高度跌落,适合学生日常使用" + ], + "specs": [ + { "param": "镜头帧率", "value": "130 FPS" }, + { "param": "笔身材质", "value": "ABS 塑料,未电镀" }, + { "param": "电池", "value": "180 mAh 可充电锂电池" }, + { "param": "陀螺仪", "value": "6轴" }, + { "param": "存储", "value": "16~32 MB" }, + { "param": "无线连接", "value": "BLE 5.0 / SLE 1.0" }, + { "param": "充电方式", "value": "USB-C" }, + { "param": "笔身重量", "value": "约 18g(含电池)" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Tink.png", "alt": "Tink 外观", "caption": "Tink 学生笔 — 橙色 ABS 笔身,轻巧耐摔" }, + { "src": "/product/img/Tink3.png", "alt": "Tink 握笔", "caption": "Tink 握笔姿态 — 符合学生书写习惯的人体工学设计" }, + { "src": "/product/img/Tink1.jpg", "alt": "日常练习", "caption": "日常练习 — 学生使用 Tink 在点阵练习本上书写,笔迹实时同步至云端" }, + { "src": "/product/img/Tink2.jpg", "alt": "考试答题", "caption": "考试答题 — 学生在点阵试卷上答题,系统自动收卷、AI 自动批改" } + ], + "hasSceneSection": true + }, + { + "id": "qink", + "seq": "05 / 指向遥控器头", + "name": "Qink", + "enName": "Quick UWB Transmitter Module", + "tableName": "指向遥控器头", + "tableImage": "/product/img/Qink1.png", + "tableEtymology": "Q = Quick(快速指向),插入智能笔的 UWB 发射模组", + "tableTag": "创造词", + "intro": "插入 Mink 教师笔的 UWB 发射模组,让智能笔同时具备指向遥控器功能。", + "positioning": "微型 UWB 发射模组,通过 USB 接口插入 Mink 教师笔顶部。插入后教师手持 Mink 书写的同时即可作为空间指向遥控器使用——Qink 持续向 Bink 黑板网关发送空间方位信号,Bink 解算出指向坐标并转化为大屏光标位置,实现\"所指即所得\"的精准操控。", + "features": [ + "UWB 精准发射:内置超宽带发射模组,持续向 Bink 发送空间方位信号,厘米级定位精度", + "即插即用:USB 接口插入 Mink 顶部,由智能笔供电,无需独立充电", + "书写与指向融合:书写时同步发射 UWB 信号,书写、翻页、光标控制无缝切换", + "轻巧便携:体积小巧,插入后不影响握笔手感和重心" + ], + "specs": [ + { "param": "发射技术", "value": "UWB(超宽带)" }, + { "param": "接口", "value": "USB,插入 Mink 教师笔顶部" }, + { "param": "供电", "value": "由 Mink 智能笔经 USB 供电" }, + { "param": "配合接收端", "value": "Bink 黑板网关(UWB 接收)" }, + { "param": "定位精度", "value": "厘米级(< 5cm)" } + ], + "installNote": "直接插入 Mink 教师笔顶部 USB 接口,即插即用,无需配置。取下后 Mink 恢复普通智能笔模式。", + "images": [ + { "src": "/product/img/Qink.png", "alt": "Qink 产品外观", "caption": "Qink UWB 发射模组 — 插入智能笔顶部" }, + { "src": "/product/img/Qink1.png", "alt": "Qink 深灰款", "caption": "深灰款 — T 型 UWB 发射模组" }, + { "src": "/product/img/Qink2.png", "alt": "Qink 橙色款", "caption": "橙色款 — 与 Tink 配色一致" }, + { "src": "/product/img/Qink3.png", "alt": "Qink 黑头橙身款", "caption": "黑头橙身款 — 品牌辨识度高" }, + { "src": "/product/img/Bink1.jpg", "alt": "互动课堂", "caption": "互动课堂 — 教师手持插有 Qink 的 Mink,UWB 信号至 Bink,精准指向控制大屏光标" } + ], + "hasSceneSection": false + }, + { + "id": "rink", + "seq": "06 / 指向遥控器", + "name": "Link / Rink", + "enName": "Remote Smart Controller", + "tableName": "指向遥控器", + "tableImage": "/product/img/Rink.png", + "tableEtymology": "L = Link,远程连接指向遥控器;R = Remote", + "tableTag": "Link 英语单词(链接);Rink 英语单词", + "intro": "一把遥控器替代所有,空间指向 + 语音 + 红外 + IoT 联动,教室智能操控的全能终端。", + "positioning": "智能指向遥控器手持端,集成 UWB 空间指向、蓝牙语音、红外控制、IoT 联动等多种能力,实现对教室大屏、灯光、窗帘、空调的一体化智能操控。教师只需一把 Rink 遥控器,即可在教室任意位置从容操控所有设备。", + "features": [ + "空间指向操控:内置 UWB + 陀螺仪,空中挥动精准控制屏幕光标,厘米级精度", + "触控板操控:方向键区域支持触控滑动,用于精细操作和翻页", + "语音控制:内置麦克风,支持语音搜索和语音指令控制教室设备", + "红外学习与发射:学习电视机、空调、投影仪等红外编码,一键替代多个遥控器", + "RF433 射频控制:控制窗帘电机、智能开关等 433MHz 射频设备", + "IoT 场景联动:一键切换\"上课模式\"\"护眼模式\"\"放学模式\"等场景预设" + ], + "specs": [ + { "param": "主芯片", "value": "TL7215A(星闪/蓝牙 SOC)" }, + { "param": "UWB 芯片", "value": "GT1500" }, + { "param": "按键数量", "value": "7 键 + 触控区" }, + { "param": "供电", "value": "1000mAh 充电锂电池" }, + { "param": "无线协议", "value": "星闪 / BLE / UWB / 红外" }, + { "param": "充电方式", "value": "USB-C" }, + { "param": "续航", "value": "常规使用约 30 天" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Rink.png", "alt": "Rink 外观", "caption": "Rink 指向遥控器 — 银色金属机身" }, + { "src": "/product/img/Rink4.jpg", "alt": "智慧教育场景", "caption": "智慧教育场景 — 教师手持 Rink 在教室中自由走动,隔空操控大屏,同时控制灯光和窗帘" } + ], + "hasSceneSection": true + }, + { + "id": "hink", + "seq": "07 / 手写板", + "name": "Hink / Xink", + "enName": "Handwriting Tablet", + "tableName": "手写板", + "tableImage": "/product/img/Hink.png", + "tableEtymology": "H = Handwriting,手写输入板;X = eXpression", + "tableTag": "Hink / Xink 均为创造词", + "intro": "无需配套笔的液晶手写板,手指即可书写,笔迹实时同步大屏。", + "positioning": "免笔压感式手写输入板,教师在板面上用手指或任意硬物书写,笔迹实时同步至大屏显示,是传统黑板粉笔书写的数字化替代方案。解决了\"教师面对黑板背对学生\"的传统痛点。", + "features": [ + "免笔书写:电容/电阻触摸膜技术,手指或任意硬物均可书写", + "一键擦除:专用擦除按键,一键清空当前画面", + "蓝牙无线:BLE 5.0 / SLE 1.0 连接教室网关或黑板,无需布线", + "USB 供电:USB-C 充电,内置电池无线使用", + "多点触控:支持多点同时书写,师生协作共同操作" + ], + "specs": [ + { "param": "触控技术", "value": "电容触摸膜" }, + { "param": "无线连接", "value": "BLE 5.0 / SLE 1.0" }, + { "param": "供电方式", "value": "USB-C(5V),内置锂电池" }, + { "param": "书写区域", "value": "A4 幅面" }, + { "param": "显示技术", "value": "LCD 液晶书写屏" } + ], + "installNote": null, + "images": [ + { "src": "/product/img/Hink.png", "alt": "Hink 外观", "caption": "Hink 液晶手写板 — 黑色书写面板,A4 幅面,轻薄便携" }, + { "src": "/product/img/Mink1.png", "alt": "讲台教学", "caption": "讲台教学 — 教师在 Hink 上书写,笔迹实时同步至大屏,保持与学生目光交流" }, + { "src": "/product/img/Hink2.png", "alt": "化学课堂", "caption": "化学课堂 — 在 Hink 上书写化学方程式和知识图谱,大屏同步显示" } + ], + "hasSceneSection": true + }, + { + "id": "zink", + "seq": "08 / 算力盒", + "name": "Dink / Zink", + "enName": "Edge AI Computing Box", + "tableName": "算力盒", + "tableImage": "/product/img/Zink.png", + "tableEtymology": "D = Data,边缘数据计算盒;Z = Zone,区域算力中枢", + "tableTag": "Dink 英语单词;Zink 创造词", + "intro": "教室里的边缘 AI 大脑,离线也能秒级完成手写识别,写完即出结果。", + "positioning": "部署在教室内的边缘 AI 计算设备,将云端 AI 推理能力下沉至本地,实现离线或弱网环境下的实时手写识别,是互动课堂系统的智能大脑。确保即使校园网络不稳定,AI 识别能力也不降级。", + "features": [ + "端侧 AI 推理:本地运行轻量化 AI 模型,支持中英文手写 OCR、数学列式识别、笔顺评分", + "超低延迟:单次 OCR 识别 < 200ms,写完即出结果", + "离线可用:断网环境下 AI 识别不降级,结果本地缓存待恢复后上传", + "多终端分发:通过 WebSocket 实时推送至黑板、教师 PC、学生 Pad", + "云边协同:MQTT 上报运行状态,支持 AI 模型在线更新", + "集群管理:校级多台算力盒组成集群,统一调度与负载均衡", + "OTA 升级:固件和 AI 模型远程升级,A/B 分区无损升级" + ], + "specs": [ + { "param": "处理器", "value": "RK3588 八核 / NVIDIA Jetson" }, + { "param": "AI 算力", "value": "NPU 6 TOPS / GPU 512 CUDA 核" }, + { "param": "内存", "value": "8~32 GB LPDDR4x" }, + { "param": "存储", "value": "64GB eMMC + NVMe SSD" }, + { "param": "网络", "value": "千兆以太网 x2 + WiFi 6" }, + { "param": "功耗", "value": "15~30W(自适应)" }, + { "param": "尺寸", "value": "180mm x 160mm x 28mm" }, + { "param": "接口", "value": "双千兆网口、3x HDMI、2x USB、DC 电源" } + ], + "installNote": "壁挂或桌面放置,有线接入校园网。可隐藏安装于智慧黑板/电视机背面,通过网络远程管理。", + "images": [ + { "src": "/product/img/Zink.png", "alt": "Zink 外观", "caption": "Zink 算力盒 — 深灰色金属外壳,紧凑小巧" }, + { "src": "/product/img/Zink1.png", "alt": "Zink 接口", "caption": "Zink 接口面板 — 双千兆网口、3x HDMI、2x USB、DC 电源接口" }, + { "src": "/product/img/Zink3.jpg", "alt": "壁挂部署", "caption": "壁挂部署 — Zink 固定于智慧黑板侧面墙壁,搭配摄像头实现 AI 视觉辅助教学" } + ], + "hasSceneSection": true + } +] diff --git a/src/_data/site.en.json b/src/_data/site.en.json new file mode 100644 index 0000000..450bd60 --- /dev/null +++ b/src/_data/site.en.json @@ -0,0 +1,115 @@ +{ + "lang": "en", + "title": "Writech | Natural Handwriting Digitization yink.ai", + "description": "Shenzhen Writech Technology — natural handwriting digitization solutions: smart pens, IoT gateways, classroom interaction apps, AI cloud services", + "nav": { + "products": "Products", + "news": "News", + "community": "Community", + "download": "Downloads", + "about": "About", + "contact": "Contact", + "home": "Back to Home" + }, + "hero": { + "h1": "Natural Handwriting Digitization", + "p": "Write naturally with a ballpoint pen, digitize effortlessly
AI-powered real-time analysis for smarter classrooms" + }, + "downloadSection": { + "title": "Software Downloads", + "subtitle": "Available on all platforms, use Writech products anytime, anywhere", + "items": [ + { "icon": "📱", "title": "iOS App", "sub": "View learning insights anytime", "platforms": ["iPhone / iPad"] }, + { "icon": "📱", "title": "Android App", "sub": "View learning insights anytime", "platforms": ["Android"] }, + { "icon": "📱", "title": "HarmonyOS App", "sub": "View learning insights anytime", "platforms": ["HarmonyOS"] }, + { "icon": "💻", "title": "PC Teacher App", "sub": "Lesson planning & classroom management", "platforms": ["Windows"] }, + { "icon": "🖥️", "title": "Smart Blackboard", "sub": "Interactive classroom display app", "platforms": ["Windows"] }, + { "icon": "📺", "title": "TV App", "sub": "Home learning scenarios", "platforms": ["Android"] }, + { "icon": "📋", "title": "Pad iOS", "sub": "Portable classroom terminal", "platforms": ["iPad"] }, + { "icon": "📋", "title": "Pad Android", "sub": "Portable classroom terminal", "platforms": ["Android"] } + ] + }, + "aboutSection": { + "title": "About Us", + "subtitle": "Empowering education through natural handwriting technology", + "eyebrow": "Company Profile", + "h2": "Shenzhen Writech Technology Co., Ltd.", + "p1": "Founded in August 2025 by Dr. Jiahong Xu, Writech independently develops natural handwriting digitization solutions consisting of smart pens, IoT gateways, classroom interaction apps, mobile apps, and cloud services. Students in classrooms and at home use ordinary ballpoint pens for natural, digitized handwriting with real-time classroom interaction.", + "p2": "Cloud-powered apps on smart blackboards enable efficient teacher-student interaction, greatly improving classroom efficiency. Committed to the Ministry of Education's digital intelligence education vision and the responsibility of protecting youth eyesight, Writech places the natural handwriting ballpoint pen as the most effective smart terminal for students.", + "founderImg": "img/founder.jpeg", + "imgAlt": "Founding Team", + "stats": [ + { "num": "13", "label": "Software Copyrights" }, + { "num": "3", "label": "Invention Patents" }, + { "num": "9", "label": "Utility Model Patents" } + ] + }, + "footer": { + "brandImg": "img/logo-green-font.png", + "brandText": "Natural Handwriting Digitization Solutions
Making Every Stroke Count", + "quickLinks": { + "title": "Quick Links", + "links": [ + { "href": "#products", "text": "Products" }, + { "href": "#download", "text": "Downloads" }, + { "href": "#about", "text": "About" } + ] + }, + "contact": { + "title": "Contact Us", + "phone": { "label": "Service Hotline", "value": "+86 138-0880-0509" }, + "address": { "label": "Address", "value": "Shenzhen, Guangdong, China" }, + "emails": { + "label": "Email", + "recruit": { "addr": "ren@writech.cn", "text": "Careers" }, + "tech": { "addr": "tech@writech.cn", "text": "Technical Support" }, + "partner": { "addr": "hezuo@writech.cn", "text": "Partnerships" } + } + }, + "copyright": "Copyright © 2021-2026 Writech Technology Co., Ltd.", + "icp": "" + }, + "brandAlt": "Writech", + "navMenuLabel": "Menu", + "productSection": { + "title": "Products", + "subtitle": "From smart pens to cloud AI — a complete digital writing ecosystem" + }, + "productLabel": { + "intro": "", + "positioning": "Product Positioning", + "features": "Key Features", + "specs": "Technical Specifications", + "param": "Parameter", + "value": "Specification", + "install": "Installation", + "scenarios": "Application Scenarios" + }, + "productPageTitle": "ink Series Hardware — Product Catalog", + "productPageHeader": "ink Hardware Series", + "brandRuleTitle": "Brand Naming Rules", + "brandRule": "All hardware products use a unified four-letter English identifier. The last three letters are fixed as ink (symbolizing \"writing, ink\", reflecting the core DNA of smart dot-matrix pen education systems), with the first letter assigned based on product characteristics.", + "productTableTitle": "Hardware Product List", + "productTableHeaders": ["#", "Product Name", "English ID", "Image", "Naming Etymology", "Word Type"], + "designRuleTitle": "Logo Design Requirements", + "designRules": [ + "Typography: All caps WINK / CINK / … for formal scenarios; title case Wink / Cink / … for document text", + "Color: Each product may have its own brand color, but maintain visual consistency of the 'ink' part", + "Application: Product shell silk-screening, packaging, software UI, official website product pages" + ], + "productDetailTitle": "Product Features", + "newsHero": { + "title": "Interactive Classroom & Education Digitalization Policy Collection", + "p": "Organized around three directions: interactive classroom efficiency digitization · restrictions on electronic devices in classrooms · classroom efficiency and student behavior data collection" + }, + "newsSummary": { + "title": "Policy Summary", + "headers": ["Policy Direction", "Key Points", "Representative Documents"], + "rows": [ + { "direction": "Interactive Classroom Digitization", "points": "Smart education platforms, AI-integrated teaching, digital textbooks", "docs": "Education IT 2.0 (2018), Digital Education Nine-Ministry Opinion (2025)" }, + { "direction": "Electronic Device Restrictions", "points": "Phones/tablets banned from classrooms, screen time ≤30% of instruction", "docs": "Phone Management Notice (2021), Myopia Prevention Plan (2018)" }, + { "direction": "Student Behavior Collection", "points": "Process evaluation, learning analytics, AI behavior monitoring", "docs": "Education Evaluation Reform (2020), Compulsory Education Quality Monitoring (2021)" } + ] + }, + "newsTrend": "Key policy trend: The state is vigorously promoting education digitization and smart classroom construction while strictly limiting students' direct use of tablets, phones, and other electronic devices. This means: the path to classroom digitization should not be \"one tablet per student,\" but rather through classroom-side smart devices (smart blackboards, smart gateways) + unobtrusive student behavior collection (smart pens, behavioral analysis cameras) to achieve efficient interactive teaching and precise learning analytics." +} diff --git a/src/_data/site.js b/src/_data/site.js new file mode 100644 index 0000000..75b48a9 --- /dev/null +++ b/src/_data/site.js @@ -0,0 +1,5 @@ +module.exports = { + zh: require("./site.zh.json"), + en: require("./site.en.json"), + "zh-hant": require("./site.zh-hant.json"), +}; diff --git a/src/_data/site.zh-hant.json b/src/_data/site.zh-hant.json new file mode 100644 index 0000000..2ae05d6 --- /dev/null +++ b/src/_data/site.zh-hant.json @@ -0,0 +1,114 @@ +{ + "lang": "zh-Hant", + "title": "自然寫科技 | 書寫智能 yink.ai", + "description": "深圳自然寫科技 — 自然書寫數位化產品方案,智能筆、IoT網關、教室互動、AI雲服務", + "nav": { + "products": "產品方案", + "news": "行業資訊", + "community": "社區交流", + "download": "軟體下載", + "about": "關於我們", + "contact": "聯絡我們", + "home": "返回首頁" + }, + "hero": { + "h1": "自然書寫數位化", + "p": "中性筆手握自然書寫,無感數位化採集筆跡
AI 即時分析,讓課堂更高效" + }, + "downloadSection": { + "title": "軟體下載", + "subtitle": "全平台覆蓋,隨時隨地使用自然寫產品", + "items": [ + { "icon": "📱", "title": "手機端 iOS", "sub": "隨時查看學情資料", "platforms": ["iPhone / iPad"] }, + { "icon": "📱", "title": "手機端 Android", "sub": "隨時查看學情資料", "platforms": ["Android"] }, + { "icon": "📱", "title": "手機端 鴻蒙", "sub": "隨時查看學情資料", "platforms": ["HarmonyOS"] }, + { "icon": "💻", "title": "PC 教師端", "sub": "備課與課堂管理", "platforms": ["Windows"] }, + { "icon": "🖥️", "title": "智慧黑板", "sub": "教室互動大螢幕應用", "platforms": ["Windows"] }, + { "icon": "📺", "title": "電視端", "sub": "家庭學習場景", "platforms": ["Android"] }, + { "icon": "📋", "title": "Pad iOS", "sub": "便攜課堂終端", "platforms": ["iPad"] }, + { "icon": "📋", "title": "Pad Android", "sub": "便攜課堂終端", "platforms": ["Android"] } + ] + }, + "aboutSection": { + "title": "關於我們", + "subtitle": "以自然書寫為核心,用科技賦能教育", + "eyebrow": "Company Profile", + "h2": "深圳自然寫科技有限公司", + "p1": "由徐佳宏博士創辦於 2025 年 8 月,自主研發自然書寫數位化產品方案,由智能筆、IoT 網關、教室互動 APP、手機 APP、雲服務組成。中小學生在學校教室及家裡手握中性圓珠筆自然書寫無感數位化,在教室課堂即時互動。", + "p2": "雲端協同下教室智能黑板上安裝的 APP 與師生高效互動,大大提高課堂效率。公司秉承教育部提出數智教育理念,保護青少年眼睛視力的責任擔當,以自然書寫的中性筆為學生課堂最效率的智能終端為核心。", + "founderImg": "img/founder.jpeg", + "imgAlt": "創始團隊", + "stats": [ + { "num": "13", "label": "軟體著作權" }, + { "num": "3", "label": "發明專利" }, + { "num": "9", "label": "實用新型專利" } + ] + }, + "footer": { + "brandImg": "img/logo-green-font.png", + "brandText": "自然書寫數位化產品方案
讓每一筆書寫都有價值", + "quickLinks": { + "title": "快速連結", + "links": [ + { "href": "#products", "text": "產品方案" }, + { "href": "#download", "text": "軟體下載" }, + { "href": "#about", "text": "關於我們" } + ] + }, + "contact": { + "title": "聯絡我們", + "phone": { "label": "服務熱線", "value": "+86 138-0880-0509" }, + "address": { "label": "地址", "value": "廣東省深圳市福田區百花四路" }, + "emails": { + "label": "郵箱", + "recruit": { "addr": "ren@writech.cn", "text": "招聘" }, + "tech": { "addr": "tech@writech.cn", "text": "技術" }, + "partner": { "addr": "hezuo@writech.cn", "text": "合作" } + } + }, + "copyright": "Copyright © 2021-2026 深圳自然寫科技有限公司" + }, + "brandAlt": "自然寫科技", + "navMenuLabel": "選單", + "productSection": { + "title": "產品方案", + "subtitle": "從智能筆到雲端 AI,完整的數位化書寫生態" + }, + "productLabel": { + "intro": "", + "positioning": "產品定位", + "features": "核心功能", + "specs": "硬體配置", + "param": "參數", + "value": "規格", + "install": "安裝方式", + "scenarios": "應用場景" + }, + "productPageTitle": "硬體商標 — ink 系列產品介紹", + "productPageHeader": "ink 系列硬體商標", + "brandRuleTitle": "品牌命名規則", + "brandRule": "所有硬體產品採用統一的四字母英文標識命名,後三個字母固定為 ink(寓意\"書寫、墨跡\",呼應智能點陣筆教育系統的核心基因),首字母根據產品特性賦予語義區分。", + "productTableTitle": "硬體產品列表", + "productTableHeaders": ["#", "產品名稱", "英文標識", "產品圖示", "命名釋義", "詞彙屬性"], + "designRuleTitle": "標識設計要求", + "designRules": [ + "字型:全大寫 WINK / CINK / … 用於正式場景;首字母大寫 Wink / Cink / … 用於文件行文", + "色彩:各產品標識可搭配獨立的品牌色,但統一保留 ink 部分的視覺一致性", + "應用場景:產品外殼絲印、包裝盒、軟體介面、官網產品頁" + ], + "productDetailTitle": "產品功能介紹", + "newsHero": { + "title": "互動課堂與教育數位化國家政策彙編", + "p": "圍繞三大方向整理:互動課堂效率數位化 · 不提倡學生課堂使用平板等電子終端 · 課堂效率與學生行為採集" + }, + "newsSummary": { + "title": "政策要點總結", + "headers": ["政策方向", "核心要點", "代表性文件"], + "rows": [ + { "direction": "互動課堂數位化", "points": "智慧教育平台、AI融合教學、數位教材、互動課堂", "docs": "教育資訊化2.0(2018)、教育數位化九部門意見(2025)、教育強國綱要(2024-2035)" }, + { "direction": "限制電子終端使用", "points": "手機/平板禁入課堂、電子螢幕≤30%教學時長、近視防控", "docs": "手機管理通知(2021)、近視防控方案(2018)、光明行動方案(2021-2025)" }, + { "direction": "學生行為採集", "points": "過程性評價、學情分析、AI行為監測、資料驅動評價", "docs": "教育評價改革方案(2020)、義務教育質量監測(2021)、教師AI應用指引(2025)" } + ] + }, + "newsTrend": "關鍵政策趨勢:國家一方面大力推進教育數位化和智慧課堂建設,另一方面嚴格限制學生直接使用平板、手機等電子終端。這意味著:課堂數位化的實現路徑不應是\"人手一塊平板\",而應透過教室端智能設備(如智能黑板、智能網關)+ 學生行為無感採集(如智能筆、行為分析攝像頭)來實現高效互動教學與精準學情分析。" +} diff --git a/src/_data/site.zh.json b/src/_data/site.zh.json new file mode 100644 index 0000000..fa48892 --- /dev/null +++ b/src/_data/site.zh.json @@ -0,0 +1,115 @@ +{ + "lang": "zh-CN", + "title": "自然写科技 | 书写智能 yink.ai", + "description": "深圳自然写科技 — 自然书写数字化产品方案,智能笔、IoT网关、教室互动、AI云服务", + "nav": { + "products": "产品方案", + "news": "行业资讯", + "community": "社区交流", + "download": "软件下载", + "about": "关于我们", + "contact": "联系我们", + "home": "返回首页" + }, + "hero": { + "h1": "自然书写数字化", + "p": "中性笔手握自然书写,无感数字化采集笔迹
AI 实时分析,让课堂更高效" + }, + "downloadSection": { + "title": "软件下载", + "subtitle": "全平台覆盖,随时随地使用自然写产品", + "items": [ + { "icon": "📱", "title": "手机端 iOS", "sub": "随时查看学情数据", "platforms": ["iPhone / iPad"] }, + { "icon": "📱", "title": "手机端 Android", "sub": "随时查看学情数据", "platforms": ["Android"] }, + { "icon": "📱", "title": "手机端 鸿蒙", "sub": "随时查看学情数据", "platforms": ["HarmonyOS"] }, + { "icon": "💻", "title": "PC 教师端", "sub": "备课与课堂管理", "platforms": ["Windows"] }, + { "icon": "🖥️", "title": "智慧黑板", "sub": "教室互动大屏应用", "platforms": ["Windows"] }, + { "icon": "📺", "title": "电视端", "sub": "家庭学习场景", "platforms": ["Android"] }, + { "icon": "📋", "title": "Pad iOS", "sub": "便携课堂终端", "platforms": ["iPad"] }, + { "icon": "📋", "title": "Pad Android", "sub": "便携课堂终端", "platforms": ["Android"] } + ] + }, + "aboutSection": { + "title": "关于我们", + "subtitle": "以自然书写为核心,用科技赋能教育", + "eyebrow": "Company Profile", + "h2": "深圳自然写科技有限公司", + "p1": "由徐佳宏博士创办于 2025 年 8 月,自主研发自然书写数字化产品方案,由智能笔、IoT 网关、教室互动 APP、手机 APP、云服务组成。中小学生在学校课室及家里手握中性圆珠笔自然书写无感数字化,在教室课堂实时互动。", + "p2": "云端协同下教室智能黑板上安装的 APP 与师生高效互动,大大提高课堂效率。公司秉承教育部提出数智教育理念,保护青少年眼睛视力的责任担当,以自然书写的中性笔为学生课堂最效率的智能终端为核心。", + "founderImg": "img/founder.jpeg", + "imgAlt": "创始团队", + "stats": [ + { "num": "13", "label": "软件著作权" }, + { "num": "3", "label": "发明专利" }, + { "num": "9", "label": "实用新型专利" } + ] + }, + "footer": { + "brandImg": "img/logo-green-font.png", + "brandText": "自然书写数字化产品方案
让每一笔书写都有价值", + "quickLinks": { + "title": "快速链接", + "links": [ + { "href": "#products", "text": "产品方案" }, + { "href": "#download", "text": "软件下载" }, + { "href": "#about", "text": "关于我们" } + ] + }, + "contact": { + "title": "联系我们", + "phone": { "label": "服务热线", "value": "+86 138-0880-0509" }, + "address": { "label": "地址", "value": "广东省深圳市福田区百花四路" }, + "emails": { + "label": "邮箱", + "recruit": { "addr": "ren@writech.cn", "text": "招聘" }, + "tech": { "addr": "tech@writech.cn", "text": "技术" }, + "partner": { "addr": "hezuo@writech.cn", "text": "合作" } + } + }, + "copyright": "Copyright © 2021-2026 深圳自然写科技有限公司", + "icp": "粤ICP备2026021413号-1" + }, + "brandAlt": "自然写科技", + "navMenuLabel": "菜单", + "productSection": { + "title": "产品方案", + "subtitle": "从智能笔到云端 AI,完整的数字化书写生态" + }, + "productLabel": { + "intro": "", + "positioning": "产品定位", + "features": "核心功能", + "specs": "硬件配置", + "param": "参数", + "value": "规格", + "install": "安装方式", + "scenarios": "应用场景" + }, + "productPageTitle": "硬件商标 — ink 系列产品介绍", + "productPageHeader": "ink 系列硬件商标", + "brandRuleTitle": "品牌命名规则", + "brandRule": "所有硬件产品采用统一的四字母英文标识命名,后三个字母固定为 ink(寓意\"书写、墨迹\",呼应智能点阵笔教育系统的核心基因),首字母根据产品特性赋予语义区分。", + "productTableTitle": "硬件产品列表", + "productTableHeaders": ["#", "产品名称", "英文标识", "产品图示", "命名释义", "词汇属性"], + "designRuleTitle": "标识设计要求", + "designRules": [ + "字体:全大写 WINK / CINK / … 用于正式场景;首字母大写 Wink / Cink / … 用于文档行文", + "色彩:各产品标识可搭配独立的品牌色,但统一保留 ink 部分的视觉一致性", + "应用场景:产品外壳丝印、包装盒、软件界面、官网产品页" + ], + "productDetailTitle": "产品功能介绍", + "newsHero": { + "title": "互动课堂与教育数字化国家政策汇编", + "p": "围绕三大方向整理:互动课堂效率数字化 · 不提倡学生课堂使用平板等电子终端 · 课堂效率与学生行为采集" + }, + "newsSummary": { + "title": "政策要点总结", + "headers": ["政策方向", "核心要点", "代表性文件"], + "rows": [ + { "direction": "互动课堂数字化", "points": "智慧教育平台、AI融合教学、数字教材、互动课堂", "docs": "教育信息化2.0(2018)、教育数字化九部门意见(2025)、教育强国纲要(2024-2035)" }, + { "direction": "限制电子终端使用", "points": "手机/平板禁入课堂、电子屏幕≤30%教学时长、近视防控", "docs": "手机管理通知(2021)、近视防控方案(2018)、光明行动方案(2021-2025)" }, + { "direction": "学生行为采集", "points": "过程性评价、学情分析、AI行为监测、数据驱动评价", "docs": "教育评价改革方案(2020)、义务教育质量监测(2021)、教师AI应用指引(2025)" } + ] + }, + "newsTrend": "关键政策趋势:国家一方面大力推进教育数字化和智慧课堂建设,另一方面严格限制学生直接使用平板、手机等电子终端。这意味着:课堂数字化的实现路径不应是\"人手一块平板\",而应通过教室端智能设备(如智能黑板、智能网关)+ 学生行为无感采集(如智能笔、行为分析摄像头)来实现高效互动教学与精准学情分析。" +} diff --git a/src/_includes/footer.njk b/src/_includes/footer.njk new file mode 100644 index 0000000..a128ac9 --- /dev/null +++ b/src/_includes/footer.njk @@ -0,0 +1,37 @@ + diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk new file mode 100644 index 0000000..aa491fe --- /dev/null +++ b/src/_includes/layouts/base.njk @@ -0,0 +1,15 @@ + + + + + +{% block title %}{{ site[locale].title }}{% endblock %} + + +{% block head %}{% endblock %} + + +{% block body %}{% endblock %} + + + diff --git a/src/_includes/nav-news.njk b/src/_includes/nav-news.njk new file mode 100644 index 0000000..26c328e --- /dev/null +++ b/src/_includes/nav-news.njk @@ -0,0 +1,7 @@ + diff --git a/src/_includes/nav.njk b/src/_includes/nav.njk new file mode 100644 index 0000000..682eae8 --- /dev/null +++ b/src/_includes/nav.njk @@ -0,0 +1,17 @@ + diff --git a/src/_includes/news-card.njk b/src/_includes/news-card.njk new file mode 100644 index 0000000..5b1e948 --- /dev/null +++ b/src/_includes/news-card.njk @@ -0,0 +1,11 @@ +
+
+
+
{{ item.seq }}. {{ item.title }}
+
{{ item.date }}
+ + {{ item.source }}{{ item.summary }}→ + +
+
+
diff --git a/src/_includes/product-card.njk b/src/_includes/product-card.njk new file mode 100644 index 0000000..c1e8876 --- /dev/null +++ b/src/_includes/product-card.njk @@ -0,0 +1,46 @@ +
+
+
{{ product.seq }}
+

{{ product.name }}

+
{{ product.enName }}
+
+
+
{{ site[locale].productLabel.intro }}{{ product.intro }}
+
{{ site[locale].productLabel.positioning }}{{ product.positioning }}
+
{{ site[locale].productLabel.features }}
+
    + {% for feature in product.features %} +
  • {{ feature }}
  • + {% endfor %} +
+
{{ site[locale].productLabel.specs }}
+
+ {% if product.images[0] %} +
{{ product.images[0].alt }}
{{ product.images[0].caption }}
+ {% endif %} +
+
+ + + {% for spec in product.specs %} + + {% endfor %} + +
{{ site[locale].productLabel.param }}{{ site[locale].productLabel.value }}
{{ spec.param }}{{ spec.value }}
+
+
+ {% if product.installNote %} +
{{ site[locale].productLabel.install }}{{ product.installNote }}
+ {% endif %} +
+

{{ site[locale].productLabel.scenarios }}

+
+ {% for img in product.images %} + {% if loop.index0 > 0 %} +
{{ img.alt }}
{{ img.caption }}
+ {% endif %} + {% endfor %} +
+
+
+
diff --git a/src/css/style.css b/src/css/style.css new file mode 100644 index 0000000..2f56805 --- /dev/null +++ b/src/css/style.css @@ -0,0 +1,530 @@ +*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } +html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; } +body { + font-family: -apple-system, BlinkMacSystemFont, "SF Pro SC", "SF Pro Text", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; + color: #1d1d1f; background: #fff; line-height: 1.6; overflow-x: hidden; +} +a { color: inherit; text-decoration: none; } +img { display: block; max-width: 100%; } + +/* Navigation */ +.nav { + position: fixed; top: 0; left: 0; right: 0; z-index: 1000; + height: 52px; + background: transparent; + display: flex; align-items: center; justify-content: center; + transition: background .4s, box-shadow .4s; +} +.nav.scrolled { + background: rgba(55,55,58,.94); + backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); + box-shadow: 0 1px 4px rgba(0,0,0,.12); +} +.nav-inner { + width: 100%; max-width: 1024px; padding: 0 22px; + display: flex; align-items: center; +} +.nav-logo img { height: 36px; opacity: .95; transition: opacity .3s; } +.nav-logo img:hover { opacity: 1; } +.nav-links { display: flex; align-items: center; gap: 24px; list-style: none; margin-left: 28px; flex: 1; } +.nav-primary a { + font-size: 14px; color: #8DC63F; font-weight: 500; + letter-spacing: .02em; transition: color .3s; +} +.nav-primary a:hover { color: #a8e04a; } +.nav-spacer { flex: 1; } +.nav-secondary a { + font-size: 13px; color: rgba(141,198,63,.7); letter-spacing: .02em; + transition: color .3s; +} +.nav-secondary a:hover { color: #8DC63F; } +.nav-menu-btn { + display: none; background: none; border: none; cursor: pointer; padding: 6px; +} +.nav-menu-btn span { + display: block; width: 18px; height: 1.5px; background: #fff; + margin: 4px 0; transition: transform .3s, opacity .3s; +} +.nav-back { + margin-left: 20px; font-size: 14px; color: #8DC63F; font-weight: 500; + transition: opacity .3s; +} +.nav-back:hover { opacity: .7; } +.nav-title { flex: 1; text-align: center; font-size: 15px; color: rgba(255,255,255,.85); font-weight: 500; } + +/* Hero */ +.hero { + position: relative; width: 100%; + height: 640px; + background: url('../img/home.jpg') center/cover no-repeat; + display: flex; align-items: flex-end; justify-content: center; + overflow: hidden; + padding-bottom: 48px; +} +.hero::after { + content: ''; position: absolute; inset: 0; + background: linear-gradient(180deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.28) 40%, rgba(0,0,0,.50) 100%); +} +.hero-content { + position: relative; z-index: 1; text-align: center; color: #fff; + padding: 0 24px; max-width: 720px; +} +.hero-content h1 { + font-size: 52px; font-weight: 700; letter-spacing: -.02em; + line-height: 1.15; margin-bottom: 16px; color: #8DC63F; +} +.hero-content p { + font-size: 19px; font-weight: 400; color: rgba(255,255,255,.85); + line-height: 1.6; margin-bottom: 32px; +} + +/* Section Common */ +.section { + padding: 88px 24px; + max-width: 1024px; margin: 0 auto; +} +.section-full { + padding: 88px 0; width: 100%; +} +.section-gray { background: #f5f5f7; } +.section-dark { background: #1d1d1f; color: #f5f5f7; } +.section-title { + font-size: 44px; font-weight: 700; text-align: center; + letter-spacing: -.02em; margin-bottom: 12px; +} +.section-subtitle { + font-size: 18px; color: #86868b; text-align: center; + max-width: 600px; margin: 0 auto 56px; +} + +/* Download */ +.download-grid { + display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); + gap: 20px; max-width: 800px; margin: 0 auto; +} +.dl-card { + background: #fff; border-radius: 18px; padding: 32px 20px; + text-align: center; transition: transform .3s, box-shadow .3s; + box-shadow: 0 2px 12px rgba(0,0,0,.06); +} +.dl-card:hover { transform: translateY(-4px); box-shadow: 0 8px 30px rgba(0,0,0,.10); } +.dl-icon { font-size: 36px; margin-bottom: 12px; } +.dl-title { font-size: 17px; font-weight: 600; margin-bottom: 6px; } +.dl-sub { font-size: 13px; color: #86868b; margin-bottom: 16px; } +.dl-platforms { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; } +.dl-tag { + font-size: 12px; padding: 4px 12px; border-radius: 12px; + background: #f0f7e6; color: #5a9a1e; font-weight: 500; +} + +/* About */ +.about-wrap { + max-width: 980px; margin: 0 auto; padding: 0 24px; + display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; +} +.about-img { border-radius: 20px; overflow: hidden; } +.about-img img { width: 100%; height: auto; } +.about-text h3 { + font-size: 15px; font-weight: 600; color: #8DC63F; + text-transform: uppercase; letter-spacing: .08em; margin-bottom: 12px; +} +.about-text h2 { + font-size: 32px; font-weight: 700; line-height: 1.25; margin-bottom: 20px; +} +.about-text p { + font-size: 15px; color: #515154; line-height: 1.8; margin-bottom: 14px; +} +.about-stats { + display: flex; justify-content: space-around; margin-top: 28px; padding-top: 24px; + border-top: 1px solid #e0e0e0; +} +.about-stats > div { flex: 1; text-align: center; } +.about-stat-num { font-size: 56px; font-weight: 700; color: #8DC63F; } +.about-stat-label { font-size: 22px; color: #86868b; margin-top: 4px; } + +/* Footer */ +.footer { + background: #3a3a3c; color: #d2d2d7; padding: 64px 24px 32px; +} +.footer-inner { + max-width: 980px; margin: 0 auto; + display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; +} +.footer-brand img { height: 48px; margin-bottom: 16px; } +.footer-brand p { font-size: 13px; color: #86868b; line-height: 1.7; } +.footer-col h4 { + font-size: 13px; font-weight: 600; color: #8DC63F; + margin-bottom: 16px; letter-spacing: .04em; +} +.footer-col ul { list-style: none; } +.footer-col li { margin-bottom: 10px; } +.footer-col a { + font-size: 13px; color: #ccc; transition: color .3s; +} +.footer-col a:hover { color: #8DC63F; } +.footer-col .contact-item { + font-size: 13px; color: #a1a1a6; margin-bottom: 10px; line-height: 1.6; +} +.footer-col .contact-item strong { color: #8DC63F; font-weight: 500; } +.footer-bottom { + max-width: 980px; margin: 0 auto; + border-top: 1px solid rgba(255,255,255,.08); + margin-top: 40px; padding-top: 20px; + display: flex; justify-content: center; gap: 16px; align-items: center; +} +.footer-bottom p { font-size: 12px; color: #999; } +.footer-bottom a { color: #999; text-decoration: none; } +.footer-bottom a:hover { color: #8DC63F; } + +/* Animations */ +.fade-in { + opacity: 0; transform: translateY(30px); + transition: opacity .7s ease-out, transform .7s ease-out; +} +.fade-in.visible { opacity: 1; transform: translateY(0); } + +/* Product Catalog (shared between index and product pages) */ +.product-catalog { + --pc: #5a9a1e; --pc-light: #f0f7e6; --pc-text: #1e293b; + --pc-muted: #64748b; --pc-border: #e2e8f0; --pc-card: #fff; + --pc-radius: 12px; --pc-shadow: 0 2px 12px rgba(0,0,0,.08); + max-width: 1024px; margin: 0 auto; padding: 0 24px; +} +.catalog-title { + font-size: 22px; font-weight: 700; margin: 48px 0 20px; + padding-bottom: 10px; border-bottom: 2px solid var(--pc-border); color: var(--pc-text); +} +.catalog-title::before { + content: ""; display: inline-block; width: 4px; height: 18px; + background: var(--pc); border-radius: 2px; margin-right: 10px; + vertical-align: middle; margin-top: -2px; +} +.catalog-title:first-child { margin-top: 0; } +.brand-rule { + background: var(--pc-card); border: 1px solid var(--pc-border); + border-radius: var(--pc-radius); padding: 20px 24px; margin-bottom: 36px; + box-shadow: var(--pc-shadow); +} +.brand-rule p { color: var(--pc-muted); line-height: 1.7; } +.brand-rule strong { color: var(--pc); } +.product-catalog .table-wrap { + background: var(--pc-card); border-radius: var(--pc-radius); + box-shadow: var(--pc-shadow); overflow: hidden; margin-bottom: 48px; + border: 1px solid var(--pc-border); +} +.product-catalog table { width: 100%; border-collapse: collapse; } +.product-catalog thead th { + background: var(--pc); color: #fff; padding: 12px 16px; + text-align: left; font-weight: 600; font-size: 14px; +} +.product-catalog thead th:first-child { text-align: center; width: 52px; } +.product-catalog thead th:nth-child(4) { text-align: center; width: 100px; } +.product-catalog tbody tr { + border-bottom: 1px solid var(--pc-border); cursor: pointer; transition: background .15s; +} +.product-catalog tbody tr:last-child { border-bottom: none; } +.product-catalog tbody tr:hover { background: var(--pc-light); } +.product-catalog tbody td { padding: 12px 16px; vertical-align: middle; } +.product-catalog tbody td:first-child { text-align: center; font-weight: 700; color: var(--pc); } +.product-catalog tbody td:nth-child(4) { text-align: center; } +.product-catalog tbody td img { width: 72px; height: 72px; object-fit: contain; display: block; margin: 0 auto; } +.tag-badge { display: inline-block; background: #f1f5f9; color: var(--pc-muted); font-size: 12px; padding: 2px 8px; border-radius: 99px; } +.product-label { font-weight: 700; font-size: 15px; } +.product-en { display: inline-block; font-family: Georgia, serif; font-weight: 700; color: var(--pc); } +.design-rules { + background: var(--pc-card); border: 1px solid var(--pc-border); + border-radius: var(--pc-radius); padding: 20px 24px; margin-bottom: 48px; + box-shadow: var(--pc-shadow); +} +.design-rules ul { padding-left: 0; list-style: none; } +.design-rules li { padding: 6px 0 6px 20px; position: relative; color: var(--pc-muted); } +.design-rules li::before { content: "\00B7"; position: absolute; left: 6px; color: var(--pc); font-size: 18px; line-height: 1.3; } +.design-rules strong { color: var(--pc-text); } +.product-section { + background: var(--pc-card); border: 1px solid var(--pc-border); + border-radius: var(--pc-radius); box-shadow: var(--pc-shadow); + margin-bottom: 48px; overflow: hidden; +} +.product-header { + background: linear-gradient(135deg, #6a9f2c 0%, #4a7a1a 100%); + color: #fff; padding: 24px 28px; +} +.product-header .seq { font-size: 22px; opacity: .85; margin-bottom: 6px; font-weight: 600; } +.product-header h2 { font-size: 24px; font-weight: 700; letter-spacing: .5px; margin-bottom: 6px; } +.product-header .en-name { font-family: Georgia, serif; font-size: 16px; opacity: .85; } +.product-body { padding: 28px; } +.intro-quote { + background: var(--pc-light); border-left: 4px solid var(--pc); + border-radius: 0 8px 8px 0; padding: 14px 18px; margin-bottom: 24px; + font-size: 15px; color: var(--pc-text); +} +.intro-quote strong { color: var(--pc); } +.positioning { margin-bottom: 24px; color: var(--pc-muted); line-height: 1.8; } +.positioning strong { color: var(--pc-text); font-size: 15px; display: block; margin-bottom: 6px; } +.features-title { font-weight: 700; font-size: 15px; margin-bottom: 10px; color: var(--pc-text); } +.features-list { list-style: none; padding: 0; margin-bottom: 24px; } +.features-list li { + padding: 8px 0 8px 28px; position: relative; + border-bottom: 1px solid var(--pc-border); color: var(--pc-muted); line-height: 1.6; +} +.features-list li:last-child { border-bottom: none; } +.features-list li::before { content: "\2726"; position: absolute; left: 6px; top: 8px; color: var(--pc); font-size: 11px; } +.features-list li strong { color: var(--pc-text); } +.spec-title { font-weight: 700; font-size: 15px; margin-bottom: 10px; color: var(--pc-text); } +.spec-table-wrap { border-radius: 8px; overflow: hidden; border: 1px solid var(--pc-border); margin-bottom: 24px; } +.spec-table { width: 100%; border-collapse: collapse; font-size: 14px; } +.spec-table thead th { background: #f1f5f9; color: var(--pc-text); padding: 9px 14px; text-align: left; font-weight: 600; } +.spec-table tbody tr { border-top: 1px solid var(--pc-border); } +.spec-table tbody tr:hover { background: var(--pc-light); } +.spec-table td { padding: 9px 14px; color: var(--pc-muted); } +.spec-table td:first-child { color: var(--pc-text); font-weight: 500; width: 38%; } +.install-block { + background: #f8fafc; border-radius: 8px; padding: 14px 18px; + margin-bottom: 24px; font-size: 14px; color: var(--pc-muted); + border: 1px solid var(--pc-border); +} +.install-block strong { color: var(--pc-text); display: block; margin-bottom: 4px; } +.media-section { margin-bottom: 8px; } +.media-section h4 { font-weight: 700; font-size: 15px; margin-bottom: 14px; color: var(--pc-text); } +.img-grid { + display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); + gap: 16px; margin-bottom: 16px; +} +.img-card { border-radius: 10px; overflow: hidden; border: 1px solid var(--pc-border); background: #fafafa; } +.img-card img { width: 100%; height: auto; display: block; } +.img-card.sm { max-width: 280px; } +.img-spec-row { display: flex; gap: 24px; align-items: flex-start; margin-bottom: 24px; } +.img-spec-row .img-card.sm { flex-shrink: 0; margin-bottom: 0; } +.img-spec-row .spec-side { flex: 1; min-width: 0; } +.img-spec-row .spec-side .spec-title { margin-top: 0; } +.img-spec-row .spec-side .spec-table-wrap { margin-bottom: 0; } +.img-caption { + padding: 10px 14px; font-size: 13px; color: var(--pc-muted); + background: #f8fafc; border-top: 1px solid var(--pc-border); +} + +/* Product-specific page styles */ +header { + background: #fff; + border-bottom: 1px solid #e2e8f0; + position: sticky; + top: 0; + z-index: 100; + box-shadow: 0 1px 6px rgba(0,0,0,.06); +} +.header-inner { + max-width: 1100px; + margin: 0 auto; + padding: 0 20px; + height: 56px; + display: flex; + align-items: center; + gap: 12px; +} +.logo-dot { + width: 10px; height: 10px; + border-radius: 50%; + background: #2563eb; +} +header h1 { + font-size: 18px; + font-weight: 700; + color: #1e293b; + letter-spacing: .5px; +} +header h1 span { color: #2563eb; } + +.page { max-width: 1100px; margin: 0 auto; padding: 40px 20px 80px; } + +.back-top { + position: fixed; + bottom: 28px; + right: 24px; + width: 44px; height: 44px; + background: #2563eb; + color: #fff; + border: none; + border-radius: 50%; + font-size: 20px; + cursor: pointer; + box-shadow: 0 4px 12px rgba(37,99,235,.4); + display: flex; align-items: center; justify-content: center; + opacity: 0; + transition: opacity .3s; + z-index: 200; +} +.back-top.visible { opacity: 1; } + +/* News page */ +.content { max-width: 960px; margin: 0 auto; padding: 0 20px; } +.section-header { + margin: 48px 0 24px; padding-bottom: 12px; + border-bottom: 2px solid #e2e8f0; +} +.section-header h2 { + font-size: 22px; font-weight: 700; color: #1e293b; + display: flex; align-items: center; gap: 10px; +} +.section-header h2::before { + content: ""; display: inline-block; width: 4px; height: 20px; + background: #8DC63F; border-radius: 2px; flex-shrink: 0; +} +.section-tag { + display: inline-block; font-size: 12px; font-weight: 600; padding: 3px 10px; + border-radius: 99px; background: #f0f7e6; color: #5a9a1e; margin-top: 8px; +} +.news-card { + background: #fff; border-radius: 14px; overflow: hidden; + box-shadow: 0 2px 12px rgba(0,0,0,.05); margin-bottom: 20px; + transition: transform .3s, box-shadow .3s; +} +.news-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,.10); } +.news-inner { display: flex; gap: 20px; padding: 20px; align-items: flex-start; } +.news-body { flex: 1; min-width: 0; } +.news-card { background: #fff; border-radius: 14px; overflow: hidden; } +.news-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,.10); } +.news-title { + font-size: 16px; font-weight: 700; color: #1e293b; + margin-bottom: 8px; line-height: 1.4; +} +.news-date { font-size: 12px; color: #94a3b8; margin-bottom: 10px; } +.news-link { + display: block; padding: 12px 16px; border-radius: 8px; + background: #f8faf4; border: 1px solid #e8f0d8; + transition: background .2s, border-color .2s; + color: #2d5016; font-size: 14px; line-height: 1.7; +} +.news-link:hover { background: #f0f7e6; border-color: #8DC63F; } +.news-link .source { + display: inline-block; font-weight: 600; color: #5a9a1e; + margin-right: 6px; +} +.news-link .arrow { + float: right; color: #8DC63F; font-size: 16px; margin-top: 2px; +} +.summary-wrap { + background: #fff; border-radius: 14px; overflow: hidden; + box-shadow: 0 2px 12px rgba(0,0,0,.05); margin: 32px 0; +} +.summary-wrap table { width: 100%; border-collapse: collapse; font-size: 14px; } +.summary-wrap thead th { + background: #5a9a1e; color: #fff; padding: 12px 16px; + text-align: left; font-weight: 600; +} +.summary-wrap tbody tr { border-top: 1px solid #e2e8f0; } +.summary-wrap tbody tr:hover { background: #f8faf4; } +.summary-wrap td { padding: 12px 16px; color: #475569; vertical-align: top; } +.summary-wrap td:first-child { font-weight: 600; color: #1e293b; white-space: nowrap; } +.trend-box { + background: linear-gradient(135deg, #f0f7e6, #e8f5d0); + border-left: 4px solid #8DC63F; border-radius: 0 14px 14px 0; + padding: 24px 28px; margin: 32px 0 48px; font-size: 15px; color: #2d5016; line-height: 1.8; +} +.trend-box strong { color: #3a7a10; } + +/* Responsive */ +@media (max-width: 768px) { + .nav-links { display: none; } + .nav-menu-btn { display: block; } + .nav-links.open { + display: flex; flex-direction: column; gap: 0; + position: absolute; top: 52px; left: 0; right: 0; + background: rgba(55,55,58,.98); padding: 8px 0; + } + .nav-links.open a { + display: block; padding: 14px 32px; font-size: 15px; + border-bottom: 1px solid rgba(255,255,255,.06); + } + .nav-links.open .nav-spacer { display: none; } + .hero { height: 480px; } + .hero-content h1 { font-size: 32px; } + .hero-content p { font-size: 16px; } + .section { padding: 56px 20px; } + .section-full { padding: 56px 0; } + .section-title { font-size: 30px; } + .section-subtitle { font-size: 16px; margin-bottom: 36px; } + .about-wrap { grid-template-columns: 1fr; gap: 32px; } + .about-stats { flex-wrap: wrap; } + .about-stat-label { font-size: 18px; } + .download-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } + .dl-card { padding: 24px 14px; border-radius: 14px; } + .footer-inner { grid-template-columns: 1fr; gap: 32px; } + .footer-bottom { flex-direction: column; gap: 8px; text-align: center; } + .product-catalog { padding: 0 12px; } + .catalog-title { font-size: 18px; } + .product-header .seq { font-size: 18px; } + .product-header h2 { font-size: 20px; } + .product-header .en-name { font-size: 14px; } + .product-body { padding: 18px 14px; } + .intro-quote { font-size: 14px; padding: 12px 14px; } + .positioning { font-size: 14px; } + .features-list li { font-size: 14px; } + .spec-table { font-size: 13px; } + .spec-table td:first-child { width: 35%; } + .img-grid { grid-template-columns: 1fr; } + .img-spec-row { flex-direction: column; } + .img-spec-row .img-card.sm { max-width: 100%; align-self: center; } + .img-card.sm { max-width: 100%; margin: 0 auto; } + .product-catalog .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; } + .product-catalog thead th:nth-child(4), + .product-catalog tbody td:nth-child(4) { display: none; } + .product-catalog thead th:nth-child(5), + .product-catalog tbody td:nth-child(5) { display: none; } + .product-catalog thead th:nth-child(6), + .product-catalog tbody td:nth-child(6) { display: none; } + .page { padding: 20px 12px 60px; } + .section-title { font-size: 18px; } + .product-header h2 { font-size: 20px; } + .product-body { padding: 18px 14px; } + .img-grid { grid-template-columns: 1fr; } + .img-spec-row { flex-direction: column; } +} + +@media (max-width: 480px) { + .hero { height: 400px; } + .hero-content h1 { font-size: 26px; } + .hero-content p { font-size: 15px; } + .section { padding: 40px 16px; } + .section-full { padding: 40px 0; } + .section-title { font-size: 24px; } + .section-subtitle { font-size: 14px; margin-bottom: 28px; } + .about-text h2 { font-size: 24px; } + .about-text p { font-size: 14px; } + .about-stats { gap: 16px; } + .about-stats > div { flex: 1; } + .about-stat-num { font-size: 44px; } + .about-stat-label { font-size: 16px; } + .download-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } + .dl-card { padding: 20px 10px; border-radius: 12px; } + .dl-icon { font-size: 28px; margin-bottom: 8px; } + .dl-title { font-size: 15px; } + .dl-sub { font-size: 12px; margin-bottom: 12px; } + .dl-tag { font-size: 11px; padding: 3px 8px; } + .product-catalog { padding: 0 8px; } + .product-header { padding: 18px 16px; } + .product-header .seq { font-size: 16px; } + .product-header h2 { font-size: 18px; } + .product-header .en-name { font-size: 13px; } + .product-body { padding: 14px 12px; } + .intro-quote { font-size: 13px; padding: 10px 12px; } + .positioning { font-size: 13px; } + .features-title, .spec-title { font-size: 14px; } + .features-list li { font-size: 13px; padding: 6px 0 6px 22px; } + .features-list li::before { left: 4px; } + .spec-table { font-size: 12px; } + .spec-table thead th { padding: 8px 10px; } + .spec-table td { padding: 8px 10px; } + .img-caption { font-size: 12px; padding: 8px 10px; } + .media-section h4 { font-size: 14px; } + .brand-rule { padding: 14px 16px; } + .brand-rule p { font-size: 13px; } + .design-rules li { font-size: 13px; } + .product-catalog thead th:nth-child(3), + .product-catalog tbody td:nth-child(3) { display: none; } + .footer { padding: 48px 16px 24px; } + .footer-col h4 { font-size: 12px; } + .footer-col a, .footer-col .contact-item { font-size: 12px; } + .footer-bottom p { font-size: 11px; } + .page { padding: 16px 8px 40px; } + .product-body { padding: 14px 12px; } +} diff --git a/src/img/founder.jpeg b/src/img/founder.jpeg new file mode 100644 index 0000000..fa4072b Binary files /dev/null and b/src/img/founder.jpeg differ diff --git a/src/img/home.jpg b/src/img/home.jpg new file mode 100644 index 0000000..d69c95d Binary files /dev/null and b/src/img/home.jpg differ diff --git a/src/img/logo-black-font.png b/src/img/logo-black-font.png new file mode 100644 index 0000000..e4c0c1f Binary files /dev/null and b/src/img/logo-black-font.png differ diff --git a/src/img/logo-black.png b/src/img/logo-black.png new file mode 100644 index 0000000..6b7d3c4 Binary files /dev/null and b/src/img/logo-black.png differ diff --git a/src/img/logo-gray-font.png b/src/img/logo-gray-font.png new file mode 100644 index 0000000..21ce11a Binary files /dev/null and b/src/img/logo-gray-font.png differ diff --git a/src/img/logo-gray.png b/src/img/logo-gray.png new file mode 100644 index 0000000..305d161 Binary files /dev/null and b/src/img/logo-gray.png differ diff --git a/src/img/logo-green-font.png b/src/img/logo-green-font.png new file mode 100644 index 0000000..53448c5 Binary files /dev/null and b/src/img/logo-green-font.png differ diff --git a/src/img/logo-green.png b/src/img/logo-green.png new file mode 100644 index 0000000..92dca8d Binary files /dev/null and b/src/img/logo-green.png differ diff --git a/src/img/logo-white-font.png b/src/img/logo-white-font.png new file mode 100644 index 0000000..0d5cc27 Binary files /dev/null and b/src/img/logo-white-font.png differ diff --git a/src/img/logo-white.png b/src/img/logo-white.png new file mode 100644 index 0000000..e3b3f13 Binary files /dev/null and b/src/img/logo-white.png differ diff --git a/src/img/logo-yellow-font.png b/src/img/logo-yellow-font.png new file mode 100644 index 0000000..655681d Binary files /dev/null and b/src/img/logo-yellow-font.png differ diff --git a/src/img/logo-yellow.png b/src/img/logo-yellow.png new file mode 100644 index 0000000..988d89e Binary files /dev/null and b/src/img/logo-yellow.png differ diff --git a/src/index.njk b/src/index.njk new file mode 100644 index 0000000..d75e7cd --- /dev/null +++ b/src/index.njk @@ -0,0 +1,113 @@ +--- +permalink: "index.html" +--- +{% extends "layouts/base.njk" %} +{% block body %} +{% include "nav.njk" %} + +
+
+

{{ site[locale].hero.h1 }}

+

{{ site[locale].hero.p | safe }}

+
+
+ +
+
+

{{ site[locale].downloadSection.title }}

+

{{ site[locale].downloadSection.subtitle }}

+
+ {% for item in site[locale].downloadSection.items %} +
+
{{ item.icon }}
+
{{ item.title }}
+
{{ item.sub }}
+
+ {% for tag in item.platforms %} + {{ tag }} + {% endfor %} +
+
+ {% endfor %} +
+
+
+ +
+
+

{{ site[locale].aboutSection.title }}

+

{{ site[locale].aboutSection.subtitle }}

+
+
+
+ {{ site[locale].aboutSection.imgAlt }} +
+
+

{{ site[locale].aboutSection.eyebrow }}

+

{{ site[locale].aboutSection.h2 }}

+

{{ site[locale].aboutSection.p1 }}

+

{{ site[locale].aboutSection.p2 }}

+
+ {% for stat in site[locale].aboutSection.stats %} +
+
{{ stat.num }}
+
{{ stat.label }}
+
+ {% endfor %} +
+
+
+
+ +
+
+

{{ site[locale].productSection.title }}

+

{{ site[locale].productSection.subtitle }}

+
+
+

{{ site[locale].brandRuleTitle }}

+
+

{{ site[locale].brandRule | safe }}

+
+ +

{{ site[locale].productTableTitle }}

+
+ + + {% for header in site[locale].productTableHeaders %} + + {% endfor %} + + + {% for product in products[locale] %} + + + + + + + + + {% endfor %} + +
{{ header }}
{{ loop.index }}{{ product.tableName }}{{ product.name }}{{ product.tableName }}{{ product.tableEtymology }}{{ product.tableTag }}
+
+ +

{{ site[locale].designRuleTitle }}

+
+
    + {% for rule in site[locale].designRules %} +
  • {{ rule | safe }}
  • + {% endfor %} +
+
+ +

{{ site[locale].productDetailTitle }}

+ {% for product in products[locale] %} + {% include "product-card.njk" %} + {% endfor %} +
+
+ +{% include "footer.njk" %} +{% endblock %} diff --git a/src/js/main.js b/src/js/main.js new file mode 100644 index 0000000..807f1d3 --- /dev/null +++ b/src/js/main.js @@ -0,0 +1,54 @@ +document.addEventListener('DOMContentLoaded', function() { + var menuBtn = document.getElementById('menuBtn'); + var navLinks = document.getElementById('navLinks'); + if (menuBtn && navLinks) { + menuBtn.addEventListener('click', function() { + navLinks.classList.toggle('open'); + var spans = menuBtn.querySelectorAll('span'); + if (navLinks.classList.contains('open')) { + spans[0].style.transform = 'rotate(45deg) translate(4px, 4px)'; + spans[1].style.opacity = '0'; + spans[2].style.transform = 'rotate(-45deg) translate(4px, -4px)'; + } else { + spans[0].style.transform = 'none'; + spans[1].style.opacity = '1'; + spans[2].style.transform = 'none'; + } + }); + navLinks.querySelectorAll('a').forEach(function(a) { + a.addEventListener('click', function() { + navLinks.classList.remove('open'); + var spans = menuBtn.querySelectorAll('span'); + spans[0].style.transform = 'none'; + spans[1].style.opacity = '1'; + spans[2].style.transform = 'none'; + }); + }); + } + + var observer = new IntersectionObserver(function(entries) { + entries.forEach(function(entry) { + if (entry.isIntersecting) { + entry.target.classList.add('visible'); + } + }); + }, { threshold: 0.05 }); + document.querySelectorAll('.fade-in').forEach(function(el) { + observer.observe(el); + }); + + var nav = document.getElementById('nav'); + var heroEl = document.getElementById('hero'); + if (nav && heroEl) { + window.addEventListener('scroll', function() { + nav.classList.toggle('scrolled', window.scrollY > heroEl.offsetHeight - 52); + }); + } + + var backBtn = document.getElementById('backTop'); + if (backBtn) { + window.addEventListener('scroll', function() { + backBtn.classList.toggle('visible', window.scrollY > 300); + }); + } +}); diff --git a/src/news.njk b/src/news.njk new file mode 100644 index 0000000..396b20b --- /dev/null +++ b/src/news.njk @@ -0,0 +1,71 @@ +--- +permalink: "news/index.html" +--- +{% extends "layouts/base.njk" %} +{% block title %}{{ site[locale].newsHero.title }} | {{ site[locale].title }}{% endblock %} +{% block head %} + +{% endblock %} +{% block body %} +{% include "nav-news.njk" %} + +
+

{{ site[locale].newsHero.title }}

+

{{ site[locale].newsHero.p }}

+
+ +
+ {% for category in news[locale].categories %} +
+

{{ category.title }}

+ +
+ {% for item in category.items %} + {% include "news-card.njk" %} + {% endfor %} + {% endfor %} + +
+

{{ site[locale].newsSummary.title }}

+
+
+ + + {% for header in site[locale].newsSummary.headers %} + + {% endfor %} + + + {% for row in site[locale].newsSummary.rows %} + + + + + + {% endfor %} + +
{{ header }}
{{ row.direction }}{{ row.points }}{{ row.docs }}
+
+ +
+ {{ site[locale].newsTrend | safe }} +
+
+ + +{% endblock %} diff --git a/src/product.njk b/src/product.njk new file mode 100644 index 0000000..db8bbda --- /dev/null +++ b/src/product.njk @@ -0,0 +1,95 @@ +--- +permalink: "product/index.html" +--- +{% extends "layouts/base.njk" %} +{% block title %}{{ site[locale].productPageTitle }}{% endblock %} +{% block head %} + +{% endblock %} +{% block body %} +
+
+
+

{{ site[locale].productPageHeader | safe }}

+
+
+ +
+

{{ site[locale].brandRuleTitle }}

+
+

{{ site[locale].brandRule | safe }}

+
+ +

{{ site[locale].productTableTitle }}

+
+ + + {% for header in site[locale].productTableHeaders %} + + {% endfor %} + + + {% for product in products[locale] %} + + + + + + + + + {% endfor %} + +
{{ header }}
{{ loop.index }}{{ product.tableName }}{{ product.name }}{{ product.tableName }}{{ product.tableEtymology }}{{ product.tableTag }}
+
+ +

{{ site[locale].designRuleTitle }}

+
+
    + {% for rule in site[locale].designRules %} +
  • {{ rule | safe }}
  • + {% endfor %} +
+
+ +

{{ site[locale].productDetailTitle }}

+ {% for product in products[locale] %} + {% include "product-card.njk" %} + {% endfor %} +
+ + +{% endblock %} diff --git a/src/product/img/Bink.jpg b/src/product/img/Bink.jpg new file mode 100644 index 0000000..2423a70 Binary files /dev/null and b/src/product/img/Bink.jpg differ diff --git a/src/product/img/Bink0.jpg b/src/product/img/Bink0.jpg new file mode 100644 index 0000000..f55836c Binary files /dev/null and b/src/product/img/Bink0.jpg differ diff --git a/src/product/img/Bink01.png b/src/product/img/Bink01.png new file mode 100644 index 0000000..eab3593 Binary files /dev/null and b/src/product/img/Bink01.png differ diff --git a/src/product/img/Bink1.jpg b/src/product/img/Bink1.jpg new file mode 100644 index 0000000..83b8435 Binary files /dev/null and b/src/product/img/Bink1.jpg differ diff --git a/src/product/img/Cink.jpg b/src/product/img/Cink.jpg new file mode 100644 index 0000000..6d2858e Binary files /dev/null and b/src/product/img/Cink.jpg differ diff --git a/src/product/img/Cink1.png b/src/product/img/Cink1.png new file mode 100644 index 0000000..bb179d4 Binary files /dev/null and b/src/product/img/Cink1.png differ diff --git a/src/product/img/Hink.png b/src/product/img/Hink.png new file mode 100644 index 0000000..83a3569 Binary files /dev/null and b/src/product/img/Hink.png differ diff --git a/src/product/img/Hink2.png b/src/product/img/Hink2.png new file mode 100644 index 0000000..6534ec9 Binary files /dev/null and b/src/product/img/Hink2.png differ diff --git a/src/product/img/Mink1.png b/src/product/img/Mink1.png new file mode 100644 index 0000000..06e3152 Binary files /dev/null and b/src/product/img/Mink1.png differ diff --git a/src/product/img/Mink2.jpg b/src/product/img/Mink2.jpg new file mode 100644 index 0000000..5ad8ee2 Binary files /dev/null and b/src/product/img/Mink2.jpg differ diff --git a/src/product/img/Mink3.jpg b/src/product/img/Mink3.jpg new file mode 100644 index 0000000..02b4c1c Binary files /dev/null and b/src/product/img/Mink3.jpg differ diff --git a/src/product/img/Mink4.jpg b/src/product/img/Mink4.jpg new file mode 100644 index 0000000..0487433 Binary files /dev/null and b/src/product/img/Mink4.jpg differ diff --git a/src/product/img/Mink5.jpg b/src/product/img/Mink5.jpg new file mode 100644 index 0000000..e2875af Binary files /dev/null and b/src/product/img/Mink5.jpg differ diff --git a/src/product/img/Qink.png b/src/product/img/Qink.png new file mode 100644 index 0000000..9c63c14 Binary files /dev/null and b/src/product/img/Qink.png differ diff --git a/src/product/img/Qink1.png b/src/product/img/Qink1.png new file mode 100644 index 0000000..7a6a7b6 Binary files /dev/null and b/src/product/img/Qink1.png differ diff --git a/src/product/img/Qink2.png b/src/product/img/Qink2.png new file mode 100644 index 0000000..da6b36d Binary files /dev/null and b/src/product/img/Qink2.png differ diff --git a/src/product/img/Qink3.png b/src/product/img/Qink3.png new file mode 100644 index 0000000..e384d39 Binary files /dev/null and b/src/product/img/Qink3.png differ diff --git a/src/product/img/Rink.png b/src/product/img/Rink.png new file mode 100644 index 0000000..099c3ac Binary files /dev/null and b/src/product/img/Rink.png differ diff --git a/src/product/img/Rink4.jpg b/src/product/img/Rink4.jpg new file mode 100644 index 0000000..d17d613 Binary files /dev/null and b/src/product/img/Rink4.jpg differ diff --git a/src/product/img/Tink.png b/src/product/img/Tink.png new file mode 100644 index 0000000..e2110a3 Binary files /dev/null and b/src/product/img/Tink.png differ diff --git a/src/product/img/Tink1.jpg b/src/product/img/Tink1.jpg new file mode 100644 index 0000000..eecd3f7 Binary files /dev/null and b/src/product/img/Tink1.jpg differ diff --git a/src/product/img/Tink2.jpg b/src/product/img/Tink2.jpg new file mode 100644 index 0000000..6535fbc Binary files /dev/null and b/src/product/img/Tink2.jpg differ diff --git a/src/product/img/Tink3.png b/src/product/img/Tink3.png new file mode 100644 index 0000000..03ebbb8 Binary files /dev/null and b/src/product/img/Tink3.png differ diff --git a/src/product/img/Zink.png b/src/product/img/Zink.png new file mode 100644 index 0000000..6310328 Binary files /dev/null and b/src/product/img/Zink.png differ diff --git a/src/product/img/Zink1.png b/src/product/img/Zink1.png new file mode 100644 index 0000000..8483abb Binary files /dev/null and b/src/product/img/Zink1.png differ diff --git a/src/product/img/Zink3.jpg b/src/product/img/Zink3.jpg new file mode 100644 index 0000000..c941bd8 Binary files /dev/null and b/src/product/img/Zink3.jpg differ