Commit Graph

63 Commits

Author SHA1 Message Date
augushong
37259cfb4b fix(phoneimage): 修复渲染分页截断 - 测高包含margin并等待图片加载 2026-05-13 12:35:10 +08:00
augushong
29dbc7ca55 feat(phoneimage): 三列布局重构 - 添加渲染预览区并改造渲染管线
- 增加中间渲染预览列(540px),三列布局:编辑器 | 预览 | 缩略图
- CSS作用域迁移:排版样式从#editor-text-area迁移到#render-preview
- 编辑器恢复干净默认样式,消除表格/图片间隙和溢出问题
- 新增syncPreview()实时同步编辑器内容到预览区(300ms防抖)
- captureEditorBlocks()改为从预览区DOM测高,不再克隆编辑器DOM
- render()改为从预览区读取已预处理HTML,所见即所得
2026-05-12 23:12:48 +08:00
augushong
ccbfdde73e fix(phone-image): 修复分割线样式覆盖和表格丢行问题
1. 删除CSS覆盖wangeditor divider默认样式的规则,保留原生分割线外观
2. 新增splitTableByRows函数,超大表格按行拆分渲染,每页保留表头
3. splitOversizedBlock对表格不再跳过,改为调用splitTableByRows
2026-05-12 22:07:26 +08:00
augushong
b6f2e9ef09 fix(phone-image): 移除不存在的layui dropdown依赖,改用纯JS下拉菜单
layui 2.x没有内置dropdown模块,导致整个页面JS回调不执行。
- layui.use依赖从['form','layer','dropdown']改为['form','layer']
- 用纯jQuery实现toggle下拉菜单替代dropdown.render()
- 添加more-dropdown-menu CSS hover样式
2026-05-11 23:20:20 +08:00
augushong
f6fc53940c feat(phone-image): Wave2 CSS样式+自动保存+历史加载
- T4: 新增编辑器区/操作栏/弹框CSS样式(390行),覆盖两栏布局、
  wangeditor编辑区排版、divider分页标记、设置弹框、右侧预览区
- T5: onChange自动保存(2.6s防抖),保存状态指示器(waiting/saving/saved/error)
- T6: loadFromHistory改用editor.setHtml()+updateConfig()替换旧init
- 修复: doAutoSave删除无效递归调用
2026-05-11 22:55:24 +08:00
augushong
1f8128385f refactor(phone-image): wangeditor 排版引擎核心重构
- 两栏布局:取消左侧工具栏,中间改为wangeditor v5编辑器
- 顶部操作栏:设置/保存/生成并保存+更多下拉(历史/重新生成/下载/长图)
- 设置弹框:尺寸选择+水印输入,删除全局字号滑块
- wangeditor完整工具栏+divider分割线标记分页
- 删除旧渲染管线:renderContentFlow/insertPageBreak/removePageBreak/convertFlowBlocksToImages/measureBlockHeights
- 新增captureEditorBlocks:从编辑器DOM测高+按分割线分组+实际高度分页
- 新增exportLongImage:从wangeditor DOM截长图
- getContentHtml改为从wangeditor实例读取
2026-05-11 22:45:38 +08:00
augushong
e9d839ae8a docs(phone-image): 产出排版功能架构文档
fix(phone-image): 修复分页标记丢失bug,消除双数据源问题

- 新增 getContentHtml() 和 updateConfig() 引擎API
- 保存逻辑改用引擎内部 content_html,不再从DOM读取
- doRender 改用 updateConfig,配置变更不重置内容
- loadFromHistory 改用 init+render 全量初始化
- PHP/JS 配置字段对齐(移除template/font,新增pageAlignments)
2026-05-11 21:17:37 +08:00
augushong
90b4b1d5f2 refactor(phone-image): 清理死代码、修复历史记录和媒体标签安全移除
T8: 删除estimateImageHeight/estimateTableHeight/showGeneratedThumbnails/switchSize/
    getConfig/getPages/renderContentFlow等未使用函数,exportLongImage添加render锁检查
T9: loadFromHistory恢复pageAlignments,font_size→fontSize命名统一(PHP+JS双向兼容),
    修复历史加载时fontSize显示值bug
T10: preprocessContent移除iframe/video/svg/embed/object标签,
    封面图添加onerror处理
2026-05-07 21:53:03 +08:00
augushong
491a71bd44 feat(phone-image): fontSize滑块生效、水印渲染、保存大小检查和空内容提示
T5: 通过JS setProperty动态设置--pi-font-size-base让fontSize滑块真正改变渲染字号,
    修复h4标题不使用CSS变量避免被影响
T6: 在封面页/内容页/尾页生成函数中添加水印HTML,CSS添加.page-watermark样式
T7: saveImages添加16MB大小检查,render添加空内容检测提示,
    doCapturePages错误路径添加staging清理
2026-05-07 21:39:26 +08:00
augushong
9aacfab11d fix(phone-image): 修复XSS注入、正则兼容性、render锁稳定性和缓存清理
T1: XSS修复 - PHP模板注入改用json_encode,poster URL转义处理
T2: fontSize NaN修复 - parseInt统一处理,lookbehind正则替换为兼容方案
T3: render锁稳定性 - insertPageBreak/removePageBreak添加15次重试上限,
     fontsReady添加catch处理,_pending递归添加错误捕获
T4: 缓存清理 - init()清空缓存,render()超过3倍blocks数自动清理
2026-05-07 21:29:45 +08:00
augushong
e657e37dd4 perf(phone-image): 缓存截图数据避免重复html2canvas调用,添加render并发锁
- 新增 convertedBlockCache + simpleHash 缓存已转换的表格/代码块图片
- 首次render截图后缓存,后续调字号/切尺寸/插分页直接复用
- render() 添加 _locked/_pending 并发锁,防止多次渲染同时执行
- insertPageBreak/removePageBreak 加锁检查,渲染中延迟重试
2026-05-07 20:30:34 +08:00
augushong
404f4d8a22 refactor(phone-image): 在中间栏截图转换表格和代码块为图片,确保渲染一致性
- 新增 convertFlowBlocksToImages():在 #content-flow 中用 html2canvas 截图转换 table/pre 块为 img
- 修改 render() 管线:renderContentFlow -> convertFlowBlocksToImages -> measureBlockHeights
- 删除旧的 convertCodeBlocks() 和 convertTables()(doCapturePages 中不再需要)
- 添加 parseHtmlToBlocks 的 case 'pre' 分支
- splitOversizedBlock 添加 pre 不拆分规则
- isPureImagePage 跳过 data-converted=true 的图片避免误判
2026-05-03 23:32:41 +08:00
augushong
2233b2b71a fix(phone-image): 修复代码块/表格转换DOM索引失效bug,增加重新生成按钮和中间栏表格样式
- convertCodeBlocks/convertTables: 改为每次重新find().first()替代缓存索引
- 修复replaceWith后jQuery集合中后续元素DOM引用失效的问题
- 新增'重新生成'按钮,强制重新渲染缩略图
- 新增中间栏content-flow-block表格CSS样式
2026-05-03 22:56:34 +08:00
augushong
1d3d935899 fix: 修复phone-image截图循环idx参数传递bug导致无限循环
capturePageViaHtml2Canvas函数将idx作为参数传入,.then回调中idx++只修改参数副本而非闭包变量,
导致runCaptureLoop中idx永远为0,截图循环无限重复处理第一页。
改为传递onDone回调函数,在回调中正确修改闭包变量idx。
2026-05-03 21:49:53 +08:00
augushong
c51cd8beb5 feat(phone-image): add save button and state management 2026-05-03 21:16:00 +08:00
augushong
f08957ad7e fix(phone-image): replace estimate-based pagination with DOM-measured heights 2026-05-03 21:04:23 +08:00
augushong
2ba48fd58d feat(phone-image): pure image page optimization - use original image instead of screenshot 2026-05-03 10:23:39 +08:00
augushong
6cff21d50f feat(phone-image): table-to-image conversion with beautified CSS styles 2026-05-03 10:17:34 +08:00
augushong
d35172e14e fix(phone-image): fix blank thumbnail preview - visibility and wrapper 2026-05-03 10:07:13 +08:00
augushong
9dc37283a3 feat(phone-image): code blocks converted to images via prismjs + html2canvas 2026-05-03 09:19:31 +08:00
augushong
f3f209c403 refactor(phone-image): thumbnail alignment toggles and saveImages uses staging 2026-05-03 09:14:20 +08:00
augushong
8aeda4c518 refactor(phone-image): JS engine renders thumbnails via html2canvas 2026-05-03 09:08:15 +08:00
augushong
3cc024409f refactor(phone-image): CSS and HTML for thumbnail preview container 2026-05-03 09:00:32 +08:00
augushong
9dce9854c8 fix(phone-image): T7 integration fixes
Fix 3 bugs found during Playwright integration testing:

1. Template syntax: {|json_encode|default='{}'} -> PHP native (curly braces parsed as TP6 tags)

2. jQuery event namespace mismatch: off('click.phoneImage') -> off('click') to match on('click')

3. Migration executed on server

All 6 Playwright test scenarios passed: layout, content flow, preview, alignment, font size, toolbar buttons
2026-05-02 09:54:59 +08:00
augushong
03e9a30242 fix(phone-image): saveImages always sends current content_html
Ensure postData.content_html (modified by break insertions) is sent to server, not the original hidden div content
2026-05-02 09:31:07 +08:00
augushong
b53ba68f68 feat(phone-image): add content flow, interactive breaks, per-page alignment and long image export
T9: renderContentFlow(), insertPageBreak(), removePageBreak(), renderAlignmentToggles(), exportLongImage()

- Content flow renders blocks to #content-flow with interactive break-inserters

- Page break markers have delete buttons

- Per-page alignment toggle buttons on each content page

- Long image export hides interactive elements before html2canvas capture

- Event delegation with proper unbind/rebind to avoid duplicates
2026-05-02 09:24:31 +08:00
augushong
bcd00e32ea refactor(phone-image): Wave 2 - form, controller, JS engine, API updates
T3: Add cover_text textarea to post edit form

T4: Update Post controller - content copy + cover_text passing

T5: Refactor JS engine - remove old APIs, add forced breaks, page numbers, per-page alignment

T8: Add cover_text to API default_fields, apidoc (4 places), AGENTS.md
2026-05-02 09:16:05 +08:00
augushong
2aa60f87ed feat(phone-image): add cover_text migration and rewrite CSS to xiaohongshu classic style
T1: Add cover_text text field to post table for phone image layout cover text

T2: Rewrite phone-image-templates.css - remove tpl-magazine/tpl-mixed, merge tpl-minimal into base styles, add content-flow/break-inserter/page-break-marker/page-alignment-toggle styles
2026-05-02 09:06:47 +08:00
augushong
34fe255829 feat(phone-image): 增加翻页预览与无封面图排版样式
- 为手机截图生成器添加翻页功能,支持在生成前预览各页内容
- 增加无封面图时的排版样式,使用装饰线条和居中布局
- 改进图片处理逻辑,清除内联样式并展平嵌套包装元素
- 修复 models.dev 同步接口,支持 GET 请求获取缓存数据
- 优化网络请求,添加直连失败后的本地代理重试机制
2026-05-01 16:31:26 +08:00
augushong
83a2bd48a2 feat(post): 新增手机图片排版与AI智能排版功能
- 新增手机图片排版功能,支持小红书/抖音尺寸输出
- 新增AI智能排版顾问,支持内容分析与优化推荐
- 新增AI供应商管理,支持多渠道配置与同步
- 新增文章输出管理页面,支持图片预览与批量下载
- 新增字体文件与排版样式配置
2026-05-01 12:23:17 +08:00
augushong
aed4b285d8 feat: 添加Vditor编辑器支持并扩展文件上传功能
- 新增Vditor编辑器静态资源文件,包括图片、字体和样式文件
- 在文件上传控制器中添加vditorSave方法,支持Vditor编辑器文件上传
- 在文章创建页面添加编辑器类型选择(富文本/Markdown)
- 更新.gitignore文件,排除Playwright和QA截图目录
- 扩展UploadFiles类以支持Vditor编辑器的文件上传格式
2026-04-30 22:27:03 +08:00
augushong
c17b69fcdf feat: 增加平台信息跳转 2025-10-05 14:28:46 +08:00
augushong
d9452530e0 feat: 完善三方平台设置;完善导出管理 2025-06-16 13:38:47 +08:00
augushong
70b17cbd10 feat: 完成三方平台发布管理 2025-05-05 10:29:49 +08:00
augushong
c3b92ca169 优化seo设置;优化编辑 2023-11-16 11:30:28 +08:00
augushong
f534c7c473 修改右侧背景色 2023-06-30 16:44:28 +08:00
augushong
331feb8351 优化标题导航样式 2023-06-29 18:11:59 +08:00
augushong
72a6cce5e3 增加图片点击放大;优化标题导航效果 2023-06-29 18:06:51 +08:00
augushong
f567fffbfa 增加文章左侧标题导航 2023-06-29 17:52:06 +08:00
augushong
95d80fe568 优化用户信息展示 2023-06-28 11:17:18 +08:00
augushong
65e1800c6f 增加访问记录功能 2023-06-28 11:12:30 +08:00
augushong
5d854f8197 修改字体大小; 2022-06-09 14:32:43 +08:00
augushong
8bc73f83de 完成防采集版权声明; 2022-05-30 11:05:29 +08:00
augushong
ff353f0d43 增加链接样式,防止误触; 2022-05-28 18:05:43 +08:00
augushong
1d9377da5f 优化编辑器操作助手;优化文章阅读样式; 2022-05-26 10:22:36 +08:00
augushong
0284f6f2b8 优化文章seo声明;导出面板新增版权声明功能; 2022-05-26 10:12:25 +08:00
augushong
efe2013a9c 优化代码显示; 2022-04-26 17:29:22 +08:00
augushong
6796284a12 优化文章样式; 2022-04-26 16:59:14 +08:00
augushong
d15122f091 新增动态的样式; 2022-03-19 12:33:11 +08:00
augushong
4fda375028 优化性能和轮播图; 2022-03-19 00:18:31 +08:00