linky-note
🤔 Description
This project provide a markdown to markdown converter that adds a Bi-Directional Link Section at the end of each markdown files that is converted. It is heavily inspired by the note-link-janitor
The project also provide a pre-commit hook so you can easily integrate it within your own projects easily
It relies heavily on the Marko python package that is the only Markdown Parser with a Markdown Renderer that I know of.
💭 Why
I believe a great amount of information can be extracted from collaborative notes if we take time to structure them correctly.
I wanted:
- To make collaborative notes
- To organize the notes in a Roam like manner
- Everyone to be able to navigate through the notes without installing anything
- This system to be easily adopted by a software engineering team.
Using git and this converter as a pre-commit, I can easily do all of this ! 🚀
Take a look at the example available in examples/adr
✨ Features
- Understands both Wikilinks and Markdown links
- Can use a reference system based on filename as unique Keys or titles as unique key.
- Can convert wikilinks to Markdown links and reciprocally
- Export the backlinks in the markdown itself or in frontmatter
- In markdown directly : examples/adr
- In frontmatter : tests/e2e/frontmatter/data/adr
- All this, entirely configurable through a simple stepper using
linky-note init
command
Limitations: If using wikilinks, a filename should be the same as it's title
🏃 Getting Started
Installation as a python package with pip
Considering you already have python available. You can simply add th
pip install --user linky-note
Then you can see all the option of the CLI using
linky-note --help
It is advised to start by configuring the CLI using
linky-note init
You can then apply the conversion
linky-note apply <INPUT_DIR> --output-dir <OUTPUT_DIR>
If no OUTPUT_DIR
is given, it will overwrite the files in INPUT_DIR
Installation as a pre-commit hook
This pre-commit hook use the [pre-commit](https://pre-commit.com) tool that you will need to install.Add the following line to your pre-commit configuration (.pre-commit-config.yaml
) at the root of your
repository.
repos:
- repo: https://github.com/jb-delafosse/linky-note
rev: v0.4.4
hooks:
- id: linky-note
args: ['directory-containing-my-markdown']
and install the hook using pre-commit install
You should also run linky-note init
at the root of your repo to configure linky-note
🛡 License
This project is licensed under the terms of the MIT
license. See LICENSE for more details.
📃 Citation
@misc{linky-note,
author = {jb-delafosse},
title = {Awesome `linky-note` is a Python cli/package created with https://github.com/TezRomacH/python-package-template},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/jb-delafosse/linky-note}}
}
Credits
This project was generated with python-package-template
.
It is heavily inspired by the note-link-janitor