Skip to content

Latest commit

 

History

History
169 lines (125 loc) · 5.21 KB

File metadata and controls

169 lines (125 loc) · 5.21 KB

LinkDown

Capturez les posts LinkedIn en notes Markdown avec front matter YAML.

Chrome Extension Manifest V3 Version License Council Score

Fonctionnalités

  • Extraction en un clic - Capturez n'importe quel post LinkedIn
  • Front matter YAML - Date, auteur, URL source inclus
  • Extraction DOM intelligente - Gère la structure complexe de LinkedIn
  • Filtrage du contenu sponsorisé - Ignore automatiquement les publicités
  • Support multilingue - Détecte le contenu sponsorisé en 20+ langues
  • Support CJK - Gestion correcte du chinois, japonais, coréen
  • Dégradation gracieuse - Affiche des warnings au lieu d'échouer silencieusement

Installation

Depuis les sources (Mode développeur)

  1. Clonez ce dépôt
  2. Ouvrez chrome://extensions/ dans Chrome
  3. Activez le "Mode développeur" (toggle en haut à droite)
  4. Cliquez "Charger l'extension non empaquetée" et sélectionnez le dossier
  5. Épinglez l'extension pour un accès facile

Utilisation

  1. Naviguez vers un post LinkedIn (URL /posts/ ou /feed/update/)
  2. Cliquez sur l'icône LinkDown
  3. Prévisualisez le contenu extrait
  4. Cliquez Télécharger .md ou Copier dans le presse-papiers

Format de sortie

---
date: 2024-01-15
auteur: Jean Dupont
origine: LinkedIn
url: https://www.linkedin.com/feed/update/urn:li:activity:123456/
---

Contenu du post ici...

Points techniques

Stratégie d'extraction

Priorité Méthode Description
1 Corrélation URN/URL Extrait l'ID d'activité de l'URL pour ciblage précis
2 querySelectorAll + filtrage Ignore les containers sponsorisés
3 Fallback document-wide Trouve auteur/date hors du container principal

Détection du contenu sponsorisé

Vérification en 5 directions :

  1. Ancêtres - element.closest()
  2. Élément - element.matches()
  3. Descendants - element.querySelector()
  4. Texte actor/meta - Indicateurs textuels
  5. Siblings - Éléments adjacents

Support i18n (20+ langues)

Scripts alphabétiques (word boundaries) : EN, FR, DE, ES, IT, PT, NL, PL, SV, NO, DA, FI, RU, TR, ID, VI, CS, EL, HU, RO

CJK et scripts complexes (matching includes) : JA, KO, ZH, AR, HE, TH, HI

Sécurité

  • Manifest V3 - Dernier standard Chrome
  • Permissions minimales - activeTab, scripting, clipboardWrite, downloads
  • CSP appliquée - script-src 'self'; object-src 'none'
  • Pas de vecteur XSS - Utilise textContent exclusivement
  • Pas d'exposition globale - Fonctions internes non accessibles aux scripts de page

Auto-tests

Lancez les tests de validation dans la console DevTools sur une page LinkedIn :

window.__linkdownSelfTest()

Résultat attendu :

LinkDown v6 self-test: 15/15 passed
  ✓ CJK detect JP
  ✓ EN match promoted
  ✓ EN no partial match
  ...

Structure du projet

/
├── manifest.json    # Manifest extension (V3)
├── content.js       # Logique d'extraction DOM
├── popup.html       # Interface popup
├── popup.js         # Logique d'interaction popup
├── popup.css        # Styles popup
├── icons/           # Icônes extension (16, 48, 128px)
├── PRD/             # Documents de spécifications
├── CLAUDE.md        # Documentation développement
├── README.md        # Ce fichier
└── LICENSE          # Licence MIT

Limitations

  • Post unique seulement - Fonctionne sur les pages de post individuel, pas le feed principal
  • Dépendant du DOM - Les changements de DOM LinkedIn peuvent nécessiter des mises à jour de sélecteurs
  • Pas d'images - Extrait uniquement le contenu texte

Dépannage

Problème Solution
"Plusieurs posts détectés" Ouvrez le post dans un nouvel onglet
Auteur/date non trouvés LinkedIn a peut-être changé la structure DOM
Extension ne répond pas Rechargez la page et réessayez

Contribuer

  1. Forkez le dépôt
  2. Créez une branche feature
  3. Lancez les auto-tests avant de soumettre
  4. Soumettez une pull request

Changelog

v1.5.0 (Phase 3)

  • Matching CJK-aware pour le contenu sponsorisé
  • Auto-tests intégrés (15+ tests)
  • Support scripts complexes (arabe, hébreu, thaï, hindi)

v1.4.0 (Phase 2)

  • Support i18n pour 20+ langues
  • Corrélation URN/URL pour ciblage précis
  • Vérification des éléments siblings

v1.3.0 (Phase 1)

  • Filtrage du contenu sponsorisé
  • Politique CSP de sécurité
  • Suppression de l'exposition globale

v1.2.0

  • Fallback document-wide pour auteur/date
  • Correction extraction sur pages /posts/

v1.1.0

  • Release initiale
  • Extraction basique avec front matter YAML

Licence

Licence MIT - Voir LICENSE pour les détails.


Développé avec Claude Code