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

chtijs-website

v0.0.1

Published

The ChtiJS Website

Downloads

28

Readme

Site ChtiJS

Build status Code Climate

Avant de commencer à travailler sur le projet lisez attentivement le guide pour contribuer

Installer le projet

Vous devez avoir nodeJS installé sur votre machine ;)

Entrez les commandes suivante dans un terminal :

  • git clone [email protected]:ChtiJS/chtijs.francejs.org.git : cloner le dépôt git;
  • cd chtijs.francejs.org : aller dans le répertoire créé.
  • npm install : installe les dépendances.

Afin de pouvoir générer le favicon, vous devrez également avoir ImageMagick présent sur votre système:

# on a Debian based system
apt-get install imagemagick
# with OSX - http://www.imagemagick.org/script/binary-releases.php#macosx
brew install imagemagick --with-librsvg

Pour travailler dessus :

Placez vous dans le répertoire du projet et entrez : npm run dev.

Cela lancera un petit serveur et ouvrira votre navigateur sur l'accueil du site.

Toutes les modifications que vous ferez dans le code ou le contenu du site, une fois sauvegardées seront prises en comptes et votre navigateur se reachargera tout seul.

Options

--prod : vous créez le site en mode production. L'argument --net lancera le serveur de développement sur une adresse IP joignable sur votre réseau local par d'autres machines.

--noreq : permet de générer le site sans faire d'appel externe (planète et API GitHub). Cela vous permettra de regénérer le site rapidement pour les tests.

À ce propos, sans fichier .token contenant un token pour l'accès à l'API GitHub, vous serez rapidement dans l'incapacité de générer le site complet car le nombre de requêtes anonymes est limité.

Éditer le site :

Contenu

Le contenu du site est dans le répertoire /documents/contents/.

Les pages sont matérialisées par les fichiers écrits dans le format markdown (.md).

Ainsi, le fichier /documents/contenu/archives/index.md est transformé en url "http://127.0.0.1:9001/archives/" dans votre navigateur.

Ces fichiers markdown peuvent comporter des metadatas, qui seront transformées en données disponibles pour les templates.

Par défaut les fichiers markdown sont rendus via la template /documents/templates/index.tpl. Vous pouvez y associer une autre template via ces metadata.

Architecture

Les templates sont dans le répertoire /documents/templates/.Le langage utilisé est nunjucks (doc: http://jlongster.github.io/nunjucks/templating.html ).

Les CSS sont générées depuis les sources Less située dans documents/less/.

Génération du site

ChtiJS est un site statique généré de façon automatique via la tâche Gulp build_html. La génération se fait de la manière suivante :

  • création d'un arbre représentant la structure du site :
    • tout d'abord, on récupère les documents markdown situés dans /documents/content. Ajouter une fichier Markdown dans ce dossier (ou un sous dossier) crée une nouvelle page dans le site.
    • ensuite, on génère certaines pages à l'aide d'un plugin car certaines données doivent être récupérées depuis le réseau. Ces plugins se trouvent dans le dossier gulpplugins. Les pages membres, contributeurs et planète sont générées de cette manière.
  • une fois l'arbre généré, on reprend chaque document un par un et on génère la page HTML correspondante grâce au template qui lui est associé.

Et voilà, le site de ChtiJS n'a plus de secret pour vous ;).

Publication

Pour publier le site, il suffit de taper la commande suivante :

npm run publish

Attention: Si vous n'avez pas ajouté le token GitHub ou n'avez pas de version de convert sur votre système, vous risquez de publier une version dégradée ou non-fonctionnelle du site.

D'une manière générale, construire le site sous Windows est une mauvaise idée, sauf mention contraire par un aventurier qui alors se manifestera pour modifier cette ligne.