Thanks to visit codestin.com
Credit goes to github.com

Skip to content

lilamr/noteration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Noteration icon

Noteration: Note-Literature-Synchronization

Research Literature Note-Taking App
Markdown editor Β· PDF viewer Β· Papis Β· GitHub sync

Release License Python CI


About

Noteration is a desktop application for managing literature notes in an integrated way. It combines all the tools you need in a single interface:

noteration/
β”œβ”€β”€ πŸ“„  Markdown notes with [[wiki-link]] and @citation
β”œβ”€β”€ πŸ“˜  Integrated PDF viewer with non-destructive annotations
β”œβ”€β”€ πŸ“š  Literature browser via Papis
β”œβ”€β”€ πŸ”  Global vault search
β”œβ”€β”€ πŸ•ΈοΈ  Interactive backlink graph between notes
└── ☁️  Synchronization via GitHub

Key Features

Feature Description
Markdown Editor Syntax highlighting, line numbers, view/edit modes, auto-indent
Focus Mode Distraction-free writing with Vim keybindings and centered layout
Wiki-link [[note-name]] with Ctrl+Click navigation and autocomplete
Citation @citation-key with autocomplete from Papis library
Global Search Search across all notes, literature, and PDF annotations simultaneously
PDF Viewer Render via QtPDF or PyMuPDF, highlight & JSON annotations
Backlink Graph Visualization of note network, interactive
Papis Bridge Browse, import, and export BibTeX from Papis library
Git Sync Manual commit, pull, push; visual conflict resolution
Dark Mode Light / Dark / System β€” automatically follows OS theme

Installation

Choose the quickest way to get Noteration running on your system.

🐧 Linux & 🍎 macOS (One-liner)

Open your terminal and run:

curl -fsSL https://raw.githubusercontent.com/lilamr/noteration/main/install.sh | bash

On macOS, this will create a Noteration.app in your Applications folder and add it to your Launchpad.

πŸͺŸ Windows (One-liner)

Open PowerShell and run:

irm https://raw.githubusercontent.com/lilamr/noteration/main/install.ps1 | iex

This will create a desktop shortcut and a Start Menu entry for easy access.


Manual Installation (Development)

If you want to contribute or prefer manual setup:

1. Prerequisites

  • Python 3.11 or higher
  • Git

2. Clone and Setup

git clone https://github.com/lilamr/noteration.git
cd noteration

# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate  # On Windows use: .venv\Scripts\activate

# Install with all features
pip install -e ".[all]"

3. Optional Dependencies

Feature Command
Papis literature management pip install -e ".[papis]"
PyMuPDF PDF renderer pip install -e ".[pymupdf]"
Fuzzy search pip install -e ".[search]"
Backlink graph (NetworkX) pip install -e ".[graph]"
File watcher (live reload) pip install -e ".[watch]"
Markdown preview pip install -e ".[markdown]"

Running the Application

# Via entry point (after pip install -e .)
noteration

# Or directly as a module
python -m noteration

On first run, a Select Vault dialog will appear to choose or create a new research vault.


Uninstallation

If you need to remove Noteration, follow the steps for your operating system:

🐧 Linux

# Remove installation directory and venv
rm -rf ~/.local/share/noteration

# Remove wrapper script
rm ~/.local/bin/noteration

# Remove desktop entry and icon
rm ~/.local/share/applications/noteration.desktop
rm ~/.local/share/icons/noteration.png

🍎 macOS

# Remove App Bundle
rm -rf ~/Applications/Noteration.app

# Remove installation directory and binary
rm -rf ~/.local/share/noteration
rm ~/.local/bin/noteration

πŸͺŸ Windows (PowerShell)

# Remove installation directory
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\noteration"

# Remove shortcuts
Remove-Item "$env:USERPROFILE\Desktop\Noteration.lnk" -ErrorAction SilentlyContinue
Remove-Item "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Noteration.lnk" -ErrorAction SilentlyContinue

Note

These steps remove the application itself. Your Vault data (notes, literature, annotations and config) is stored separately and will not be deleted.


Vault Structure

~/noteration-vault/
β”œβ”€β”€ .noteration/
β”‚   β”œβ”€β”€ config.toml          # Main configuration
β”‚   β”œβ”€β”€ db.sqlite            # Cache & link graph
β”‚   └── link_graph.json      # Backlink graph (JSON)
β”œβ”€β”€ notes/                   # Markdown files
β”‚   β”œβ”€β”€ index.md
β”‚   └── research-topic.md
β”œβ”€β”€ literature/              # Managed by Papis
β”œβ”€β”€ annotations/             # PDF annotations (JSON, synced via Git)
└── attachments/             # Images and attachments

Tip

Git Synchronization: Noteration automatically ignores large binary files (PDFs) and internal caches (db.sqlite, link_graph.json) to prevent merge conflicts and repository bloat. Only your notes, metadata, and annotations are synchronized.


Configuration (config.toml)

[general]
autosave          = true
autosave_interval = 30           # seconds

[editor]
tab_width         = 2
font_family       = "Consolas"
font_size         = 12
show_line_numbers = true
auto_indent       = true

[pdf]
renderer              = "qtpdf"   # or "pymupdf"
default_highlight_color = "#FFEB3B"

[papis]
library_path = "~/noteration/literature"

[sync]
remote        = "origin"
branch        = ""               # empty = auto-detect active branch

[ui]
theme           = "system"       # dark / light / system
sidebar_visible = true

Project Structure

noteration/ (repository root)
β”œβ”€β”€ noteration/ (package)
β”‚   β”œβ”€β”€ assets/              # Icons and static assets
β”‚   β”œβ”€β”€ docs/                # User guides and documentation
β”‚   β”œβ”€β”€ app.py               # Bootstrap & QApplication
β”‚   β”œβ”€β”€ config.py            # TOML Configuration
β”‚   β”œβ”€β”€ db/                  # Link graph & layout engine
β”‚   β”œβ”€β”€ dialogs/             # Dialogs (vault, note, settings, conflict)
β”‚   β”œβ”€β”€ editor/              # Find/Replace, syntax highlight, wiki-link
β”‚   β”œβ”€β”€ literature/          # Papis bridge & BibTeX export
β”‚   β”œβ”€β”€ pdf/                 # PDF reader & annotations
β”‚   β”œβ”€β”€ search/              # Global vault search
β”‚   β”œβ”€β”€ sync/                # Git engine
β”‚   └── ui/                  # Main window, tabs, sidebar, graph
β”œβ”€β”€ tests/                   # Pytest test suite
└── pyproject.toml

Contribution

Contributions are welcome! Check Issues for a list of things to work on, or open a new issue to report a bug or suggest a feature.

# Setup development environment
pip install -e ".[all,dev]"

# Run tests
pytest -v
mypy .

# Linting
ruff check .

Author

Created by lilamr.

ko-fi


License

MIT License β€” free to use, modify, and distribute.


Built with PySide6 Β· PyMuPDF Β· GitPython Β· NetworkX Β· Papis

About

A desktop application for managing literature notes in an integrated way.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages