{"id":19876377,"url":"https://github.com/foo-dogsquared/lanoma","last_synced_at":"2026-05-10T16:40:12.546Z","repository":{"id":115061929,"uuid":"225058190","full_name":"foo-dogsquared/lanoma","owner":"foo-dogsquared","description":"A rewriting of my LaTeX notes manager in Rust. It also improves upon some things from the original Python version. Currently a work in progress.","archived":false,"fork":false,"pushed_at":"2020-03-15T12:11:22.000Z","size":218,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-01T01:42:04.192Z","etag":null,"topics":["latex","latex-notes-manager","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foo-dogsquared.png","metadata":{"files":{"readme":"README.adoc","changelog":"CHANGELOG.adoc","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":"2019-11-30T19:09:22.000Z","updated_at":"2022-07-24T00:13:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"44a38b9e-e0d8-4b76-a9c4-64af337d1295","html_url":"https://github.com/foo-dogsquared/lanoma","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/foo-dogsquared/lanoma","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-dogsquared%2Flanoma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-dogsquared%2Flanoma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-dogsquared%2Flanoma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-dogsquared%2Flanoma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foo-dogsquared","download_url":"https://codeload.github.com/foo-dogsquared/lanoma/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-dogsquared%2Flanoma/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32864084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"ssl_error","status_checked_at":"2026-05-10T13:40:02.145Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["latex","latex-notes-manager","rust-lang"],"created_at":"2024-11-12T16:32:51.622Z","updated_at":"2026-05-10T16:40:12.526Z","avatar_url":"https://github.com/foo-dogsquared.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Lanoma \n:toc:\n\n:program: Lanoma\n\nA basic LaTeX notes manager that aims for self-studying and university classes footnote:[Mainly, the author of this program, https://github.com/foo-dogsquared[@foo-dogsquared].]. \nIt is mainly composed of a command line program where you can easily manage your LaTeX notes. \n\nFor now, the notes manager is specifically created for my specific workflow so no there's not much room for general use-cases. \n\nMy LaTeX workflow and the program is inspired from https://castel.dev/[Gilles Castel's posts]. \nBig thanks to him and for sharing his knowledge! \n\nAlso since this is my first project made with https://www.rust-lang.org/[Rust], you'll have to excuse my bad codebase for a little bit. \nNonetheless, pull requests for improvements are always welcome! \n\n\n\n\n== Design rationale \n\n* Create a potentially reusable LaTeX notes setup. \n\n* Create a LaTeX-related tool that can easily transfer, move, or integrate with other setups. \n\n* Automate basic LaTeX files management including adding, deleting, and compiling documents. \n\n* Make the program fit nicely with the existing workflow. \n\n* Furthermore, this program is specifically created for my workflow that can work cross-platform. This also leaves little room for other use cases. \n\n\n\n\n== Limitations and non-goals \n\nNow the design rationale is out, let's explicitly lay out the expected limitations and non-goals from the time of creating this project. \n\n* First and foremost, it's a niche tool for a **very** niche use. \nAlso, with the use of makefiles and shell scripts, you can easily set up a similar (or better) workflow for your LaTeX documents. \nBesides, creating a similar tool could've been easier (and better) with shell scripts and makefiles. \nI just did to myself because I want to learn Rust. \n{program} does have some level of customizability but it is limited. \n\n* This is not made for general use cases. \nThough, it is considered especially with the upcoming improvements of the underlying libraries (like creating dynamic helpers with Rhai [from https://github.com/sunng87/handlebars-rust/issues/301]). \n\n* This is not made for organizing the notes or anything. \n\nIf you're looking for an alternative for your personal knowledge base, a simple directory tree of notes will do. \nI've also made my personal knowledge base with just a folder of https://asciidoctor.org/[Asciidoctor] documents and created a Python script for compiling them all. \nI've https://github.com/foo-dogsquared/personal-notes/[open sourced] it just for backup purposes. \nYou can then search for your files with the `find` command. \n\nI've also met people online that are more content with a simple list of directories and a bunch of documents in a certain format (i.e., https://orgmode.org/[Org Mode], https://jupyter.org/[Jupyter notebooks]). \n\n\n\n\n== Reason this program exists \n\n* It is a learning project with the https://www.rust-lang.org/[Rust language]. \n\n* Create an executable that can be easily be sent to others without the hassle of setting up whatsoever. \n\n\n\n\n== Installation \n\nYou can simply download the https://github.com/foo-dogsquared/lanoma/releases[provided binaries in the releases page]. \nIf you're using https://doc.rust-lang.org/cargo/[Cargo], you can install the binary with https://doc.rust-lang.org/cargo/commands/cargo-install.html?highlight=install#cargo-install[`cargo install` command]. \n\nIf there's no available version for your operating system of choice, you can compile one yourself. \n\nFirst, make sure you have the Rust toolchain (\u003e=`v1.39.0` just to be safe) and the development libraries (e.g., `gcc`, `musl`) for your target system installed. \nThen clone the Git repository into your machine and build the executable with `cargo build --release`. \nfootnote:[You can also build with `make` by using the `build` rule (i.e., `make build`).]\n\nWait for the compilation and get the binary (named as `lanoma`) in the `target/release/` folder. \nYou can then move the binary in your `$PATH`. \n\n\n\n\n== Usage \n\nFor now (or maybe not), this program is specifically made for my LaTeX workflow. \n\nIn order to make use of this application, you need to have the following programs installed already in the system: \n\n* A LaTeX distribution (http://www.tug.org/interest.html#free[here's a list of options, if you haven't installed one])\n\nThat's pretty much it. \n\n\n=== Quick start \n\nTo get started with {program}, you need a profile. \n\nYou can simply create a profile with the `init` command. \n\n[source, shell]\n----\n# Initialize the profile in the respective config folder of your operating system \nlanoma init\n\n# Initialize the profile in other directories if you don't want to. \n# Though, you have to specify the profile at every command. \nlanoma init --profile \"~/Documents\"\n----\n\nOnce you have initialized a profile, you can now create subjects and notes. \nThough in order to add notes, you need to create subjects/folders first. \n\n[source, shell]\n----\n# Add some subjects \nlanoma add subjects \"Mathematics\" \"Science\"\n\n# After adding some subjects, you can add some notes \nlanoma add notes \"Mathematics\" \"Introduction to Calculus\" \n\n# To compile all notes under \"Mathematics\" \nlanoma compile subjects \"Mathematics\"\n----\n\nYou can check out more options in the link:docs/manual.adoc[manual]. \nIt also gives the complete details of what you need to know with {program}. \n\n\n\n\n== Features \n\nHere are the features to be implemented whenever possible. \n\n* Hooks scripts using Rust. \n\nI would also like to improve the program on the following areas: \n\n* Data design which is quite messy as of v2.0.0. \nThere has to be a better way for it without entirely relying with a database. \n* Performance to be improved after the core features has been implemented. \nFor now, it's not a priority. \n* Cross-platform compatibility. \nAs a user of multiple OS (i.e., Windows and Linux), I really like to make this possible to easily use this program. \n\n\n\n\n== Development \n\nThe application is still in active development. \nThough it is just a side project, contributions are welcome with open arms:  refactoring code, improving the documentations, filing an issue, and the like. :)\n\nTo set up for development, you just need https://www.rust-lang.org/[Rust] installed. \nIf you haven't installed it yet, https://www.rust-lang.org/tools/install[be sure to follow the instructions from the official website]. \n\nThe project has the executable and the library code separated into https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html[workspaces]. \nThe main code is the executable. \nThe library is located on the `lib/` folder. \n\nThe project uses https://github.com/rust-lang/cargo[Cargo] for managing the project. \n\n* To run the binary of the project, execute `cargo run` in the shell. \nTo add command line arguments, just append two dashes (`--`) after the run command. \n\n* To run the tests of the library crate, call `cargo test --package lanoma-lib --lib`. \n\n* Using the https://github.com/rust-lang/rls[RLS] plugin of your text editor of choice is recommended. \nIf you're using https://code.visualstudio.com/[Visual Studio Code], it is fully recommended to have it installed. \n\nThis project also makes use of the official toolchain of Rust such as https://github.com/rust-lang/rustfmt[rustfmt]. \nIf you haven't installed rustfmt yet, please refer to the link and read the documentation on installing. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoo-dogsquared%2Flanoma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoo-dogsquared%2Flanoma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoo-dogsquared%2Flanoma/lists"}