{"id":40805324,"url":"https://github.com/emako/quicklook.plugin.duilibpreview","last_synced_at":"2026-01-21T21:02:02.031Z","repository":{"id":333716414,"uuid":"1138381548","full_name":"emako/QuickLook.Plugin.DuilibPreview","owner":"emako","description":"QuickLook插件用于 duilib 界面预览","archived":false,"fork":false,"pushed_at":"2026-01-20T17:21:10.000Z","size":22127,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-21T02:14:57.483Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emako.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-20T15:48:34.000Z","updated_at":"2026-01-20T17:21:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/emako/QuickLook.Plugin.DuilibPreview","commit_stats":null,"previous_names":["emako/quicklook.plugin.duilibpreview"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/emako/QuickLook.Plugin.DuilibPreview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emako%2FQuickLook.Plugin.DuilibPreview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emako%2FQuickLook.Plugin.DuilibPreview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emako%2FQuickLook.Plugin.DuilibPreview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emako%2FQuickLook.Plugin.DuilibPreview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emako","download_url":"https://codeload.github.com/emako/QuickLook.Plugin.DuilibPreview/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emako%2FQuickLook.Plugin.DuilibPreview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28642697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T18:04:35.752Z","status":"ssl_error","status_checked_at":"2026-01-21T18:03:55.054Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-21T21:01:58.781Z","updated_at":"2026-01-21T21:02:02.014Z","avatar_url":"https://github.com/emako.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![QuickLook icon](https://user-images.githubusercontent.com/1687847/29485863-8cd61b7c-84e2-11e7-97d5-eacc2ba10d28.png)\n\n# QuickLook.Plugin.DuilibPreview\n\n这是一个 [QuickLook](https://github.com/QL-Win/QuickLook) 插件，用于直接预览 [Duilib](https://github.com/duilib/duilib) 界面布局文件 (`.xml`)。\n\n通过此插件，你无需启动 IDE 或专用预览工具，只需在 Windows 资源管理器中选中 XML 文件并按下空格键，即可查看 Duilib 界面的实际渲染效果。\n\n## ✨ 功能特性\n\n*   **快速预览**: 选中包含 Duilib 布局的 XML 文件，按空格键即刻预览。\n*   **智能识别**: 插件会自动检查 XML 内容，仅对包含 `\u003cWindow\u003e` 或 `\u003cGlobal\u003e` 等 Duilib 特征标签的文件生效，不影响普通 XML 文件的查看。\n*   **原生精确**: 基于内置的改进版 Duilib 核心库渲染，确保预览效果与实际程序运行效果高度一致。\n*   **交互支持**: 预览窗口支持基本的交互，方便查看控件状态。\n\n## 📂 项目结构\n\n本项目主要由以下三个部分组成：\n\n1.  **DuiLib**\n    *   位于 `DuiLib/` 目录。\n    *   这是一个基于官方 Duilib 修改的分支，包含了一系列 Bug 修复和功能增强。\n    *   详细修改日志请参考 [DUILIB.md](DUILIB.md)。\n\n2.  **DuilibPreview** (Native)\n    *   位于 `DuilibPreview/` 目录。\n    *   C++ 编写的原生模块，负责实际加载 XML 并创建 Duilib 窗口。\n    *   生成 `DuilibPreview.dll` 供插件调用。\n\n3.  **QuickLook.Plugin.DuilibPreview** (Plugin)\n    *   位于 `QuickLook.Plugin.DuilibPreview/` 目录。\n    *   C# 编写的 QuickLook 插件封装层。\n    *   实现了 `IViewer` 接口，通过 `HwndHost` 托管原生的 Duilib 预览窗口。\n\n## 🛠️ 构建指南\n\n如果你希望自己编译本项目：\n\n1.  **环境要求**: \n    *   Visual Studio (推荐 2022 或更新版本)\n    *   C++ 桌面开发工作负载\n    *   .NET 桌面开发工作负载\n\n2.  **编译步骤**:\n    *   打开解决方案文件 (如 `DuiLib.slnx` 或对应的 `.sln`)。\n    *   确保编译配置为 `Release`。\n    *   首先编译 `DuiLib` 和 `DuilibPreview` 项目，生成原生 DLL。\n    *   编译 `QuickLook.Plugin.DuilibPreview` 项目。\n    \n3.  **打包**:\n    *   可以参考 `Scripts/` 目录下的打包脚本将编译产物打包为 `.qlplugin` 文件。\n\n## 📦 安装方法\n\n1.  下载编译好的 `.qlplugin` 文件。\n2.  确保已安装并启动 [QuickLook](https://github.com/QL-Win/QuickLook)。\n3.  选中 `.qlplugin` 文件并按空格键，根据提示安装插件。\n4.  安装完成后，可能需要重启 QuickLook 生效。\n\n## 📝 许可证\n\n*   **Duilib**: 遵循原项目许可证 (通常为 MIT 或 BSD，请参考源文件)。\n*   **QuickLook.Plugin.DuilibPreview**: MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femako%2Fquicklook.plugin.duilibpreview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femako%2Fquicklook.plugin.duilibpreview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femako%2Fquicklook.plugin.duilibpreview/lists"}