Skip to content

Commit

Permalink
feat: add markdown lint (#509)
Browse files Browse the repository at this point in the history
* feat: add markdown lint

1. Add [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli)
2. Add command: `yarn lint:md`
3. Add markdown format check in PR
4. Modify the docs to meet formatting requirements

Config template: <https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.jsonc>

Detailed rules refer to <https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md>

* docs: change the spaces in the filename to `-`

* fix: build failed
  • Loading branch information
Selflocking authored Jul 9, 2023
1 parent f778876 commit 8051bb2
Show file tree
Hide file tree
Showing 54 changed files with 914 additions and 487 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/markdownlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Markdown Lint

on: [pull_request]

jobs:
markdownlint:
name: Markdown Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: '18.x'

- name: Install markdownlint
run: npm install -g markdownlint-cli

- name: Run markdownlint
- run: markdownlint 'docs/**/*.md*' --config .markdownlint.jsonc
8 changes: 5 additions & 3 deletions .github/workflows/pr_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:
with:
node-version: ${{ matrix.node-version }}

- name: Init Website
run: |
yarn install && yarn build --locale en
- name: Install dependencies
run: yarn install

- name: Build website
run: yarn build --locale en
199 changes: 199 additions & 0 deletions .markdownlint.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
// Template: https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.jsonc
// Detailed rules refer to 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,
// MD002/first-heading-h1/first-header-h1 - First heading should be a top-level heading
"MD002": false,
// MD003/heading-style/header-style - Heading style
"MD003": {
// Heading style
"style": "consistent"
},
// MD004/ul-style - Unordered list style
"MD004": {
// List style
"style": "consistent"
},
// 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": false,
// 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": 4
},
// 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": false,
// MD014/commands-show-output - Dollar signs used before commands without showing output
"MD014": false,
// 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": true,
// 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 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": false,
// 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": false,
// 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": false,
// MD044/proper-names - Proper names should have the correct capitalization
"MD044": false,
// 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": [
"//"
]
}
}
4 changes: 2 additions & 2 deletions docs/application/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ While this organization is named ```my_organization```, so I choose it in drop-d

![Select Organization](/img/application/config/selectorganization.png)

Then I want my users can use Casdoor to complete authentication when they are signing up, so I fill the redirect url here as **https://my-site-url.com/callback**
Then I want my users can use Casdoor to complete authentication when they are signing up, so I fill the redirect url here as **<https://my-site-url.com/callback>**

:::caution

Expand All @@ -42,7 +42,7 @@ If I want the authentication progress to work, the detailed progress should be l

Users send a request to Casdoor, Casdoor use the `Client ID` and `Client Secret` to get authentication from GitHub, Google or other providers.

If the authentication success, GitHub callback to Casdoor to tell Casdoor authentication success, so the GitHub authorization callback URL should be my Casdoor callback URL which is **http://your-casdoor-url.com/callback**, then Casdoor tells the application authentication success which means the Casdoor callback URL should be my application callback URL, that is **http://your-site-url.com/callback**.
If the authentication success, GitHub callback to Casdoor to tell Casdoor authentication success, so the GitHub authorization callback URL should be my Casdoor callback URL which is **<http://your-casdoor-url.com/callback>**, then Casdoor tells the application authentication success which means the Casdoor callback URL should be my application callback URL, that is **<http://your-site-url.com/callback>**.

:::

Expand Down
2 changes: 1 addition & 1 deletion docs/application/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ If you want to use Casdoor to provide login service for your web Web APPs, you c

Users can access all applications in their organizations without login twice.

The application configuration is very flexible and simple. You can set whether to allow password login or third-party login, configure the third-party applications you want users to log in, and you can even customize the signup items of the application, etc.
The application configuration is very flexible and simple. You can set whether to allow password login or third-party login, configure the third-party applications you want users to log in, and you can even customize the signup items of the application, etc.

In this chapter you will learn how to start an application of your own, everything from scratch.

Expand Down
5 changes: 2 additions & 3 deletions docs/application/specify-login-organization.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@ keywords: [UI, login, application, organization]
authors: [leo220yuyaodog]
---

Here will show you how to enable specify login organization page for the application.
Here will show you how to enable specify login organization page for the application.

For example, endpoint `/login` is default sign in to accounts belonging to the **built-in** organization. You can enable the specify login organization page in
**app-built-in** application that belong to **built-in** organization. So that the user can select an organization to login. After the user selects the organization, it will redirect to `/login/<organization>`.


## Config

In the application edit page, you can see the `Org celect mode` config. You can select the mode in the dropdown list.
Expand All @@ -27,4 +26,4 @@ In the application edit page, you can see the `Org celect mode` config. You can

:::info
The organization select page only shows when the route is `/login`, `<organization>/login`. That means the application should be set as **default application** in the organization or the app-built-in.
:::
:::
2 changes: 1 addition & 1 deletion docs/application/tags.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ In the application edit page, you can see the `Tags` config and add tags here.

Here is a video show you how applicaiton tags work (download to see it):

<video src="/video/application/application_tags.mp4" controls="controls" width="100%"></video>
<video src="/video/application/application_tags.mp4" controls="controls" width="100%"></video>
Loading

0 comments on commit 8051bb2

Please sign in to comment.