【开源推荐】别再破解 Typora 了!这款开源 Markdown 神器接入 AI,体验拉满! 从零使用 VS2026 / .NET 8 打造一款现代化 VS Code 风格的 AI Markdown 写作与阅读器一、 技术选型UI 框架WPF (.NET 8.0-windows)核心渲染Microsoft.Web.WebView2基于 Chromium 内核完美支持现代 CSS、JS 与富文本渲染Markdown 解析Markdig高性能 CommonMark 与 GFM 扩展库图表与公式Mermaid.jsKaTeX(通过 CDN 动态注入 WebView2)二、 核心代码实现1. 项目工程文件 (SmartMarkDown.csproj)确保配置了-windows目标框架与 WPF 支持ProjectSdkMicrosoft.NET.SdkPropertyGroupOutputTypeWinExe/OutputTypeTargetFrameworknet8.0-windows/TargetFrameworkNullableenable/NullableImplicitUsingsenable/ImplicitUsingsUseWPFtrue/UseWPF/PropertyGroupItemGroupPackageReferenceIncludeMarkdigVersion0.37.0/PackageReferenceIncludeMicrosoft.Web.WebView2Version1.0.2592.51//ItemGroup/Project2. 多 AI 模型调度引擎 (AiService.cs)支持在 DeepSeek、OpenAI 与本地 Ollama 之间无缝切换usingSystem;usingSystem.Collections.Generic;usingSystem.Net.Http;usingSystem.Net.Http.Headers;usingSystem.Text;usingSystem.Text.Json;usingSystem.Text.Json.Nodes;usingSystem.Threading.Tasks;namespaceSmartMarkDown{publicclassAiProvider{publicstringName{get;set;}string.Empty;publicstringEndpoint{get;set;}string.Empty;publicstringModelId{get;set;}string.Empty;publicstringApiKey{get;set;}string.Empty;publicboolRequiresKey{get;set;}true;}publicclassAiService{privatestaticreadonlyHttpClient_httpnewHttpClient{TimeoutTimeSpan.FromSeconds(60)};publicListAiProviderProviders{get;}newListAiProvider{newAiProvider{NameDeepSeek Chat,Endpointhttps://api.deepseek.com/v1/chat/completions,ModelIddeepseek-chat,ApiKey},newAiProvider{NameDeepSeek Reasoner,Endpointhttps://api.deepseek.com/v1/chat/completions,ModelIddeepseek-reasoner,ApiKey},newAiProvider{NameOpenAI GPT-4o Mini,Endpointhttps://api.openai.com/v1/chat/completions,ModelIdgpt-4o-mini,ApiKey},newAiProvider{NameOllama (本地模型),Endpointhttp://localhost:11434/v1/chat/completions,ModelIdqwen2.5:latest,ApiKeyollama,RequiresKeyfalse}};publicAiProviderCurrentProvider{get;set;}publicAiService()CurrentProviderProviders[0];publicasyncTaskstringProcessAsync(stringsystemPrompt,stringuserContent){if(CurrentProvidernull)thrownewInvalidOperationException(未选择任何 AI 模型。);if(CurrentProvider.RequiresKeystring.IsNullOrWhiteSpace(CurrentProvider.ApiKey))thrownewInvalidOperationException($请先为 [{CurrentProvider.Name}] 配置有效的 API Key);varpayloadnew{modelCurrentProvider.ModelId,messagesnew[]{new{rolesystem,contentsystemPrompt},new{roleuser,contentuserContent}},temperature0.6};varrequestnewHttpRequestMessage(HttpMethod.Post,CurrentProvider.Endpoint);if(!string.IsNullOrWhiteSpace(CurrentProvider.ApiKey))request.Headers.AuthorizationnewAuthenticationHeaderValue(Bearer,CurrentProvider.ApiKey);request.ContentnewStringContent(JsonSerializer.Serialize(payload),Encoding.UTF8,application/json);varresponseawait_http.SendAsync(request);varjsonawaitresponse.Content.ReadAsStringAsync();if(!response.IsSuccessStatusCode)thrownewException($[{response.StatusCode}]{json});varnodeJsonNode.Parse(json);returnnode?[choices]?[0]?[message]?[content]?.ToString()?.Trim()??AI 未返回有效内容;}}}三、 功能亮点与架构设计WebView2 动态注入富文本环境通过 C# 将 Markdig 解析出的 HTML 片段包裹进标准的 HTML 模板中并动态引入了 GitHub Markdown 样式、KaTeX 数学公式渲染脚本以及 Mermaid 图表解析引擎实现了“所见即所得”的极佳阅读体验。VS Code 风格重构重写了 WPF 原生Menu、MenuItem以及ComboBox的 ControlTemplate彻底解决了传统 WPF 控件在暗黑模式下“白底白字”或出现原生滚动条轨道的痛点。选区智能感知AI 任务调度支持“选区优先”原则——选中部分文字时仅对该段落进行润色或翻译未选中则自动处理全文。四、 总结与源码获取通过 WPF 结合 WebView2我们可以极低成本地开发出媲美原生前端框架的现代桌面端工具。本项目代码结构清晰非常适合作为 .NET 桌面开发的练手项目或日常主力 Markdown 写作工具。

相关新闻

最新新闻

钢管焊接后既要防锈又要冷却,防锈水该怎么选?

钢管焊接后既要防锈又要冷却,防锈水该怎么选?

钢管焊接完成后,焊缝区域温度还很高,操作工的操作习惯是直接往焊缝区域冲水冷却。但冷却后问题出现了——焊缝两侧的钢管表面和焊缝区域在数小时内就开始出现锈斑。问题出在冷却方法上——水冷却了焊缝,也“激活”了钢管表面的腐蚀条件。钢管…

2026/8/12 18:08:09
投标隐性成本黑洞:一份标书背后被忽略的利润侵蚀与数字化破局

投标隐性成本黑洞:一份标书背后被忽略的利润侵蚀与数字化破局

被“中标率”掩盖的经营真相 在工程、集成、综合类企业的经营会议上,“中标率”是高频词,而“单次投标成本”却常被忽略。老板与财务负责人关注的往往是显性支出:投标保证金、标书制作费、差旅开销。然而,真正持续侵蚀项目利润的…

2026/8/12 18:08:09
AO3镜像站终极指南:如何在网络限制下畅享全球最大同人创作平台

AO3镜像站终极指南:如何在网络限制下畅享全球最大同人创作平台

AO3镜像站终极指南:如何在网络限制下畅享全球最大同人创作平台 【免费下载链接】AO3-Mirror-Site 项目地址: https://gitcode.com/gh_mirrors/ao/AO3-Mirror-Site Archive of Our Own(AO3)作为全球最大的非营利性同人创作平台&#x…

2026/8/12 18:08:09
Swagger UI 主题样式修改:从基础到深度定制(附完整代码示例)

Swagger UI 主题样式修改:从基础到深度定制(附完整代码示例)

1. 为什么需要自定义 Swagger UI 主题?Swagger UI 是前后端开发中最流行的 API 文档可视化工具之一。它默认提供了简洁的界面风格,但在实际项目中,我们往往需要将 Swagger UI 的配色、Logo、字体等改为符合企业品牌规范的样式。本文将系统介绍…

2026/8/12 18:08:09
Swagger 高级功能:从接口文档到 API 治理的进阶实践

Swagger 高级功能:从接口文档到 API 治理的进阶实践

1. 引言Swagger 早已不是“给几个接口生成文档”的简单工具。随着微服务架构和 API First 理念的普及,Swagger / OpenAPI 规范已经成为设计、开发、测试和治理 API 的核心载体。在日常开发中,很多团队只使用了 Swagger 最基础的自动生成能力,…

2026/8/12 18:08:09
CAN总线核心技术解析:从差分信号、仲裁机制到DBC文件与故障排查

CAN总线核心技术解析:从差分信号、仲裁机制到DBC文件与故障排查

1. 项目概述:为什么CAN总线依然是工业与汽车通信的基石? 如果你接触过现代汽车电子、工业自动化或者机器人控制,那么“CAN总线”这个词你一定不陌生。它不像USB或者以太网那样直接面向普通消费者,但在那些对可靠性、实时性和抗干扰…

2026/8/12 18:03:09