{"users":[{"id":32,"username":"codinghorror","name":"Jeff Atwood","avatar_template":"/user_avatar/meta.discourse.org/codinghorror/{size}/110067_2.png","admin":true,"trust_level":2},{"id":95552,"username":"Moin","name":"","avatar_template":"/user_avatar/meta.discourse.org/moin/{size}/554653_2.png","trust_level":3},{"id":115923,"username":"Discourse","name":null,"avatar_template":"/user_avatar/meta.discourse.org/discourse/{size}/148734_2.png","admin":true,"trust_level":4},{"id":82960,"username":"manuel","name":"Manuel Kostka","avatar_template":"/user_avatar/meta.discourse.org/manuel/{size}/468169_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":71041,"username":"satonotdead","name":"","avatar_template":"/user_avatar/meta.discourse.org/satonotdead/{size}/447830_2.png","trust_level":3},{"id":57788,"username":"nathank","name":"Nathan Kershaw","avatar_template":"/user_avatar/meta.discourse.org/nathank/{size}/290039_2.png","flair_name":"support-advocates","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/4/e4038d4d9848de2eabab38e17b8bdb69da154024.svg","flair_bg_color":"FFFFFF","flair_group_id":148,"trust_level":4},{"id":135392,"username":"NateDhaliwal","name":"Nate Dhaliwal","avatar_template":"/user_avatar/meta.discourse.org/natedhaliwal/{size}/313494_2.png","flair_name":"plugin_authors","flair_url":"plug","flair_bg_color":"dddddd","flair_color":"111111","flair_group_id":48,"trust_level":3},{"id":155653,"username":"nickdb","name":"Nick","avatar_template":"/user_avatar/meta.discourse.org/nickdb/{size}/444510_2.png","trust_level":2},{"id":71154,"username":"martin","name":"Martin Brennan","avatar_template":"/user_avatar/meta.discourse.org/martin/{size}/491371_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":145678,"username":"putty","name":"putty","avatar_template":"/user_avatar/meta.discourse.org/putty/{size}/370902_2.png","trust_level":3},{"id":119375,"username":"elmuerte","name":"","avatar_template":"/user_avatar/meta.discourse.org/elmuerte/{size}/456517_2.png","trust_level":2},{"id":22774,"username":"Overgrow","name":"","avatar_template":"/user_avatar/meta.discourse.org/overgrow/{size}/478189_2.png","trust_level":2},{"id":23968,"username":"david","name":"David Taylor","avatar_template":"/user_avatar/meta.discourse.org/david/{size}/157490_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":4263,"username":"mcwumbly","name":"Dave McClure","avatar_template":"/user_avatar/meta.discourse.org/mcwumbly/{size}/103861_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":406,"username":"RGJ","name":"Richard - Communiteq","avatar_template":"/user_avatar/meta.discourse.org/rgj/{size}/523185_2.png","flair_name":"support-experts","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":138432,"username":"frye_bradley","name":"Bradley Frye","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/f/848f3c/{size}.png","trust_level":1},{"id":12705,"username":"featheredtoast","name":"Jeff Wong","avatar_template":"/user_avatar/meta.discourse.org/featheredtoast/{size}/116994_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":60726,"username":"jrgong","name":"jrgong","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/j/c57346/{size}.png","trust_level":2},{"id":72263,"username":"denvergeeks","name":"","avatar_template":"/user_avatar/meta.discourse.org/denvergeeks/{size}/327671_2.png","trust_level":2},{"id":173218,"username":"gilles","name":null,"avatar_template":"/user_avatar/meta.discourse.org/gilles/{size}/549022_2.png","trust_level":3},{"id":125840,"username":"UnitedFreedom","name":"James","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/u/ac91a4/{size}.png","trust_level":2},{"id":35474,"username":"Canapin","name":"Coin-coin le Canapin","avatar_template":"/user_avatar/meta.discourse.org/canapin/{size}/119591_2.png","trust_level":3},{"id":29390,"username":"ufukayyildiz","name":"ufuk","avatar_template":"/user_avatar/meta.discourse.org/ufukayyildiz/{size}/217157_2.png","flair_name":"translators","flair_url":"globe","flair_bg_color":"ddd","flair_color":"111","flair_group_id":50,"trust_level":2},{"id":13093,"username":"pacharanero","name":"Marcus Baw","avatar_template":"/user_avatar/meta.discourse.org/pacharanero/{size}/500583_2.png","primary_group_name":"VolunteerMods","flair_name":"VolunteerMods","flair_url":"https://global.discourse-cdn.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"trust_level":4},{"id":156013,"username":"Andrew_Rowe","name":"Andrew Rowe","avatar_template":"/user_avatar/meta.discourse.org/andrew_rowe/{size}/445877_2.png","primary_group_name":"VolunteerMods","flair_name":"VolunteerMods","flair_url":"https://global.discourse-cdn.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"trust_level":4},{"id":73038,"username":"jahan_gagan","name":"Jahan Gagan","avatar_template":"/user_avatar/meta.discourse.org/jahan_gagan/{size}/501948_2.png","flair_name":"plugin_authors","flair_url":"plug","flair_bg_color":"dddddd","flair_color":"111111","flair_group_id":48,"trust_level":2},{"id":2770,"username":"awesomerobot","name":"Kris","avatar_template":"/user_avatar/meta.discourse.org/awesomerobot/{size}/142900_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":-1,"username":"system","name":"system","avatar_template":"/user_avatar/meta.discourse.org/system/{size}/443519_2.png","admin":true,"moderator":true,"trust_level":4},{"id":160471,"username":"Ethsim2","name":"Ethan ","avatar_template":"/user_avatar/meta.discourse.org/ethsim2/{size}/522255_2.png","flair_name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111","flair_group_id":73,"trust_level":1},{"id":78445,"username":"Don","name":"","avatar_template":"/user_avatar/meta.discourse.org/don/{size}/228726_2.png","primary_group_name":"VolunteerMods","flair_name":"VolunteerMods","flair_url":"https://global.discourse-cdn.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"trust_level":4},{"id":65413,"username":"EricGT","name":"EricGT","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/e/f1d935/{size}.png","trust_level":2},{"id":113000,"username":"chapoi","name":"","avatar_template":"/user_avatar/meta.discourse.org/chapoi/{size}/537252_2.png","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":73430,"username":"Damian_Boon","name":"Damian Boon","avatar_template":"/user_avatar/meta.discourse.org/damian_boon/{size}/574032_2.png","trust_level":2},{"id":26605,"username":"LeoDavidson","name":"Leo Davidson","avatar_template":"/user_avatar/meta.discourse.org/leodavidson/{size}/119574_2.png","trust_level":2},{"id":174634,"username":"Willy","name":"Willy","avatar_template":"/user_avatar/meta.discourse.org/willy/{size}/499930_2.png","trust_level":2},{"id":8722,"username":"Falco","name":"Falco","avatar_template":"/user_avatar/meta.discourse.org/falco/{size}/179432_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":4},{"id":15209,"username":"pfaffman","name":"Jay Pfaffman","avatar_template":"/user_avatar/meta.discourse.org/pfaffman/{size}/120154_2.png","flair_name":"support-experts","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":136260,"username":"PortChange","name":"PortChange","avatar_template":"/user_avatar/meta.discourse.org/portchange/{size}/316112_2.png","trust_level":1},{"id":1995,"username":"zogstrip","name":"","avatar_template":"/user_avatar/meta.discourse.org/zogstrip/{size}/512781_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":27384,"username":"merefield","name":"Robert","avatar_template":"/user_avatar/meta.discourse.org/merefield/{size}/176214_2.png","trust_level":3},{"id":5570,"username":"loic","name":"Loïc Guitaut","avatar_template":"/user_avatar/meta.discourse.org/loic/{size}/105621_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":127446,"username":"gormus","name":"Osman Görmüş","avatar_template":"/user_avatar/meta.discourse.org/gormus/{size}/428592_2.png","flair_name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111","flair_group_id":73,"trust_level":2},{"id":181557,"username":"sb56637","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/s/ea5d25/{size}.png","trust_level":2},{"id":114728,"username":"darkpixlz","name":"Pyx ","avatar_template":"/user_avatar/meta.discourse.org/darkpixlz/{size}/549896_2.png","primary_group_name":"VolunteerMods","flair_name":"VolunteerMods","flair_url":"https://global.discourse-cdn.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"trust_level":4},{"id":148530,"username":"bdfl","name":"Bryan","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/b/ea666f/{size}.png","trust_level":2},{"id":23163,"username":"j.jaffeux","name":"Joffrey Jaffeux","avatar_template":"/user_avatar/meta.discourse.org/j.jaffeux/{size}/60297_2.png","primary_group_name":"team","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":15291,"username":"philh","name":"","avatar_template":"/user_avatar/meta.discourse.org/philh/{size}/532740_2.png","trust_level":2}],"primary_groups":[{"id":47,"name":"team"},{"id":276,"name":"VolunteerMods"}],"flair_groups":[{"id":47,"name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_bg_color":"","flair_color":"111"},{"id":148,"name":"support-advocates","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/4/e4038d4d9848de2eabab38e17b8bdb69da154024.svg","flair_bg_color":"FFFFFF","flair_color":""},{"id":48,"name":"plugin_authors","flair_url":"plug","flair_bg_color":"dddddd","flair_color":"111111"},{"id":142,"name":"support-experts","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_color":""},{"id":50,"name":"translators","flair_url":"globe","flair_bg_color":"ddd","flair_color":"111"},{"id":276,"name":"VolunteerMods","flair_url":"https://global.discourse-cdn.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_bg_color":"","flair_color":""},{"id":73,"name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111"}],"topic_list":{"can_create_topic":false,"filter":"latest","more_topics_url":"/c/dev/7?page=1","per_page":30,"top_tags":[{"id":330,"name":"api-rest","slug":"rest-api"},{"id":436,"name":"css","slug":"css"},{"id":973,"name":"nouvelles-des-devs","slug":"dev-news"},{"id":328,"name":"api-de-plugin","slug":"plugin-api"},{"id":543,"name":"ia","slug":"ai"},{"id":317,"name":"discussion","slug":"chat"},{"id":556,"name":"en-tête-de-marque","slug":"brand-header"},{"id":483,"name":"barre-latérale","slug":"sidebar"},{"id":150,"name":"inst-dev","slug":"dev-install"},{"id":35,"name":"mobile","slug":"mobile"},{"id":466,"name":"console-rails","slug":"rails-console"},{"id":5,"name":"installation-non-prise-en","slug":"unsupported-install"},{"id":107,"name":"webhooks","slug":"webhooks"},{"id":22,"name":"compositeur","slug":"composer"},{"id":660,"name":"compteur-de-clics","slug":"click-counter"},{"id":278,"name":"développement","slug":"development"},{"id":39,"name":"courriel","slug":"email"},{"id":70,"name":"braise","slug":"ember"},{"id":478,"name":"comment-faire","slug":"how-to"},{"id":198,"name":"abonnements","slug":"subscriptions"},{"id":529,"name":"étiquettes","slug":"tags"},{"id":563,"name":"lien-bandeau-bienvenue","slug":"welcome-link-banner"},{"id":2,"name":"badges","slug":"badges"},{"id":551,"name":"liens-personnalisés-en-tê","slug":"custom-header-links"},{"id":24,"name":"docker","slug":"docker"},{"id":618,"name":"champs-personnalisu00e9s-","slug":"user-custom-fields"},{"id":126,"name":"explorateur-de-données","slug":"data-explorer"},{"id":241,"name":"événements","slug":"events"},{"id":31,"name":"boîte-unique","slug":"onebox"},{"id":87,"name":"publicité","slug":"advertising"},{"id":43,"name":"incorporation","slug":"embedding"}],"topics":[{"fancy_title":"Convention de préfixe de commit GitHub pour Discourse","fancy_title_localized":true,"locale":"en","id":19392,"title":"Discourse GitHub commit prefix convention","slug":"discourse-github-commit-prefix-convention","posts_count":2,"reply_count":1,"highest_post_number":11,"image_url":"https://global.discourse-cdn.com/meta/original/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05.png","created_at":"2014-08-28T21:32:16.635Z","last_posted_at":"2026-01-10T21:37:02.376Z","bumped":true,"bumped_at":"2026-01-10T21:37:02.376Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"Pour ceux qui souhaitent apporter des modifications au code de Discourse, nous exigeons que chaque *commit* GitHub ait l'un des préfixes suivants :\n\n| Préfixe | Définition |\n| :--- | :--- |\n| FIX | Une correction de bogue [1] |\n| PERF | Une amélioration des performances |\n| UX | Une amélioration de l'expérience utilisateur... |","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":773,"height":204,"url":"https://global.discourse-cdn.com/meta/original/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05.png"},{"max_width":600,"max_height":600,"width":600,"height":158,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05_2_600x158.png"},{"max_width":400,"max_height":400,"width":400,"height":105,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05_2_400x105.png"},{"max_width":300,"max_height":300,"width":300,"height":79,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05_2_300x79.png"},{"max_width":200,"max_height":200,"width":200,"height":52,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05_2_200x52.png"}],"tags":[],"tags_descriptions":{},"views":13319,"like_count":56,"has_summary":false,"last_poster_username":"Moin","category_id":7,"op_like_count":53,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un contributeur demande si le préfixe I18N sera ajouté à la liste des conventions de commits GitHub requises pour Discourse, suite à l'annonce des règles actuelles.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":32,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":95552,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"À propos de la catégorie Dev","fancy_title_localized":true,"locale":"en","id":1026,"title":"About the Development category","slug":"about-the-development-category","posts_count":1,"reply_count":1,"highest_post_number":1,"image_url":null,"created_at":"2013-02-06T08:43:41.559Z","last_posted_at":"2013-02-06T08:43:41.601Z","bumped":true,"bumped_at":"2023-08-09T13:19:55.222Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"La catégorie pour tout ce qui concerne le développement de Discourse. Vous créez une personnalisation pour vous-même ou pour la communauté ? Alors c'est la catégorie qu'il vous faut ! En savoir plus…","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":10762,"like_count":5,"has_summary":false,"last_poster_username":"Discourse","category_id":7,"op_like_count":5,"pinned_globally":false,"featured_link":null,"ai_topic_gist":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Compétences pour créer des thèmes et des blocs","fancy_title_localized":true,"locale":"en","id":401629,"title":"Skills for authoring themes and blocks","slug":"skills-for-authoring-themes-and-blocks","posts_count":21,"reply_count":12,"highest_post_number":23,"image_url":"https://global.discourse-cdn.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_1023x1009.png","created_at":"2026-04-27T17:39:44.880Z","last_posted_at":"2026-08-31T15:54:08.599Z","bumped":true,"bumped_at":"2026-08-31T15:54:08.599Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Un référentiel de compétences Claude Code pour créer des thèmes Discourse et des composants de blocs :\n\n:toolbox: Ce qui est inclus\nCompétence d'authoring de thème — couvre un périmètre complet de création d'un thème Discourse : mise en place avec le...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1523,"height":1501,"url":"https://global.discourse-cdn.com/meta/original/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d.png"},{"max_width":1024,"max_height":1024,"width":1023,"height":1009,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_1023x1009.png"},{"max_width":800,"max_height":800,"width":800,"height":788,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_800x788.png"},{"max_width":600,"max_height":600,"width":600,"height":591,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_600x591.png"},{"max_width":400,"max_height":400,"width":400,"height":394,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_400x394.png"},{"max_width":300,"max_height":300,"width":300,"height":295,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_300x295.png"},{"max_width":200,"max_height":200,"width":200,"height":197,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_200x197.png"}],"tags":[{"id":820,"name":"guides-thématiques","slug":"theme-guides"},{"id":1160,"name":"compétences","slug":"skills"},{"id":1159,"name":"blocs","slug":"blocks"}],"tags_descriptions":{},"views":840,"like_count":66,"has_summary":false,"last_poster_username":"nickdb","category_id":7,"op_like_count":20,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Les utilisateurs testent l'API de blocs de Discourse via des compétences Claude Code, créant des blocs personnalisés (bannières, profils utilisateurs), tandis que manuel précise que l'API reste expérimentale avec des ruptures de rétrocompatibilité possibles, déconseillant son usage en production.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":82960,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur fréquent","user_id":71041,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":57788,"primary_group_id":null,"flair_group_id":148},{"extras":null,"description":"Auteur récent","user_id":135392,"primary_group_id":null,"flair_group_id":48},{"extras":"latest","description":"Auteur le plus récent","user_id":155653,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Dépréciation de l&rsquo;utilisation de « user.groups » dans le modèle « User » en JavaScript","fancy_title_localized":true,"locale":"en","id":411124,"title":"Deprecating the user of `user.groups` in the `User` model in JavaScript","slug":"deprecating-the-user-of-user-groups-in-the-user-model-in-javascript","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2026-08-28T04:03:59.406Z","last_posted_at":"2026-08-31T01:12:56.697Z","bumped":true,"bumped_at":"2026-08-31T01:12:56.697Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Ceci est lié à la fois à The road to stable, then permanent, for granular_anonymous_and_logged_in_groups_permissions et à Granular group-based permissions for anonymous and logged in users \nDans le cœur de l’application &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"nouvelles-des-devs","slug":"dev-news"}],"tags_descriptions":{},"views":126,"like_count":7,"has_summary":false,"last_poster_username":"martin","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"La propriété `user.groups` du modèle `User` JavaScript est renommée en `visibleGroups` et désormais dépréciée (PR fusionnée), ne produisant que des avertissements de console pour l'instant, avec des alternatives serveur recommandées pour les vérifications de permissions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":71154,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":95552,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":145678,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"AVERTISSEMENT DE NON-RECOMMANDATION : l&rsquo;accès à la propriété de fuseau horaire de l&rsquo;objet utilisateur est déprécié. Utilisez l&rsquo;objet user_option à la place","fancy_title_localized":true,"locale":"en","id":411227,"title":"DEPRECATION NOTICE: Getting timezone property of user object is deprecated. Use user_option object instead","slug":"deprecation-notice-getting-timezone-property-of-user-object-is-deprecated-use-user-option-object-instead","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-08-30T09:04:23.547Z","last_posted_at":"2026-08-30T09:04:23.673Z","bumped":true,"bumped_at":"2026-08-30T09:04:23.673Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Vous recevrez cet avis lorsque vous tenterez de charger l'utilisateur depuis le store de la manière suivante :\napi.container.lookup(&#39;service:store&#39;).find(&#39;user&#39;, api.getCurrentUser().username).then((user) =&gt; {\n});\n\nHydratation de l'utilisateur depuis le store&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":60,"like_count":2,"has_summary":false,"last_poster_username":"elmuerte","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un développeur cherche une alternative pour récupérer les champs utilisateur personnalisés depuis un thème sans déclencher l'avertissement de non-recommandation lié à la propriété de fuseau horaire lors de l'hydratation de l'objet utilisateur depuis le magasin.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":119375,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Plugin Bounce Guard pour Discourse","fancy_title_localized":true,"locale":"en","id":411196,"title":"Discourse Bounce Guard plugin","slug":"discourse-bounce-guard-plugin","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-08-29T11:05:30.736Z","last_posted_at":"2026-08-29T11:05:30.878Z","bumped":true,"bumped_at":"2026-08-29T11:05:30.878Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Dépôt : GitHub - overgrow/discourse-bounce-guard · GitHub \nLicence : MIT \n\n&amp;En bref : ce que vous obtenez : un journal d'erreurs plus propre (les tentatives de renvoi horaires vers des adresses inactives cessent). Discourse cesse d'envoyer des e-mails qui ne peuvent pas être livrés. Et nous, nous sommes plus heureux&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":39,"name":"courriel","slug":"email"}],"tags_descriptions":{},"views":69,"like_count":2,"has_summary":false,"last_poster_username":"Overgrow","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un développeur présente le plugin Discourse Bounce Guard, qui détecte les rejets SMTP permanents, alimente le score de rebond pour arrêter les envois vers des adresses mortes et permet la désactivation puis la réactivation de l'utilisateur via une nouvelle adresse.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":22774,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"RFC : Une nouvelle stratégie de versioning pour Discourse","fancy_title_localized":true,"locale":"en","id":383536,"title":"RFC: A new versioning strategy for Discourse","slug":"rfc-a-new-versioning-strategy-for-discourse","posts_count":61,"reply_count":56,"highest_post_number":65,"image_url":null,"created_at":"2025-09-23T07:55:33.001Z","last_posted_at":"2026-08-28T21:56:46.872Z","bumped":true,"bumped_at":"2026-08-28T21:56:46.872Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Nous prévoyons d'introduire un nouveau système de versioning pour Discourse. Notre objectif est de fournir plus de choix et de prévisibilité aux administrateurs de communauté, tout en maintenant notre vélocité de développement. Nous ajustons également certains t...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"nouvelles-des-devs","slug":"dev-news"}],"tags_descriptions":{},"views":3033,"like_count":244,"has_summary":true,"last_poster_username":"featheredtoast","category_id":7,"op_like_count":40,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Le débat sur la nouvelle stratégie de versionnage de Discourse aborde les questions de rétroportage des correctifs de sécurité et des mises à jour de dépendances vers les versions ESR, ces dernières étant gérées au cas par cas selon leur impact fonctionnel.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur fréquent","user_id":4263,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur fréquent","user_id":406,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Auteur récent","user_id":138432,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":12705,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":":fire: Critiquez mon composant de thème : Cartes de sujets avancées","fancy_title_localized":true,"locale":"en","id":391984,"title":"🔥 Roast my Theme Component: Advanced Topic Cards","slug":"roast-my-theme-component-advanced-topic-cards","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2025-12-23T10:17:40.282Z","last_posted_at":"2026-08-27T10:31:58.426Z","bumped":true,"bumped_at":"2026-08-27T10:31:58.426Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Salut à tous\n\nAvertissement : Aucun IA n'a été blessé lors de la création de ce composant de thème :smiley:\n\nOui les amis, je suis coupable d'avoir codé sans vergogne une copie du composant de thème Topic Cards. D'où un énorme coup de chapeau à l'auteur original...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":745,"name":"cartes-sujets","slug":"topic-cards"}],"tags_descriptions":{"cartes-sujets":"Sujets concernant le composant de thème <a href=\"https://meta.discourse.org/t..."},"views":301,"like_count":12,"has_summary":false,"last_poster_username":"gilles","category_id":7,"op_like_count":4,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un utilisateur présente sa réécriture avancée du composant de thème Topic Cards pour Discourse, avec de nouvelles fonctionnalités, et un autre participant signale un avertissement de code nécessitant une mise à jour.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":60726,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":72263,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":406,"primary_group_id":null,"flair_group_id":142},{"extras":"latest","description":"Auteur le plus récent","user_id":173218,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Comment intégrer un bouton dans un post de sujet","fancy_title_localized":true,"locale":"en","id":256473,"title":"How to embed a button into a Topic Post","slug":"how-to-embed-a-button-into-a-topic-post","posts_count":6,"reply_count":1,"highest_post_number":7,"image_url":"https://global.discourse-cdn.com/meta/original/4X/a/e/f/aef0071816a1ab2f70fef7e5fe31bc9da02c097b.png","created_at":"2023-02-28T08:17:56.443Z","last_posted_at":"2026-08-24T13:16:14.866Z","bumped":true,"bumped_at":"2026-08-24T13:16:14.866Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Présentation du bouton intégré incroyable - la solution ultime pour pimenter vos publications de sujets ! En un seul clic, vous pouvez ajouter une toute nouvelle dimension à votre contenu et laisser vos lecteurs émerveillés. De plus, notre bouton intégré&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":964,"height":520,"url":"https://global.discourse-cdn.com/meta/original/4X/a/e/f/aef0071816a1ab2f70fef7e5fe31bc9da02c097b.png"},{"max_width":800,"max_height":800,"width":800,"height":431,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/e/f/aef0071816a1ab2f70fef7e5fe31bc9da02c097b_2_800x431.png"},{"max_width":600,"max_height":600,"width":600,"height":323,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/e/f/aef0071816a1ab2f70fef7e5fe31bc9da02c097b_2_600x323.png"},{"max_width":400,"max_height":400,"width":400,"height":215,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/e/f/aef0071816a1ab2f70fef7e5fe31bc9da02c097b_2_400x215.png"},{"max_width":300,"max_height":300,"width":300,"height":161,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/e/f/aef0071816a1ab2f70fef7e5fe31bc9da02c097b_2_300x161.png"},{"max_width":200,"max_height":200,"width":200,"height":107,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/e/f/aef0071816a1ab2f70fef7e5fe31bc9da02c097b_2_200x107.png"}],"tags":[{"id":436,"name":"css","slug":"css"}],"tags_descriptions":{},"views":1146,"like_count":21,"has_summary":false,"last_poster_username":"pacharanero","category_id":7,"op_like_count":14,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un utilisateur a partagé une méthode CSS pour intégrer des boutons d'action dans les publications Discourse afin d'augmenter les conversions, et un autre a créé un composant de thème offrant des boutons personnalisés plus simples à utiliser.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":125840,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":29390,"primary_group_id":null,"flair_group_id":50},{"extras":null,"description":"Auteur récent","user_id":60726,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":13093,"primary_group_id":276,"flair_group_id":276}]},{"fancy_title":"À propos des directives standardisées pour les composants de thème","fancy_title_localized":true,"locale":"en","id":410741,"title":"About standardized guidelines for theme components","slug":"about-standardized-guidelines-for-theme-components","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2026-08-23T17:56:02.102Z","last_posted_at":"2026-08-23T23:59:21.684Z","bumped":true,"bumped_at":"2026-08-23T23:59:21.684Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Je n'aurais jamais imaginé faire ça, mais me voici, en train d'éditer du CSS et du JavaScript, et de créer mes premiers composants de thème et de plugin simples. \nComme je l'ai lu auparavant (bien que je n'étais pas tout à fait prêt — il faut une certaine base pour s&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":436,"name":"css","slug":"css"},{"id":814,"name":"personnalisation","slug":"customization"},{"id":819,"name":"code","slug":"code"}],"tags_descriptions":{},"views":112,"like_count":6,"has_summary":false,"last_poster_username":"satonotdead","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un développeur débutant demande des directives standardisées pour les composants de thème Discourse, face aux conflits de variables CSS ; des ressources comme le squelette de thème et un lien Meta sont proposées, mais le problème de la dépendance aux autres thèmes persiste.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":71041,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":135392,"primary_group_id":null,"flair_group_id":48},{"extras":null,"description":"Auteur récent","user_id":156013,"primary_group_id":276,"flair_group_id":276}]},{"fancy_title":"Remplacement recommandé pour modifyClass(&ldquo;model:composer&rdquo;) lors de la surcharge de save()","fancy_title_localized":true,"locale":"en","id":410125,"title":"Recommended replacement for modifyClass(\"model:composer\") when overriding save()","slug":"recommended-replacement-for-modifyclass-model-composer-when-overriding-save","posts_count":8,"reply_count":3,"highest_post_number":9,"image_url":null,"created_at":"2026-08-15T09:05:05.358Z","last_posted_at":"2026-08-21T16:54:38.094Z","bumped":true,"bumped_at":"2026-08-21T16:54:38.094Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Je migre pour abandonner l’api.modifyClass(« model:composer », ...) dépréciée.\nMon remplacement actuel de Composer#save modifie conditionnellement le comportement de la sauvegarde, mais doit sinon appeler super.save(opts).\nJe vois que le nouveau a…","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":22,"name":"compositeur","slug":"composer"}],"tags_descriptions":{},"views":227,"like_count":18,"has_summary":false,"last_poster_username":"jahan_gagan","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Pour remplacer l'API dépréciée modifyClass sur le modèle Composer, David a créé un nouveau transformateur de valeur « composer-minimum-post-length » dans le cœur de Discourse, permettant aux plugins de contourner la validation de longueur minimale et d'autoriser la création de sujets à corps vide.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":73038,"primary_group_id":null,"flair_group_id":48},{"extras":null,"description":"Auteur récent, Réponse acceptée","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur fréquent","user_id":2770,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Le category_types de SiteSerializer du staff exécute une requête BDD par SiteSetting dans les schémas de configuration","fancy_title_localized":true,"locale":"en","id":410304,"title":"Staff SiteSerializer category_types performs one DB query per SiteSetting in configuration schemas","slug":"staff-siteserializer-category-types-performs-one-db-query-per-sitesetting-in-configuration-schemas","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2026-08-18T08:48:19.849Z","last_posted_at":"2026-08-21T11:15:24.606Z","bumped":true,"bumped_at":"2026-08-21T11:15:24.606Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"J'ai remarqué ce qui ressemble à un motif de requêtes N par paramètre en investiguant les performances du chargement initial des pages pour les utilisateurs du personnel. \nSur mon site, un compte ordinaire non-membre du personnel charge /latest nettement plus vite que mon compte admin/personnel a&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":278,"name":"développement","slug":"development"},{"id":10,"name":"performance","slug":"performance"}],"tags_descriptions":{},"views":85,"like_count":3,"has_summary":false,"last_poster_username":"Ethsim2","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un PR Discourse corrige les requêtes N-per-setting de SiteSerializer en chargeant les overrides SiteSetting en une seule requête par TypeRegistry, avec tests et CI validés.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":160471,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Créer un chargeur de squelette pour Discourse","fancy_title_localized":true,"locale":"en","id":410338,"title":"Building a Skeleton Layout Loader for Discourse","slug":"building-a-skeleton-layout-loader-for-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://global.discourse-cdn.com/meta/optimized/4X/8/1/d/81d150eeeb32490dfbe9e8b181ab7b40d73a40ad_2_1024x647.png","created_at":"2026-08-18T14:46:57.354Z","last_posted_at":"2026-08-18T14:46:57.530Z","bumped":true,"bumped_at":"2026-08-18T14:46:57.530Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Bonjour :waving_hand: \nL’idée de base\nL’objectif était de créer un chargeur squelette généré à partir de l’interface utilisateur réelle de Discourse, plutôt que de s’appuyer sur un modèle de squelette codé en dur. \nL’out&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1092,"height":690,"url":"https://global.discourse-cdn.com/meta/original/4X/8/1/d/81d150eeeb32490dfbe9e8b181ab7b40d73a40ad.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":647,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/1/d/81d150eeeb32490dfbe9e8b181ab7b40d73a40ad_2_1024x647.png"},{"max_width":800,"max_height":800,"width":800,"height":505,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/1/d/81d150eeeb32490dfbe9e8b181ab7b40d73a40ad_2_800x505.png"},{"max_width":600,"max_height":600,"width":600,"height":379,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/1/d/81d150eeeb32490dfbe9e8b181ab7b40d73a40ad_2_600x379.png"},{"max_width":400,"max_height":400,"width":400,"height":252,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/1/d/81d150eeeb32490dfbe9e8b181ab7b40d73a40ad_2_400x252.png"},{"max_width":300,"max_height":300,"width":300,"height":189,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/1/d/81d150eeeb32490dfbe9e8b181ab7b40d73a40ad_2_300x189.png"},{"max_width":200,"max_height":200,"width":200,"height":126,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/1/d/81d150eeeb32490dfbe9e8b181ab7b40d73a40ad_2_200x126.png"}],"tags":[],"tags_descriptions":{},"views":69,"like_count":8,"has_summary":false,"last_poster_username":"Don","category_id":7,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Développement d'un chargeur squelette pour Discourse généré depuis l'interface réelle, avec génération intelligente de sélecteurs, gestion des éléments masqués, adaptation aux breakpoints, mise en cache de la géométrie et sauvegarde de brouillons pour les administrateurs.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":78445,"primary_group_id":276,"flair_group_id":276}]},{"fancy_title":"Le chemin vers la stabilité, puis la pérennité, pour granular_anonymous_and_logged_in_groups_permissions","fancy_title_localized":true,"locale":"en","id":410178,"title":"The road to stable, then permanent, for granular_anonymous_and_logged_in_groups_permissions","slug":"the-road-to-stable-then-permanent-for-granular-anonymous-and-logged-in-groups-permissions","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-08-17T05:43:36.000Z","last_posted_at":"2026-08-17T05:43:36.306Z","bumped":true,"bumped_at":"2026-08-17T05:43:36.306Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Ceci est un sujet complémentaire à Granular group-based permissions for anonymous and logged in users , et il est en cours de rédaction.\n\nIl reste encore quelques endroits dans diverses bases de code pour le cœur, les plugins et les thèmes qui référencent directement ev&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":1111,"name":"changements-à-venir","slug":"upcoming-changes"}],"tags_descriptions":{},"views":85,"like_count":2,"has_summary":false,"last_poster_username":"martin","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Ce sujet centralise les corrections nécessaires dans le code de base, les plugins et les thèmes de Discourse pour finaliser les permissions granulaires de groupes (anonymes et connectés), en éliminant les références directes aux groupes automatiques et en priorisant les correctifs avant la stabilisation.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":71154,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Maintenant en bêta : Plugin pour voir la progression TL3 pour les utilisateurs TL2","fancy_title_localized":true,"locale":"en","id":408543,"title":"Now in Beta: Plugin to see TL3 Progress for TL2 users","slug":"now-in-beta-plugin-to-see-tl3-progress-for-tl2-users","posts_count":32,"reply_count":19,"highest_post_number":32,"image_url":"https://global.discourse-cdn.com/meta/optimized/4X/9/5/0/9501753957f175cf4f64d3420339f66e33e3d949_2_1024x512.png","created_at":"2026-07-26T12:06:35.448Z","last_posted_at":"2026-08-17T01:43:43.525Z","bumped":true,"bumped_at":"2026-08-17T01:43:43.525Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Salut tout le monde ! Ces derniers jours, j’ai essayé de permettre aux utilisateurs de voir la progression vers le niveau de confiance 3 sur leur profil utilisateur à l’aide d’une extension.\n\nVoici l’extension actuelle :\n\n\n  \n  \nJ’utilise le formidable Gauge.js pour les jauges. Il utilise t&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1200,"height":600,"url":"https://global.discourse-cdn.com/meta/original/4X/9/5/0/9501753957f175cf4f64d3420339f66e33e3d949.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":512,"url":"https://global.discourse-cdn.com/meta/optimized/4X/9/5/0/9501753957f175cf4f64d3420339f66e33e3d949_2_1024x512.png"},{"max_width":800,"max_height":800,"width":800,"height":400,"url":"https://global.discourse-cdn.com/meta/optimized/4X/9/5/0/9501753957f175cf4f64d3420339f66e33e3d949_2_800x400.png"},{"max_width":600,"max_height":600,"width":600,"height":300,"url":"https://global.discourse-cdn.com/meta/optimized/4X/9/5/0/9501753957f175cf4f64d3420339f66e33e3d949_2_600x300.png"},{"max_width":400,"max_height":400,"width":400,"height":200,"url":"https://global.discourse-cdn.com/meta/optimized/4X/9/5/0/9501753957f175cf4f64d3420339f66e33e3d949_2_400x200.png"},{"max_width":300,"max_height":300,"width":300,"height":150,"url":"https://global.discourse-cdn.com/meta/optimized/4X/9/5/0/9501753957f175cf4f64d3420339f66e33e3d949_2_300x150.png"},{"max_width":200,"max_height":200,"width":200,"height":100,"url":"https://global.discourse-cdn.com/meta/optimized/4X/9/5/0/9501753957f175cf4f64d3420339f66e33e3d949_2_200x100.png"}],"tags":[],"tags_descriptions":{},"views":989,"like_count":131,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":7,"op_like_count":17,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un plugin Discourse permettant aux utilisateurs TL2 de visualiser leur progression vers le niveau de confiance 3, avec des jauges animées et des options de personnalisation, a été publié en bêta sur Meta Discourse.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent, Réponse acceptée","user_id":135392,"primary_group_id":null,"flair_group_id":48},{"extras":null,"description":"Auteur fréquent","user_id":65413,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":113000,"primary_group_id":null,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":71041,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Fenêtre modale de type Facebook pour les sujets - Est-ce mieux ?","fancy_title_localized":true,"locale":"en","id":408565,"title":"Facebook-style Topic Modal - Is it better?","slug":"facebook-style-topic-modal-is-it-better","posts_count":32,"reply_count":23,"highest_post_number":33,"image_url":"https://global.discourse-cdn.com/meta/optimized/4X/b/9/0/b908a7b9735c6b3576395cda861615b12aa03b0e_2_1024x887.jpeg","created_at":"2026-07-27T01:09:55.303Z","last_posted_at":"2026-08-10T19:15:41.564Z","bumped":true,"bumped_at":"2026-08-10T19:15:41.564Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"J’ai passé du temps à bidouiller pour donner un look différent à d’autres sites, et j’ai créé une fenêtre modale de style Facebook pour les sujets. Elle semble charger plus rapidement chez moi et paraît plus fluide sur ordinateur.\n \n   \nQu’en pensez-vous ?\n&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1368,"height":1186,"url":"https://global.discourse-cdn.com/meta/original/4X/b/9/0/b908a7b9735c6b3576395cda861615b12aa03b0e.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":887,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/9/0/b908a7b9735c6b3576395cda861615b12aa03b0e_2_1024x887.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":693,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/9/0/b908a7b9735c6b3576395cda861615b12aa03b0e_2_800x693.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":520,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/9/0/b908a7b9735c6b3576395cda861615b12aa03b0e_2_600x520.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":346,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/9/0/b908a7b9735c6b3576395cda861615b12aa03b0e_2_400x346.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":260,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/9/0/b908a7b9735c6b3576395cda861615b12aa03b0e_2_300x260.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":173,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/9/0/b908a7b9735c6b3576395cda861615b12aa03b0e_2_200x173.jpeg"}],"tags":[],"tags_descriptions":{},"views":681,"like_count":69,"has_summary":false,"last_poster_username":"Damian_Boon","category_id":7,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Don a optimisé son composant de modal de sujet avec de nouveaux paramètres de configuration et une gestion des limites de débit, recevant les remerciements de Damian_Boon pour cette solution fonctionnelle.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent, Réponse acceptée","user_id":73430,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":2770,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":78445,"primary_group_id":276,"flair_group_id":276}]},{"fancy_title":"Dépréciation de l&rsquo;extension de fichier .hbs dans les thèmes et plugins","fancy_title_localized":true,"locale":"en","id":398896,"title":"Deprecating .hbs file extension in themes and plugins","slug":"deprecating-hbs-file-extension-in-themes-and-plugins","posts_count":21,"reply_count":11,"highest_post_number":21,"image_url":null,"created_at":"2026-03-20T16:48:11.841Z","last_posted_at":"2026-08-09T18:49:52.382Z","bumped":true,"bumped_at":"2026-08-09T18:49:52.382Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Dans la dernière version de Discourse, l'utilisation de fichiers .hbs dans les thèmes et les plugins est obsolète. La prise en charge de ce format de fichier sera supprimée après la prochaine version ESR.\nLes modèles Handlebars doivent être remplacés par les ... plus...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"nouvelles-des-devs","slug":"dev-news"}],"tags_descriptions":{},"views":1459,"like_count":54,"has_summary":false,"last_poster_username":"Willy","category_id":7,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"L'obsolescence des fichiers .hbs dans Discourse soulève des problèmes d'incohérence, car un plugin mis à jour vers le format .gjs ne supprime pas systématiquement les avertissements sur tous les serveurs.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur fréquent","user_id":406,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Auteur fréquent","user_id":26605,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":82960,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Auteur le plus récent","user_id":174634,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Automatisation des points de gamification","fancy_title_localized":true,"locale":"en","id":409452,"title":"Automating gamification points","slug":"automating-gamification-points","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2026-08-06T13:51:51.930Z","last_posted_at":"2026-08-08T00:41:01.234Z","bumped":true,"bumped_at":"2026-08-08T00:41:01.234Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Je réfléchis à des événements qui déclencheront l’attribution de points spécifiques à ceux qui les complètent, ainsi qu’à l’extension de cette fonctionnalité à différentes tâches, comme « Partagez votre adresse » ou « Montrez votre animal de compagnie ».\nJe sais que les points peuvent être attribués&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":543,"name":"ia","slug":"ai"},{"id":2,"name":"badges","slug":"badges"},{"id":275,"name":"automatisation","slug":"automation"},{"id":384,"name":"ludification","slug":"gamification"},{"id":1182,"name":"workflows","slug":"workflows"}],"tags_descriptions":{"badges":""},"views":170,"like_count":12,"has_summary":false,"last_poster_username":"satonotdead","category_id":7,"op_like_count":3,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"L'automatisation des points de gamification sur Discourse se oriente vers l'utilisation de Workflows, permettant d'attribuer des points après vérification, suite à l'élimination de plugins tiers instables.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":71041,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent, Réponse acceptée","user_id":8722,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur fréquent","user_id":2770,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":156013,"primary_group_id":276,"flair_group_id":276}]},{"fancy_title":"Tweaking patterns in email_reply_trimmer","fancy_title_localized":false,"locale":null,"id":70767,"title":"Tweaking patterns in email_reply_trimmer","slug":"tweaking-patterns-in-email-reply-trimmer","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2017-09-26T00:19:05.343Z","last_posted_at":"2026-08-06T10:10:09.620Z","bumped":true,"bumped_at":"2026-08-06T10:10:09.620Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hey, @gerhard.  I’m still doing an import with a bunch of mailing lists sucked in to nabble. \nThere are a bunch of posts that are announcements and have a line of dashes near the top, so the whole post gets truncated by &hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":877,"name":"corrigé","slug":"fixed"}],"tags_descriptions":{"corrigé":"Nous priorisons la correction des bogues dans notre logiciel signalés dans le..."},"views":917,"like_count":6,"has_summary":false,"last_poster_username":"merefield","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A fix for email_reply_trimmer incorrectly truncating announcements with top dash lines has been implemented, resolving an issue originally raised years ago.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Auteur fréquent","user_id":136260,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":1995,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Auteur le plus récent","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Injecter du HTML uniquement sur une page","fancy_title_localized":true,"locale":"en","id":409186,"title":"Inject html only on one page","slug":"inject-html-only-on-one-page","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2026-08-03T19:11:57.938Z","last_posted_at":"2026-08-04T14:48:28.356Z","bumped":true,"bumped_at":"2026-08-04T14:48:28.356Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"J'ai quelque chose comme ça dans l'onglet JS de mon thème :\nimport { apiInitializer } from &quot;discourse/lib/api&quot;;\n\n\nexport default apiInitializer(&quot;0.11.1&quot;, (api) =&gt; { \n    api.renderInOutlet(&quot;above-main-container&quot;,\n        &lt;temp&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":113,"like_count":6,"has_summary":false,"last_poster_username":"Andrew_Rowe","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Andrew_Rowe résout le problème de chargement d'un widget personnalisé sur la page d'accueil Discourse en utilisant l'API onPageChange pour recharger le script lors de la navigation.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":156013,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"Auteur récent, Réponse acceptée","user_id":2770,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Quelqu&rsquo;un peut-il clarifier la logique de promotion TL3 basée sur les « messages lus » ?","fancy_title_localized":true,"locale":"en","id":409057,"title":"Can someone clarify the 'posts read' TL3 promotion logic?","slug":"can-someone-clarify-the-posts-read-tl3-promotion-logic","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2026-08-02T01:35:11.438Z","last_posted_at":"2026-08-02T02:16:30.574Z","bumped":true,"bumped_at":"2026-08-02T02:16:30.574Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Il y a ce bout de code qui me tracasse :\n\n\nPour l’amour de Dieu, je n’arrive pas à comprendre pourquoi le nombre de publications effectuées pendant cette période est multiplié par le pourcentage de publications requises à lire, puis pris comme valeur minimale…","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":112,"like_count":8,"has_summary":false,"last_poster_username":"mcwumbly","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"La logique de promotion TL3 pour les posts lus est clarifiée : il s'agit d'un pourcentage des posts publiés, limité par un plafond pour éviter des exigences excessives sur les forums actifs.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":135392,"primary_group_id":null,"flair_group_id":48},{"extras":"latest","description":"Auteur le plus récent, Réponse acceptée","user_id":4263,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Nouvelles spécifications du système de fonctionnalités principales dans les plugins et thèmes","fancy_title_localized":true,"locale":"en","id":361381,"title":"New core features system specs in plugins and themes","slug":"new-core-features-system-specs-in-plugins-and-themes","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2025-04-11T08:43:29.423Z","last_posted_at":"2026-08-01T16:30:31.126Z","bumped":true,"bumped_at":"2026-08-01T16:30:31.126Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Nous venons d’inclure ce que nous appelons des « smoke specs » ou « core features specs » dans les deux squelettes pour les plugins et les thèmes. \nCes spécifications garantissent que le plugin ou le thème sur lequel vou&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"nouvelles-des-devs","slug":"dev-news"}],"tags_descriptions":{},"views":335,"like_count":20,"has_summary":false,"last_poster_username":"pfaffman","category_id":7,"op_like_count":11,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"L'ajout de spécifications de fonctionnalités de base aux plugins et thèmes Discourse est discuté, avec une solution pour les thèmes nécessitant des extensions spécifiques.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":5570,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":127446,"primary_group_id":null,"flair_group_id":73},{"extras":"latest","description":"Auteur le plus récent","user_id":15209,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"La bonne façon de styliser la page des sujets","fancy_title_localized":true,"locale":"en","id":408912,"title":"Correct way to style the topic page","slug":"correct-way-to-style-the-topic-page","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"https://global.discourse-cdn.com/meta/optimized/4X/8/3/3/833afa59e5ee94d82b5800b7edca66d044af66b6_2_1024x737.jpeg","created_at":"2026-07-30T12:38:32.230Z","last_posted_at":"2026-07-31T08:16:09.094Z","bumped":true,"bumped_at":"2026-07-31T08:16:09.094Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Salut tout le monde, j’essaie de déplacer ces éléments, mais je ne suis pas sûr de la bonne démarche à suivre. S’agit-il simplement de créer un composant pour ce faire ? \n(J’utilise les réponses imbriquées aux sujets) \n  &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1342,"height":966,"url":"https://global.discourse-cdn.com/meta/original/4X/8/3/3/833afa59e5ee94d82b5800b7edca66d044af66b6.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":737,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/3/3/833afa59e5ee94d82b5800b7edca66d044af66b6_2_1024x737.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":575,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/3/3/833afa59e5ee94d82b5800b7edca66d044af66b6_2_800x575.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":431,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/3/3/833afa59e5ee94d82b5800b7edca66d044af66b6_2_600x431.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":287,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/3/3/833afa59e5ee94d82b5800b7edca66d044af66b6_2_400x287.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":215,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/3/3/833afa59e5ee94d82b5800b7edca66d044af66b6_2_300x215.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":143,"url":"https://global.discourse-cdn.com/meta/optimized/4X/8/3/3/833afa59e5ee94d82b5800b7edca66d044af66b6_2_200x143.jpeg"}],"tags":[],"tags_descriptions":{},"views":140,"like_count":3,"has_summary":false,"last_poster_username":"Canapin","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un utilisateur demande la méthode correcte pour aligner les contrôles de la barre d'outils imbriquée, recevant une solution CSS spécifique via `justify-content: flex-end` pour éviter l'utilisation d'un composant personnalisé.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":73430,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":35474,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Existe-t-il un moyen de modifier la largeur à laquelle le petit logo apparaît ?","fancy_title_localized":true,"locale":"en","id":408767,"title":"Any way to change at what width the small logo appears?","slug":"any-way-to-change-at-what-width-the-small-logo-appears","posts_count":9,"reply_count":6,"highest_post_number":9,"image_url":"https://global.discourse-cdn.com/meta/optimized/4X/e/a/5/ea5d3a276b14d017578a54a97c763dcace73d87e_2_1024x87.png","created_at":"2026-07-28T21:05:55.214Z","last_posted_at":"2026-07-29T16:58:04.438Z","bumped":true,"bumped_at":"2026-07-29T16:58:04.438Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Salut, j’avais l’habitude d’injecter le nom de mon forum en texte dans l’en-tête, juste après le logo, mais c’était un peu le bazar pour essayer de l’adapter à toutes les combinaisons de largeurs de navigateur et de cont&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1862,"height":160,"url":"https://global.discourse-cdn.com/meta/original/4X/e/a/5/ea5d3a276b14d017578a54a97c763dcace73d87e.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":87,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/a/5/ea5d3a276b14d017578a54a97c763dcace73d87e_2_1024x87.png"},{"max_width":800,"max_height":800,"width":800,"height":68,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/a/5/ea5d3a276b14d017578a54a97c763dcace73d87e_2_800x68.png"},{"max_width":600,"max_height":600,"width":600,"height":51,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/a/5/ea5d3a276b14d017578a54a97c763dcace73d87e_2_600x51.png"},{"max_width":400,"max_height":400,"width":400,"height":34,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/a/5/ea5d3a276b14d017578a54a97c763dcace73d87e_2_400x34.png"},{"max_width":300,"max_height":300,"width":300,"height":25,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/a/5/ea5d3a276b14d017578a54a97c763dcace73d87e_2_300x25.png"},{"max_width":200,"max_height":200,"width":200,"height":17,"url":"https://global.discourse-cdn.com/meta/optimized/4X/e/a/5/ea5d3a276b14d017578a54a97c763dcace73d87e_2_200x17.png"}],"tags":[],"tags_descriptions":{},"views":184,"like_count":16,"has_summary":false,"last_poster_username":"sb56637","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un développeur a ajouté une option au composant Full Width pour restaurer le comportement par défaut du logo, résolvant ainsi le problème de mise en page signalé par un utilisateur.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":181557,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent, Réponse acceptée","user_id":2770,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Réessayer automatiquement après l&rsquo;avertissement d&rsquo;espace disque insuffisant","fancy_title_localized":true,"locale":"en","id":408778,"title":"Automatically retry after low disk space warning","slug":"automatically-retry-after-low-disk-space-warning","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://global.discourse-cdn.com/meta/optimized/4X/a/8/7/a87b1511873a075a8a4c4ce02de6424aa20a7888_2_1024x187.png","created_at":"2026-07-28T22:43:21.358Z","last_posted_at":"2026-07-28T22:43:21.543Z","bumped":true,"bumped_at":"2026-07-28T22:43:21.543Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Actuellement, lorsque vous êtes à court d’espace disque et que vous tentez de reconstruire, le script de lancement nettoie vos images pour vous afin de libérer de l’espace. Cependant, le script se termine automatiquement&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1532,"height":280,"url":"https://global.discourse-cdn.com/meta/original/4X/a/8/7/a87b1511873a075a8a4c4ce02de6424aa20a7888.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":187,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/8/7/a87b1511873a075a8a4c4ce02de6424aa20a7888_2_1024x187.png"},{"max_width":800,"max_height":800,"width":800,"height":146,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/8/7/a87b1511873a075a8a4c4ce02de6424aa20a7888_2_800x146.png"},{"max_width":600,"max_height":600,"width":600,"height":109,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/8/7/a87b1511873a075a8a4c4ce02de6424aa20a7888_2_600x109.png"},{"max_width":400,"max_height":400,"width":400,"height":73,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/8/7/a87b1511873a075a8a4c4ce02de6424aa20a7888_2_400x73.png"},{"max_width":300,"max_height":300,"width":300,"height":54,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/8/7/a87b1511873a075a8a4c4ce02de6424aa20a7888_2_300x54.png"},{"max_width":200,"max_height":200,"width":200,"height":36,"url":"https://global.discourse-cdn.com/meta/optimized/4X/a/8/7/a87b1511873a075a8a4c4ce02de6424aa20a7888_2_200x36.png"}],"tags":[],"tags_descriptions":{},"views":64,"like_count":2,"has_summary":false,"last_poster_username":"darkpixlz","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Une demande de tirage améliore l'expérience utilisateur en permettant une reprise automatique de la reconstruction après un nettoyage d'espace disque, évitant ainsi de relancer manuellement le script.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":114728,"primary_group_id":276,"flair_group_id":276}]},{"fancy_title":"Demande de rétroportage ESR : Autoriser l&rsquo;accès fin des clés API à about.json","fancy_title_localized":true,"locale":"en","id":408619,"title":"Request ESR backport: Allow granular API keys access to about.json","slug":"request-esr-backport-allow-granular-api-keys-access-to-about-json","posts_count":3,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2026-07-27T15:38:28.752Z","last_posted_at":"2026-07-28T18:14:05.777Z","bumped":true,"bumped_at":"2026-07-28T18:14:05.777Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"@supermathie @awesomerobot \nSuite au sujet fermé API user with granular access cannot read about.json | Discourse MCP \nLes utilisateurs ESR qui souhaitent utiliser le serveur Discourse MCP avec une sécurité de moindre privilège lors de la connexion&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":1087,"name":"mcp","slug":"mcp"}],"tags_descriptions":{},"views":128,"like_count":1,"has_summary":false,"last_poster_username":"bdfl","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"La demande de rétroportage de l'accès granulaire à about.json pour ESR est résolue car une nouvelle version ESR incluant cette correction est sur le point d'être publiée.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":148530,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":23163,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"La bonne méthode pour modifier le CSS pour les modes clair et sombre","fancy_title_localized":true,"locale":"en","id":408647,"title":"Correct way to edit CSS for light and dark modes","slug":"correct-way-to-edit-css-for-light-and-dark-modes","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2026-07-27T20:36:46.213Z","last_posted_at":"2026-07-27T21:33:03.681Z","bumped":true,"bumped_at":"2026-07-27T21:33:03.681Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Je dois modifier beaucoup de CSS pour les modes clair et sombre. J’ai lu quelques messages sur le forum disant qu’il n’existe pas de méthode fiable pour le faire, y compris\nhttps://meta.discourse.org/t/how-to-change-css-item-based-on-dark-or-&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":115,"like_count":5,"has_summary":false,"last_poster_username":"Damian_Boon","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Pour gérer le CSS des modes clair et sombre dans Discourse, on privilégie les variables de couleur natives plutôt que les requêtes de conteneur, et la fonction light-dark() offre une alternative simple.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":73430,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent, Réponse acceptée","user_id":2770,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Confirmation de l&rsquo;accès API aux paramètres du site pour les limites d&rsquo;auteur","fancy_title_localized":true,"locale":"en","id":407937,"title":"Confirming API Access to Authoring Limit Site Settings","slug":"confirming-api-access-to-authoring-limit-site-settings","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2026-07-18T08:21:13.701Z","last_posted_at":"2026-07-25T23:07:34.407Z","bumped":true,"bumped_at":"2026-07-25T23:07:34.407Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Je travaille sur une intégration qui publie et synchronise des sujets annexes dans Discourse via l’API. Pour les diagnostics de configuration, je souhaite lire les limites de rédaction actuelles du forum afin que l’intégration puisse vérifier le contenu à l’avance&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":330,"name":"api-rest","slug":"rest-api"}],"tags_descriptions":{"api-rest":"Sujets sur la réalisation d'une requête externe à Discourse"},"views":187,"like_count":4,"has_summary":false,"last_poster_username":"philh","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un utilisateur confirme que l'accès API aux paramètres de limites d'auteur nécessite un rôle administrateur, et propose une demande de fonctionnalité pour un accès en lecture seule sans privilèges élevés.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":15291,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":406,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"[Présentation] RSVP Speed Reader &amp; Document Library pour Discourse","fancy_title_localized":true,"locale":"en","id":408264,"title":"[Showcase] RSVP Speed Reader & Document Library for Discourse","slug":"showcase-rsvp-speed-reader-document-library-for-discourse","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://global.discourse-cdn.com/meta/original/4X/c/e/d/cede79b175fdd2e638c570c5492fc7de2a3af65c.png","created_at":"2026-07-22T16:29:01.454Z","last_posted_at":"2026-07-23T09:07:02.883Z","bumped":true,"bumped_at":"2026-07-23T09:07:02.883Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Bonjour :waving_hand: \nJe travaille sur une intégration personnalisée d’un lecteur de vitesse RSVP (Rapid Serial Visual Presentation) conçu pour les plateformes Discourse. Il permet aux utilisateurs de télécharger, gérer&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":847,"height":483,"url":"https://global.discourse-cdn.com/meta/original/4X/c/e/d/cede79b175fdd2e638c570c5492fc7de2a3af65c.png"},{"max_width":800,"max_height":800,"width":800,"height":456,"url":"https://global.discourse-cdn.com/meta/optimized/4X/c/e/d/cede79b175fdd2e638c570c5492fc7de2a3af65c_2_800x456.png"},{"max_width":600,"max_height":600,"width":600,"height":342,"url":"https://global.discourse-cdn.com/meta/optimized/4X/c/e/d/cede79b175fdd2e638c570c5492fc7de2a3af65c_2_600x342.png"},{"max_width":400,"max_height":400,"width":400,"height":228,"url":"https://global.discourse-cdn.com/meta/optimized/4X/c/e/d/cede79b175fdd2e638c570c5492fc7de2a3af65c_2_400x228.png"},{"max_width":300,"max_height":300,"width":300,"height":171,"url":"https://global.discourse-cdn.com/meta/optimized/4X/c/e/d/cede79b175fdd2e638c570c5492fc7de2a3af65c_2_300x171.png"},{"max_width":200,"max_height":200,"width":200,"height":114,"url":"https://global.discourse-cdn.com/meta/optimized/4X/c/e/d/cede79b175fdd2e638c570c5492fc7de2a3af65c_2_200x114.png"}],"tags":[],"tags_descriptions":{},"views":129,"like_count":7,"has_summary":false,"last_poster_username":"Don","category_id":7,"op_like_count":7,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Un plugin expérimental de lecture rapide RSVP pour Discourse a été présenté, permettant de lire des documents mot à mot à vitesse adjustable, avec un dépôt de documents et un suivi de progression.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":78445,"primary_group_id":276,"flair_group_id":276}]},{"fancy_title":"Dépréciation des extensions de fichiers .js.es6 dans les thèmes et plugins","fancy_title_localized":true,"locale":"en","id":398894,"title":"Deprecating .js.es6 file extensions in themes and plugins","slug":"deprecating-js-es6-file-extensions-in-themes-and-plugins","posts_count":10,"reply_count":7,"highest_post_number":10,"image_url":null,"created_at":"2026-03-20T16:03:38.678Z","last_posted_at":"2026-07-14T15:07:39.306Z","bumped":true,"bumped_at":"2026-07-14T15:07:39.306Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"En 2020, Discourse est passé de l'extension .js.es6 à .js. Au fil des ans, la grande majorité des thèmes et des plugins sont passés à la nouvelle extension, ce qui offre une bien meilleure compatibilité avec JavaScr moderne&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"nouvelles-des-devs","slug":"dev-news"}],"tags_descriptions":{},"views":565,"like_count":29,"has_summary":false,"last_poster_username":"david","category_id":7,"op_like_count":10,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse déprécie officiellement l'extension .js.es6 dans les thèmes et plugins, obligeant simplement à renommer les fichiers en .js d'ici 2026, malgré les critiques d'un contributeur sur les changements récurrents et la rupture de compatibilité.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur fréquent","user_id":114728,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"Auteur fréquent","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur récent","user_id":2770,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur récent","user_id":26605,"primary_group_id":null,"flair_group_id":null}]}]}}