diff --git a/.rumdl.toml b/.rumdl.toml new file mode 100644 index 000000000..c08422efd --- /dev/null +++ b/.rumdl.toml @@ -0,0 +1,76 @@ +# rumdl configuration file + +[global] +# disable = ["MD013", "MD033"] + +# List of rules to enable exclusively (replaces defaults; only these rules will run) +# enable = ["MD001", "MD003", "MD004"] + +# Additional rules to enable on top of defaults (additive, does not replace) +extend-enable = ["MD060", "MD063", "MD070", "MD073"] + +# Additional rules to disable on top of the disable list (additive) +# extend-disable = ["MD041"] + +# List of file/directory patterns to include for linting (if provided, only these will be linted) +# include = [ +# "docs/*.md", +# "src/**/*.md", +# "README.md" +# ] + +# List of file/directory patterns to exclude from linting +exclude = [ + ".git", + ".github", + "CHANGELOG.md", + "documentation", + "examples", + "shared", + "text-runner-cli", + "text-runner-engine", + "text-runner-features", + "textrun-action", + "textrun-extension", + "textrun-javascript", + "textrun-make", + "textrun-npm", + "textrun-repo", + "textrun-shell", + "textrun-workspace" +] + +# Respect .gitignore files when scanning directories (default: true) +respect-gitignore = true + +# Markdown flavor/dialect (uncomment to enable) +# Options: standard (default), gfm, commonmark, mkdocs, mdx, quarto +flavor = "gfm" + +# Rule-specific configurations (uncomment and modify as needed) + +# text-wrap +[MD013] +line-length = 80 +reflow = true # Enable automatic text reflow/wrapping +reflow-mode = "semantic-line-breaks" # Reflow mode: "default", "normalize", "sentence-per-line", or "semantic-line-breaks" (default: "default") +length-mode = "visual" # How to count line length: "visual", "chars", or "bytes" (default: "visual") +code-blocks = false # Exclude code blocks from line length check +tables = false # Exclude tables from line length check +# headings = true # Include headings in line length check + +[MD044] +names = ["rumdl", "Markdown"] # Proper names that should be capitalized correctly +# code-blocks = false # Check code blocks for proper names (default: false, skips code blocks) + +# format tables +[MD060] +enabled = true +style = "aligned-no-space" + +# Case style for headings +[MD063] +enabled = true +style = "sentence-case" +ignore-words = ["iPhone", "macOS", "GitHub", "JavaScript", "TypeScript"] +preserve-cased-words = true diff --git a/AGENTS.md b/AGENTS.md index dbcb31d88..04baef82f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,5 +1,5 @@ -Please read the [Developers Guide](documentation/DEVELOPMENT.md) and other files -in [documentation/](documentation/). +Please read the [Developers Guide](documentation/DEVELOPMENT.md) +and other files in [documentation/](documentation/). When you are done, please execute these tasks in the root folder: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7cab8ae43..e55034d37 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,8 +1,11 @@ # Contributing to Text-Runner -First and foremost, thank you! We appreciate every contribution no matter how -big or small. Your time is valuable and your support means a lot to us. +First and foremost, thank you! +We appreciate every contribution no matter how big or small. +Your time is valuable and your support means a lot to us. -If you have a question, want to share an idea, or report a problem please -[open an issue](https://github.com/kevgo/text-runner/issues/new). To get started -coding, please see our [developer guide](documentation/DEVELOPMENT.md). +If you have a question, want to share an idea, +or report a problem please +[open an issue](https://github.com/kevgo/text-runner/issues/new). +To get started coding, please see our +[developer guide](documentation/DEVELOPMENT.md). diff --git a/Makefile b/Makefile index ccdb3ed68..9b76c933f 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ doc: # runs the documentation tests env $(YARN_ARGS) yarn exec --silent -- turbo run doc $(TURBO_ARGS) fix: tools/rta@${RUN_THAT_APP_VERSION} # runs all auto-fixes - yarn exec --silent -- dprint fmt + yarn exec --silent -- rumdl fmt . yarn exec --silent -- sort-package-json --quiet env $(YARN_ARGS) yarn exec --silent -- turbo run fix $(TURBO_ARGS) tools/rta ghokin fmt replace text-runner-features diff --git a/README.md b/README.md index 692f3aa57..a6c44e91b 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,15 @@ -Text-Runner is a test framework for technical documentation. It helps keep -documentation up to date. An example is the text you are reading right now. +Text-Runner is a test framework for technical documentation. +It helps keep documentation up to date. +An example is the text you are reading right now. TextRunner verifies it for technical correctness. -As a fully programmable test framework, TextRunner can read and understand any -form of Markdown-formatted text in any human language as well as complex data in -tables, bullet point lists, and even images! +As a fully programmable test framework, +TextRunner can read and understand any form of Markdown-formatted text in any +human language as well as complex data in tables, bullet point lists, and even +images! ### For users @@ -33,9 +35,9 @@ tables, bullet point lists, and even images! ### Plugins -This monorepo contains a number of Text-Runner plugins that provide more -domain-specific functionality. You can think of these plugins as the "standard -library" of Text-Runner. +This monorepo contains a number of Text-Runner plugins +that provide more domain-specific functionality. +You can think of these plugins as the "standard library" of Text-Runner. - [repo](textrun-repo/): verify source code files - [workspace](textrun-workspace/): modify/verify workspace files diff --git a/dprint.json b/dprint.json index 1c0a956e1..401cb15c6 100644 --- a/dprint.json +++ b/dprint.json @@ -8,13 +8,6 @@ "text-runner-features", "tools" ], - "markdown": { - "lineWidth": 80, - "textWrap": "always" - }, - "plugins": [ - "https://plugins.dprint.dev/markdown-0.18.0.wasm", - "https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.0.wasm" - ], + "plugins": ["https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.0.wasm"], "yaml": {} } diff --git a/package.json b/package.json index 59f35fa3e..d1b6ae2fb 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "depcheck": "1.4.7", "dprint": "0.51.1", "lerna": "9.0.3", + "rumdl": "0.1.57", "sort-package-json": "3.6.0", "ts-json-schema-generator": "2.4.0", "turbo": "2.7.2", diff --git a/test/README.md b/test/README.md index d99f2d745..34bc80c6b 100644 --- a/test/README.md +++ b/test/README.md @@ -1,5 +1,6 @@ -This folder contains workspaces for end-to-end tests. The current ESM -implementation requires `text-runner` and `typescript` installed into a -`node_modules` folder. Since it takes too much time to `yarn install` this for -every end-to-end test, the workspaces in which tests happen are now part of the -Yarn multi-workspace setup in this monorepo. +This folder contains workspaces for end-to-end tests. +The current ESM implementation requires `text-runner` +and `typescript` installed into a `node_modules` folder. +Since it takes too much time to `yarn install` this for every end-to-end test, +the workspaces in which tests happen are now part of the Yarn multi-workspace +setup in this monorepo. diff --git a/yarn.lock b/yarn.lock index 3317ed55e..95152b923 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1241,6 +1241,41 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@rumdl/cli-darwin-arm64@0.1.57": + version "0.1.57" + resolved "https://registry.yarnpkg.com/@rumdl/cli-darwin-arm64/-/cli-darwin-arm64-0.1.57.tgz#cf619e913f8d98861ae5225c7d2756582bbf4fad" + integrity sha512-rpOU6odsCfJneakLGBthVwKDWhc/ZQmhNqmoXlv1uPFXNDR0Q5TVwLnBmjuBR+929tSD9pzoX0PxbpnXVKHvMQ== + +"@rumdl/cli-darwin-x64@0.1.57": + version "0.1.57" + resolved "https://registry.yarnpkg.com/@rumdl/cli-darwin-x64/-/cli-darwin-x64-0.1.57.tgz#ce97b95a2850be3fa8ab5cde451bd8ff7cdc97e2" + integrity sha512-YQRYLP0PoDsTQiymmSTLhvubr+AlNCNNAbhDmoRVh63pNMaaatJ8y2JDqt7qfe72+2CX5TWTuhHFoL+wPNrfEg== + +"@rumdl/cli-linux-arm64-musl@0.1.57": + version "0.1.57" + resolved "https://registry.yarnpkg.com/@rumdl/cli-linux-arm64-musl/-/cli-linux-arm64-musl-0.1.57.tgz#9a80a6d046ea534a9662611191b48f75bcf18909" + integrity sha512-V8CmARw6kXKaji6w577xvbJ4taulhyLAc6X0sKL3aAGW2I8wOx9mBV/JwT7K8YbmePCmKNMppc+15qCeFUfDyw== + +"@rumdl/cli-linux-arm64@0.1.57": + version "0.1.57" + resolved "https://registry.yarnpkg.com/@rumdl/cli-linux-arm64/-/cli-linux-arm64-0.1.57.tgz#36e81d0f52cfdb1acdafe1c475c395673b0f6a47" + integrity sha512-dgPK6W10r1cMvy6o0BrH5BiX/wM92Drh1TfVbxHTjBt98FlxR1POeWg9n71YTJD5hu0VlsWi0b6Xg8EwwqsUFQ== + +"@rumdl/cli-linux-x64-musl@0.1.57": + version "0.1.57" + resolved "https://registry.yarnpkg.com/@rumdl/cli-linux-x64-musl/-/cli-linux-x64-musl-0.1.57.tgz#11ad73007aaad97feaea657faaf37ea9ef5857bd" + integrity sha512-LfKzDtfu+zvK2Bvm+nR+1TgitC1MVJpQf/qcDoTiMgmwNMmV8X9cpiqIFKIcAANh/ax2io2qn1VTHzP7zarH2Q== + +"@rumdl/cli-linux-x64@0.1.57": + version "0.1.57" + resolved "https://registry.yarnpkg.com/@rumdl/cli-linux-x64/-/cli-linux-x64-0.1.57.tgz#212af46b7b90efbcb3a7ffc5ebfeacb23ac0b436" + integrity sha512-8751VJMPxCuujE+dkH8p6SOb0uve06umMXDqpsWfbRTXAQkqeJJIAdM/XYTx3miF0S/y2q5TrdBgBkBtG+dOlw== + +"@rumdl/cli-win32-x64@0.1.57": + version "0.1.57" + resolved "https://registry.yarnpkg.com/@rumdl/cli-win32-x64/-/cli-win32-x64-0.1.57.tgz#b58c4da7c2391a864c2b3ff814beef5f8e9afd88" + integrity sha512-3y/WtjVDdqOWq+1NyC+c0/PUg8YSCzkcrbFz4d2PwpOA4dbEFKKzLvLI33+gJ6Jjc/UZ9Afj6HXmuktsu9Uwig== + "@sec-ant/readable-stream@^0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz#60de891bb126abfdc5410fdc6166aca065f10a0c" @@ -5219,6 +5254,19 @@ rimraf@^4.4.1: dependencies: glob "^9.2.0" +rumdl@^0.1.57: + version "0.1.57" + resolved "https://registry.yarnpkg.com/rumdl/-/rumdl-0.1.57.tgz#f89b0d2c8c599a8c2608280ebc98b210e7fca35f" + integrity sha512-LWgghsq88oV1kIn6BcXNFZRAtC7ALBy6HL3oV98RPV8tRUxLLoMWcVK8FAGyrKvbXAmXIpGdhn/6p1D/97UR+g== + optionalDependencies: + "@rumdl/cli-darwin-arm64" "0.1.57" + "@rumdl/cli-darwin-x64" "0.1.57" + "@rumdl/cli-linux-arm64" "0.1.57" + "@rumdl/cli-linux-arm64-musl" "0.1.57" + "@rumdl/cli-linux-x64" "0.1.57" + "@rumdl/cli-linux-x64-musl" "0.1.57" + "@rumdl/cli-win32-x64" "0.1.57" + run-async@^4.0.5: version "4.0.6" resolved "https://registry.yarnpkg.com/run-async/-/run-async-4.0.6.tgz#d53b86acb71f42650fe23de2b3c1b6b6b34b9294"