Skip to content

Proposal: introduce Markdown linter #1193

@Bugg4

Description

@Bugg4

This is a proposal to introduce a config file to automate the checks for common style and formatting consistency errors.
I opted for remark and its lint plugins, because they seem to offer a good balance between existing plugins variety and ease of extensibility.

The idea for an initial config would be the following:
.remarkrc.json

{
  "plugins": {
    "remark-preset-lint-recommended": true,
    "remark-preset-lint-consistent": true,
    "remark-lint-heading-style": "atx",
    "remark-lint-table-cell-padding": {
      "style": "padded"
    },
    "remark-lint-table-pipes": true,
    "remark-frontmatter": {
      "type": "yaml",
      "fence": "---"
    },
    "remark-lint-heading-capitalization": {
      "allowFirstWordLowerCase": true,
      "lowerCaseWords": [
        "swww",
        "uwsm",
        "wallrizz",
        "waypaper",
        "hyprpaper",
        "swaybg",
        "wpaperd",
        "mpvpaper",
        "clipman",
        "cliphist",
        "copyq",
        "bemenu",
        "fuzzel",
        "tofi",
        "clipse",
        "wl-clip-persist"
      ]
    },
    "./remark-lint-word-case.js": {
      "words": [
        "AZERTY",
        "Hyprland",
        "QUERTY",
        "RegEx",
        "Wayland",
        "XWayland",
        "swww"
      ],
      "ignore-urls": true,
      "ignore-code": true
    }
  }
}

A short description for what each plugin does, and a link to its individual repo can be be found here.
In short as of now I added plugins for:

  • checking adhereance to recommanded style guide for markdown
  • Add ability to parse frontmatter
  • Issue warnings for all headings that don't follow title case (with configurable exceptions )
  • Issue warnigns whenever a word doesn't respect the specified capitalization (useful for program / app / protocols and other technical names / jargon)

The intention is to add a lint directory to the root of the repo to house the both the config, and the package.json that installs remark and its deps + utility scripts

If this sounds good, I'll draft a PR :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions