Repository navigation
feat(web): wiki public /wiki lisible sans connexion - #301
Merged
Merged
Conversation
- Pages wiki/*.md figées au build du front (Dockerfile : COPY wiki/), aucune dépendance au GitHub Wiki ; dossier absent → accueil minimal. - /wiki/ (accueil + tuiles), /wiki/<Page>/, sommaire _Sidebar, recherche simple (index statique), mobile (tiroir, tableaux défilants). - Rendu Markdown sans innerHTML : HTML brut affiché en texte, liens limités aux pages connues, ancres et http(s)/mailto ; [[Page]] / [[Libellé|Page]]. - Serveur : page de wiki inconnue → accueil du wiki (annonce « page absente ») ; ServeDir partagé leader/worker, tests anti-traversée. - Liens Wiki dans l'en-tête et le pied de la vitrine.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wiki public intégré à l'app
/wiki/est lisible sans connexion. Les pageswiki/*.mddu dépôt sont figées dans le build du front, donc dans l'image. Il n'y a aucune dépendance au GitHub Wiki (désactivé).Contenu
/wiki/: l'accueil (Home.md) suivi de tuiles par section, d'après_Sidebar.md./wiki/<Page>/: une page par fichier. Fil d'Ariane, sommaire latéral sur bureau et tiroir sur mobile./wiki/search-index.json, chargé à la première frappe et insensible aux accents.Créer si absent
wiki/est absent au build, le site affiche un accueil minimal avec un bandeau « contenu minimal ». Le build n'échoue pas./wiki/Foo/), le serveur renvoie l'accueil du wiki, qui annonce « La page « Foo » n'existe pas (encore) ». Le visiteur ne retombe pas sur la vitrine.Sécurité
^[A-Za-z0-9][A-Za-z0-9-]*$)._Sidebar,_FooteretREADMEne sont pas publiés.ServeDir: des tests vérifient que..,%2e%2eet..%2fne sortent jamais deweb/.http(s)/mailtosont acceptés.javascript:,data:,//…et les chemins hors dépôt sont rendus en texte. Les liens externes portentnoopener noreferrer.wiki/, déjà public dans le dépôt. Les API restent protégées (/api/v1/projects→ 401 sans cookie).Fichiers
apps/web/src/lib/wiki.ts(règles pures) etwiki-source.ts(lecture fs au build uniquement).components/wiki/WikiApp.tsxetWikiMarkdown.tsx.pages/wiki/index.astro,[slug].astroetsearch-index.json.ts.apps/server/src/static_web.rs: service statique partagé par le leader et le worker, avec repli wiki. Tests inclus.Dockerfile:COPY wiki/ /wiki/+DEVFORGE_WIKI_DIR. La CI web montewiki/en lecture seule.Tests
cargo test -p devforge-server static_web: 5 tests, dont l'anti-traversée et le repli.[[a|b]], listes imbriquées, recherche, secours).check-jsx-importsetcheck-forbidden-namesOK.astro buildgénère 29 pages wiki.distconstruit, sans cookie :/wiki/200,/wiki/Kubernetes/200,/wiki/Inexistante/→ accueil wiki, traversées → accueil wiki sans fuite,/api/v1/health200.