75 lines
2.1 KiB
Plaintext
75 lines
2.1 KiB
Plaintext
|
|
#!/usr/bin/env nu
|
||
|
|
|
||
|
|
# Fix markdown linting errors in documentation
|
||
|
|
|
||
|
|
def fix-code-fences [] {
|
||
|
|
let files = glob "src/architecture/*.md"
|
||
|
|
|
||
|
|
for $file in $files {
|
||
|
|
print $"Processing $file"
|
||
|
|
|
||
|
|
let content = open $file
|
||
|
|
|
||
|
|
# Replace ``` with ```text for architecture diagrams
|
||
|
|
let fixed = $content
|
||
|
|
| str replace --all -r '```\n┌' '```text\n┌'
|
||
|
|
| str replace --all -r '```\n{' '```nickel\n{'
|
||
|
|
| str replace --all -r '```\n\[' '```yaml\n['
|
||
|
|
| str replace --all -r '```\nuser:' '```yaml\nuser:'
|
||
|
|
| str replace --all -r '```\nexport' '```nushell\nexport'
|
||
|
|
| str replace --all -r '```\nlet' '```nushell\nlet'
|
||
|
|
| str replace --all -r '```\npub' '```rust\npub'
|
||
|
|
| str replace --all -r '```\n#' '```bash\n#'
|
||
|
|
| str replace --all -r '```\nname:' '```yaml\nname:'
|
||
|
|
| str replace --all -r '```\npermit' '```cedar\npermit'
|
||
|
|
|
||
|
|
save -f $file $fixed
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
def fix-table-spacing [] {
|
||
|
|
let files = glob "src/architecture/*.md"
|
||
|
|
|
||
|
|
for $file in $files {
|
||
|
|
print $"Fixing tables in $file"
|
||
|
|
|
||
|
|
let content = open $file
|
||
|
|
|
||
|
|
# Fix table spacing - ensure | text | format
|
||
|
|
let fixed = $content
|
||
|
|
| str replace --all '|---|---|---|' '| --- | --- | --- |'
|
||
|
|
| str replace --all '|------|------|------|' '| ------ | ------ | ------ |'
|
||
|
|
| str replace --all '|----|---|' '| ---- | --- |'
|
||
|
|
| str replace --all '|----|----|----|' '| ---- | ---- | ---- |'
|
||
|
|
| str replace --all '|---|' '| --- |'
|
||
|
|
|
||
|
|
save -f $file $fixed
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
def fix-heading-punctuation [] {
|
||
|
|
let files = glob "src/architecture/*.md"
|
||
|
|
|
||
|
|
for $file in $files {
|
||
|
|
print $"Fixing headings in $file"
|
||
|
|
|
||
|
|
let content = open $file
|
||
|
|
|
||
|
|
# Remove trailing colons from headings
|
||
|
|
let fixed = $content
|
||
|
|
| str replace --all -r '#### \*\*Other Services\*\*:' '#### Other Services'
|
||
|
|
| str replace --all -r '## (.*):$' '## $1'
|
||
|
|
| str replace --all -r '### (.*):$' '### $1'
|
||
|
|
| str replace --all -r '#### (.*):$' '#### $1'
|
||
|
|
|
||
|
|
save -f $file $fixed
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Main execution
|
||
|
|
print "Fixing markdown errors..."
|
||
|
|
fix-code-fences
|
||
|
|
fix-table-spacing
|
||
|
|
fix-heading-punctuation
|
||
|
|
print "Done!"
|