Skip to content
github-actions[bot] edited this page Mar 28, 2024 · 485 revisions

Welcome to the Neorg wiki!

Want to know how to properly use Neorg? Your answers are contained here.

Using Neorg

Neorg depends on a number of other technologies, all of which have to be correctly configured to keep Neorg running smoothly. For some help on understanding how your terminal, Neovim, coloschemes, tree-sitter and more come together to produce your Neorg experience (or Neorg problems), see this document on understanding Neorg dependencies.

At first configuring Neorg might be rather scary. I have to define what modules I want to use in the require('neorg').setup() function? I don't even know what the default available values are! Don't worry, an installation guide is present here, so go ahead and read it!

Contributing to Neorg

Neorg is a very big and powerful tool behind the scenes - way bigger than it may initially seem. Modules are its core foundation, and building modules is like building lego bricks to form a massive structure. There's an in-the-works tutorial dedicated to making modules right here!

Module naming convention

Neorg provides default modules, and users can extend Neorg by creating community modules. We agreed on a module naming convention, and it should be used as is. This convention should help users know at a glance what function the module serves in the grand scheme of things.

  • Core modules: core.*
  • Integrations with 3rd party software that are emdebbed in neorg: core.integrations.*
  • External modules: external.*
  • Integrations with 3rd party software that aren't emdebbed in neorg: external.integrations.*

Default Modules

Neorg comes with some default modules that will be automatically loaded if you require the core.defaults module:

Other Modules

Some modules are not included by default as they require some manual configuration or are merely extra bells and whistles and are not critical to editing .norg files. Below is a list of all modules that are not required by default:

  • core.concealer - Enhances the basic Neorg experience by using icons instead of text.
  • core.export - Exports Neorg documents into any other supported filetype.
  • core.export.markdown - Interface for core.export to allow exporting to markdown.
  • core.latex.renderer - An experimental module for inline rendering latex images.
  • core.manoeuvre - A Neorg module for moving around different elements up and down.
  • core.presenter - Neorg module to create gorgeous presentation slides.
  • core.summary - Creates links to all files in any workspace.
  • core.ui.calendar - Opens an interactive calendar for date-related tasks.

Developer modules

These are modules that are only meant for developers. They are generally required in other modules:

  • core.autocommands - Handles the creation and management of Neovim's autocommands.
  • core.clipboard - A module to manipulate and interact with the user's clipboard.
  • core.defaults - Metamodule for storing the most necessary modules.
  • core.fs - A cross-platform set of utilities to traverse filesystems.
  • core.highlights - Manages your highlight groups with this module.
  • core.integrations.nvim-cmp - A module for integrating nvim-cmp with Neorg.
  • core.integrations.nvim-compe - A module for integrating nvim-compe with Neorg.
  • core.integrations.treesitter - A module designed to integrate Treesitter into Neorg.
  • core.mode - Modes are a way of isolating different parts of Neorg based on the current mode.
  • core.neorgcmd - This module deals with handling everything related to the :Neorg command.
  • core.neorgcmd.commands.return - Return to last location before entering Neorg.
  • core.queries.native - TS wrapper in order to fetch nodes using a custom table.
  • core.scanner - This module is an implementation of a scanner that can be used anywhere TS can't be used.
  • core.storage - Deals with storing persistent data across Neorg sessions.
  • core.syntax - Handles interaction for syntax files for code blocks.
  • core.tempus - Parses and handles dates in Neorg.
  • core.ui - A set of public functions to help developers create and manage UI (selection popups, prompts...) in their modules.