npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@adartem/adlib-docs

v0.0.2

Published

Scripts et helpers dédiés à la documentation d'AdLib (x-ray, copy snippets, etc.).

Downloads

16

Readme

@adartem/adlib-doc

Helpers dédiés à la documentation AdLib.

@adartem/adlib-doc fournit des outils légers, autonomes et entièrement optionnels destinés aux pages de documentation, de démonstration et de playground.

Ce package :

  • ❌ ne fait pas partie du runtime AdLib
  • ❌ n’est jamais requis pour utiliser les attributs ad-* en production
  • ✅ est conçu uniquement pour améliorer l’expérience de lecture et de compréhension

🎯 Objectif du package

@adartem/adlib-doc a pour but de :

  • améliorer la lisibilité des exemples,
  • rendre les pages de documentation visuelles et interactives,
  • faciliter la compréhension des attributs ad-*,
  • proposer des outils activables à la demande,
  • rester sans impact sur le runtime et les performances applicatives.

Cas d’usage typiques

  • pages GitHub Pages
  • sites de documentation
  • démos locales
  • playgrounds HTML statiques
  • pages pédagogiques ou ateliers

✨ Outils inclus

🔍 xray

Inspection visuelle des éléments porteurs d’attributs AdLib :

  • ad-*
  • data-ad-*

Fonctionnement :

  • surligne dynamiquement les éléments concernés,
  • ajoute un marqueur visuel discret,
  • permet d’identifier immédiatement les comportements sont déclarés dans le DOM.

👉 Idéal pour expliquer la nature déclarative d’AdLib sans lire le code source.


📋 copy-snippet

Ajoute des boutons de copie (clipboard) sur les blocs de code :

  • <pre><code>
  • snippets HTML
  • exemples JavaScript
  • démonstrations copiables en un clic

Fonctionnement :

  • détection automatique des blocs de code,
  • bouton discret, non intrusif,
  • copie fiable du contenu affiché.

👉 Améliore fortement l’UX des pages de documentation.


🧩 doc

Bootstrap global combinant xray + copy-snippet.

Caractéristiques :

  • configuration via attributs data-*,
  • aucun JavaScript impératif requis,
  • initialisation automatique,
  • cleanup possible,
  • usage simple via CDN.

👉 Recommandé pour la majorité des pages de documentation AdLib.


📦 Installation

pnpm add @adartem/adlib-doc
# ou
npm i @adartem/adlib-doc

🚀 Utilisation — doc.js (recommandé)

doc.js est un bootstrap prêt à l’emploi.

Il s’auto-configure via des attributs data-adlib-doc-* directement sur la balise <script>.

Snippet CDN

<script
  type="module"
  src="https://cdn.jsdelivr.net/npm/@adartem/adlib-doc/doc.js"
  data-adlib-doc-xray="true"
  data-adlib-doc-copy="true"
></script>

Options disponibles

| Attribut | Description | Valeurs | |--------|------------|---------| | data-adlib-doc-xray | Active l’inspection visuelle | true, false, 1, 0, "" | | data-adlib-doc-copy | Active les boutons de copie | true, false, 1, 0, "" |

👉 Si une option n’est pas précisée, le comportement par défaut (activé) est appliqué.


🧩 Utilisation — API JavaScript

Pour un contrôle plus fin ou une intégration personnalisée.

import { bootstrapDoc } from '@adartem/adlib-doc/doc';

const cleanup = bootstrapDoc({
  xray: true,
  copy: true,
});

// plus tard (nettoyage)
cleanup();
  • bootstrapDoc() retourne toujours une fonction de cleanup
  • aucune pollution globale
  • aucun état persistant caché

🧱 Outils individuels

🔍 X-Ray

Surligne dynamiquement les éléments porteurs d’attributs AdLib.

import { attachXRay } from '@adartem/adlib-doc';

const cleanup = attachXRay(document, {
  selector: '*',
  className: 'adlib-xray',
  markerAttr: 'data-adlib-xray',
});

// désactivation
cleanup();

Options :

  • selector : éléments à inspecter
  • className : classe CSS appliquée
  • markerAttr : attribut ajouté aux éléments détectés

📋 Copy Snippet

Ajoute des boutons de copie sur les blocs de code.

import { attachCopyButtons } from '@adartem/adlib-doc';

const cleanup = attachCopyButtons();

// désactivation
cleanup();

Fonctionnement :

  • scan automatique des <pre><code>,
  • bouton injecté dynamiquement,
  • Clipboard API standard.

📄 Exemple complet (reproductible)

Exemple minimal d’une page de documentation utilisant doc.js.

<!doctype html>
<html lang="fr">
  <head>
    <meta charset="utf-8" />
    <title>AdLib – Doc helpers</title>
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <style>
      body {
        font-family: system-ui, sans-serif;
        padding: 2rem;
        line-height: 1.5;
      }
      pre {
        padding: 1rem;
        border: 1px solid #ddd;
        border-radius: 8px;
        overflow: auto;
      }
      code {
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      }
      .card {
        margin-top: 2rem;
        padding: 1rem;
        border: 1px solid #eee;
        border-radius: 12px;
      }
    </style>
  </head>

  <body>
    <h1>AdLib — adlib-doc</h1>

    <div class="card">
      <h2>Blocs de code (copy)</h2>
      <pre><code>&lt;script type="module" src=".../attributes.js" ad-click&gt;&lt;/script&gt;</code></pre>
      <pre><code>console.log("Hello AdLib");</code></pre>
    </div>

    <div class="card">
      <h2>Éléments porteurs d’attributs (xray)</h2>

      <button data-ad-click data-ad-click-toggle="is-active">
        Bouton (data-ad-click)
      </button>

      <div
        ad-click
        style="margin-top: 1rem; padding: .75rem; border: 1px dashed #bbb;"
      >
        Bloc (ad-click)
      </div>
    </div>

    <!-- Bootstrap doc helpers -->
    <script
      type="module"
      src="https://cdn.jsdelivr.net/npm/@adartem/adlib-doc/doc.js"
      data-adlib-doc-xray="true"
      data-adlib-doc-copy="true"
    ></script>
  </body>
</html>

🔧 Compatibilité

  • ES2020
  • ESM uniquement
  • Sourcemaps inclus
  • SSR-safe (aucune exécution hors DOM)
  • Aucun effet de bord global
  • Aucun lien avec le runtime AdLib

🪪 Licence

MIT © ADARTEM