AI藏头诗生成器PC版本
AI藏头诗生成器
基于 Electron 运行时的智能藏头诗生成工具,让你轻松创作独一无二的藏头诗!🎨

欢迎加入开源鸿蒙PC社区: https://harmonypc.csdn.net/
简介
本项目基于 Electron 运行时,让你可以使用 HTML/CSS/JavaScript 开发 HarmonyOS 桌面应用。通过内置的桥接层,前端代码可以直接调用鸿蒙原生 API。
AI藏头诗生成器是一款智能创作工具,能够根据用户输入的藏头文字,自动生成符合格律要求的藏头诗。支持多种诗歌体裁和情感风格,让诗词创作变得简单有趣。
┌─────────────────────────────────────────────────────────────┐
│ 前端应用层 │
│ (HTML/CSS/JavaScript + 藏头诗生成系统) │
├─────────────────────────────────────────────────────────────┤
│ Electron + Preload 层 │
│ (IPC 通信、API 暴露) │
├─────────────────────────────────────────────────────────────┤
│ HarmonyOS 原生层 │
│ (libadapter.so + ETS Adapters) │
└─────────────────────────────────────────────────────────────┘
快速开始
环境要求
- Node.js 18+
- DevEco Studio 5.0+
- HarmonyOS SDK
运行项目
在 DevEco Studio 中打开项目,直接运行即可。应用会自动全屏并加载 index.html 文件。
构建 HAP
在 ohos_hap 目录下运行:
hvigorw assembleHap
项目结构
ohos_hap/
├── electron/ # HAP 入口模块
├── web_engine/ # 核心引擎模块
│ └── src/main/
│ ├── ets/
│ │ ├── adapter/ # 鸿蒙原生适配器
│ │ └── jsbindings/ # JS 绑定层
│ └── resources/resfile/resources/app/
│ ├── main.js # Electron 主进程
│ ├── preload.js # 桥接脚本
│ ├── index.html # 藏头诗生成主页面
│ ├── style.css # 多主题样式系统
│ └── js/
│ ├── config.js # 诗词素材数据库
│ ├── battle.js # 主控制器
│ └── ai.js # AI生成核心
└── docs/ # 技术文档
功能特性
1. 智能藏头诗生成
- 输入藏头文字:支持2-10个字的藏头输入
- AI智能生成:基于规则引擎和素材库自动创作
- 藏头字高亮:生成结果中藏头字自动高亮显示
- 重新生成:不满意可一键重新生成
2. 多种诗歌体裁
| 体裁 | 句数 | 每句字数 | 特点 |
|---|---|---|---|
| 七言绝句 | 4 | 7 | 短小精悍,意境深远 |
| 五言绝句 | 4 | 5 | 简洁含蓄,古风浓厚 |
| 七言律诗 | 8 | 7 | 气势恢宏,格律严格 |
| 五言律诗 | 8 | 5 | 工整对仗,意境开阔 |
| 词·长短句 | 6 | 7 | 音律优美,婉转悠扬 |
| 自由体 | 自定义 | 自定义 | 灵活自由,无拘无束 |
3. 六大情感风格
- 💖 浪漫抒情:花前月下,情意绵绵
- ⚔️ 豪迈壮阔:气吞山河,壮志凌云
- 🌲 田园风光:山水田园,闲适悠然
- 🏠 思乡怀古:故土情怀,历史沧桑
- 🎉 欢快喜庆:喜气洋洋,热闹非凡
- 😢 婉约哀愁:细腻温婉,忧思绵绵
4. 押韵与平仄
- 自动押韵:智能匹配韵脚,朗朗上口
- 平仄协调:符合传统诗词格律要求
- 可选开关:根据需要开启或关闭
5. 多主题切换
内置6种精美主题,一键切换:
| 主题 | 风格 | 配色 |
|---|---|---|
| 科技感 | 深色背景 + 青色发光 | 赛博朋克 |
| 古典雅致 | 宣纸色 + 朱砂红 | 传统中国风 |
| 简约现代 | 纯白 + 科技蓝 | 扁平化设计 |
| 优雅墨色 | 黑白灰 + 金色 | 高雅简约 |
| 温暖秋色 | 暖黄橙 + 棕色 | 秋天氛围 |
| 夜间模式 | 纯黑 + 黄色发光 | 护眼设计 |
6. 历史记录管理
- 自动保存:每次生成自动保存到历史
- 快速加载:点击历史记录快速查看
- 本地持久化:LocalStorage存储,刷新不丢失
- 容量限制:最多保存50条记录
7. 诗歌操作
- 📋 复制功能:一键复制诗歌文本
- 🔊 朗读功能:Web Speech API语音朗读
- 💾 保存功能:收藏喜欢的诗歌
8. 视觉效果
- 粒子动画:科技感粒子漂浮效果
- 流畅过渡:主题切换平滑动画
- 响应式设计:适配各种屏幕尺寸
技术特点
CSS变量主题系统
/* 科技感主题示例 */
[data-theme="tech"] {
--primary: #00d9ff;
--accent: #7b2cbf;
--bg-paper: #0a0a0f;
--text-primary: #e0e0e0;
--shadow: 0 0 20px rgba(0, 217, 255, 0.15);
}
/* 古典雅致主题示例 */
[data-theme="classical"] {
--primary: #2c3e50;
--accent: #c0392b;
--bg-paper: #f5f0e6;
--text-primary: #2c3e50;
--shadow: 0 4px 12px rgba(44, 62, 80, 0.1);
}
诗歌素材数据库
const poemThemes = {
romantic: {
name: '浪漫抒情',
words: ['花', '月', '情', '思', '梦', '缘', '爱', '恋'],
lines: [
'花开四季香满庭',
'月照西楼影自怜',
'情意绵绵似水流',
'思念悠悠如云烟'
]
},
heroic: {
name: '豪迈壮阔',
words: ['天', '地', '山', '河', '剑', '酒', '风', '云'],
lines: [
'天高地阔任我行',
'地势坤厚载物情',
'山高路远志不移',
'河水滔滔向东流'
]
}
};
AI生成核心算法
function generateAcrostic(hiddenWords, options = {}) {
const { theme, type, useRhyme, usePingze } = options;
// 遍历每个藏头字
const lines = [];
for (let i = 0; i < hiddenWords.length; i++) {
const line = generateLine(hiddenWords[i], themeData, config, i);
lines.push(line);
}
return {
id: Date.now(),
title: generateTitle(hiddenWords),
hiddenWords: hiddenWords,
lines: lines,
...options,
createdAt: new Date().toISOString()
};
}
粒子动画效果
.particle {
position: absolute;
width: 4px;
height: 4px;
background: var(--primary);
border-radius: 50%;
animation: float 15s infinite ease-in-out;
box-shadow: 0 0 10px var(--primary);
}
@keyframes float {
0%, 100% {
transform: translateY(0) translateX(0) scale(1);
opacity: 0.3;
}
25% {
transform: translateY(-100px) translateX(50px) scale(1.2);
opacity: 0.6;
}
}
本地存储管理
function saveHistory() {
localStorage.setItem('poemHistory', JSON.stringify(poemHistory));
localStorage.setItem('poemStats', JSON.stringify(stats));
}
function loadHistory() {
const saved = localStorage.getItem('poemHistory');
if (saved) {
poemHistory = JSON.parse(saved);
}
}
语音朗读实现
function readPoem() {
if (!window.speechSynthesis) {
alert('您的浏览器不支持语音朗读功能!');
return;
}
window.speechSynthesis.cancel();
const text = `${poem.title}。${poem.lines.join(',')}。`;
const utterance = new SpeechSynthesisUtterance(text);
utterance.lang = 'zh-CN';
utterance.rate = 0.8; // 适中的语速
window.speechSynthesis.speak(utterance);
}
使用说明
生成藏头诗
- 输入藏头文字:在左侧输入框输入2-10个字(如:春风得意)
- 选择体裁:从下拉菜单选择诗歌体裁
- 选择风格:点击情感风格按钮(可多选或单选)
- 设置押韵:勾选是否需要自动押韵
- 点击生成:等待AI智能创作
- 查看结果:在中间区域查看生成的藏头诗
操作诗歌
- 📋 复制:点击复制按钮,将诗歌复制到剪贴板
- 🔊 朗读:点击朗读按钮,听取诗歌内容
- 💾 保存:点击保存按钮,收藏到本地
- 🔄 重新生成:点击重新生成,获得新的诗歌
管理历史
- 查看历史:右侧面板显示历史记录列表
- 加载历史:点击历史项快速加载
- 清空历史:点击清空按钮删除所有历史
切换主题
- 在顶部右侧找到「主题」下拉菜单
- 选择喜欢的主题风格
- 页面将平滑过渡到新主题
- 主题选择会自动保存
体裁配置
诗歌体裁详解
七言绝句
- 四句诗,每句七字
- 共28字
- 二、四句押韵
- 适合表达凝练的意境
五言绝句
- 四句诗,每句五字
- 共20字
- 二、四句押韵
- 简洁含蓄,意在言外
七言律诗
- 八句诗,每句七字
- 共56字
- 四联分明(起承转合)
- 中间两联对仗
五言律诗
- 八句诗,每句五字
- 共40字
- 颔联、颈联对仗
- 工整严谨,意境深远
词·长短句
- 6句组成
- 每句7字为主
- 长短句结合,音律优美
自由体
- 无严格格律限制
- 藏头字数决定句数
- 每句7字为主
- 自由灵活
开发指南
添加新主题
在 config.js 的 poemThemes 对象中添加:
const poemThemes = {
myTheme: {
name: '我的主题',
words: ['字1', '字2', '字3', ...],
lines: [
'字1开头的诗句',
'字2开头的诗句',
'字3开头的诗句'
]
}
};
添加新体裁
在 config.js 的 poemTypes 对象中添加:
const poemTypes = {
myType: {
name: '我的体裁',
lines: 4, // 句数
syllables: 7 // 每句字数
}
};
扩展生成算法
在 ai.js 中修改 generateLine() 函数:
function generateLine(hiddenWord, themeData, config, index) {
// 自定义生成逻辑
// ...
}
定制主题样式
在 style.css 中添加新的主题:
[data-theme="myTheme"] {
--primary: #颜色值;
--accent: #颜色值;
/* 其他变量... */
}
技术栈
- 前端: HTML5 + CSS3 + JavaScript (ES6+)
- 样式: CSS Custom Properties (变量系统)
- 动画: CSS Animations + Keyframes
- 存储: LocalStorage API
- 朗读: Web Speech API
- 运行时: Electron (HarmonyOS 定制版)
- 原生层: ArkTS + libadapter.so
浏览器兼容性
| 功能 | Chrome | Firefox | Safari | Edge |
|---|---|---|---|---|
| CSS变量 | 49+ | 31+ | 9.1+ | 15+ |
| ES6解构 | 49+ | 44+ | 10+ | 14+ |
| LocalStorage | 4+ | 3.5+ | 4+ | 12+ |
| Speech API | 33+ | 49+ | 7+ | 79+ |
| Clipboard API | 66+ | 63+ | 13.1+ | 79+ |
相关文档
License
MIT