{"users":[{"id":115923,"username":"Discourse","name":null,"avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/discourse/{size}/148734_2.png","admin":true,"trust_level":4},{"id":100484,"username":"JammyDodger","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jammydodger/{size}/254611_2.png","trust_level":3},{"id":83775,"username":"fitzy","name":"Michael Fitz-Payne","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/fitzy/{size}/192549_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"trust_level":4},{"id":35474,"username":"Canapin","name":"Coin-coin le Canapin","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/canapin/{size}/119591_2.png","trust_level":3},{"id":166720,"username":"opcourdis","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/o/45deac/{size}.png","trust_level":2},{"id":135392,"username":"NateDhaliwal","name":"Nate Dhaliwal","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/natedhaliwal/{size}/313494_2.png","flair_name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111","flair_group_id":73,"trust_level":3},{"id":5859,"username":"j127","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/j127/{size}/79093_2.png","trust_level":2},{"id":27773,"username":"bletch","name":"Danny Goodall","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/bletch/{size}/69088_2.png","trust_level":2},{"id":15209,"username":"pfaffman","name":"Jay Pfaffman","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pfaffman/{size}/120154_2.png","flair_name":"support-experts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":117526,"username":"Dave_Driesmans","name":"Dave Driesmans","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/dave_driesmans/{size}/253276_2.png","trust_level":0},{"id":179822,"username":"kcahtoor","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/k/9de0a6/{size}.png","trust_level":1},{"id":1,"username":"sam","name":"Sam Saffron","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/sam/{size}/102149_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":40486,"username":"TheBestPessimist","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/thebestpessimist/{size}/247704_2.png","trust_level":2},{"id":57427,"username":"Machigatta","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/machigatta/{size}/125064_2.png","trust_level":1},{"id":104279,"username":"nat","name":"Natalie T","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/nat/{size}/235063_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":19127,"username":"webeindustry","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/webeindustry/{size}/53973_2.png","trust_level":2},{"id":27611,"username":"Jen_Lijo","name":"Jen","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jen_lijo/{size}/77057_2.png","trust_level":2},{"id":19,"username":"eviltrout","name":"Robin Ward","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/eviltrout/{size}/5275_2.png","trust_level":4},{"id":23842,"username":"AhmadF.Cheema","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/ahmadf.cheema/{size}/87109_2.png","trust_level":2},{"id":13093,"username":"pacharanero","name":"Marcus Baw","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pacharanero/{size}/500583_2.png","primary_group_name":"VolunteerMods","flair_name":"VolunteerMods","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"trust_level":4},{"id":28866,"username":"schungx","name":"Stephen Chung","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/schungx/{size}/70989_2.png","trust_level":2},{"id":141900,"username":"maaatt","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/m/ecb155/{size}.png","trust_level":2},{"id":25674,"username":"Jithin_Krishnan","name":"Jithin Krishnan","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jithin_krishnan/{size}/121329_2.png","trust_level":1},{"id":704,"username":"AstonJ","name":"AstonJ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/astonj/{size}/215041_2.png","trust_level":2},{"id":149694,"username":"Ambient.Impact","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/ambient.impact/{size}/387027_2.png","trust_level":1},{"id":-1,"username":"system","name":"system","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/system/{size}/443519_2.png","admin":true,"moderator":true,"trust_level":4},{"id":23968,"username":"david","name":"David Taylor","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/david/{size}/157490_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":127856,"username":"Lilly","name":"Lillian ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/lilly/{size}/555832_2.png","trust_level":3},{"id":27384,"username":"merefield","name":"Robert","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/merefield/{size}/176214_2.png","trust_level":3},{"id":21029,"username":"pmusaraj","name":"Penar Musaraj","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pmusaraj/{size}/119489_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":139654,"username":"AliBenBongo","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/a/da6949/{size}.png","trust_level":1},{"id":36685,"username":"Arkshine","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/arkshine/{size}/298682_2.png","flair_name":"support-advocates","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/4/e4038d4d9848de2eabab38e17b8bdb69da154024.svg","flair_bg_color":"FFFFFF","flair_group_id":148,"trust_level":3},{"id":93926,"username":"taravasya","name":"Вася Тарарин","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/taravasya/{size}/214539_2.png","trust_level":2},{"id":114728,"username":"darkpixlz","name":"Pyx ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/darkpixlz/{size}/549896_2.png","primary_group_name":"VolunteerMods","flair_name":"VolunteerMods","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"trust_level":4},{"id":14353,"username":"simon","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/simon/{size}/339122_2.png","trust_level":2},{"id":105081,"username":"Decorbuz","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/decorbuz/{size}/235124_2.png","trust_level":2},{"id":125230,"username":"Pieces","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/p/958977/{size}.png","trust_level":2},{"id":15442,"username":"jericson","name":"Jon Ericson","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jericson/{size}/116215_2.png","flair_name":"support-explorers","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/d/1/b/d1ba0acf09b9d01f87f9e05bbee1dc5b0e316d5f.png","flair_bg_color":"dddddd","flair_color":"111111","flair_group_id":118,"trust_level":2},{"id":36692,"username":"seanblue","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/s/dc4da7/{size}.png","trust_level":2},{"id":131037,"username":"GregorSondermeier","name":"Gregor Sondermeier","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/gregorsondermeier/{size}/299039_2.png","trust_level":2},{"id":119723,"username":"dubwoc","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/d/b4bc9f/{size}.png","trust_level":2},{"id":95552,"username":"Moin","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/moin/{size}/554653_2.png","trust_level":3},{"id":155596,"username":"Daimonds_and_netherite","name":"USCHESSID: 32121789","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/d/e0b2c6/{size}.png","trust_level":1},{"id":174008,"username":"Dimava","name":"Dimava","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/dimava/{size}/498540_2.png","trust_level":2},{"id":127446,"username":"gormus","name":"Osman Görmüş","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/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":9858,"username":"dfabulich","name":"Dan Fabulich","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/dfabulich/{size}/108716_2.png","trust_level":2},{"id":101447,"username":"leonardo","name":"Leonardo Mosquera","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/leonardo/{size}/228634_2.png","trust_level":2},{"id":128201,"username":"kjs-fgx","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/k/a9adbd/{size}.png","trust_level":1},{"id":192487,"username":"micke","name":"Micke","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/micke/{size}/553682_2.png","trust_level":1},{"id":23163,"username":"j.jaffeux","name":"Joffrey Jaffeux","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/j.jaffeux/{size}/60297_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":2770,"username":"awesomerobot","name":"Kris","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/awesomerobot/{size}/142900_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":39365,"username":"sarahann","name":"Sarah","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/sarahann/{size}/96703_2.png","trust_level":2},{"id":131832,"username":"hocine","name":"Hocine Mahmoudi","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/hocine/{size}/301751_2.png","trust_level":1}],"primary_groups":[{"id":47,"name":"team"},{"id":276,"name":"VolunteerMods"}],"flair_groups":[{"id":47,"name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_bg_color":"","flair_color":"111"},{"id":73,"name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111"},{"id":142,"name":"support-experts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_color":""},{"id":276,"name":"VolunteerMods","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_bg_color":"","flair_color":""},{"id":148,"name":"support-advocates","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/4/e4038d4d9848de2eabab38e17b8bdb69da154024.svg","flair_bg_color":"FFFFFF","flair_color":""},{"id":118,"name":"support-explorers","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/d/1/b/d1ba0acf09b9d01f87f9e05bbee1dc5b0e316d5f.png","flair_bg_color":"dddddd","flair_color":"111111"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/c/documentation/developer-guides/56?page=1","per_page":30,"top_tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":820,"name":"guides-thématiques","slug":"theme-guides"},{"id":819,"name":"code","slug":"code"},{"id":274,"name":"guides-de-plugin","slug":"plugin-guides"},{"id":484,"name":"tutoriel","slug":"tutorial"},{"id":150,"name":"inst-dev","slug":"dev-install"},{"id":482,"name":"référence","slug":"reference"},{"id":479,"name":"explication","slug":"explanation"},{"id":70,"name":"braise","slug":"ember"},{"id":58,"name":"essai","slug":"testing"},{"id":543,"name":"ia","slug":"ai"},{"id":643,"name":"auto-sombre","slug":"auto-dark"},{"id":275,"name":"automatisation","slug":"automation"},{"id":436,"name":"css","slug":"css"},{"id":814,"name":"personnalisation","slug":"customization"},{"id":24,"name":"docker","slug":"docker"},{"id":799,"name":"index","slug":"index"},{"id":52,"name":"markdown","slug":"markdown"},{"id":328,"name":"api-de-plugin","slug":"plugin-api"},{"id":566,"name":"créateur-de-thème","slug":"theme-creator"},{"id":16,"name":"traduction","slug":"translation"},{"id":25,"name":"articles-wiki","slug":"wiki-posts"}],"topics":[{"fancy_title":"Index des guides développeur","fancy_title_localized":true,"locale":"en","id":308036,"title":"Developer Guides Index","slug":"developer-guides-index","posts_count":1,"reply_count":1,"highest_post_number":1,"image_url":null,"created_at":"2024-05-15T06:05:51.350Z","last_posted_at":"2024-05-15T06:05:51.457Z","bumped":true,"bumped_at":"2026-06-01T15:09:46.938Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"Documentation sur l'extension de Discourse avec des plugins, des thèmes et des composants de thème, le travail avec le code principal et l'utilisation de l'API Discourse.\nIntroduction\n\nIntroduction : Présentation du développement de Discourse\n\nDéveloppement…","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":799,"name":"index","slug":"index"}],"tags_descriptions":{"index":"Index des sujets de catégorie de documentation."},"views":1986,"like_count":13,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":13,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discussion about creating a plugin skeleton, with the original link now found at https://meta.discourse.org/t/automating-discourse-plugin-setup-with-create-discourse-plugin-gem/315013, which provides a rake task for automating Discourse plugin setup.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":100484,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Configurer Discourse pour le développement sous Fedora Linux","fancy_title_localized":true,"locale":"en","id":163348,"title":"Set up Discourse for development on Fedora Linux","slug":"set-up-discourse-for-development-on-fedora-linux","posts_count":13,"reply_count":12,"highest_post_number":25,"image_url":null,"created_at":"2020-09-08T11:00:32.308Z","last_posted_at":"2026-06-05T08:25:11.120Z","bumped":true,"bumped_at":"2026-06-05T08:25:11.120Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Ce guide a été testé avec une installation fraîche de Fedora 31 et 33, mais peut fonctionner sur des versions plus anciennes qui utilisent également dnf comme outil de gestion de paquets. Ce n'est pas un guide officiel, mais il peut être utile pour d'autres développeurs…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":150,"name":"inst-dev","slug":"dev-install"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm...","inst-dev":"Instructions et problèmes liés à l'installation de Discourse pour le développ..."},"views":4491,"like_count":43,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":27,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users question the guide's official status and the use of an outdated Ruby version (2.7.1) in the Fedora Discourse development setup instructions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":83775,"primary_group_id":47,"flair_group_id":47},{"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":166720,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Créer et partager une palette de couleurs","fancy_title_localized":true,"locale":"en","id":61196,"title":"Create and share a color scheme","slug":"create-and-share-a-color-scheme","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_1024x670.png","created_at":"2017-04-18T14:44:23.540Z","last_posted_at":"2025-08-01T18:49:05.210Z","bumped":true,"bumped_at":"2026-06-02T14:54:24.218Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse prend désormais en charge l'importation de palettes de couleurs depuis un dépôt distant. Voici comment procéder.\nAccédez aux couleurs et ajoutez une palette de couleurs.\nRendez-vous sur /admin/customize/colors de votre site…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1950,"height":1276,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":670,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_1024x670.png"},{"max_width":800,"max_height":800,"width":800,"height":523,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_800x523.png"},{"max_width":600,"max_height":600,"width":600,"height":392,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_600x392.png"},{"max_width":400,"max_height":400,"width":400,"height":261,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_400x261.png"},{"max_width":300,"max_height":300,"width":300,"height":196,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_300x196.png"},{"max_width":200,"max_height":200,"width":200,"height":130,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_200x130.png"}],"tags":[{"id":478,"name":"comment-faire","slug":"how-to"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm..."},"views":6291,"like_count":23,"has_summary":false,"last_poster_username":"j127","category_id":56,"op_like_count":23,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"User suggests adding 'hover' and 'selected' fields to the color scheme configuration for enhanced customization.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":5859,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Créer et partager un composant de thème de police","fancy_title_localized":true,"locale":"en","id":62462,"title":"Create and share a font theme component","slug":"create-and-share-a-font-theme-component","posts_count":5,"reply_count":0,"highest_post_number":7,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_1024x412.png","created_at":"2017-05-10T20:48:47.477Z","last_posted_at":"2025-08-19T22:34:35.578Z","bumped":true,"bumped_at":"2026-06-02T14:54:22.736Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse prend en charge l'importation de thèmes contenant des ressources depuis un référentiel distant. Cela permet aux auteurs de thèmes de partager des polices et des images. Créez un nouveau référentiel Git avec la police : \nmkdir discourse-roboto-theme\ncd discourse-r&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1508,"height":608,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":412,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_1024x412.png"},{"max_width":800,"max_height":800,"width":800,"height":322,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_800x322.png"},{"max_width":600,"max_height":600,"width":600,"height":241,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_600x241.png"},{"max_width":400,"max_height":400,"width":400,"height":161,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_400x161.png"},{"max_width":300,"max_height":300,"width":300,"height":120,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_300x120.png"},{"max_width":200,"max_height":200,"width":200,"height":80,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_200x80.png"}],"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":820,"name":"guides-thématiques","slug":"theme-guides"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm..."},"views":5991,"like_count":23,"has_summary":false,"last_poster_username":"kcahtoor","category_id":56,"op_like_count":19,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users report errors with undefined variables and missing assets when following the font theme component guide, questioning if the instructions need updating.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":27773,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Auteur fréquent","user_id":117526,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":179822,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Développement de plugins Discourse - Partie 6 - Ajout de tests d&rsquo;acceptation","fancy_title_localized":true,"locale":"en","id":32619,"title":"Developing Discourse Plugins - Part 6 - Add acceptance tests","slug":"developing-discourse-plugins-part-6-add-acceptance-tests","posts_count":33,"reply_count":26,"highest_post_number":38,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_1024x715.png","created_at":"2015-08-27T21:32:26.323Z","last_posted_at":"2022-06-02T11:06:38.274Z","bumped":true,"bumped_at":"2026-06-02T14:54:21.418Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Tutoriel précédent : Développement de plugins Discourse - Partie 5 - Ajouter une interface d'administration\n\nSaviez-vous que Discourse dispose de deux grandes suites de tests pour sa base de code ? Côté serveur, notre code Ruby est doté d'une suite de tests qui utilise rs…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1058,"height":739,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":715,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_1024x715.png"},{"max_width":800,"max_height":800,"width":800,"height":558,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_800x558.png"},{"max_width":600,"max_height":600,"width":600,"height":419,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_600x419.png"},{"max_width":400,"max_height":400,"width":400,"height":279,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_400x279.png"},{"max_width":300,"max_height":300,"width":300,"height":209,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_300x209.png"},{"max_width":200,"max_height":200,"width":200,"height":139,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_200x139.png"}],"tags":[{"id":484,"name":"tutoriel","slug":"tutorial"},{"id":274,"name":"guides-de-plugin","slug":"plugin-guides"},{"id":58,"name":"essai","slug":"testing"}],"tags_descriptions":{"tutoriel":""},"views":17409,"like_count":82,"has_summary":false,"last_poster_username":"nat","category_id":56,"op_like_count":30,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users are troubleshooting issues with running acceptance tests for Discourse plugins, resolving errors related to test suites, plugin registration, and EmberCLI, with solutions involving test setup, plugin configuration, and code updates.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":1,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur fréquent","user_id":40486,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":57427,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":104279,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Développement de plugins Discourse - Partie 5 : ajouter une interface d&rsquo;administration","fancy_title_localized":true,"locale":"en","id":31761,"title":"Developing Discourse Plugins - Part 5 - Add an admin interface","slug":"developing-discourse-plugins-part-5-add-an-admin-interface","posts_count":47,"reply_count":40,"highest_post_number":51,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3.png","created_at":"2015-08-04T20:34:32.128Z","last_posted_at":"2024-09-24T11:10:58.173Z","bumped":true,"bumped_at":"2026-06-02T14:54:20.026Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Tutoriel précédent : Développement de plugins Discourse - Partie 4 - Configuration de git\n\nParfois, les paramètres du site ne suffisent pas pour que votre plugin fonctionne comme vous le souhaitez dans l'interface d'administration. Par exemple, si vous installez le plugin discourse-akism…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":995,"height":244,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3.png"},{"max_width":800,"max_height":800,"width":800,"height":196,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_800x196.png"},{"max_width":600,"max_height":600,"width":600,"height":147,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_600x147.png"},{"max_width":400,"max_height":400,"width":400,"height":98,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_400x98.png"},{"max_width":300,"max_height":300,"width":300,"height":73,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_300x73.png"},{"max_width":200,"max_height":200,"width":200,"height":49,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_200x49.png"}],"tags":[{"id":484,"name":"tutoriel","slug":"tutorial"},{"id":274,"name":"guides-de-plugin","slug":"plugin-guides"}],"tags_descriptions":{"tutoriel":""},"views":26495,"like_count":85,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":28,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss and resolve issues with adding admin interfaces for their Discourse plugins, sharing code fixes and troubleshooting advice on Ember routing, file naming conventions, and testing errors.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":19127,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":27611,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":19,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Développement de plugins Discourse - Partie 4 - Configuration de git","fancy_title_localized":true,"locale":"en","id":31272,"title":"Developing Discourse Plugins - Part 4 - Setup git","slug":"developing-discourse-plugins-part-4-setup-git","posts_count":11,"reply_count":5,"highest_post_number":11,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007.png","created_at":"2015-07-21T20:54:59.409Z","last_posted_at":"2024-01-30T11:12:28.312Z","bumped":true,"bumped_at":"2026-06-02T14:54:17.764Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Tutoriel précédent : Développement de plugins Discourse - Partie 3 - Ajouter des paramètres de site personnalisés\n\nMaintenant que votre plugin devient plus sophistiqué, il est temps d’adopter une approche plus élaborée pour son développement.\nNous vous suggérons de...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":730,"height":413,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007.png"},{"max_width":600,"max_height":600,"width":600,"height":339,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007_2_600x339.png"},{"max_width":400,"max_height":400,"width":400,"height":226,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007_2_400x226.png"},{"max_width":300,"max_height":300,"width":300,"height":169,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007_2_300x169.png"},{"max_width":200,"max_height":200,"width":200,"height":113,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007_2_200x113.png"}],"tags":[{"id":484,"name":"tutoriel","slug":"tutorial"},{"id":274,"name":"guides-de-plugin","slug":"plugin-guides"}],"tags_descriptions":{"tutoriel":""},"views":13108,"like_count":37,"has_summary":false,"last_poster_username":"maaatt","category_id":56,"op_like_count":23,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Windows and macOS users face challenges with symbolic links in Discourse plugin development; solutions include using junctions in Windows, aliases in macOS, or a synced folder in Vagrant to create working symlinks within the development environment.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":23842,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":13093,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"Auteur fréquent","user_id":28866,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":141900,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Développement de plugins Discourse - Partie 1 - Créer un plugin de base","fancy_title_localized":true,"locale":"en","id":30515,"title":"Developing Discourse Plugins - Part 1 - Create a basic plugin","slug":"developing-discourse-plugins-part-1-create-a-basic-plugin","posts_count":33,"reply_count":87,"highest_post_number":141,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73.png","created_at":"2015-06-26T21:01:08.310Z","last_posted_at":"2025-07-08T20:52:10.855Z","bumped":true,"bumped_at":"2026-06-02T14:54:16.316Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Créer un plugin dans Discourse peut être vraiment simple, une fois que vous avez compris quelques particularités. L'objectif de ce message est de créer un squelette de plugin et de vous présenter les bases.\nVotre environnement de développement\nAssurez-vous d'avoir…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":845,"height":128,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73.png"},{"max_width":800,"max_height":800,"width":800,"height":121,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_800x121.png"},{"max_width":600,"max_height":600,"width":600,"height":90,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_600x90.png"},{"max_width":400,"max_height":400,"width":400,"height":60,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_400x60.png"},{"max_width":300,"max_height":300,"width":300,"height":45,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_300x45.png"},{"max_width":200,"max_height":200,"width":200,"height":30,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_200x30.png"}],"tags":[{"id":484,"name":"tutoriel","slug":"tutorial"},{"id":274,"name":"guides-de-plugin","slug":"plugin-guides"}],"tags_descriptions":{"tutoriel":""},"views":82768,"like_count":210,"has_summary":false,"last_poster_username":"Ambient.Impact","category_id":56,"op_like_count":110,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The discussion details an issue encountered when creating plugins with the Docker setup, requiring users to configure Git's user email and name within the container before running `rake plugin:create`.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":25674,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":13093,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"Auteur fréquent","user_id":704,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":149694,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Utiliser l&rsquo;API DModal pour afficher des fenêtres modales (alias popups/dialogues) dans Discourse","fancy_title_localized":true,"locale":"en","id":268304,"title":"Using the DModal API to render Modal windows (aka popups/dialogs) in Discourse","slug":"using-the-dmodal-api-to-render-modal-windows-aka-popups-dialogs-in-discourse","posts_count":1,"reply_count":1,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35.png","created_at":"2023-07-03T09:52:06.275Z","last_posted_at":"2023-07-03T09:52:06.275Z","bumped":true,"bumped_at":"2026-06-02T14:54:11.378Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse 3.1.0.beta6 est livré avec une toute nouvelle API basée sur les composants <DModal>.\n\nℹ️ Cela remplace l'ancienne API basée sur les contrôleurs, désormais obsolète. Si vous disposez de modales existantes utilisant les anciennes API, veuillez...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":696,"height":258,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35.png"},{"max_width":600,"max_height":600,"width":600,"height":222,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35_2_600x222.png"},{"max_width":400,"max_height":400,"width":400,"height":148,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35_2_400x148.png"},{"max_width":300,"max_height":300,"width":300,"height":111,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35_2_300x111.png"},{"max_width":200,"max_height":200,"width":200,"height":74,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35_2_200x74.png"}],"tags":[{"id":819,"name":"code","slug":"code"}],"tags_descriptions":{},"views":2083,"like_count":17,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":17,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse 3.1.0.beta6 introduces the <DModal> component API for rendering modals, replacing the deprecated controller-based method, with examples for template use, component wrapping, and service-based triggering.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":1,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Insérez du texte ou des images n&rsquo;importe où sur votre site en utilisant des pseudo-éléments CSS","fancy_title_localized":true,"locale":"en","id":99200,"title":"Insert text or images anywhere on your site using CSS pseudo-elements","slug":"insert-text-or-images-anywhere-on-your-site-using-css-pseudo-elements","posts_count":1,"reply_count":6,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_1024x471.png","created_at":"2018-10-11T11:12:34.130Z","last_posted_at":"2018-10-11T11:12:34.130Z","bumped":true,"bumped_at":"2026-06-01T15:09:42.855Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Donc, vous souhaitez insérer du texte ou une image sur votre site Discourse. \nPour le texte, dans la plupart des cas, il suffit de le modifier via /admin/customize/site_texts. \nParfois, cependant, nous avons le désir d'ajouter une phrase …","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1911,"height":879,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":471,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_1024x471.png"},{"max_width":800,"max_height":800,"width":800,"height":367,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_800x367.png"},{"max_width":600,"max_height":600,"width":600,"height":275,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_600x275.png"},{"max_width":400,"max_height":400,"width":400,"height":183,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_400x183.png"},{"max_width":300,"max_height":300,"width":300,"height":137,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_300x137.png"},{"max_width":200,"max_height":200,"width":200,"height":91,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_200x91.png"}],"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":814,"name":"personnalisation","slug":"customization"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm..."},"views":17984,"like_count":33,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":33,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"To insert text or images on a site, use CSS pseudo-elements `:before` and `:after` to add content to elements without modifying existing HTML, by editing the site's stylesheet in the browser's developer console.","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":"Designing for Different Devices (Viewport Size, Touch/Hover, etc.)","fancy_title_localized":false,"locale":null,"id":367810,"title":"Designing for Different Devices (Viewport Size, Touch/Hover, etc.)","slug":"designing-for-different-devices-viewport-size-touch-hover-etc","posts_count":15,"reply_count":11,"highest_post_number":15,"image_url":null,"created_at":"2025-05-27T18:17:05.719Z","last_posted_at":"2026-01-25T21:34:26.908Z","bumped":true,"bumped_at":"2026-06-01T15:09:36.242Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This document outlines the APIs used to adapt Discourse’s user interface for different devices. \nViewport Size\nThe most important characteristic to consider is the viewport size. We design “mobile first” and then add cus&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":701,"like_count":24,"has_summary":false,"last_poster_username":"merefield","category_id":56,"op_like_count":12,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse is phasing out legacy mobile/desktop modes in favor of viewport and touch detection; users discuss deprecating outdated classes like pull-left and adapting core components for responsive layouts across devices.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":135392,"primary_group_id":null,"flair_group_id":73},{"extras":null,"description":"Auteur fréquent","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Auteur fréquent","user_id":127856,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Guidelines for CSS classes using BEM","fancy_title_localized":false,"locale":null,"id":361851,"title":"Guidelines for CSS classes using BEM","slug":"guidelines-for-css-classes-using-bem","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-04-15T05:48:23.418Z","last_posted_at":"2025-04-15T05:48:23.483Z","bumped":true,"bumped_at":"2026-06-01T15:09:34.864Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Background\nWhen writing CSS classes for Discourse components, themes, or plugins, we follow a modified variant of Block Element Modifier (BEM). Following these guidelines will make it much less likely for CSS conflicts t&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":294,"like_count":8,"has_summary":false,"last_poster_username":"system","category_id":56,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse uses a modified BEM variant for CSS classes, following specific syntax and guidelines to minimize conflicts and improve specificity.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Using Transformers to customize client-side values and behavior","fancy_title_localized":false,"locale":null,"id":349954,"title":"Using Transformers to customize client-side values and behavior","slug":"using-transformers-to-customize-client-side-values-and-behavior","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2025-01-31T20:19:51.229Z","last_posted_at":"2025-11-03T03:00:09.908Z","bumped":true,"bumped_at":"2026-06-01T15:09:33.590Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse core includes a number of “transformer” hooks which can be used to customize client behavior. These fall into two categories: \n\n\nValue Transformers take an output from Discourse core, and optionally modify it, &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":605,"like_count":11,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":10,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A discussion on using Discourse's transformer hooks to customize client-side values and behavior, with recent updates including a PR to modify the Transformers registry link to the frontend directory.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Guide du développeur pour les extensions Markdown","fancy_title_localized":true,"locale":"en","id":66023,"title":"Developer's guide to Markdown extensions","slug":"developers-guide-to-markdown-extensions","posts_count":2,"reply_count":13,"highest_post_number":24,"image_url":null,"created_at":"2017-07-11T21:23:25.941Z","last_posted_at":"2026-06-01T08:45:53.539Z","bumped":true,"bumped_at":"2026-06-01T08:45:53.539Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse utilise un moteur Markdown appelé Markdown-it.\nVoici quelques notes de développement qui vous aideront soit à corriger des bogues dans le cœur, soit à créer vos nouveaux plugins.\nLes bases\nDiscourse ne contient que quelques aides en plus du moteur, ...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":482,"name":"référence","slug":"reference"},{"id":52,"name":"markdown","slug":"markdown"},{"id":819,"name":"code","slug":"code"}],"tags_descriptions":{},"views":13554,"like_count":35,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":35,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"While the guide details creating Markdown extensions for Discourse, a user inquires whether these customizations can be implemented within Theme Components or are restricted to plugins.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Theme Developer Tutorial: 2. Creating a remote theme","fancy_title_localized":false,"locale":null,"id":357797,"title":"Theme Developer Tutorial: 2. Creating a remote theme","slug":"theme-developer-tutorial-2-creating-a-remote-theme","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-03-18T15:59:09.382Z","last_posted_at":"2025-03-18T15:59:09.454Z","bumped":true,"bumped_at":"2026-05-29T10:12:51.441Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In the last chapter, we created a basic theme via the Discourse admin interface. This works well enough for very simple themes. But as soon as you want to do something more complex, or share a theme more widely, you’ll n&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":724,"like_count":2,"has_summary":false,"last_poster_username":"system","category_id":56,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The tutorial guides users through creating a remote Discourse theme using the discourse_theme CLI, syncing it to a Discourse instance, adding custom code, and preparing it for GitHub hosting.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Créateur du sujet, Auteur le plus récent","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Write end-to-end system specs for the Discourse user interface","fancy_title_localized":false,"locale":null,"id":325937,"title":"Write end-to-end system specs for the Discourse user interface","slug":"write-end-to-end-system-specs-for-the-discourse-user-interface","posts_count":4,"reply_count":2,"highest_post_number":5,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64.png","created_at":"2024-09-11T04:07:31.148Z","last_posted_at":"2025-08-28T14:51:13.004Z","bumped":true,"bumped_at":"2026-05-29T10:12:45.063Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Background\nRails system specs are used to simulate the actions of a real user using the app in a browser. We use the Playwright ruby driver which is becoming an industry standard. The tests run locally and in CI out of t&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":990,"height":602,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64.png"},{"max_width":800,"max_height":800,"width":800,"height":486,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_800x486.png"},{"max_width":600,"max_height":600,"width":600,"height":364,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_600x364.png"},{"max_width":400,"max_height":400,"width":400,"height":243,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_400x243.png"},{"max_width":300,"max_height":300,"width":300,"height":182,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_300x182.png"},{"max_width":200,"max_height":200,"width":200,"height":121,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_200x121.png"}],"tags":[],"tags_descriptions":{},"views":619,"like_count":12,"has_summary":false,"last_poster_username":"merefield","category_id":56,"op_like_count":9,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user encountered test failures due to missing color schemes in the test database, which was resolved by resetting the test database using migration commands after confirming the issue was with the local Discourse instance setup.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":21029,"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":"Utilisation du « tachymètre » de Google pour mesurer les changements de performance JS dans Discourse","fancy_title_localized":true,"locale":"en","id":281158,"title":"Using Google's 'tachometer' to measure JS performance changes in Discourse","slug":"using-googles-tachometer-to-measure-js-performance-changes-in-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_1024x146.png","created_at":"2023-10-05T13:57:29.422Z","last_posted_at":"2023-10-05T13:57:29.614Z","bumped":true,"bumped_at":"2026-05-29T10:12:43.709Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Lorsque vous travaillez sur le côté client dans le cœur de Discourse, les plugins ou les thèmes, il est important de prendre en compte l'impact sur les performances. Le projet « Tachometer » de Google fournit un outil de benchmarking rigoureux sur le plan statistique que nous pouvons utiliser pour …","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1234,"height":176,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":146,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_1024x146.png"},{"max_width":800,"max_height":800,"width":800,"height":114,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_800x114.png"},{"max_width":600,"max_height":600,"width":600,"height":85,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_600x85.png"},{"max_width":400,"max_height":400,"width":400,"height":57,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_400x57.png"},{"max_width":300,"max_height":300,"width":300,"height":42,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_300x42.png"},{"max_width":200,"max_height":200,"width":200,"height":28,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_200x28.png"}],"tags":[{"id":819,"name":"code","slug":"code"}],"tags_descriptions":{},"views":986,"like_count":17,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":17,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Google's 'Tachometer' project is used to measure JS performance changes in Discourse by statistically benchmarking changes through a 'round-robin' approach, reducing external factor impact and producing a comparison table after hundreds/thousands of iterations.","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":"Configurer un environnement de développement multisite","fancy_title_localized":true,"locale":"en","id":229310,"title":"Set up a multisite development environment","slug":"set-up-a-multisite-development-environment","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2022-06-07T16:01:37.089Z","last_posted_at":"2022-06-07T16:01:37.228Z","bumped":true,"bumped_at":"2026-05-29T10:12:41.903Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Il est possible d'exécuter Discourse en mode multisite en développement. Un serveur multisite utilise une base de données et un nom d'hôte différents pour chaque site qu'il héberge. Cela est utile si vous développez une fonctionnalité ou un plugin qui devrait…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":150,"name":"inst-dev","slug":"dev-install"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm...","inst-dev":"Instructions et problèmes liés à l'installation de Discourse pour le développ..."},"views":2013,"like_count":12,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":12,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Set up multisite development by adding a `config/multisite.yml` file, specifying a separate DB and hostname for each site, and using the `RAILS_DB` environment variable to run rake tasks against targeted sites.","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":"Installez des plugins dans votre environnement de développement non Docker","fancy_title_localized":true,"locale":"en","id":205337,"title":"Install plugins in your non-Docker development environment","slug":"install-plugins-in-your-non-docker-development-environment","posts_count":1,"reply_count":2,"highest_post_number":1,"image_url":null,"created_at":"2021-10-06T09:47:24.341Z","last_posted_at":"2021-10-06T09:47:24.632Z","bumped":true,"bumped_at":"2026-05-29T10:12:40.846Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"(Ce guide ne couvre que l'installation de développement non Docker. Pour l'installation de développement avec Docker :whale:, consultez Installer Discourse pour le développement en utilisant Docker) \nSi vous avez suivi les instructions pour configurer votre Discourse local, vous pouvez installer un plugin loc&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":150,"name":"inst-dev","slug":"dev-install"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm...","inst-dev":"Instructions et problèmes liés à l'installation de Discourse pour le développ..."},"views":3406,"like_count":16,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":16,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"To install a plugin locally in a non-Docker development environment, download the plugin, run migrations if necessary, restart the server, and edit settings at localhost:4200/admin/plugins.","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":"Installer Discourse sur Windows pour le développement","fancy_title_localized":true,"locale":"en","id":75149,"title":"Install Discourse on Windows for development","slug":"install-discourse-on-windows-for-development","posts_count":17,"reply_count":57,"highest_post_number":120,"image_url":null,"created_at":"2017-12-01T06:36:51.406Z","last_posted_at":"2026-04-22T10:18:42.190Z","bumped":true,"bumped_at":"2026-05-29T10:12:39.158Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":information_source: Ce tutoriel a été testé sous Windows 10 et 11.\nPour configurer un environnement de développement pour Discourse sous Windows, vous pouvez utiliser la fonctionnalité Windows Subsystem for Linux.\nCette configuration nécessite le …","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":150,"name":"inst-dev","slug":"dev-install"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm...","inst-dev":"Instructions et problèmes liés à l'installation de Discourse pour le développ..."},"views":73728,"like_count":68,"has_summary":false,"last_poster_username":"merefield","category_id":56,"op_like_count":52,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users report installation failures on Ubuntu 24.04 within WSL preventing host access to port 3000, while a workaround involving replacing 127.0.0.1 with localhost resolves specific image loading issues.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":139654,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":36685,"primary_group_id":null,"flair_group_id":148},{"extras":null,"description":"Auteur fréquent","user_id":135392,"primary_group_id":null,"flair_group_id":73},{"extras":"latest","description":"Auteur le plus récent","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Installer Discourse sur Ubuntu ou Debian pour le développement","fancy_title_localized":true,"locale":"en","id":14727,"title":"Install Discourse on Ubuntu or Debian for Development","slug":"install-discourse-on-ubuntu-or-debian-for-development","posts_count":84,"reply_count":490,"highest_post_number":756,"image_url":null,"created_at":"2014-04-12T22:22:07.751Z","last_posted_at":"2025-06-22T00:31:14.326Z","bumped":true,"bumped_at":"2026-05-29T10:12:37.854Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":warning: Ce guide couvre les instructions d'installation dans un environnement de développement. Pour un guide de production, consultez : Installer Discourse en production avec les instructions officielles prises en charge\n\n\nVous voulez donc configurer Discour…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":150,"name":"inst-dev","slug":"dev-install"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm...","inst-dev":"Instructions et problèmes liés à l'installation de Discourse pour le développ..."},"views":198396,"like_count":133,"has_summary":true,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":66,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"User struggles to configure Discourse to run externally on a remote server, encountering issues with binding to the specified IP address.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":93926,"primary_group_id":null,"flair_group_id":null},{"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":14353,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Installer Discourse sur macOS pour le développement","fancy_title_localized":true,"locale":"en","id":15772,"title":"Install Discourse on macOS for development","slug":"install-discourse-on-macos-for-development","posts_count":103,"reply_count":236,"highest_post_number":402,"image_url":null,"created_at":"2014-05-19T16:59:50.976Z","last_posted_at":"2026-04-24T18:38:20.659Z","bumped":true,"bumped_at":"2026-05-29T10:12:36.599Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":warning: Ce guide couvre les instructions d'installation pour un environnement de développement macOS. Pour les guides de production, consultez : Installer Discourse en production avec les instructions officielles prises en charge.\n\nVous souhaitez donc configurer Disc&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":150,"name":"inst-dev","slug":"dev-install"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm...","inst-dev":"Instructions et problèmes liés à l'installation de Discourse pour le développ..."},"views":114694,"like_count":283,"has_summary":true,"last_poster_username":"jericson","category_id":56,"op_like_count":78,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user suggests editing the newly posted macOS Discourse development installation guide into the first post of the topic for better visibility.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":105081,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":125230,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":14353,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":15442,"primary_group_id":null,"flair_group_id":118}]},{"fancy_title":"Installer Discourse pour le développement avec Docker","fancy_title_localized":true,"locale":"en","id":102009,"title":"Install Discourse for development using Docker","slug":"install-discourse-for-development-using-docker","posts_count":227,"reply_count":189,"highest_post_number":326,"image_url":null,"created_at":"2018-11-16T09:40:04.247Z","last_posted_at":"2026-05-22T05:35:27.938Z","bumped":true,"bumped_at":"2026-05-29T10:12:35.336Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Développement avec Docker\nPuisque Discourse s'exécute dans Docker, vous devriez pouvoir lancer Discourse directement depuis votre répertoire source en utilisant un conteneur de développement Discourse.\n:white_check_mark: Avantages : Pas besoin d'installer de...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":24,"name":"docker","slug":"docker"},{"id":150,"name":"inst-dev","slug":"dev-install"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm...","inst-dev":"Instructions et problèmes liés à l'installation de Discourse pour le développ..."},"views":88298,"like_count":366,"has_summary":true,"last_poster_username":"dubwoc","category_id":56,"op_like_count":72,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user attempting to initialize the Discourse Docker development container encounters persistent permission errors when writing to the source directory, leading to failed gem installations, symlink creation issues, and eventual database connection failures despite applying broad chmod fixes.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":36692,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":131037,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":"latest","description":"Auteur le plus récent","user_id":119723,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Developing Discourse on GitHub Codespaces","fancy_title_localized":false,"locale":null,"id":336131,"title":"Developing Discourse on GitHub Codespaces","slug":"developing-discourse-on-github-codespaces","posts_count":15,"reply_count":10,"highest_post_number":17,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/5/f/e5f24c96d301ed4246d1de639dd5b4b21a0e0d03_2_1024x794.png","created_at":"2024-11-14T12:12:38.860Z","last_posted_at":"2025-09-09T13:50:26.566Z","bumped":true,"bumped_at":"2026-05-29T10:12:34.360Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"GitHub Codespaces is a very fast way to get started with Discourse development. Their free tier is good for 30 hours per month of a 4-core machine. \nGetting Started\n\n\nNavigate to the github repository \n\n\nPress the , (com&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1186,"height":920,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/e/5/f/e5f24c96d301ed4246d1de639dd5b4b21a0e0d03.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":794,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/5/f/e5f24c96d301ed4246d1de639dd5b4b21a0e0d03_2_1024x794.png"},{"max_width":800,"max_height":800,"width":800,"height":620,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/5/f/e5f24c96d301ed4246d1de639dd5b4b21a0e0d03_2_800x620.png"},{"max_width":600,"max_height":600,"width":600,"height":465,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/5/f/e5f24c96d301ed4246d1de639dd5b4b21a0e0d03_2_600x465.png"},{"max_width":400,"max_height":400,"width":400,"height":310,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/5/f/e5f24c96d301ed4246d1de639dd5b4b21a0e0d03_2_400x310.png"},{"max_width":300,"max_height":300,"width":300,"height":232,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/5/f/e5f24c96d301ed4246d1de639dd5b4b21a0e0d03_2_300x232.png"},{"max_width":200,"max_height":200,"width":200,"height":155,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/5/f/e5f24c96d301ed4246d1de639dd5b4b21a0e0d03_2_200x155.png"}],"tags":[],"tags_descriptions":{},"views":1718,"like_count":28,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":13,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user reports issues with the ember-cli command terminating unexpectedly when impersonating and switching users in a GitHub Codespaces environment.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":95552,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":155596,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":1,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Auteur le plus récent","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Developing Discourse using a Dev Container","fancy_title_localized":false,"locale":null,"id":336366,"title":"Developing Discourse using a Dev Container","slug":"developing-discourse-using-a-dev-container","posts_count":14,"reply_count":8,"highest_post_number":15,"image_url":null,"created_at":"2024-11-15T16:44:08.898Z","last_posted_at":"2026-05-28T18:59:23.760Z","bumped":true,"bumped_at":"2026-05-29T10:12:32.762Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Dev Containers is an open standard for configuring a development environment inside a container. This almost entirely eliminates the need to install/configure Discourse-specific tools/dependencies on your local machine, &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":17951,"like_count":36,"has_summary":false,"last_poster_username":"dfabulich","category_id":56,"op_like_count":13,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user reported that accessing the Discourse Dev Container via CLI on macOS failed due to port binding issues, leading them to recommend the legacy boot_dev script for non-VS Code environments.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":174008,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":127446,"primary_group_id":null,"flair_group_id":73},{"extras":null,"description":"Auteur fréquent","user_id":135392,"primary_group_id":null,"flair_group_id":73},{"extras":"latest","description":"Auteur le plus récent","user_id":9858,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Épinglage des versions des plugins et thèmes pour les anciennes installations de Discourse (branches d-compat)","fancy_title_localized":true,"locale":"en","id":272665,"title":"Pinning plugin and theme versions for older Discourse installs (d-compat branches)","slug":"pinning-plugin-and-theme-versions-for-older-discourse-installs-d-compat-branches","posts_count":5,"reply_count":3,"highest_post_number":7,"image_url":null,"created_at":"2023-07-26T10:00:42.315Z","last_posted_at":"2026-05-27T09:30:24.129Z","bumped":true,"bumped_at":"2026-05-27T09:30:24.129Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":open_book: Contexte\nLes développeurs de thèmes et de plugins visent généralement la dernière version de Discourse, sans se soucier de la rétrocompatibilité. Mais les sites exécutant d'anciennes versions de Discourse ont toujours besoin d'une version…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":1334,"like_count":28,"has_summary":false,"last_poster_username":"david","category_id":56,"op_like_count":17,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The documentation now describes the new d-compat branch strategy for pinning plugin and theme versions to older Discourse releases, which is officially available for use.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":135392,"primary_group_id":null,"flair_group_id":73},{"extras":"latest","description":"Auteur le plus récent","user_id":23968,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Linter et formater automatiquement le code avant les commits","fancy_title_localized":true,"locale":"en","id":132947,"title":"Automatically lint and format code before commits","slug":"automatically-lint-and-format-code-before-commits","posts_count":1,"reply_count":2,"highest_post_number":1,"image_url":null,"created_at":"2019-11-08T17:16:11.987Z","last_posted_at":"2019-11-08T17:16:12.188Z","bumped":true,"bumped_at":"2026-05-15T19:55:01.432Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse utilise lefthook pour les hooks git, et bin/lint comme point d'entrée CLI principal pour exécuter manuellement les mêmes vérifications. \nSi vous travaillez sur un clone local, installez les hooks une fois : \npnpm install\npnpm lefthook install\n\nApr&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":819,"name":"code","slug":"code"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm..."},"views":1527,"like_count":11,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":11,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The Discourse repository now uses lefthook to automatically lint and format code before commits, blocking the process if errors are detected after running installation commands.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Créateur du sujet, Auteur le plus récent","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":1,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Commencez avec Theme Creator et le Theme CLI","fancy_title_localized":true,"locale":"en","id":108444,"title":"Get started with Theme Creator and the Theme CLI","slug":"get-started-with-theme-creator-and-the-theme-cli","posts_count":9,"reply_count":13,"highest_post_number":27,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/0/7/707f15c4b072258fb9e33c3a4fe7f30b715b4277_2_777x1024.png","created_at":"2019-02-05T18:40:04.304Z","last_posted_at":"2026-05-07T14:04:22.942Z","bumped":true,"bumped_at":"2026-05-07T14:04:22.942Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Ce sujet vous guidera sur la façon d'utiliser le CLI de thème avec notre site Créateur de Thème pour développer un thème et prévisualiser vos modifications sur un site Discourse en direct.\n\n\nInscrivez-vous pour un compte ici sur Meta si ce n'est pas déjà fait\n\n\n&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1224,"height":1612,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/7/0/7/707f15c4b072258fb9e33c3a4fe7f30b715b4277.png"},{"max_width":1024,"max_height":1024,"width":777,"height":1024,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/0/7/707f15c4b072258fb9e33c3a4fe7f30b715b4277_2_777x1024.png"},{"max_width":800,"max_height":800,"width":607,"height":800,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/0/7/707f15c4b072258fb9e33c3a4fe7f30b715b4277_2_607x800.png"},{"max_width":600,"max_height":600,"width":455,"height":600,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/0/7/707f15c4b072258fb9e33c3a4fe7f30b715b4277_2_455x600.png"},{"max_width":400,"max_height":400,"width":303,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/0/7/707f15c4b072258fb9e33c3a4fe7f30b715b4277_2_303x400.png"},{"max_width":300,"max_height":300,"width":227,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/0/7/707f15c4b072258fb9e33c3a4fe7f30b715b4277_2_227x300.png"},{"max_width":200,"max_height":200,"width":151,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/0/7/707f15c4b072258fb9e33c3a4fe7f30b715b4277_2_151x200.png"}],"tags":[{"id":478,"name":"comment-faire","slug":"how-to"},{"id":566,"name":"créateur-de-thème","slug":"theme-creator"},{"id":820,"name":"guides-thématiques","slug":"theme-guides"}],"tags_descriptions":{"comment-faire":"Les guides pratiques contiennent des étapes à suivre pour résoudre un problèm...","créateur-de-thème":"Sujets concernant le créateur de thème Discourse"},"views":12830,"like_count":58,"has_summary":false,"last_poster_username":"micke","category_id":56,"op_like_count":42,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user reports that while the Theme CLI syncs changes successfully, custom color schemes defined in about.json do not appear in the theme selection interface or user preferences, leaving only a default scheme visible.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":101447,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":128201,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":114728,"primary_group_id":276,"flair_group_id":276},{"extras":"latest","description":"Auteur le plus récent","user_id":192487,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Discourse toolkit to render forms","fancy_title_localized":false,"locale":null,"id":326439,"title":"Discourse toolkit to render forms","slug":"discourse-toolkit-to-render-forms","posts_count":29,"reply_count":18,"highest_post_number":33,"image_url":null,"created_at":"2024-09-13T21:20:27.941Z","last_posted_at":"2025-12-23T17:55:56.356Z","bumped":true,"bumped_at":"2026-05-06T20:13:17.223Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Basic Usage\nFormKit exposes a single component as its public API: &lt;Form /&gt;. All other elements are yielded as contextual components, modifiers, or plain data. \nEvery form is composed of one or multiple fields, represen&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":1493,"like_count":55,"has_summary":false,"last_poster_username":"merefield","category_id":56,"op_like_count":6,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A discussion about correcting the parameter structure for the validateUsername function in FormKit, clarifying that it should accept { data, addError } instead of (name, value, data, { addError }) to avoid destructuring errors.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":23163,"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 fréquent","user_id":23968,"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":"Développement de plugins Discourse - Partie 2 - Connexion à une sortie de plugin","fancy_title_localized":true,"locale":"en","id":31001,"title":"Developing Discourse Plugins - Part 2 - Connect to a plugin outlet","slug":"developing-discourse-plugins-part-2-connect-to-a-plugin-outlet","posts_count":39,"reply_count":21,"highest_post_number":42,"image_url":null,"created_at":"2015-07-12T17:48:27.322Z","last_posted_at":"2025-11-23T09:35:13.414Z","bumped":true,"bumped_at":"2026-05-05T17:38:29.859Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Tutoriel précédent : Développement de plugins Discourse - Partie 1 - Créer un plugin de base\n\nPour commencer : Les modèles\nL'application client de Discourse est écrite en utilisant le framework JavaScript Ember.js. Ember utilise des modèles pour gén&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":484,"name":"tutoriel","slug":"tutorial"},{"id":274,"name":"guides-de-plugin","slug":"plugin-guides"}],"tags_descriptions":{"tutoriel":""},"views":30155,"like_count":102,"has_summary":false,"last_poster_username":"merefield","category_id":56,"op_like_count":38,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss updating a command to find plugin outlets in Discourse, noting a deprecated link and suggesting a replacement resource for current documentation.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Créateur du sujet","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":39365,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":19,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Auteur fréquent","user_id":131832,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Auteur le plus récent","user_id":27384,"primary_group_id":null,"flair_group_id":null}]}]}}