Skip to content

gmcusaro/ma.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 

Repository files navigation

Ma.nvim

Image

A minimal knowledge layer for Markdown in Neovim.

Ma.nvim lets structure emerge from filenames rather than directories. Notes live in a flat filesystem, while hierarchy is inferred through dot-separated segments and hyphenated words.

Inspired by Dendron and Obsidian, Ma provides vault-scoped navigation and safe file operations — without imposing folder-based structure.

Why Ma?

Ma (間) is a Japanese concept often translated as interval or space between.

It does not mean emptiness as absence. It refers to meaningful space — the gap that makes relation possible.

In Ma.nvim, structure is not imposed through folders. It emerges in the intervals:

  • Dots define hierarchy.
  • Hyphens define words.
  • Meaning lives in the space between segments.

Ma also implies time — the pause between actions, the space we take to write, reflect, and connect ideas in plain text.

Getting Started

Required dependencies

Optional dependencies

Installation

I recommend pinning to the latest release tag, e.g. using lazy.nvim

{
    'gmcusaro/ma.nvim', version = '*',
    dependencies = {
        'nvim-lua/plenary.nvim',
        'nvim-telescope/telescope.nvim',
        -- optional but recommended
        { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
        { "nvim-tree/nvim-web-devicons", otps = {} }
    }
}

Setup

Ma need a vault - a root folder containing Markdown notes.

opts = {
    vaults = {
        { name = "My brain", path ="~/My_brain"}
    }
}

Usage

Run :Ma to parse your notes by filename segments (. for hierarchy, - for words) and explore them through Telescope. Read docs

Ma setup structure

require('ma'.setup({
    vaults = {
        -- If nil or {}, it uses the current working directory as the root. By default the "active" vault is the first.
    },
    respect_gitignore = true,
    autochdir = "lcd",
    depth = nil,
    delete_to_trash = true,
    picker_actions = {
        { "c", "create" },
        { "r", "rename" },
        { "d", "delete" },
    },
    date_format_frontmatter = "%Y %b %d - %H:%M:%S",
    telescope = {},
    columns = { "git", "icons" },
    sort = { by = "name", order = "asc" },
    daily_notes = {
        date_format = nil, -- default "%Y.%b-%d"
        locale = nil, -- default current locale
    }
})

License

This package is licensed under the Apache License. See LICENSE for more information.

About

A minimal, relational approach to Markdown note management in Neovim.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages