

主页|下载|文档| mastodon |不和谐|贡献|支持我们

Zettlr将简单性带回您的文本。开放的写作适应您的风格。快速信息检索发现对您很重要的信息。多才多艺的出口使您能够适应您的雇主或学校使用的任何出版物管道。
专注于对您重要的事情。
发布,而不是灭亡。
在我们的网站上了解更多信息。
…最好的是: Zettlr是免费的开源软件(FOSS)!
要安装Zettlr,只需下载操作系统的最新版本即可。当前支持的是MacOS,Windows和大多数Linux发行版(通过Debian和Fedora-packages以及附属物)。
在我们的网站和Github上,我们为最常见的用例提供了一组安装程序。我们同时提供64位安装程序以及ARM系统的安装程序(MacOS生态系统中称为“ Apple Silicon”)。不支持32位。我们直接提供以下二进制文件:
多亏了我们的社区,我们还可以为您提供各种其他安装机会:
电子支持的所有其他平台也得到了支持,但是您需要自己构建应用程序才能正常工作。
请考虑成为顾客或进行一次捐款!
安装Zettlr后,请转到我们的文档以了解Zettlr。如果您喜欢使用软件heads-on,请参阅快速启动指南。

作为开源应用程序,Zettlr始终欢迎社区的贡献。您不需要知道如何编写代码来提供帮助!可以在我们的贡献指南中找到所有可以提供帮助的所有领域的完整概述。在这里,我们向您介绍了我们欢迎帮助的两个最大领域:翻译和贡献代码。
开发团队维持英语和德语翻译,但缺乏对其他语言的足够知识。所有其他可用的翻译都是由我们的社区创建的。
Zettlr的翻译利用GetText系统。这意味着翻译被保存在static/lang目录中的po档案中。
要更新翻译,只需下载相应的语言文件并进行编辑。您可以使用简单的文本编辑器编辑Po-Files,但是如果您更喜欢更舒适的图形编辑器,则有很多。一个不错的选择是开源编辑器Poedit。
一旦您对更改感到满意,请在此处打开拉动请求,以更新相应的文件。 Github创建了一个很好的指南,介绍了如何打开拉的请求。
Zettlr是一个基于电子的应用程序,因此要开始开发,您需要在计算机上安装以下内容:
lts/iron )。要测试您拥有的版本,请运行node -v 。package-lock.json -files,许多命令需要纱线。如果您在MacOS上,则可以使用npm install -g yarn或自制的NPM安装。cURL (Pandoc下载脚本要求)unzip (由Pandoc下载脚本要求)jq (由I18N脚本要求)xcode-select --install就足够了然后,只需克隆存储库并将依赖项安装在本地计算机上:
$ git clone https://github.com/Zettlr/Zettlr.git
$ cd Zettlr
$ yarn install --immutable --immutable标志可确保纱线会坚持使用yarn.lock中列出的版本,而不会尝试更新它们。
在开发过程中,热模块重新加载(HMR)活跃,因此您可以轻松编辑渲染器的代码,并在electron-forge编译更改后击中F5 。您可以保持开发人员工具的打开状态,以查看HMR何时完成更改。
为了提供代码,您应该对以下主题和/或手册有基本的熟悉程度(以下降为重要性订购):
提示
请参阅下面的“目录结构”部分,以了解Zettlr的专门工作方式。
本节列出了您在应用程序开发过程中可以使用的所有可用命令。这些是在package.json内定义的yarn从存储库的基本目录中运行它们。
start使用此命令将您对应用程序进行的任何更改。此命令将启动该应用程序,但将提供自定义配置和自定义目录。因此,它不会触摸常规Zettlr安装将使用的任何文件。
首次启动此命令时,将--clean -FLAG传递将一堆测试文件复制到您的./resources -Directory,在您的项目root中创建一个test-config.yml ,并使用此干净的配置启动应用程序。然后,您可以将test-config.yml调整到您的喜好中(因此,您将始终设置的某些设置将是预先设置的,而无需打开首选项)。
每当您想将测试目录重置为其初始状态(或删除目录或重新克隆整个项目)时,将标志--clean给命令,以创建或重置目录。如果您更改了test-config.yml中的某些内容,这也是必要的。
如果要防止创建config-file(例如,为了模拟第一个开始体验),则可以将标志--no-config传递到此命令。
您也可以将其他命令行开关(例如--clear-cache传递到此命令。他们将传递给儿童过程。
警告
注意:在首次运行命令之前,您必须使用--clean -FLAG运行它才能首先创建目录!
此外,请查看我们的完整开发文档。
package包装应用程序,但不要将其捆绑到安装程序中。没有任何后缀,此命令将为您当前的平台和体系结构打包应用程序。要创建特定的软件包(可能需要在相应的平台上运行),可以使用以下后缀:
package:mac-x64 (基于英特尔的Mac)package:mac-arm (基于苹果硅的Mac)package:win-x64 (基于英特尔的窗口)package:linux-x64 (基于英特尔的Linux)package:linux-arm (基于ARM的Linux)所得的应用程序软件包存储在./out中。
重要的
此命令将跳过打字以加快构建的速度,因此我们建议在包装前运行lint ,以确保没有错误。
release:{platform-arch}包装应用程序,然后将其捆绑到相应平台和体系结构的安装程序中。要创建这样的捆绑包(可能需要在相应的平台上运行),需要以下值{platform-arch}的值之一:
release:mac-x64 (基于英特尔的MAC)release:mac-arm (基于苹果硅的Mac)release:win-x64 (基于英特尔的Windows)release:linux-x64 (基于英特尔的Linux)release:linux-arm (基于ARM的Linux)所得的设置束存储在./release中。
笔记
虽然您可以在没有任何后缀的情况下直接package平台,但是在创建发行版捆绑包时需要指定平台和体系结构,因为电子构建器否则将在app.asar中包含开发依赖性,从而导致肿胀的应用程序。
csl:refresh这将下载使用该应用程序的引用样式语言(CSL)文件,并将它们分别放入static/csl-locales和static/csl-styles -Directories中。
笔记
此命令旨在用于自动化工作流,该工作流程不时运行在存储库上以执行此操作。不要将更新的文件提交到存储库。相反,每当您git fetch时,更新的文件将下载。
lint运行Eslint。诸如Visual Studio Code之类的应用程序将在打开文件的背景中自动运行ESLINT。此命令在整个代码库中运行它们。在提交拉动请求之前,请确保运行此命令。
笔记
此命令将在每个拉的请求上自动运行,以检查您的代码是否不一致。
shortcut:install在您的应用程序中创建一个.desktop -file,使您能够快速启动从源中编译的应用程序。这需要Linux。要使用新的更改,请简单同步存储库,再次运行package ,然后您就可以了。
警告
我们提供此命令是为了方便的。除非您知道自己在做什么,否则不应从开发分支的头部提交中直接运行代码。但是,在您知道可能出了什么问题并且可以采取适当预防措施的一些情况下,此命令可能很有用。
shortcut:uninstall删除由快捷方式创建的.desktop -file shortcut:install 。
笔记
每当您重新编译二进制文件时,您就不必卸载并重新安装快捷方式。只需确保Zettlr在重新编译之前已关闭即可。如果模板(在scripts/assets/zettlr-dev.desktop中)已更改,则只需重新安装快捷方式。
test这将在目录中运行单元测试./test 。请确保在提交拉动请求之前运行此命令,因为每次提交PR时都会运行此命令,这样您就可以确保更改不会打破任何测试,从而使整个PR程序更容易。
test-gui请参阅start 。
重要的
此命令被弃用,只是一个start的别名。改用start 。
Zettlr是一个成熟的应用程序,在其开发过程中积累了数百个目录。由于很难在没有任何指导的情况下为应用程序做出贡献,因此我们与它们相互关联的目录进行了简短的描述。
.
├── out # Contains unpackaged binaries after running any `package` command
├── release # Contains distributables after running any `release` command
├── resources # General resource files
│ ├── NSIS # Windows installer bitmaps
│ ├── icons # Various icon formats
│ ├── screenshots # Contains the main screenshots
├── scripts # Scripts used during the build process and CI pipeline
│ ├── assets # Assets for the script files
│ └── test-gui # A full file tree used with the `test-gui` command
├── source # This is the actual source filetree
│ ├── app # Main process components
│ │ ├── service-providers # Service providers that handle most of the business logic
│ │ └── util # Utility functions for the main process
│ ├── common # Shared files between various renderer processes
│ │ ├── img # Images used in various places
│ │ ├── modules # Shared modules
│ │ │ ├── markdown-editor # Main Markdown editor
│ │ │ ├── markdown-utils # MD Utilities such as md2html converter
│ │ │ ├── preload # Electron preload files
│ │ │ └── window-register # Run by every renderer during setup
│ │ ├── util # General utility functions
│ │ └── vue # Shared Vue components
│ ├── pinia # Renderer state management
│ ├── types # Types-only directory; deprecated
│ ├── win-about # About dialog window
│ ├── win-assets # Assets Manager
│ ├── win-error # Error window
│ ├── win-log-viewer # Log Viewer
│ ├── win-main # Main window
│ ├── win-paste-image # Paste-Image-dialog
│ ├── win-preferences # Preferences window
│ ├── win-print # Print preview
│ ├── win-project-properties # Project properties
│ ├── win-splash-screen # The splash screen
│ ├── win-stats # Statistics window
│ ├── win-tag-manager # Tag manager
│ └── win-update # Updater
├── static # Contains static resources
│ ├── csl-locales # CSL locale files
│ ├── csl-styles # CSL styles
│ ├── defaults # Default defaults/Pandoc profiles
│ ├── dict # Dictionaries that ship with the app
│ ├── fonts # Fonts that ship with the app
│ ├── lang # Language and i18n-related files
│ ├── lua-filter # Default Lua-filters
│ └── tutorial # Tutorial files in various languages
└── test # Unit tests
您会注意到Zettlr包含“模块”和“服务提供商”。两者之间的区别很简单:服务提供商在主过程中运行,并且在整个应用程序提供功能时是完全自主的。另一方面,模块提供了必须由用户操作触发的功能(例如出口商和进口商)。
每当您运行zettlr时,都将执行以下步骤:
source/main.tssource/app/lifecycle.ts::bootApplication )source/app/lifecycle.ts::bootApplication )source/main/zettlr.ts )当您关闭应用程序时,将运行以下步骤:
source/main/zettlr.ts::shutdown )source/app/lifecycle.ts::shutdownApplication )在开发应用程序( yarn start和yarn test-gui )期间,将运行以下步骤:
.webpack中,以使用适当的输入点来代替您在窗口管理器的“创建” - 方法中可以找到的常数。每当构建应用程序时,将运行以下步骤:
Electron Forge将将包装的应用程序放入目录./out ,而Electron Builder将安装程序将安装程序放入目录./release 。
Zettlr二进制具有一些命令行开关,您可以将其用于不同的目的。
--launch-minimized此CLI标志将指示Zettlr不要在开始时显示主窗口。这对于创建AutoStart条目很有用。在这种情况下,在系统启动下使用此标志启动Zettlr将确保您只会在托盘中看到其图标。
由于这意味着需要在这样的启动应用程序时将应用程序运行在托盘栏或通知区域中,因此它将自动设置相应的设置system.leaveAppRunning trum。
笔记
该标志将对不支持在托盘栏或通知区域显示图标的Linux系统没有任何影响。
--clear-cache这将指导文件系统抽象层以完全清除启动时的缓存。这可用于减轻有关代码基库更改的问题。为了确保与存储在高速缓存中的信息的任何更改的config.json ,当您的yarn test-gui中的test-config.yml中的version字段不匹配package.json中的一个。
提示
如果您只想随意清除缓存以进行故障排除,也可以通过在“帮助”菜单中选择适当的菜单项来清除缓存,从而使您免于不得不使用任何技术。
--data-dir=path使用此开关指定一个自定义数据目录,该目录保存您的配置文件。如果没有此开关,数据目录默认为%AppData%/Zettlr (在Windows 10和更新), ~/.config/Zettlr (在Linux上)或~/Library/Application Support/Zettlr (在macOS上)。该路径可以是绝对的或相对的。相对路径的基础将是二进制目录(运行包装应用程序时)或存储库根(运行未打包的应用程序时)。请记住,如有必要,请逃脱空间或引用路径。在这种情况下,表示主目录的~不会扩展,因此请确保在必要时通过整个路径通往主目录。由于电子中的一个小错误,在默认数据目录中创建了一个空Dictionaries子目录,但不会影响功能。
--disable-hardware-acceleration此开关使Zettlr禁用硬件加速度,在某些设置中可能需要。有关添加此标志的更多信息,请参见第2127期。
该存储库利用了Visual Studio Code的推荐扩展功能。这意味着:如果您使用VS代码并首次打开存储库,则VS代码会告诉您,存储库建议安装少数扩展名。如果您与Zettlr合作,建议进行这些扩展名,并且会使贡献变得更加容易。这些建议在文件.vscode/extensions.json中指定。
由于有时安装扩展名是一个品味问题,因此我们为该文件中的每个建议的扩展程序添加了简短的描述,以解释为什么我们推荐它。这样,您可以自己决定是否要安装任何这些扩展名(例如,如果您不使用存储库中提供的SVG文件,则无需使用SVG扩展程序)。
如果您选择不一次安装所有推荐的扩展名(我们建议),则VS代码将向您显示扩展程序侧边栏中的建议,因此您可以首先确定要安装哪些建议,然后手动安装您想要的。
提示
使用与核心开发人员团队相同的扩展名将使代码通常更加一致,因为您将具有相同的视觉反馈。
该软件通过GNU GPL V3许可证获得许可。
排除该品牌(包括名称,图标和所有Zettlr)被排除并保留所有权利。如果您想分叉Zettlr开发另一个应用程序,请自由,但请更改名称和图标。阅读有关徽标使用情况的信息。