{"id":13598953,"url":"https://github.com/Linus-Mussmaecher/rucola","last_synced_at":"2025-04-10T10:30:44.314Z","repository":{"id":223652366,"uuid":"760975642","full_name":"Linus-Mussmaecher/rucola","owner":"Linus-Mussmaecher","description":"Terminal-based markdown note manager.","archived":false,"fork":false,"pushed_at":"2024-05-28T13:04:09.000Z","size":296,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-29T02:42:05.778Z","etag":null,"topics":["markdown","note-taking","notes","ratatui","ratatui-rs","rust","terminal","terminal-based","zettelkasten"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Linus-Mussmaecher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-21T02:13:34.000Z","updated_at":"2024-05-30T15:48:56.698Z","dependencies_parsed_at":"2024-05-28T13:43:09.242Z","dependency_job_id":null,"html_url":"https://github.com/Linus-Mussmaecher/rucola","commit_stats":null,"previous_names":["linus-mussmaecher/giraffe","linus-mussmaecher/rucola"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Linus-Mussmaecher%2Frucola","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Linus-Mussmaecher%2Frucola/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Linus-Mussmaecher%2Frucola/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Linus-Mussmaecher%2Frucola/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Linus-Mussmaecher","download_url":"https://codeload.github.com/Linus-Mussmaecher/rucola/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248199136,"owners_count":21063641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["markdown","note-taking","notes","ratatui","ratatui-rs","rust","terminal","terminal-based","zettelkasten"],"created_at":"2024-08-01T17:00:58.413Z","updated_at":"2025-04-10T10:30:43.740Z","avatar_url":"https://github.com/Linus-Mussmaecher.png","language":"Rust","funding_links":[],"categories":["Applications","Rust","Productivity","💻 Apps","\u003ca name=\"note-taking\"\u003e\u003c/a\u003eNote taking"],"sub_categories":["Utilities","Note Taking and Lists","🚀 Productivity and Utilities"],"readme":"# 🌱 Rucola\n\n[\u003cimg alt=\"github\" src=\"https://img.shields.io/badge/github-Linus--Mussmaecher/rucola-8da0cb?style=for-the-badge\u0026labelColor=555555\u0026color=8da0cb\u0026logo=github\"\u003e](https://github.com/Linus-Mussmaecher/rucola)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg?labelColor=555555\u0026style=for-the-badge\u0026logo=gnu)](https://www.gnu.org/licenses/gpl-3.0)\n[\u003cimg alt=\"rust\" src=\"https://img.shields.io/badge/Rust-2021_Edition-ed9974?labelColor=555555\u0026logo=rust\u0026style=for-the-badge\"\u003e](https://www.rust-lang.org/)\n\n[\u003cimg alt=\"commit status\" src=\"https://img.shields.io/github/commit-activity/m/Linus-Mussmaecher/rucola?labelColor=555555\u0026color=66c2a5\u0026style=for-the-badge\"\u003e](https://github.com/Linus-Mussmaecher/rucola/commits/main)\n[\u003cimg alt=\"test status\" src=\"https://img.shields.io/github/actions/workflow/status/Linus-Mussmaecher/rucola/continuous-testing.yml?label=tests\u0026branch=main\u0026labelColor=555555\u0026style=for-the-badge\"\u003e](https://github.com/Linus-Mussmaecher/rucola/actions?query=branch%3Amain)\n[\u003cimg alt=\"cratesio\" src=\"https://img.shields.io/crates/v/rucola-notes.svg?labelColor=555555\u0026color=417a5a\u0026logo=linux-containers\u0026style=for-the-badge\"\u003e](https://crates.io/crates/rucola-notes)\n[\u003cimg alt=\"arch-user-repository\" src=\"https://img.shields.io/archlinux/v/extra/x86_64/rucola.svg?labelColor=555555\u0026color=1793d1\u0026logo=arch-linux\u0026style=for-the-badge\"\u003e](https://archlinux.org/packages/extra/x86_64/rucola/)\n\nTerminal-based markdown note manager to view statistics, explore connections and launch editing and viewing applications.\n\n## Contents\n - [Features](#features)\n - [Target Audience and Similar Programs](#target-audience-and-similar-programs)\n - [Future Features](#future-features)\n - [Installation](#installation)\n   - [Usage](#usage)\n   - [Configuration](#configuration)\n - [Technology](#technology)\n - [License](#license)\n\n## Features\n - Present users of a zettelkasten-like note system of interlinked markdown files with high-level information \u0026 statistics about their notes.\n - Show the same information about filtered subsets of notes, as well as their relation with the entire note set.\n - Allow the user to view and follow links and backlinks of a single note to see connections within their note graph.\n - Allow the user to make small edits such as renaming or moving notes from within the application.\n - Provide easy access to a powerful, external text editor for editing notes.\n - Optionally compile notes to HTML-documents, including LaTeX compilation and code highlighting, on the fly and show them in an external viewer.\n - Provide all of this functionality from within a terminal user interface.\n\n### Images\n\nIn the select \u0026 overview screen:\n\n![select-screen](https://github.com/Linus-Mussmaecher/rucola/blob/main/readme-images/readme-image-select.png)\n\nViewing a single note:\n\n![display-screen](https://github.com/Linus-Mussmaecher/rucola/blob/main/readme-images/readme-image-display.png)\n\nA default light theme is also included.\n\u003e [!TIP]\n\u003e Default themes will adjust to your terminal colors, but the entire style can be fully customized.\n\n## Target Audience and Similar Programs\nRucolas is made for users of a [zettelkasten-style](https://en.wikipedia.org/wiki/Zettelkasten) note system of interlinked markdown notes that want to do most of their note taking directly from within the terminal.\n\nCompared to UI-note taking tools such as **Obsidian**, **Evernote** or **Notion** ...\n - rucola is much more light-weight, using no GUI, no web interface, no Electron, making it faster to open and more responsive to use, particularly on older hardware. Note that viewing your notes as HTML still requires a browser or other HTML viewer.\n - rucola provides easy access to edit notes in your favorite terminal text editor such as vim, emacs or helix, thus allowing a far more powerful editing interface. Although Obsidian provides vim keybindings via plugins, rucola allows you to edit in exactly the editing environment you are used to with all your vim plugins and other comfort settings ready to go.\n - rucola currently offers less extensibility and thus probably also less powerful statistics, in particular no graph view.\n - rucola relies on an external program to view HTML versions of your markdown notes, allowing once again more customizability (for example with the rich plugin system of browsers like firefox or chrome) as well as more conformity to your usual workflow.\n - rucola is not a single all-in-one application but works as a note browser that also glues an HTML viewer to an editor.\n\nCompared to using only a terminal text editor (such as **vim**, **emacs** or **helix**) to manage markdown notes ...\n - rucola allows more note-specific interaction with your file system, such as following wiki links.\n - rucola provides note-specific statistics about your files, such as tags, nested tags and links statistics.\n - rucola facilitates more note-specific filtering and searching options based on links, tags, full text or titles.\n - rucola automatically renames wiki links on file rename, which the marksman language server currently does not support, making such a feature unavailable in helix and any other editor relying on LSP for markdown editing.\n - rucola allows you to view nicer-to-read HTML versions of your documents, complete with automatic background conversion (when enabled), which is especially useful for code that is difficult to read in the raw format. In particular, rucola compiles LaTeX and highlights code blocks.\n - rucola requires the usage of multiple programs in parallel instead of just your editor.\n\n\u003e [!TIP]\n\u003e Most text editors or terminal emulators provide some way to open a file in an already running instance - open rucola and your favourite editor next to one another and use rucola like a more note-specific file picker. \n\n## Future Features\nThe current version supports all features originally envisioned for this project and has been tested in daily use for some months.\nThis does not mean that development is finished.\nFuture plans include:\n - Frequent \u0026 quick bugfixes and similar non-breaking changes.\n - Incorporate user feedback into new features without losing sight of the original scope to also make rucola integrate into _your_ workflow.\n - As development on the underlying markdown parser [comrak](https://github.com/kivikakk/comrak) continues, especially support for wikilinks, certain internal algorithms can be made more safe \u0026 efficient (especially link updating on name changes).\n   This is dependent on the progress on comrak.\n - As development on the [ratatui markdown reader](https://github.com/joshka/tui-markdown) continues, a possible future option would be to allow viewing of markdown files right within rucola.\n   This is dependent on the progress on ratatui-markdown.\n\n## Installation\n\nRucola has no requirements, but a [Nerd font](https://www.nerdfonts.com) may be required on your machine to display some of the icons properly.\n\n#### Installation Scripts \u0026 Tarballs\nFor installation instructions via shell script, `.msi`, homebrew or tarball, see the [latest release](https://github.com/Linus-Mussmaecher/rucola/releases).\nThese installers are generated using [`cargo dist`](https://github.com/axodotdev/cargo-dist) and are provided for Windows, Mac and Linux.\n\n#### Arch Linux\n\nYou can install `rucola` from the [official repositories](https://archlinux.org/packages/extra/x86_64/rucola/) using [pacman](https://wiki.archlinux.org/title/pacman):\n\n```\npacman -S rucola\n```\n\n#### Crates.io\nInstall using `cargo` from [`crates.io`](https://crates.io/crates/rucola-notes):\n```\n cargo install --locked rucola-notes\n```\n\n#### Manual Build\nIf you want to build the latest commit of rucola by yourself, you can clone the repository, build \u0026 install: \n```\n git clone https://github.com/Linus-Mussmaecher/rucola\n cd rucola\n cargo install --locked --path .\n```\n\n### Usage\n\nRucola can be launched from your command line with the `rucola` command.\n\n\u003e [!TIP]\n\u003e For more information on possible configuration options, features and usage tips, see the [GitHub Wiki](https://github.com/Linus-Mussmaecher/rucola/wiki).\n\n### Configuration\nRucola requires three configuation files:\n - `config.toml`: The main TOML configuration file. See [the Wiki](https://github.com/Linus-Mussmaecher/rucola/wiki/Configuration) for its entries.\n - `\u003cstyle\u003e.toml`: A TOML style file to customize the appearance of rucola itself. The exact name is given in `config.toml`. See [the Wiki](https://github.com/Linus-Mussmaecher/rucola/wiki/Style) for its entries.\n - `\u003ccssstyle\u003e.css`: A CSS style file to customize the appearance of the HTML files created when converting markdown notes.\n\nOne default config file, 2 TOML style files (light \u0026 dark theme) and 2 CSS style files (light \u0026 dark theme) can be found in this repository's [`default_config`](https://github.com/Linus-Mussmaecher/rucola/tree/main/default-config) folder. \nThese files should be installed on your system by any install method into rucola's default config folder.\nSee [the Wiki](https://github.com/Linus-Mussmaecher/rucola/wiki/Configuration) for that folders expected location.\n\n## Technology\nRucola is implemented using the [ratatui](https://ratatui.rs) framework in [Rust](https://www.rust-lang.org/). Markdown parsing is done via [comrak](https://github.com/kivikakk/comrak).\n\nLaTeX compilation \u0026 macro system is facilitated by [KaTeX](https://katex.org/) while code highlighting is done with [highlight.js](https://highlightjs.org/).\n\n## License\nRucola is released under the [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0).\n\nCopyright (C) 2024 Linus Mußmächer \u003clinus.mussmaecher@gmail.com\u003e\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLinus-Mussmaecher%2Frucola","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLinus-Mussmaecher%2Frucola","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLinus-Mussmaecher%2Frucola/lists"}