• Stars
    star
    119
  • Rank 296,207 (Top 6 %)
  • Language
    JavaScript
  • Created almost 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Anno is a thin user interface on Markdown files for easy and local text editing, organization, and portability.

Anno - simple, local, portable note-taking software

Why use Anno?

There are many note-taking apps. How is Anno different? Anno is a local, browser-based user interface on top of Markdown files in a given directory. It makes writing, organizing, and searching through those files easy. That's it. There are many benefits to this approach:

  • Own your data. Writing things down is an investment in your future. Rather than have your notes siloed by a company in a possibly proprietary text format, your data lives in plaintext files on your machine. If you use Anno for a while and then stop, no worries. Your data, Markdown files, is human-readable, easily portable to other tools, and programmatically convertable to other formats (e.g. see Pandoc).

  • Organize notes naturally. Most note-taking apps create a new organizational system for your notes that is distinct from your filesystem. This forces you to store your notes separately from related files. Anno only works with .anno.md files in the current working directory, allowing you to organize your notes using your filesystem. Furthermore, all files with labels in the YAML-style front matter can be viewed in their respective collections, making intra-directory organization easy without touching your underlying directory structure.

  • Use other software. Anno adheres to the Unix philosophy of modular software that is simple, short, clear, and extensible. For example, data redundancy for text files is a solved problem, and Anno does not control users through product integration. Want cloud backups? Push to a git server or work out of a directory with file syncing. Want security? Encrypt the directory. Anno focuses on easy Markdown editing and organization.

  • Stay local, work fast. Do you want to work on a plane or a train? Do you want a fast, simple user interface that isn't pinging a remote server or downloading large front-end interfaces? Anno is fastโ€”it uses a small Flask server and one ~100 line JavaScript fileโ€”and can be used anywhere.

What Anno supports

Anno provides a user interface for the most common and/or time-consuming text-editing operations.

Anno supports:

  • Previewing changes as you write.
  • Writing equations using Katex.
  • Searching through files.
  • Organizing notes in a directory with labels.
  • Adding images to notes.
  • Syncing Markdown front matter (title and date) into consistently formatted filenames.
  • Converting notes into LaTeX PDFs for easy printing and sharing.

Installation

From PyPI

Anno is available as a PyPI package. To install, run

pip install anno

From source

You can also install the current development version by building and installing:

git clone [email protected]:gwgundersen/anno.git
cd anno
python setup.py sdist
pip install dist/anno-<VERSION>.tar.gz

Tex

To use Katex or the PDF converter, you need Pandoc and the pdflatex command. Otherwise, Anno falls back on python-markdown2.

Usage

To use Anno, type anno in the desired directory, e.g.

cd ~/myproject
anno

and Anno will start a web server on port 5000 and open the app with your default browser. The port can be changed with the --port flag, e.g.

anno --port=4000

If you would prefer Anno did not open a new browser tab, pass the --nopen flag:

anno --nopen

You can customize Anno using an .anno_config.py file. To generate this file, run

anno --generate-config

This allows for customizations such as changing how dates are rendered, how filenames are constructed, and which file extensions are used by default.

More Repositories

1

bocd

Python implementation of Bayesian online changepoint detection
Python
84
star
2

blog-theme

Files needed to replicate my research blog
CSS
66
star
3

ml

A didactic Python library with well-commented and annotated implementations of machine learning algorithms.
Python
50
star
4

random-fourier-features

Code for random Fourier features based on Rahimi and Recht's 2007 paper.
Python
44
star
5

dpcca

Code for the paper "End-to-end training of deep probabilistic CCA on paired biomedical observations".
Python
24
star
6

rflvm

Random feature latent variable models in Python
Python
21
star
7

randomized-svd

Python implementation of randomized SVD
Python
18
star
8

gp

Simplified, readable grep with contextual excludes
Shell
7
star
9

multivariate-t-distribution

A Python implementation of multivariate t-distributed random variables.
Python
6
star
10

bayesian-linear-regression

Bayesian linear regression.
Python
5
star
11

fbm

Radford Neal's Software for flexible Bayesian modelling and Markov chain sampling
C
4
star
12

codebook

A small API for converting Fragile Families questionnaire codes into question metadata.
Python
3
star
13

databases

Stanford's Lagunita course on databases.
XQuery
3
star
14

gloss

A platform for taking notes, reviewing papers and books, tracking open questions and new ideas, remembering TODOs, and blogging.
CSS
2
star
15

fortunai

fortunai is a command-line tool that generates AI-powered fortunes
Python
2
star
16

mitx-6.00x

Coursework for MITx's 6.00x Introduction to Computer Science, Fall 2012.
Python
2
star
17

machine-learning

Stanford's Coursera course on machine learning.
MATLAB
2
star