

Página de inicio | Descargar | Documentación | Mastodon | Discordia | Contribuyente | Apoyarnos

Zettlr devuelve la simplicidad a sus textos. Escritura de mente abierta que se adapte a su estilo. Recuperación rápida de información que encuentra lo que le importa. Exportación versátil que le permite adaptarse a la publicación de la publicación que utilice su empleador o escuela.
Concéntrese en lo que le importa.
Publicar, no perecer.
Obtenga más información en nuestro sitio web.
... y lo mejor es: ¡Zettlr es un software gratuito y de código abierto (FOSS)!
Para instalar Zettlr, simplemente descargue la última versión para su sistema operativo. Actualmente se admiten MacOS, Windows y la mayoría de las distribuciones de Linux (a través de paquetes de Debian y Fedora, así como de Appimages).
En nuestro sitio web y aquí en GitHub, proporcionamos un conjunto de instaladores para los casos de uso más comunes. Proporcionamos tanto instaladores de 64 bits como instaladores para sistemas ARM (llamados "Apple Silicon" en el ecosistema MacOS). 32 bits no es compatible. Ofrecemos los siguientes binarios directamente:
Gracias a nuestra comunidad, también podemos ofrecerle una variedad de otras oportunidades de instalación:
También son compatibles con todas las demás plataformas que Electron admite, pero deberá construir la aplicación usted mismo para que esto funcione.
¡Considere también convertirse en patrón o hacer una donación única!
Después de haber instalado ZETTLR, diríjase a nuestra documentación para conocer Zettlr. Consulte la Guía de inicio rápido, si prefiere usar el cabezal de software.

Como aplicación de código abierto, Zettlr siempre da la bienvenida a las contribuciones de la comunidad. ¡No necesita saber cómo escribir código para ayudar! Una descripción completa sobre todas las áreas donde puede ayudar se puede encontrar en nuestra guía contribuyente. Aquí, le presentamos las dos áreas más grandes donde damos la bienvenida a la ayuda: traducciones y código contribuyente.
El equipo de desarrollo mantiene las traducciones de inglés y alemán, pero carece de conocimiento adecuado de otros idiomas. Todas las otras traducciones disponibles han sido creadas por nuestra comunidad.
Las traducciones de Zettlr utilizan el sistema GetText. Esto significa que las traducciones se mantienen en archivos PO dentro del directorio static/lang .
Para actualizar una traducción, simplemente descargue el archivo de idioma correspondiente y edítelo. Puede editar archivos PO con un editor de texto simple, pero si prefiere un editor gráfico más cómodo, hay muchos por ahí. Una buena opción es el editor de código abierto Poedit.
Tan pronto como esté satisfecho con sus cambios, abra una solicitud de extracción aquí que actualice el archivo correspondiente. GitHub ha creado una gran guía sobre cómo abrir solicitudes de extracción.
Zettlr es una aplicación basada en electrones, por lo que para comenzar a desarrollar, deberá tener lo siguiente instalado en su computadora:
lts/iron ). Para probar qué versión tiene, ejecute node -v .package-lock.json -files y muchos comandos requieren hilo. Puede instalar esto a nivel mundial con npm install -g yarn o Homebrew, si está en MacOS.cURL (requerido por el script de descarga de pandoc)unzip (requerido por el script de descarga de pandoc)jq (requerido por el script i18n)xcode-select --install SUFTicesLuego, simplemente clone el repositorio e instale las dependencias en su computadora local:
$ git clone https://github.com/Zettlr/Zettlr.git
$ cd Zettlr
$ yarn install --immutable La bandera --immutable asegura que el hilo se adhiera a las versiones como se enumeran en el yarn.lock y no intente actualizarlas.
Durante el desarrollo, la recarga del módulo caliente (HMR) está activo para que pueda editar el código del renderizador fácilmente y presionar F5 después de que los cambios hayan sido compilados por electron-forge . Puede mantener las herramientas de desarrollador abiertas para ver cuándo HMR ha terminado de cargar sus cambios.
Para proporcionar código, debe tener una familiaridad básica con los siguientes temas y/o manuales (ordenados por importancia descendente):
Consejo
Consulte la sección "Estructura de directorio" a continuación para tener una idea de cómo funciona específicamente Zettlr.
Esta sección enumera todos los comandos disponibles que puede usar durante el desarrollo de aplicaciones. Estos se definen dentro del package.json y se pueden ejecutar desde la línea de comando prefijándolos con yarn . Ejecutarlos desde el directorio base del repositorio.
startUse este comando para probar sin preocupaciones cualquier cambio que realice en la aplicación. Este comando iniciará la aplicación, pero proporcionará una configuración personalizada y un directorio personalizado. Por lo tanto, no tocará ningún archivo que utilizará una instalación regular de ZETTLR.
La primera vez que comience este comando , pase el --clean -Flag para copiar un montón de archivos de prueba a su ./resources -Directory, cree una test-config.yml en su raíz del proyecto e inicie la aplicación con esta configuración limpia. Luego, puede adaptar la test-config.yml a su gusto (para que ciertas configuraciones que de otro modo siempre establezcan estarán preestablecidas sin que tenga que abrir las preferencias).
Siempre que desee restablecer el directorio de prueba a su estado inicial (o eliminó el directorio, o clonó todo el proyecto de nuevo), pase el flag --clean al comando para crear o restablecer el directorio. Esto también es necesario si cambió algo en test-config.yml .
Si desea evitar que se cree un archivo de configuración (por ejemplo, para simular la primera experiencia de inicio), puede pasar el indicador --no-config a este comando.
Puede pasar interruptores de línea de comandos adicionales como --clear-cache a este comando también. Se pasarán al proceso infantil.
Advertencia
Atención: Antes de ejecutar primero el comando, debes ejecutarlo con --clean -flag para crear el directorio en primer lugar.
Además, eche un vistazo a nuestra documentación de desarrollo completo.
packageEmpaca la aplicación, pero no la empaca en un instalador. Sin ningún sufijo, este comando empaquetará la aplicación para su plataforma y arquitectura actuales. Para crear paquetes específicos (puede requerir ejecutar en la plataforma correspondiente), están disponibles los siguientes sufijos:
package:mac-x64 (Macs basados en Intel)package:mac-arm (Macs basado en Apple Silicon)package:win-x64 (Windows basado en Intel)package:linux-x64 (Linux basado en Intel)package:linux-arm (Linux a base de brazo) Los paquetes de aplicación resultantes se almacenan en ./out .
Importante
Este comando saltará la toma de tipos para acelerar las compilaciones, por lo que recomendamos ejecutar lint antes del embalaje para garantizar que no haya errores.
release:{platform-arch} Empaca la aplicación y luego la incluye en un instalador para la plataforma y la arquitectura correspondientes. Para crear dicho paquete (puede requerir ejecutarse en la plataforma correspondiente), se requiere uno de los siguientes valores para {platform-arch} :
release:mac-x64 (Macs basado en Intel)release:mac-arm (Macs basado en Apple Silicon)release:win-x64 (Windows basado en Intel)release:linux-x64 (Linux con base en Intel)release:linux-arm (Linux a base de brazo) Los paquetes de configuración resultantes se almacenan en ./release .
Nota
Si bien puede package directamente para su plataforma sin ningún sufijo, debe especificar la plataforma y la arquitectura al crear un paquete de lanzamiento, ya que Electron-Builder incluiría las dependencias de desarrollo en la app.asar .
csl:refresh Esto descarga los archivos de lenguaje de estilo de cita (CSL) con los que se envía la aplicación, y los coloca en los static/csl-locales , y los directorios static/csl-styles , respectivamente.
Nota
Este comando está destinado a un flujo de trabajo automatizado que se ejecuta de vez en cuando en el repositorio para realizar esta acción. No comprometa archivos actualizados al repositorio . En su lugar, los archivos actualizados se descargarán cada vez que se git fetch .
lintEjecuta Eslint. Aplicaciones como Visual Studio Code ejecutarán automáticamente Eslint en segundo plano en sus archivos abiertos. Este comando los ejecuta en toda la base del código. Asegúrese de ejecutar este comando antes de enviar una solicitud de extracción.
Nota
Este comando se ejecutará automáticamente en cada solicitud de extracción para verificar su código en busca de inconsistencias.
shortcut:install Crea un archivo .desktop en sus aplicaciones que le permite iniciar rápidamente una aplicación que ha compilado desde la fuente. Esto requiere Linux. Para usar nuevos cambios, sincronizar simple el repositorio, ejecute package nuevamente y listo.
Advertencia
Proporcionamos este comando como conveniencia. A menos que sepa lo que está haciendo, no debe ejecutar el código compilado directamente desde la confirmación de la rama de desarrollo. Sin embargo, este comando puede ser útil en algunos casos en los que sabe lo que puede salir mal y puede tomar las precauciones apropiadas.
shortcut:uninstall Elimina el archivo .desktop creado por shortcut:install .
Nota
No tiene que desinstalar y reinstalar el atajo cada vez que compile el binario de nuevo. Solo asegúrese de que Zettlr esté cerrado antes de recompilarlo. Solo debería tener que reinstalar el atajo si la plantilla (en scripts/assets/zettlr-dev.desktop ) ha cambiado.
test Esto ejecuta las pruebas unitarias en el directorio ./test . Asegúrese de ejecutar este comando antes de enviar una solicitud de extracción, ya que esto se ejecutará cada vez que se comprometa con el PR, y de esta manera puede asegurarse de que sus cambios no rompan ninguna prueba, lo que facilita todo el proceso de relaciones públicas.
test-gui Ver start .
Importante
Este comando está en desuso y solo un alias para start . Use start en su lugar.
Zettlr es una aplicación madura que ha acumulado cientos de directorios en el transcurso de su desarrollo. Dado que es difícil contribuir a una aplicación sin ninguna guía, hemos compilado una breve descripción de los directorios con cómo se interrelacionan.
.
├── 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
Notará que Zettlr contiene "módulos" y "proveedores de servicios". La diferencia entre los dos es simple: los proveedores de servicios se ejecutan en el proceso principal y son completamente autónomos al tiempo que proporcionan funcionalidad a la aplicación en su conjunto. Los módulos, por otro lado, proporcionan funcionalidad que debe ser activada por las acciones del usuario (por ejemplo, el exportador y el importador).
Siempre que ejecute Zettlr, se ejecutarán los siguientes pasos:
source/main.tssource/app/lifecycle.ts::bootApplication )source/app/lifecycle.ts::bootApplication )source/main/zettlr.ts )Y cuando apague la aplicación, se ejecutarán los siguientes pasos:
source/main/zettlr.ts::shutdown )source/app/lifecycle.ts::shutdownApplication ) Durante el desarrollo de la aplicación ( yarn start y yarn test-gui ), los siguientes pasos se ejecutarán:
.webpack , reemplazando las constantes que puede encontrar en los métodos "Crear" del administrador de la ventana con los puntos de entrada apropiados.Cada vez que se construye la aplicación, se ejecutarán los siguientes pasos:
Electron Forge colocará las aplicaciones empaquetadas en el directorio ./out mientras que Electron Builder colocará a los instaladores en el directorio ./release .
El binario Zettlr presenta algunos interruptores de línea de comandos que puede usar para diferentes fines.
--launch-minimizedEsta bandera CLI instruirá a Zettlr que no muestre la ventana principal al inicio. Esto es útil para crear entradas de AutoStart. En ese caso, el lanzamiento de Zettlr con este indicador en el arranque del sistema se asegurará de que solo verá su icono en la bandeja.
Dado que esto implica la necesidad de que la aplicación se ejecute en la barra de la bandeja o el área de notificación al comenzar la aplicación así, establecerá automáticamente la system.leaveAppRunning correspondiente.
Nota
Este indicador no tendrá ningún efecto en los sistemas Linux que no admitan mostrar un icono en una barra de bandeja o área de notificación.
--clear-cache Esto dirigirá a la capa de abstracción del sistema de archivos que borre completamente su caché en el arranque. Esto se puede usar para mitigar los problemas con respecto a los cambios en la base de código. Para garantizar la compatibilidad con cualquier cambio en la información almacenada en el caché, el caché también se borra automáticamente cuando el campo de versión en su config.json no coincide con la que en el package.json , lo que significa que, siempre y cuando no establezca explícitamente el campo de version en su test-config.yml , el caché siempre se borrará siempre cuando escriba yarn test-gui .
Consejo
Si solo desea borrar casualmente el caché para la solución de problemas, también puede borrar el caché seleccionando el elemento de menú apropiado en el menú "Ayuda", lo que le ahorra tener que incursionar con cualquier cosa técnica.
--data-dir=path Use este interruptor para especificar un directorio de datos personalizado, que contiene sus archivos de configuración. Sin este interruptor, el directorio de datos predetermina a %AppData%/Zettlr (en Windows 10 y Newer), ~/.config/Zettlr (en Linux), o ~/Library/Application Support/Zettlr (en macOS). El camino puede ser absoluto o relativo. La base de la ruta relativa será el directorio del binario (al ejecutar una aplicación empaquetada) o la raíz del repositorio (cuando ejecuta una aplicación que no está empaquetada). Recuerde escapar de espacios o citar el camino, si es necesario. El personaje ~ para denotar el directorio de inicio no se expande en este caso, así que asegúrese de pasar todo el camino a su directorio de inicio si es necesario. Debido a un error menor en Electron, se crea un subdirectorio Dictionaries vacíos en el directorio de datos predeterminado, pero no afecta la funcionalidad.
--disable-hardware-accelerationEste interruptor hace que Zettlr desactive la aceleración de hardware, lo que podría ser necesario en ciertas configuraciones. Para obtener más información sobre por qué se agregó esta bandera, consulte el número 2127.
Este repositorio utiliza la función de extensiones recomendadas de Visual Studio Code. Esto significa: si usa el código VS y abre el repositorio por primera vez, VS Código le dirá que el repositorio recomienda instalar un puñado de extensiones. Estas extensiones se recomiendan si trabaja con Zettlr y facilitará mucho más fácilmente. Las recomendaciones se especifican en el archivo .vscode/extensions.json .
Dado que la instalación de extensiones a veces es una cuestión de gusto, hemos agregado descripciones breves para cada extensión recomendada dentro de ese archivo para explicar por qué lo recomendamos. De esta manera, puede tomar su propia decisión si desea o no instalar alguna de estas extensiones (por ejemplo, la extensión SVG no es necesaria si no trabaja con los archivos SVG proporcionados en el repositorio).
Si elige no instalar todas las extensiones recomendadas a la vez (que recomendamos), VS Code le mostrará las recomendaciones en la barra lateral de extensiones para que primero pueda decidir cuáles de las que desea instalar y luego instalar manualmente las que desea tener.
Consejo
El uso de las mismas extensiones que el equipo de desarrollador central hará que el código sea generalmente más consistente, ya que tendrá la misma retroalimentación visual.
Este software tiene licencia a través de la licencia GNU GPL V3.
La marca (incluidos el nombre, los iconos y todo lo que Zettlr puede identificarse) está excluida y todos los derechos reservados. Si desea bifurcar zettlr para desarrollar otra aplicación, siéntase libre, pero cambie el nombre y los iconos. Lea sobre el uso del logotipo.