<!doctype html>
<!--
  trentpower.fr · /source/view/
  dynamic source code reader. one static shell; ?file= param selects
  a file from the source mirror. source-view.js fetches /source/*.txt
  and renders with line numbers and restrained syntax colouring.
  no runtime server logic. no external dependencies.
-->
<html lang="fr" dir="ltr">
<head>
  <!-- foundations -->
  <meta charset="utf-8">
  <script>(()=>{const e=document.documentElement;e.classList.add('js');try{const m=localStorage.getItem('tp-theme');if(m==='dark'||m==='light')e.dataset.theme=m}catch(_){}})();</script>
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
  <meta name="color-scheme" content="light dark">
  <meta name="theme-color" content="#E9E5DC">

  <!-- document -->
  <title>Miroirs source · Trent Power</title>
  <meta name="description" content="Miroirs publics lisibles d’une sélection de fichiers du site">
  <link rel="canonical" href="https://trentpower.fr/fr/source/voir/">
  <link rel="alternate" hreflang="en" href="https://trentpower.fr/en/source/view/">
  <link rel="alternate" hreflang="fr" href="https://trentpower.fr/fr/source/voir/">
  <link rel="alternate" hreflang="x-default" href="https://trentpower.fr/">

  <!-- identity -->
  <meta name="author" content="Trent Power">
  <meta name="application-name" content="Trent Power">
  <meta name="apple-mobile-web-app-title" content="Trent Power">
  <link rel="author" href="/.well-known/attribution.txt">
  <link rel="alternate" type="application/ld+json" href="/.well-known/person.json">

  <!-- discovery -->
  <meta name="robots" content="noindex, nofollow">
  <meta name="referrer" content="no-referrer">

  <!-- social preview (generic source OG) -->
  <meta property="og:type" content="website">
  <meta property="og:site_name" content="Trent Power">
  <meta property="og:title" content="Miroirs source · Trent Power">
  <meta property="og:description" content="Miroirs publics lisibles d’une sélection de fichiers du site">
  <meta property="og:url" content="https://trentpower.fr/fr/source/voir/">
  <meta property="og:image" content="https://trentpower.fr/images/og/source-og.png">
  <meta property="og:image:width" content="1200">
  <meta property="og:image:height" content="630">
  <meta property="og:image:type" content="image/png">
  <meta property="og:image:alt" content="Source reader · Trent Power">

  <!-- icons -->
  <link rel="icon" href="/favicon.ico" sizes="any">
  <link rel="icon" href="/favicon.svg" type="image/svg+xml">
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
  <link rel="manifest" href="/manifest.webmanifest" type="application/manifest+json">
  <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">

  <!-- assets -->
  <link rel="stylesheet" href="/styles.css?v=2026-05-19.054a4cde" integrity="sha384-fYEHgB0He+5IuoYhIzz6e2cPIEhWnCCdKeiPffyYNzo1SI5Y3zJ7QgNwLJ2x77i5">
  <link rel="stylesheet" href="/print.css?v=2026-05-19.054a4cde" media="print">

  <!-- structured data -->
  <script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","url":"https://trentpower.fr/fr/source/voir/","name":"Source reader · Trent Power","description":"Dynamic source code reader for the trentpower.fr public source mirror.","inLanguage":"fr","isPartOf":{"@id":"https://trentpower.fr/#website"},"about":{"@id":"https://trentpower.fr/#trent-power"}}</script>

</head>
<body data-page="source-reader" data-layout="masthead" data-surface="record" data-masthead="brand-only">

<a href="#main" class="skip-link">Skip to content</a>

<header class="site-header" data-component="site-header">
  <div class="nav">
    <div class="nav-inner">
      <a class="nav-mark" href="/fr/" aria-label="Trent Power home"><span>Trent</span> <span>Power</span></a>
    </div>
  </div>
</header>

<main class="site source-reader-page" id="main" tabindex="-1">
  <div class="page">
    <section class="source-reader">
      <div id="source-view-root">
        <noscript>
          <p class="page-lede">JavaScript is required to render the source reader. The raw source mirror is available at <a href="/fr/source/">Source</a>.</p>
        </noscript>
      </div>
      <div id="source-toolbar" class="source-toolbar" role="region" aria-label="Selection actions">
        <span class="source-toolbar__count" aria-live="polite">1 ligne</span>
        <span class="source-toolbar__sep" aria-hidden="true">&middot;</span>
        <button type="button" class="source-toolbar__btn" data-action="copy">Copier</button>
        <span class="source-toolbar__sep" aria-hidden="true">&middot;</span>
        <button type="button" class="source-toolbar__btn" data-action="copy-link">Copier le lien</button>
        <span class="source-toolbar__sep" aria-hidden="true">&middot;</span>
        <button type="button" class="source-toolbar__btn" data-action="clear" aria-keyshortcuts="Escape">Effacer</button>
      </div>
    </section>
  </div>
</main>

<div id="source-announcer" class="source-announcer" aria-live="polite" role="status"></div>

<!-- body · footer -->
<footer class="site-footer" aria-label="Site footer">
  <div class="site-footer__inner">

    <!-- top stratum · identity · nav · language -->
    <div class="site-footer__top">

      <p class="site-footer__identity">
        <span class="year">&copy; <time datetime="2026">2026</time></span>
        <a class="wm" href="/fr/" rel="home" aria-describedby="desc-home-footer">Trent Power</a>
        <span class="visually-hidden" id="desc-home-footer">Retour à l’accueil</span>
      </p>

      <nav class="site-footer__nav" aria-label="Footer">
        <span>Paris, France</span>
        <span class="sep" aria-hidden="true">&middot;</span>
        <a class="site-footer__action" href="/fr/confidentialite/" rel="privacy-policy" aria-describedby="desc-privacy">Confidentialité</a>
        <span class="visually-hidden" id="desc-privacy">Découvrir comment ce site évite les analytiques, cookies, profilage, traceurs et services tiers</span>
        <span class="sep" aria-hidden="true">&middot;</span>
        <button type="button" class="site-footer__action"
                data-cite-open aria-haspopup="dialog"
                aria-describedby="desc-cite">Vérifier</button>
        <span class="visually-hidden" id="desc-cite">Ouvrir les détails de citation et de vérification de cette page</span>
      </nav>

      <ul class="site-footer__language" aria-label="Language">
        <li><a href="/en/source/view/"  aria-describedby="desc-lang-en" lang="en">English</a> <span class="visually-hidden" id="desc-lang-en">Read this site in English</span></li>
        <li aria-hidden="true"><span class="sep">&middot;</span></li>
        <li><a href="/fr/source/voir/" aria-describedby="desc-lang-fr" lang="fr" aria-current="page">Français</a> <span class="visually-hidden" id="desc-lang-fr">Lire ce site en français</span></li>
      </ul>

    </div>

    <hr class="site-footer__break" aria-hidden="true">

    <!-- bottom stratum · imprint · theme -->
    <div class="site-footer__bottom">

      <dl class="site-footer__imprint is-loading" id="footerImprint" aria-label="Publication integrity">
        <dt>Édition</dt>
        <dd><span data-proof="edition">&mdash;</span></dd>
        <dt>SHA256</dt>
        <dd><a class="sha-link" href="/fr/integrite/" aria-describedby="desc-integrity"
               data-proof="sha" title="Voir l'entrée de cette page dans le manifeste d'intégrité signé">sha256:&mdash;</a> <span class="visually-hidden" id="desc-integrity">Ouvrir le registre d’intégrité public — empreintes, signatures et vérification des éditions</span></dd>
        <dt>Vérifié</dt>
        <dd><span class="v--fresh" data-proof="verified">&mdash;</span></dd>
      </dl>

      <p class="site-footer__provenance" lang="fr">Traduction automatique de l’édition anglaise originale.</p>

      <ul class="site-footer__theme" aria-label="Appearance">
        <li><button type="button" data-theme="light"  aria-pressed="false" aria-describedby="desc-theme-light">Clair</button> <span class="visually-hidden" id="desc-theme-light">Passer à l’apparence claire</span></li>
        <li aria-hidden="true"><span class="sep">&middot;</span></li>
        <li><button type="button" data-theme="system" aria-pressed="true"  aria-describedby="desc-theme-auto">Auto</button> <span class="visually-hidden" id="desc-theme-auto">Suivre les réglages d’apparence du système</span></li>
        <li aria-hidden="true"><span class="sep">&middot;</span></li>
        <li><button type="button" data-theme="dark"   aria-pressed="false" aria-describedby="desc-theme-dark">Sombre</button> <span class="visually-hidden" id="desc-theme-dark">Passer à l’apparence sombre</span></li>
      </ul>

    </div>

  </div>
</footer>

  <!-- source reader data + renderer (loaded before site scripts so manifest is available) -->
  <script src="/source/view/source-view-manifest.js?v=2026-05-17.8329810a" integrity="sha384-WB5wNZ2rGeiRQ/I7V2LlI+KBxjf1BGx3RS/nsPfAVjxtGUhDZHy4G1KwPt/N3eqs" defer></script>
  <script src="/source/view/source-view.js?v=2026-05-17.8329810a" integrity="sha384-CHF4Tdh6q/iLNeb8f5VBttc+4c6Tf0dwAQtNJ8rbgxttCF5CRplVgMPp+MlubMxp" defer></script>
  <!-- site infrastructure -->
  <script src="/app.js?v=2026-05-19.054a4cde" integrity="sha384-0/d1GAleQvM4g3v1B1J2lZMV/tet5ROHlQ2MStFHV6elnL4HXZrGmuIjSlmZ02q4" defer></script>
  <script src="/app-enhance.js?v=2026-05-19.054a4cde" integrity="sha384-nyFedKd06EN9LqTUpl41Ln9bJvrfivawSLNQXsWeHNV0GoZBdeVoZByRtUkUbQVR" defer></script>
  <script src="/cite.js?v=2026-05-19.054a4cde" integrity="sha384-/UcbEl8xuRxvlwOOzFG3xYoqbPIzNPhv8o5HsASzLoHTo7cCVbGad1JqWH+GxGdl" defer></script>
</body>
</html>
