[Feature] Skip files without markers on --insert: --skip-no-markers
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
Direzione di ricerca
Start by reading internal/core/usecase/insertmd and the marker rule in replaceBetweenMarkers, then trace how CLI options reach the insert flow and how tests cover --insert and --stdout. Implementing this requires resolving the stated behavior questions about malformed marker pairs and whether the option implies --insert. Done means skipped files avoid API requests and changes, emit the specified warning, and preserve errors and exit codes for other failures.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Is your feature request related to a problem? Please describe.
--insert cannot run on all markdown files of a directory when only some of them have the
<!--ts--> and <!--te--> markers. Every file without the markers is an error, and the
run exits with 1. Here a.md and c.md have the markers, b.md does not:
$ gh-md-toc --insert --no-backup --hide-footer a.md b.md c.md
...
process "b.md": insert TOC into "b.md": no <!--ts--> / <!--te--> markers found
$ echo $?
1
a.md and c.md are updated, but the exit code fails a script or a CI step. The markers
are checked after the GitHub API request, so a request is spent for every such file too.
The same request for the Bash version is ekalinin/github-markdown-toc#110, and it is
implemented there in ekalinin/github-markdown-toc#199.
Describe the solution you'd like
The same option as in the Bash version: --skip-no-markers skips a local file without the
markers, so this works:
find . -name '*.md' -exec gh-md-toc --insert --no-backup --hide-footer --skip-no-markers {} +
Behavior in the Bash version:
- A skipped file is not changed, no backup is created for it, no request is sent to the
GitHub API for it, and stdout has no TOC entries of it. - stderr gets
<input>: Warning: no <!--ts--> or <!--te--> in the file, skipped, where
<input>is the input as given on the command line, also with one input. - The exit code is 0 when files are only skipped. An error of another input, such as a
GitHub API error, still exits with 1. - A local input that does not exist is not skipped: it is an error as before.
--skip-no-markersturns on--insert, as--no-backupand--hide-footerdo there.--skip-no-markerswith--stdout(#95) is an error before any network call.
Additional context
- The markers are checked in
internal/core/usecase/insertmdafterinner.DoAs, that is
after the API request. The check for this option has to run before it, with the same
marker rule asreplaceBetweenMarkers. - Differences from the Bash version to decide on:
- Here
--no-backuprequires--insertinstead of turning it on.--skip-no-markers
could follow the same rule. - Here a file with several marker pairs, or with
<!--te-->before<!--ts-->, is an
error too. Should it be skipped as well, or stay an error?
- Here
- Lingua principale
- Go
- Stelle
- 525
- Fork
- 89
- Merge medio
- 6m
- PR unite (30g)
- 1
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ekalinin/github-markdown-toc.go
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
-
enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Tutte le issue di ekalinin/github-markdown-toc.go
Issue simili
-
/shutdown/ready can fail to return an HTTP response when readiness takes longer than the server write timeoutForse già presa @floriankoch l’ha presa oggi. Apertatriage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
envoyproxy/gateway#10562 ·
I maintainer di solito rispondono entro 1 giorno
-
Adding an LDAP group reports every search failure as "LDAP Group DN is not found"Forse già presa @Daksha1611 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
[Bug] K8s reconcile still resets explicit 0 to defaults for response_api, memory and flow stateForse già presa @Bevisy l’ha presa oggi. Apertaneeds-acceptance
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
vllm-project/semantic-router#5998 ·
I maintainer di solito rispondono entro 2 giorni