Skip to content

revue-de-presse/revue-de-presse.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Revue de Presse 2025

Animated visualization of French media trends on Bluesky in 2025.

License: GPL-3.0 Node.js

Live demo: 2025.revue-de-presse.org

Overview

This project provides an interactive "bar chart race" visualization showing the most shared French press articles on Bluesky throughout 2025. Topics are extracted dynamically using NLP (BERTopic) and engagement is calculated from likes and reposts.

Features

  • Animated bar chart race of media themes with daily/cumulative modes
  • Semainier: weekly navigation grouped by meteorological seasons
  • Word cloud popups for theme exploration
  • Sentiment filtering by week
  • Accessibility: colorblind patterns, keyboard navigation, ARIA attributes
  • Dark mode: auto-detection + manual toggle
  • PWA: Progressive Web App with offline support
  • Custom D3.js bundle: 52KB minified

Quick Start

# Clone the repository
git clone https://github.com/revue-de-presse/revue-de-presse.github.io.git
cd revue-de-presse.github.io/visualization

# Install dependencies
npm install

# Build the visualization
make build

# Start local server
make serve
# Open http://localhost:8090

Prerequisites

  • Node.js v18.x LTS or higher (recommended: v20.x LTS)
  • npm v9.x or higher

Build Commands

Command Description
make build Build visualization (index.html, data files, service worker)
make serve Start local development server on port 8090
make clean Remove generated files
make build-full Full build with URL cache cleanup and unfurling

Project Structure

visualization/
├── build-static.js      # Main build script
├── build-d3-bundle.js   # Custom D3 bundle generator
├── course-des-themes.html # HTML template
├── d3.custom.min.js     # Minified D3 bundle (52KB)
├── index.html           # Generated output
├── data-*.json          # Monthly data chunks (lazy loading)
├── sentiment.json       # Sentiment analysis data
├── topics.json          # NLP topic classifications
├── sw.js                # Service worker (generated)
├── fonts/               # Self-hosted web fonts
└── Makefile             # Build automation

Data Sources

  • Articles: ~3000 articles from 22 French media accounts on Bluesky
  • Period: March - December 2025
  • Engagement formula: likes + (reposts × 2)
  • Topic extraction: BERTopic with French sentence transformers
  • Sentiment analysis: French lexicon (~27,000 words with NRC)

Contributing

See CONTRIBUTING.md for guidelines on how to contribute.

Code of Conduct

This project adheres to the Contributor Covenant Code of Conduct.

License

This project is licensed under the GNU General Public License v3.0 - see the COPYING file for details.

  • You can use, modify, and distribute this software
  • Derivative works must also be licensed under GPL-3.0
  • Source code must be made available when distributing

Open Source Attribution

JavaScript

Library License Description
D3.js v7 ISC Data visualization
esbuild MIT JavaScript bundler
terser BSD-2-Clause JavaScript minifier
clean-css MIT CSS optimizer

Python (for NLP pipeline)

Library License Description
BERTopic MIT Topic modeling
sentence-transformers Apache 2.0 Sentence embeddings
UMAP BSD-3 Dimensionality reduction
HDBSCAN BSD-3 Clustering
scikit-learn BSD-3 Machine learning

Fonts

Font License Source
Source Serif 4 OFL 1.1 Google Fonts
Roboto Apache 2.0 Google Fonts

Standards

Standard Description
Bluesky AT Protocol Decentralized social protocol
Contributor Covenant v2.0 Code of Conduct
Conventional Commits Commit message format
Semantic Versioning Version numbering

Contact

About

Resources

License

GPL-3.0, GPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
GPL-3.0
COPYING

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors