readme_en.md机翻效果太差已经移除,请使用浏览器翻译。
The machine translation of readme_en.md is too poor and has been removed. Please use a browser to translate it.
用Qt开发的静态博客,并利用Cloudflare的服务实现一些动态功能。
Cloudflare Pages上托管,仅并发请求不同静态托管站点的文件块并跳转第一个完成的托管站,已更改为Cloudflare站点。
我不管你访问快不快了,连不上就别用了,这只是个个人博客,又不是上班打开软件非上不可。
Github Vercel Cloudflare EdgeOne Netlify Azure GitLab Render IPv6 Tunnel
IPV6/Tunnel站点本质为物理机上的一个Docker,也用于测试,如果访问时我正在测试,你可能体验到一些BUG。Tunnel站使用Cloudflare Tunnel穿透,IPV6站使用DDNS-GO。IPV6站点必须你具备IPV6才能访问,通常情况只适用于你用数据流量访问。
由于WASM和一些资源很大,部分站点流量很容易被刷到上限,可以视情况切换站点访问。
HTML / CSS 由 DeepSeek | 深度求索 生成后微调的。(当初就是懒得写前端才用的Qt,别想让我手搓)被迫手搓了一大段。
采用Cloudflare Workers、R2、D1实现,Workers内用到Resend服务给管理人员发邮件,因为没存储用户明文邮箱,用户不会收到邮件,也不用担心暴露。
Qt开发,采用Cloudflare Tunnel穿透,内置3个服务器,聊天服务器(ws,常关)、监控服务器(ws)、安卓服务器(http,有一个配套纯Java开发的APP,博客中只为手机监控提供数据)。
和WebAssembly端是一套源码。因为没跨域限制,多了一个设置镜像的功能,方便从不同静态托管站请求静态资源。Android上有额外的权限申请。PC端有生成RCC和RSS的功能。RCC是包含QML的,不用重新编译wasm即可更新内容,wasm只负责请求加载即可,所以这依旧是静态的,需要提交并推送。这也是数据统计里Other比较多的原因之一。
物理机出状况的话部分功能异常为正常现象。
可以说动态部分完全是依赖于Cloudflare的,计划有变的话,后续可能精简以确保博客能低成本运行。
- 机翻过于离谱,我没有精力校对,4.0移除大段落英文翻译(包括英文文章),需要看懂的可以学习下简体中文或者采用OCR翻译插件。
- 水印相机因安全问题被调整为仅内部使用,若需要可以拉出来单独整个webassembly版本,个人感觉没必要了,安卓版更好用。
- 表情/图片插入在留言和朋友圈仅内部使用,避免滥用,MD编辑里可用,其它文本编辑里未实现。
- 中文字体再次改为进入wasm后再加载,可选SarasaMono、NotoSans、MiSans。
wasm平台特性,通过查询参数路由,常规路由见rss.xml,额外参数如下,只是方便自用或调试,故不对所有功能实现。
| 功能 | 值参数 | 标志参数 | 示例 | 备注 |
|---|---|---|---|---|
| 农历 | datetime=年-月-日-时 | 无 | ?func=lunar&datetime=2026-05-13-10 | 无 |
| 皇极经世 | datetime=年-月-日-时 | male female | ?func=hjjs&datetime=2026-05-13-10&male | 标志不要同时使用 |
| 紫微斗数 | datetime=年-月-日-时 | male female | ?func=zwds&datetime=2026-05-13-10&male | 标志不要同时使用 |
| 文件安全 | publicKey=公钥 secretKey=私钥 encKey=密钥 | 无 | ?func=na&publicKey=hex&secretKey=hex&encKey=hex | 无 |
| MD编辑 | content=md字符串 content_b64=md的base64 source=md的url | preview(直接进入预览) | ?func=mdeditor&source=https://uwillno.com/README.md&preview | 值不建议同时使用,不处理相对路径,cors |
| MD预览 | content=md字符串 content_b64=md的base64 source=md的url | 无 | ?func=md&source=https://uwillno.com/README.md | 会根据source处理部分相对路径,cors |
| 纯净模式 | 无 | PURE | ?func=md&source=https://uwillno.com/README.md&PURE | 务必同时使用其他路由。部分功能可能不工作 |
从原始代码,你需要使用;换行
从base64代码
从QMLURL 确保cors
从RCCURL 确保cors 可以选entry=qrc:/main.qml指定入口,默认为qrc:/Main.qml 确保已编译 rcc -binary my.qrc -o my.rcc
从本地打开文件加载 支持qml和rcc 不带参数或加载失败或加载后退出都会进入该页面
?code ?code_b64 ?qml
加进博客了,但不要尝试加载我的rcc,因为我的rcc加入了一个校验来避免rcc和wasm模块不对应。这也是为什么本地使用需同时备份wasm和rcc。
自用,这个预览图就是个示例,推荐优先WEBP。
仅支持部分Markdown语法,对多媒体、表格、列表、引用……按个人习惯进行了扩展、增强,开销也更大(该场景未启用标题导航)。
默认为一次性完成全部解析和控件生成,对于正常博客文章是完全可以的,也可以避免一些抖动,不建议尝试即时预览嵌套过多或内容过长的文章(包括默认测试用例)。
文章里记录太不方便更新,所以专门移到功能页记录。(顺便试试多边形控件)
新增安卓监视器,手机性能太差,非长连接实现,不监视性能。
长按可展开/收缩。
后续移除了外部库的代码统计,统计更加真实,包含全平台、归档代码、试验代码, 相对于特定平台整体行数可能偏多一些。
移除了主要导航栏、工具栏……统一所有平台交互(太多自定义或平台预设我觉得好混乱、繁琐)。改用一个悬浮按钮,完成所有操作。
WASM上记录为历史最高内存占用,如果接近4G或你的浏览器设备限制,及时释放一些后台任务,避免崩溃。
浏览器的返回和手势返回也可以触发
调整至抽屉方便交互,点击歌词调整进度,换掉了之前瞎眼的动态渐变,删掉了旋转效果。
-
对文件进行打包解包(签名验签、加解密)
-
密钥拆分合并(XOR/Shamir)
部分耗时操作放进后台其它线程处理,避免阻塞UI,处理过程中不影响其它操作,不过需要注意内存,及时释放。
纯静态,文章(markdown、html)、AI摘要
旧版
内部使用的可随时发布编辑的短文。支持所有类型文件及媒体预览。
玄学相关功能不建议采用真太阳时。
lunar的调用。并不能很好的与Qt兼容,可能会有bug,报错信息已隐藏。
排盘,远古版本直接迁移不保证可用。
按照书籍重写的算法,和天纪程式进行对照过,测试的用例结果都一致,异常用例可以发我看看。
数据来源未知,未校验。
物理机服务器不定期启动
仅实验,建议使用安卓版本QWMC
改自Qt官方示例 Qt Quick Controls - Text Editor | Qt Quick Controls
实测部分用例显示异常,经测试似乎除了C#版本,其它版本也存在类似问题,官方Skeleton Viewer、WebGL和其它cpp版本都显示异常,又是比较老的分支,修复应该是不太可能了。
部分内容更新不及时,因为开发者特别懒。
路由地址已变,建议查阅RSS
- Qt
- emscripten
- Cloudflare
- Github
- coi-serviceworker
- Gravatar
- Qt-AES
- Lunar
- DBWnl
- fontello
- iconfont
- MiSans
- 卡巴斯基
- 碧蓝航线
- Esterv.Utils.QrCode
- spine-runtimes
- zstd
- md4c
- libsodium
- fzstd
- Noto - Google Fonts
- Sarasa-Gothic
- Tailwind CSS
- Alpine.js
- ……
- 包括但不限于以上内容,可能已经不存在于当前版本,但曾经使用或参考过。
如果你设备足够好可以忽略。
部分功能确实是需要一定的CPU、GPU性能,但对于主流设备正常使用压力不算很高,尤其是CPU方面主流PC设备肯定够用了,若PC端具备显卡仍帧率不足30(骁龙7sgen2的adreno710都可以轻松达到的水平)或经常波动到10以下,建议排查以下内容:
- 硬件加速是否开启、节能模式是否关闭(浏览器和系统)
- 是否受windows效率模式影响
- 核显较弱的情况下是否调用了独显(尤其是一些老的轻薄本)
- 睿频是否正常
- ……
这是我在i7-8565U + MX250设备上测试时发现的,具体如何操作需要自行搜索。
- .wasm文件比较大,注意流量消耗,部分地区需要代理访问
- 很多BUG是Qt框架自身的,部分模块处于技术预览阶段,偶尔会折腾升级Qt版本导致不稳定
- 已放弃兼容Android WebView,改用多线程构建以提高运行效率
- 域名对于我已经是不小的开销了,而且对于Qt for WASM应用能实现静态托管已经是很不容易了,最好的选择是克隆仓库本地部署运行(十分简单,官方文档中提到了很多种方法)。
- 由于静态托管与前端的特性,任何防护几乎无用,逆向是非常容易的,而且我的关键代码和无服务器的动态逻辑已经开源。 我的隐私倒不在意,但是请大佬不要对API进行攻击,我很穷的,没能力支付任何付费计划的账单。若发现严重的安全漏洞请及时与我联系,十分感谢。
- 想要一些比较好实现或者已有功能的改进可以提出来,有空的话可能可以尝试写着玩。
- 欢迎测试(我的bug我尽量抽空解决;框架的bug及时去官方反馈,有时修复周期特别长,难得有很稳定的版本,也不是总能编码回避的……)和申请友链。
- 仓库容易过大,不定期会清空一次,想使用固定版本的做好本地备份。
- 上面内容可能失效或改变。
原本都保留在仓库的,最近缩减下仓库大小,移除了,截图纪念下。
大学时尝试Qt for webassembly乱写的,只有几个自用功能。
基于Qt Quick重新开发,多线程构建。后期过于混乱,难以维护,故重构。























































