Skip to content

Neorg add-on to streamline organising your life in plain-text.

License

Notifications You must be signed in to change notification settings

juniorsundar/neorg-extras

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NeorgExtras

Neorg add-on to streamline organising your life in plain-text.


System Prerequisites

Installation

This works alongside your Neorg installation.

lazy.nvim

return {
    "nvim-neorg/neorg",
    dependencies = {
        {
            "juniorsundar/neorg-extras",
            -- tag = "*" -- Always a safe bet to track current latest release
        },
        -- FOR Neorg-Roam Features
        --- OPTION 1: Telescope
        "nvim-telescope/telescope.nvim",
        "nvim-lua/plenary.nvim",
        -- OR OPTION 2: Fzf-Lua
        "ibhagwan/fzf-lua",
        -- OR OPTION 3: Snacks
        "folke/snacks.nvim"
    },
    config = function()
        require('neorg').setup({
            load = {
                -- MANDATORY
                ["external.many-mans"] = {
                    config = {
                        metadata_fold = true, -- If want @data property ... @end to fold
                        code_fold = true, -- If want @code ... @end to fold
                    }
                },
                -- OPTIONAL
                ["external.agenda"] = {
                    config = {
                        workspace = nil, -- or set to "tasks_workspace" to limit agenda search to just that workspace
                    }
                },
                ["external.roam"] = {
                    config = {
                        fuzzy_finder = "Telescope", -- OR "Fzf" OR "Snacks". Defaults to "Telescope"
                        fuzzy_backlinks = false, -- Set to "true" for backlinks in fuzzy finder instead of buffer
                        roam_base_directory = "", -- Directory in current workspace to store roam nodes
                        node_name_randomiser = false, -- Tokenise node name suffix for more randomisation
                        node_name_snake_case = false, -- snake_case the names if node_name_randomiser = false
                    }
                },
            }
        })

        -- I add this line here because I want to open 
        -- up the default Neorg workspace whenever a Neovim instance
        -- is started
        require("neorg.core").modules.get_module("core.dirman").set_workspace("default") 
    end
}

Others

I don't use any other plugin managers. I haven't tested this with any others. If anyone happens to test it with packer, rocks.nvim, etc., please feel free to create a pull request.

At the moment, this feature relies heavily on the a 3rd-Party Fuzzy Finder like (Snacks.picker, Telescope or Fzf-Lua). I have plans to liberate this plugin from this need, but that is something way down in the future after I have implemented the required basic features. So, for the moment, users of this plugin will have to bear with this dependency.

Also note that there are a lot of similarities in this plugin with nvim-neorg/neorg-telescope. It implements these features much better than I do, and more cleanly that I do. If you are comfortable using that, then you can install it along side this plugin and simply skip the Neorg-Roam feature-set.

In order to organise your life in plain-text, you need to be able to open up your backlog of work... right? Neorg devs have a GTD system in their pipeline, but to create anything great you need to invest a lot of time. I am an inherently impatient person, so I decided to build something temporary that I can use in the meantime.

Rationale

I don't want to deviate excessively and create new grammar to accommodate my GTD because if, in the future, Neorg gains its own builtin GTD feature, I want to minimise issues of backwards compatibility. The last thing I want is to go through all my old files and remove artifacts that will interfere with the new and definitely superior GTD implementation.

Views

A new buffer that contains all the tasks in your workspace. Note that it will only consider tasks that are prefixed with a heading tag:

* ( ) This task is recoginsed

- ( ) This task is not ... yet

So if you are someone who prefers to use a bullet based task listing strategy, this may not be the plugin for you.

To-Do

Primary

  • Deadline and time based scheduling
  • Sorting by dates, tags, etc.
    • Sorting by date and priority (default)
    • Sorting by tags
  • Better UI for property tag population (especially dates and times)
  • Wrapper around task changer to auto-generate property metadata
  • Alternate views (open to discussion)
  • Permalinking for Neorg-Roam
  • Better UI for Backlinks (Telescope/Fuzzy finder is too distracting)

Secondary

  • Generating graphs for organising tasks
  • Kanban?

About

Neorg add-on to streamline organising your life in plain-text.

Resources

License

Stars

Watchers

Forks

Packages

No packages published