58 lines
2.2 KiB
YAML
58 lines
2.2 KiB
YAML
---
|
|
version: '3'
|
|
|
|
tasks:
|
|
prose:
|
|
deps:
|
|
- :install:pipx:proselint
|
|
desc: Lint text/markdown for English prose with `proselint`
|
|
summary: |
|
|
# Lint for English Prose
|
|
|
|
This task uses `proselint` to analyze markdown files for prose. It will generate recommendations
|
|
based on typography, grammar, and wording.
|
|
|
|
**Example scanning all markdown files:**
|
|
`task lint:prose`
|
|
|
|
**Example scanning specific file (markdown or not):**
|
|
`task lint:prose -- myfile.js`
|
|
|
|
For more information, see [Proselint's GitHub page](https://github.com/amperser/proselint).
|
|
log:
|
|
error: Error encountered while validating {{if .CLI_ARGS}}`{{.CLI_ARGS}}`{{else}}the project{{end}} with Proselint
|
|
start: Linting {{if .CLI_ARGS}}`{{.CLI_ARGS}}`{{else}}the project{{end}} prose with Proselint
|
|
success: Successfully validated {{if .CLI_ARGS}}`{{.CLI_ARGS}}`{{else}}the project{{end}} with Proselint
|
|
cmds:
|
|
- task: prose:config
|
|
- |
|
|
PATH="$PATH:$HOME/.local/bin"
|
|
{{if .CLI_ARGS}}
|
|
{{.PYTHON_HANDLE}}proselint {{.CLI_ARGS}}
|
|
{{else}}
|
|
find . -type d \( {{.IGNORE_FOLDERS}} \) -prune -o -type f \( -name '*.md' \) -print0 | xargs -0 -r -n1 {{.PYTHON_HANDLE}}proselint
|
|
{{end}}
|
|
- task: prose:config:restore
|
|
|
|
prose:config:
|
|
log:
|
|
error: Error encountered while ensuring Proselint configuration is in proper location
|
|
start: Moving Proselint configuration to proper location
|
|
success: Ensured Proselint configuration is in proper location
|
|
cmds:
|
|
- |
|
|
if [ -f ~/.config/proselint/config.json ]; then
|
|
.config/log info 'Backing up `proselint` from `~/.config/proselint/config.json` to `~/.config/proselint/config.json.backup`'
|
|
mv ~/.config/proselint/config.json ~/.config/proselint/config.json.backup
|
|
fi
|
|
- mkdir -p ~/.config/proselint
|
|
- cp .config/proselint.json ~/.config/proselint/config.json
|
|
|
|
prose:config:restore:
|
|
log:
|
|
error: Error restoring original Proselint configuration
|
|
start: Restoring original Proselint configuration
|
|
cmds:
|
|
- mv ~/.config/proselint/config.json.backup ~/.config/proselint/config
|
|
status:
|
|
- '[ ! -f ~/.config/proselint/config.json.backup ]'
|