DavidAnson / vscode-markdownlint

Markdown linting and style checking for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint
MIT License
894 stars 166 forks source link

Globally installed node modules (markdown-it plugins / custom rules) not found #302

Closed skwde closed 9 months ago

skwde commented 9 months ago

Since Admonitions are not supported (https://github.com/DavidAnson/markdownlint/issues/207, https://github.com/DavidAnson/markdownlint/issues/512) one needs to resort to plugins.

I globally installed the plugin markdown-it-admon (https://github.com/commenthol/markdown-it-admon) via

npm install -g markdown-it-admon

which installed to

$ npm list -g
~/.config/nvm/versions/node/v18.12.1/lib
├── markdown-it-admon@1.0.0

Next I specify `.markdownlint-cli2.yaml

markdownItPlugins:
  -
    - "markdown-it-admon"

But this merely results in the error

[15:31:22] ERROR: Exception while linting with markdownlint-cli2:
AggregateError: Unable to require or import module 'markdown-it-admon'.
    at w (~/.vscode/extensions/davidanson.vscode-markdownlint-0.51.0/bundle.js:37:6909)
    at async Promise.all (index 0)
    at async A (~/.vscode/extensions/davidanson.vscode-markdownlint-0.51.0/bundle.js:37:7092)
    at async Promise.all (index 1)
    at async L (~/.vscode/extensions/davidanson.vscode-markdownlint-0.51.0/bundle.js:37:9738)
    at async D (~/.vscode/extensions/davidanson.vscode-markdownlint-0.51.0/bundle.js:37:14195)

A workaround is to use the absolute or relative path to the module directory, which in above case looks something like

markdownItPlugins:
  -
    - "~/.config/nvm/versions/node/v18.12.1/lib/node_modules/markdown-it-admon"

This however is not very portable.

Similarly for the use of custom rules

customRules:
  - markdownlint-rule-max-one-sentence-per-line

does not work, while

customRules:
  - ~/.config/nvm/versions/node/v18.12.1/lib/node_modules/markdownlint-rule-max-one-sentence-per-line

does.

So how do I make the extension aware of my plugin installations by no using something fairly machine specific like a path?

DavidAnson commented 9 months ago

Duplicate of #180