Skip to content

Commit

Permalink
lint: WIP markdown support (#12)
Browse files Browse the repository at this point in the history
* lint: WIP markdown support

Signed-off-by: William Woodruff <[email protected]>

* configs: mostly default markdownlint config

Signed-off-by: William Woodruff <[email protected]>

* lint: hack the markdownlint config into place

Signed-off-by: William Woodruff <[email protected]>

* workflows/lint: hackety hack

Signed-off-by: William Woodruff <[email protected]>

* lint: hackety hack

Signed-off-by: William Woodruff <[email protected]>

* lint: hackety hack

Signed-off-by: William Woodruff <[email protected]>

* checkout org repo

* fix env syntax

* fix path

* hardcode ref

* fix repo

* try workflow_sha again

* default to main

* mv org repo

* markdownlint: remove MD043 settings

Signed-off-by: William Woodruff <[email protected]>

* lint: avoid a mv

Signed-off-by: William Woodruff <[email protected]>

* lint: avoid a full checkout

Just grab the file from GH's CDN.

Signed-off-by: William Woodruff <[email protected]>

---------

Signed-off-by: William Woodruff <[email protected]>
Co-authored-by: James Olds <[email protected]>
  • Loading branch information
woodruffw and oldsj authored Jan 31, 2023
1 parent 1ffddb3 commit d2a1f53
Show file tree
Hide file tree
Showing 2 changed files with 256 additions and 0 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ on:
default: false
required: false
type: boolean
org-repo-ref:
description: "the ref: branch or commit to use of the org repo"
default: "main"
required: false
type: string

env:
# Rust: GitHub Actions supports color codes, so always enable them.
Expand All @@ -52,6 +57,9 @@ env:
# the subset of development dependencies installed.
INSTALL_EXTRA: lint

ORG_REPO: trailofbits/.github
ORG_REPO_REF: ${{ inputs.org-repo-ref }}

jobs:
lint:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -123,6 +131,23 @@ jobs:
version: "${{ inputs.golangci-lint-version }}"
working-directory: "${{ inputs.directory }}"

# Markdown
- name: download markdownlint config
if: inputs.language == 'markdown'
run: |
curl \
https://raw.githubusercontent.com/${{ env.ORG_REPO }}/${{ env.ORG_REPO_REF }}/configs/default.markdownlint.jsonc \
> /tmp/default.markdownlint.jsonc
- name: run markdownlint-cli2
if: inputs.language == 'markdown'
uses: DavidAnson/markdownlint-cli2-action@v9
with:
command: config
globs: |
/tmp/default.markdownlint.jsonc
**/*.md
# Make
- name: run lint (make)
if: (inputs.language == 'python' && inputs.type == '') || inputs.type == 'make'
Expand Down
231 changes: 231 additions & 0 deletions configs/default.markdownlint.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
{
// Default state for all rules
"default": true,
// MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time
"MD001": true,
// MD002/first-heading-h1/first-header-h1 - First heading should be a top-level heading
"MD002": {
// Heading level
"level": 1
},
// 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": [
"make",
"makefile"
],
// 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
"MD013": {
// Number of characters
"line_length": 80,
// Number of characters for headings
"heading_line_length": 80,
// Number of characters for code blocks
"code_block_line_length": 80,
// Include code blocks
"code_blocks": true,
// Include tables
"tables": true,
// Include headings
"headings": true,
// Include headings
"headers": true,
// Strict length checking
"strict": false,
// Stern length checking
"stern": false
},
// 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
"allow_different_nesting": false,
// Only check sibling headings
"siblings_only": false
},
// 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 not allowed at end of headings
"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": "consistent"
},
// 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,
// 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
"MD046": {
// Block style
"style": "consistent"
},
// MD047/single-trailing-newline - Files should end with a single newline character
"MD047": true,
// MD048/code-fence-style - Code fence style
"MD048": {
// Code fence style
"style": "consistent"
},
// MD049/emphasis-style - Emphasis style should be consistent
"MD049": {
// Emphasis style should be consistent
"style": "consistent"
},
// MD050/strong-style - Strong style should be consistent
"MD050": {
// Strong style should be consistent
"style": "consistent"
},
// 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": [
"//"
]
}
}

0 comments on commit d2a1f53

Please sign in to comment.