Skip to content

Commit

Permalink
feat(mdlint): Add Repo wide Markdown linting and vscode tasks. (#30)
Browse files Browse the repository at this point in the history
  • Loading branch information
stevenj authored Oct 3, 2023
1 parent 0c04f96 commit 27483ae
Show file tree
Hide file tree
Showing 19 changed files with 490 additions and 107 deletions.
14 changes: 14 additions & 0 deletions .github/workflows/markdown-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Markdown Check

on:
pull_request:
types:
- opened
- edited
- synchronize
- reopened

jobs:
build:
name: Check markdown files formatted consistently
uses: input-output-hk/catalyst-ci/.github/workflows/markdown-check.yml@master
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,4 @@ $RECYCLE.BIN/
!/.vscode/extensions.json
!/.vscode/launch.recommended.json
!/.vscode/settings.recommended.json
!/.vscode/tasks.recommended.json
27 changes: 27 additions & 0 deletions .markdownlint-cli2.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Markdown Lint Configuration.
// Do not change markdown lint configuration in individual files,
// except to disable rules which are causing false positives.
{
// Configures the markdownlint-cli2 tool only.
// For common markdownlint configuration which this tool also uses, see: ./.markdownlint.jsonc
"globs": [
"**/*.md"
],
"ignores": [],
// Set standard config options in `/.markdownlint.jsonc`
"config": {
"max-one-sentence-per-line": {
"ignored__words": [
"???+",
"???",
"!!!+",
"!!!"
]
}
},
"customRules": [
// For local development, this custom rule needs to be installed with:
// `npm install --no-package-lock --production markdownlint-rule-max-one-sentence-per-line`
"markdownlint-rule-max-one-sentence-per-line"
]
}
246 changes: 246 additions & 0 deletions .markdownlint.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
{
// markdownlint JSON(C) configuration for Catalyst Standards
// Do not individually set markdown lint rules in documents.
// It is permissable to disable a rule in a document if it is a false positive.
// Keep the scope of the lint disable to as small as possible.
// See: https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md
// Default state for all rules
"default": true,
// Path to configuration file to extend
"extends": null,
// MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time
"MD001": true,
// MD003/heading-style/header-style - Heading style
"MD003": {
// Heading style
"style": "atx"
},
// MD004/ul-style - Unordered list style
"MD004": {
// List style
"style": "asterisk"
},
// MD005/list-indent - Inconsistent indentation for list items at the same level
"MD005": true,
// MD006/ul-start-left - Consider starting bulleted lists at the beginning of the line
"MD006": true,
// MD007/ul-indent - Unordered list indentation
"MD007": {
// Spaces for indent
"indent": 2,
// Whether to indent the first level of the list
"start_indented": false,
// Spaces for first level indent (when start_indented is set)
"start_indent": 2
},
// MD009/no-trailing-spaces - Trailing spaces
"MD009": {
// Spaces for line break
"br_spaces": 2,
// Allow spaces for empty lines in list items
"list_item_empty_lines": false,
// Include unnecessary breaks
"strict": false
},
// MD010/no-hard-tabs - Hard tabs
"MD010": {
// Include code blocks
"code_blocks": true,
// Fenced code languages to ignore
"ignore_code_languages": [],
// Number of spaces for each hard tab
"spaces_per_tab": 1
},
// MD011/no-reversed-links - Reversed link syntax
"MD011": true,
// MD012/no-multiple-blanks - Multiple consecutive blank lines
"MD012": {
// Consecutive blank lines
"maximum": 1
},
// MD013/line-length - Line length
// Lines shouldn't be bigger than this.
// Use 1 sentence per line and they should never need to be.
// If 1 sentence is bigger than this rewrite it, its too long.
// If its complaining about embedded HTML, reformat it, or wrap it with an ignore.
// See: https://sembr.org/ for guidance on line wrapping.
"MD013": {
// Number of characters
// Sentences shouldn't have more than 25 words, this line length is
// approximately large enough for that. If your single sentence is
// bigger than this, consider rewording it, rather than line breaking it.
"line_length": 132,
// Number of characters for headings
"heading_line_length": 132,
// Number of characters for code blocks
"code_block_line_length": 132,
// Include code blocks
"code_blocks": true,
// Include tables
"tables": false,
// Include headings
"headings": true,
// Strict length checking
"strict": false,
// Stern length checking
"stern": true
},
// MD014/commands-show-output - Dollar signs used before commands without showing output
"MD014": true,
// MD018/no-missing-space-atx - No space after hash on atx style heading
"MD018": true,
// MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading
"MD019": true,
// MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading
"MD020": true,
// MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading
"MD021": true,
// MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines
"MD022": {
// Blank lines above heading
"lines_above": 1,
// Blank lines below heading
"lines_below": 1
},
// MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line
"MD023": true,
// MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
"MD024": {
// Only check sibling headings
"siblings_only": true
},
// MD025/single-title/single-h1 - Multiple top-level headings in the same document
"MD025": {
// Heading level
"level": 1,
// RegExp for matching title in front matter
"front_matter_title": "^\\s*title\\s*[:=]"
},
// MD026/no-trailing-punctuation - Trailing punctuation in heading
"MD026": {
// Punctuation characters
"punctuation": ".,;:!。,;:!"
},
// MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol
"MD027": true,
// MD028/no-blanks-blockquote - Blank line inside blockquote
"MD028": true,
// MD029/ol-prefix - Ordered list item prefix
"MD029": {
// List style
"style": "one_or_ordered"
},
// MD030/list-marker-space - Spaces after list markers
"MD030": {
// Spaces for single-line unordered list items
"ul_single": 1,
// Spaces for single-line ordered list items
"ol_single": 1,
// Spaces for multi-line unordered list items
"ul_multi": 1,
// Spaces for multi-line ordered list items
"ol_multi": 1
},
// MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines
"MD031": {
// Include list items
"list_items": true
},
// MD032/blanks-around-lists - Lists should be surrounded by blank lines
"MD032": true,
// MD033/no-inline-html - Inline HTML
"MD033": {
// Allowed elements
"allowed_elements": []
},
// MD034/no-bare-urls - Bare URL used
"MD034": true,
// MD035/hr-style - Horizontal rule style
"MD035": {
// Horizontal rule style
"style": "---"
},
// MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading
"MD036": {
// Punctuation characters
"punctuation": ".,;:!?。,;:!?"
},
// MD037/no-space-in-emphasis - Spaces inside emphasis markers
"MD037": true,
// MD038/no-space-in-code - Spaces inside code span elements
"MD038": true,
// MD039/no-space-in-links - Spaces inside link text
"MD039": true,
// MD040/fenced-code-language - Fenced code blocks should have a language specified
"MD040": {
// List of languages
"allowed_languages": [],
// Require language only
"language_only": false
},
// MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading
"MD041": {
// Heading level
"level": 1,
// RegExp for matching title in front matter
"front_matter_title": "^\\s*title\\s*[:=]"
},
// MD042/no-empty-links - No empty links
"MD042": true,
// MD043/required-headings/required-headers - Required heading structure
"MD043": {
// List of headings
"headings": [
"+"
],
// List of headings
"headers": [],
// Match case of headings
"match_case": false
},
// MD044/proper-names - Proper names should have the correct capitalization
"MD044": {
// List of proper names
"names": [],
// Include code blocks
"code_blocks": true,
// Include HTML elements
"html_elements": true
},
// MD045/no-alt-text - Images should have alternate text (alt text)
"MD045": true,
// MD046/code-block-style - Code block style
// Code Blocks are used by Admonitions and need to be indented.
// Actual code should be fenced, this can;t be enforced by mdlint.
"MD046": {
// Block style
"style": "consistent"
},
// MD047/single-trailing-newline - Files should end with a single newline character
"MD047": true,
// Code fences should be backtick style.
"MD048": {
"style": "backtick"
},
// MD049/emphasis-style - Emphasis style should be consistent
"MD049": {
// Emphasis style
"style": "asterisk"
},
// MD050/strong-style - Strong style should be consistent
"MD050": {
// Strong style
"style": "asterisk"
},
// MD051/link-fragments - Link fragments should be valid
"MD051": true,
// MD052/reference-links-images - Reference links and images should use a label that is defined
"MD052": true,
// MD053/link-image-reference-definitions - Link and image reference definitions should be needed
"MD053": {
// Ignored definitions
"ignored_definitions": [
"//"
]
}
}
2 changes: 2 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
"vivaxy.vscode-conventional-commits",
"streetsidesoftware.code-spell-checker",
"DavidAnson.vscode-markdownlint",
"yzhang.markdown-all-in-one",
"bierner.markdown-preview-github-styles",
"Dart-Code.dart-code",
"Dart-Code.flutter"
]
Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.recommended.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,6 @@
"backend",
"backend-lib"
],
"conventionalCommits.gitmoji": false
"conventionalCommits.gitmoji": false,
"markdown.extension.toc.unorderedList.marker": "*"
}
43 changes: 43 additions & 0 deletions .vscode/tasks.recommended.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "CI - Recursive Markdown Lint - Check",
"type": "shell",
"command": "earthly -P +markdown-check",
"problemMatcher": {
"owner": "markdown-check",
"pattern": {
"regexp": "(\\S+):(\\d+):(\\d+)\\s(.+)",
"file": 1,
"line": 2,
"column": 3,
"message": 4
}
},
"group": {
"kind": "build",
"isDefault": false
}
},
{
"label": "CI - Recursive Markdown Lint - Fix",
"type": "shell",
"command": "earthly -P +markdown-check-fix",
"problemMatcher": {
"owner": "markdown-check",
"pattern": {
"regexp": "(\\S+):(\\d+):(\\d+)\\s(.+)",
"file": 1,
"line": 2,
"column": 3,
"message": 4
}
},
"group": {
"kind": "build",
"isDefault": false
}
}
]
}
Loading

0 comments on commit 27483ae

Please sign in to comment.