59 lines
2.2 KiB
YAML
59 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 ]'
|