Show HN: TeXbrain,一个通过WASM在浏览器中运行pdfTeX的LaTeX编辑器
一个完全在您的浏览器中运行的免费开源LaTeX编辑器。无需账户,无需安装,无需服务器。只需打开一个标签页并写作。立即尝试 → tex.swimmingbrain.dev。我建立这个工具是因为厌倦了为应该免费的功能付费。去年我用LaTeX写了我的论文,花了更多时间与工具作斗争,而不是实际写作。在线解决方案将git同步锁定在付款墙后。本地设置在不同机器之间出错。我想要一个简单可用的工具。打开浏览器,写LaTeX,得到一个PDF。因此我构建了它。它的功能texbrain是一个完整的LaTeX编辑器,将您的.tex文件直接编译成PDF,无需后台处理。没有处理文件的服务器。所有内容(编辑器、编译器、git客户端)都在客户端运行。您可以打开本地项目文件夹,编辑文件,查看PDF更新,提交更改并推送到GitHub。所有操作都在一个标签页中完成。功能在浏览器中进行LaTeX编译。使用pdfTeX(SwiftLaTeX)的WebAssembly移植。您的.tex文件在不离开计算机的情况下编译为PDF。按需加载程序包并进行本地缓存,因此第一次编译仅下载文档实际使用的内容。根据项目复杂性,重新编译需要1到5秒。大部分CTAN按需加载。常用程序包随应用程序一起提供。其他任何内容(memoir、abntex2、KOMA-Script等)在文档首次需要时从TeX Live镜像自动解析,然后本地缓存以供离线使用。实时PDF预览。使用pdf.js渲染。多页、可缩放,并支持文本选择。完全的git集成。克隆仓库、创建分支、暂存文件、提交、推送、拉取、合并。所有操作都由在浏览器中运行的isomorphic-git提供支持。不需要CLI。局部文件系统访问。使用文件系统访问API直接读取和写入本地项目文件夹(Chrome/Edge)。多文件项目。文件树、选项卡、拖放。支持.tex、.bib、.sty、.cls等多种文件类型。CodeMirror 6编辑器。语法高亮,70多种LaTeX命令的自动完成,括号匹配、代码折叠、片段、深色/浅色主题。命令调色板。通过键盘快捷键快速访问操作。片段选择器。数学环境、文档结构、希腊字母、常见命令。可以搜索和分类。离线使用。一旦加载,应用程序在没有互联网连接的情况下能工作。编译是本地的,编辑也是本地的。您之前编译过的程序包被缓存;只有从未使用过的程序包首次需要网络。项目模板。从头开始或选择模板(文章、论文、幻灯片、报告、简历、信件、最小模板)。它是如何工作的没有魔法也没有后台。编辑器。基于CodeMirror 6构建,具有自定义的LaTeX语法(Lezer解析器)、自动完成功能和主题系统。编辑器通过选项卡支持多个打开的文件,并与本地文件系统及内存中的git工作区同步内容。编译器。LaTeX编译使用编译为WebAssembly的SwiftLaTeX的pdfTeX引擎。该引擎在内存文件系统(MEMFS)中运行,您的项目文件在每次编译前在此写入。当引擎请求它没有的文件(类、包、字体等)时,服务工作线程通过链条解决:首先是之前缓存的文件,其次是与应用程序捆绑的程序包子集,然后是TeX Live镜像(位于jsDelivr的texmf-dist镜像,以及作为后备的社区SwiftLaTeX服务器)。每个解析的文件都存储在浏览器的缓存存储中,因此每个程序包最多下载一次。在首次成功编译之后,捆绑的子集也会在后台预取,因此核心程序包集可以离线工作。Git。所有git操作使用isomorphic-git,一个纯JavaScript实现的git。代码库位于一个支持IndexedDB的内存文件系统(LightningFS)中。您的项目文件在本地文件系统与git工作树之间进行同步。远程操作(推送/拉取/克隆)通过CORS代理进行,因为浏览器无法直接使用git协议。PDF查看器。由pdf.js渲染,Mozilla的PDF渲染库。支持多页渲染,并具有文本层以进行选择和搜索。文件系统。应用程序使用文件系统访问API读取/写入您的实际磁盘文件。这需要一个基于Chromium的浏览器(Chrome、Edge、Arc、Brave)。对于其他浏览器,有一个使用来源私有文件系统(OPFS)的后备方案。前端。使用带静态适配器的SvelteKit。整款 app 被预构建为静态HTML/CSS/JS并部署到GitHub Pages。没有SSR,没有API路由,没有服务器。Tailwind CSS处理样式。已知限制仅支持pdfTeX。没有XeTeX或LuaTeX,因此需要fontspec、polyglossia和其他任何依赖它们的内容将无法编译。没有bibtex或biber。引擎也不提供。使用biblatex的文档会从.bib文件生成一个普通的thebibliography,因此引用出现但引用样式被忽略。经典的bibtex工作流程需要项目中的.bbl。真正的bibtex在WA中。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡