

主頁|下載|文檔| 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 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開發另一個應用程序,請自由,但請更改名稱和圖標。閱讀有關徽標使用情況的信息。