MCPcopy
hub / github.com/platers/obsidian-linter

github.com/platers/obsidian-linter @1.32.0 sqlite

repository ↗ · DeepWiki ↗ · release 1.32.0 ↗
1,156 symbols 2,228 edges 216 files 18 documented · 2%
README

Obsidian Linter

Build Downloads

This Obsidian plugin formats and styles your notes with a focus on configurability and extensibility. Rules can be toggled and configured in the settings. The main documentation on rules and other things are located on the wiki. Below is a quick run down of some reference links to the rules that exist and how to install the Linter.

Demo

Rules

Documentation for all rules can be found on the wiki. The docs are updated before the plugin is released, so they may not be completely accurate.

Each rule is its own set of logic and is designed to be run independently. This means that enabling certain rules together could cause undesired results. One such case would be using "Paragraph blank lines" with "Two Spaces Between Lines with Content". These two rules have some overlap in what they target to change which results in undesired or unexpected results since together they work differently than if they were run by themselves.

YAML rules

Heading rules

Footnote rules

Content rules

Spacing rules

Paste rules

Installing

As of version 0.9.7 of Obsidian, this plugin is available to be installed directly from within the app. The plugin can be found in the Community Plugins directory which can be accessed from the Settings pane under Third Party Plugins. The plugin is called Linter.

Manual installation

  1. Download the latest release
  2. Extract the obsidian-linter folder from the zip to your vault's plugins folder: <vault>/.obsidian/plugins/
    Note: On some machines the .obsidian folder may be hidden. On MacOS you should be able to press Command+Shift+Dot to show the folder in Finder.
  3. Reload Obsidian
  4. If prompted about Safe Mode, you can disable safe mode and enable the plugin.

How You Can Help

Contributions are welcome and appreciated. You can help in any of the following ways:

No repo setup required: - Reporting a bug - Requesting a feature - Suggesting documentation

Varying repo and development setup required: - Updating or adding documentation - Translating the plugin into a new language - Fixing a bug - Adding a new rule

Extension points exported contracts — how you extend this code

LinterSettings (Interface)
(no doc)
src/settings-data.ts
YamlProperties (Interface)
(no doc)
src/typings/yaml.d.ts
Key (Interface)
(no doc)
src/typings/yaml.d.ts
YamlCSTTokens (Interface)
(no doc)
src/typings/yaml.d.ts
YamlNode (Interface)
(no doc)
src/typings/yaml.d.ts
ObsidianCommandInterface (Interface)
(no doc)
src/typings/obsidian-ex.d.ts

Core symbols most depended-on inside this repo

getTextInLanguage
called by 172
src/lang/helpers.ts
saveSettings
called by 49
src/main.ts
setValue
called by 30
src/option.ts
onChange
called by 24
src/rules/header-increment.ts
replaceTextBetweenStartAndEndWithNewValue
called by 21
src/utils/strings.ts
getPositions
called by 21
src/utils/mdast.ts
setYamlSection
called by 19
src/utils/yaml.ts
getName
called by 17
src/rules.ts

Shape

Method 554
Class 359
Function 215
Enum 14
Interface 14

Languages

TypeScript100%

Modules by API surface

src/rules/rule-builder.ts44 symbols
src/main.ts44 symbols
src/utils/mdast.ts40 symbols
src/option.ts39 symbols
src/utils/yaml.ts26 symbols
src/utils/strings.ts23 symbols
src/rules.ts18 symbols
src/typings/obsidian-ex.d.ts17 symbols
__integration__/main.test.ts17 symbols
src/ui/suggesters/suggest.ts14 symbols
src/translation-helper.ts14 symbols
src/rules/yaml-timestamp.ts14 symbols

Dependencies from manifests, versioned

@babel/core7.24.0 · 1×
@babel/plugin-proposal-decorators7.24.0 · 1×
@babel/plugin-transform-class-properties7.23.3 · 1×
@babel/plugin-transform-private-methods7.23.3 · 1×
@babel/preset-env7.24.0 · 1×
@babel/preset-typescript7.18.6 · 1×
@codemirror/view6.33.0 · 1×
@jest/types29.5.0 · 1×
@popperjs/core2.11.6 · 1×
@types/async-lock1.4.2 · 1×
@types/diff5.0.9 · 1×
@types/diff-match-patch1.0.32 · 1×

For agents

$ claude mcp add obsidian-linter \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact