{"users":[{"id":115923,"username":"Discourse","name":null,"avatar_template":"/user_avatar/meta.discourse.org/discourse/{size}/148734_2.png","admin":true,"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":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":135971,"username":"microhit","name":"","avatar_template":"/user_avatar/meta.discourse.org/microhit/{size}/447960_2.png","trust_level":2},{"id":95552,"username":"Moin","name":"","avatar_template":"/user_avatar/meta.discourse.org/moin/{size}/554653_2.png","trust_level":3},{"id":20815,"username":"marcospreviato","name":"Marcos P","avatar_template":"/user_avatar/meta.discourse.org/marcospreviato/{size}/54766_2.png","trust_level":2},{"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":17969,"username":"Pad_Pors","name":"Pad Pors","avatar_template":"/user_avatar/meta.discourse.org/pad_pors/{size}/52016_2.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":12933,"username":"gdpelican","name":"James Kiesel","avatar_template":"/user_avatar/meta.discourse.org/gdpelican/{size}/81308_2.png","trust_level":2},{"id":13378,"username":"angus","name":"Angus McLeod","avatar_template":"/user_avatar/meta.discourse.org/angus/{size}/341715_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":88244,"username":"frank.manuel","name":"Frank Manuel","avatar_template":"/user_avatar/meta.discourse.org/frank.manuel/{size}/203348_2.png","trust_level":2},{"id":6548,"username":"michaeld","name":"Michael - Communiteq","avatar_template":"/user_avatar/meta.discourse.org/michaeld/{size}/1594_2.png","trust_level":2},{"id":185178,"username":"TimFelix","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/t/919ad9/{size}.png","trust_level":1},{"id":183669,"username":"Yan_Rudenko","name":"Yan Rudenko","avatar_template":"/user_avatar/meta.discourse.org/yan_rudenko/{size}/493431_2.png","trust_level":1},{"id":78445,"username":"Don","name":"","avatar_template":"/user_avatar/meta.discourse.org/don/{size}/228726_2.png","flair_name":"VolunteerMods","flair_url":"https://global.discourse-cdn.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"primary_group_name":"VolunteerMods","trust_level":4},{"id":83631,"username":"Jagster","name":"Jakke Flemming","avatar_template":"/user_avatar/meta.discourse.org/jagster/{size}/192154_2.png","trust_level":3},{"id":102688,"username":"valsha","name":"KingPin","avatar_template":"/user_avatar/meta.discourse.org/valsha/{size}/230631_2.png","trust_level":2},{"id":103767,"username":"Usman_Shahid","name":"Usman Shahid","avatar_template":"/user_avatar/meta.discourse.org/usman_shahid/{size}/232411_2.png","trust_level":2},{"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":83098,"username":"jordan-violet","name":"Jordan Violet","avatar_template":"/user_avatar/meta.discourse.org/jordan-violet/{size}/281428_2.png","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":23968,"username":"david","name":"David Taylor","avatar_template":"/user_avatar/meta.discourse.org/david/{size}/157490_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,"primary_group_name":"team","admin":true,"trust_level":3},{"id":3,"username":"supermathie","name":"Michael Brown","avatar_template":"/user_avatar/meta.discourse.org/supermathie/{size}/507518_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,"primary_group_name":"team","admin":true,"trust_level":3},{"id":8722,"username":"Falco","name":"Falco","avatar_template":"/user_avatar/meta.discourse.org/falco/{size}/179432_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,"primary_group_name":"team","admin":true,"trust_level":4},{"id":40288,"username":"pirhoo","name":"Pierre Romera Zhang","avatar_template":"/user_avatar/meta.discourse.org/pirhoo/{size}/527677_2.png","trust_level":2},{"id":144959,"username":"gabriel","name":"Gabriel Grubba","avatar_template":"/user_avatar/meta.discourse.org/gabriel/{size}/367911_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,"primary_group_name":"team","admin":true,"trust_level":2},{"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":73340,"username":"Alexander","name":"Alexander Barrios","avatar_template":"/user_avatar/meta.discourse.org/alexander/{size}/497634_2.png","flair_name":"support-enthusiasts","flair_url":"https://global.discourse-cdn.com/meta/original/3X/1/3/13f5d8d7e56be8a6a1ea3de009b985a548aec8d4.svg","flair_bg_color":"FFFFFF","flair_group_id":151,"trust_level":2},{"id":63814,"username":"ondrej","name":"","avatar_template":"/user_avatar/meta.discourse.org/ondrej/{size}/198804_2.png","trust_level":2},{"id":101949,"username":"kinetiksoft","name":"","avatar_template":"/user_avatar/meta.discourse.org/kinetiksoft/{size}/229578_2.png","trust_level":2},{"id":141342,"username":"martyn_thomas","name":"Martyn Thomas","avatar_template":"/user_avatar/meta.discourse.org/martyn_thomas/{size}/344874_2.png","trust_level":2},{"id":67228,"username":"영광_임","name":"영광 임","avatar_template":"/user_avatar/meta.discourse.org/영광_임/{size}/148997_2.png","trust_level":2},{"id":125384,"username":"SwanseN21","name":"Sean Monsanto","avatar_template":"/user_avatar/meta.discourse.org/swansen21/{size}/283233_2.png","trust_level":1},{"id":139561,"username":"SinisterSpatula","name":"","avatar_template":"/user_avatar/meta.discourse.org/sinisterspatula/{size}/332339_2.png","trust_level":1},{"id":139330,"username":"elle7","name":"Laura White","avatar_template":"/user_avatar/meta.discourse.org/elle7/{size}/331525_2.png","trust_level":1},{"id":79292,"username":"honeymoose","name":"HoneyMoose","avatar_template":"/user_avatar/meta.discourse.org/honeymoose/{size}/198718_2.png","trust_level":2},{"id":119102,"username":"Lhc_fl","name":"Linca","avatar_template":"/user_avatar/meta.discourse.org/lhc_fl/{size}/268115_2.png","trust_level":2},{"id":138598,"username":"wayway_way","name":"wayway way","avatar_template":"/user_avatar/meta.discourse.org/wayway_way/{size}/327018_2.png","trust_level":2},{"id":14617,"username":"scavin","name":"scavin","avatar_template":"/user_avatar/meta.discourse.org/scavin/{size}/115938_2.png","flair_name":"translators","flair_url":"globe","flair_bg_color":"ddd","flair_color":"111","flair_group_id":50,"trust_level":2},{"id":45577,"username":"hawm","name":"Hawm","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/h/f07891/{size}.png","trust_level":2},{"id":13093,"username":"pacharanero","name":"Marcus Baw","avatar_template":"/user_avatar/meta.discourse.org/pacharanero/{size}/500583_2.png","flair_name":"VolunteerMods","flair_url":"https://global.discourse-cdn.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"primary_group_name":"VolunteerMods","trust_level":4},{"id":34674,"username":"Johani","name":"Joe","avatar_template":"/user_avatar/meta.discourse.org/johani/{size}/176920_2.png","trust_level":2},{"id":98881,"username":"Luke_Cousins","name":"Luke Cousins","avatar_template":"/user_avatar/meta.discourse.org/luke_cousins/{size}/223644_2.png","trust_level":2},{"id":29613,"username":"Timothy_Vail","name":"Timothy Vail","avatar_template":"/user_avatar/meta.discourse.org/timothy_vail/{size}/90872_2.png","trust_level":2},{"id":36855,"username":"William04GamerA","name":"William","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/w/90db22/{size}.png","trust_level":2},{"id":66060,"username":"Michael_McCrae","name":"Michael McCrae","avatar_template":"/user_avatar/meta.discourse.org/michael_mccrae/{size}/143362_2.png","trust_level":1},{"id":129042,"username":"SimonBiggs","name":"Simon Biggs","avatar_template":"/user_avatar/meta.discourse.org/simonbiggs/{size}/292760_2.png","trust_level":2},{"id":109684,"username":"f1r4s","name":"Eddie","avatar_template":"/user_avatar/meta.discourse.org/f1r4s/{size}/245347_2.png","trust_level":2},{"id":13042,"username":"Stephen","name":"Stephen","avatar_template":"/user_avatar/meta.discourse.org/stephen/{size}/95011_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":124068,"username":"wendellverli","name":"Wendell Fernandes","avatar_template":"/user_avatar/meta.discourse.org/wendellverli/{size}/280396_2.png","trust_level":2},{"id":19473,"username":"neo","name":"R.Zhang","avatar_template":"/user_avatar/meta.discourse.org/neo/{size}/156675_2.png","trust_level":2},{"id":62294,"username":"Heliosurge","name":"Dan DeMontmorency","avatar_template":"/user_avatar/meta.discourse.org/heliosurge/{size}/571810_2.png","trust_level":2},{"id":67026,"username":"PaulinaMX","name":"ForosMX","avatar_template":"/user_avatar/meta.discourse.org/paulinamx/{size}/210473_2.png","trust_level":2},{"id":102068,"username":"jayarr","name":"JR","avatar_template":"/user_avatar/meta.discourse.org/jayarr/{size}/230949_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":1995,"username":"zogstrip","name":"","avatar_template":"/user_avatar/meta.discourse.org/zogstrip/{size}/512781_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,"primary_group_name":"team","admin":true,"trust_level":2},{"id":8571,"username":"tobiaseigen","name":"Tobias Eigen","avatar_template":"/user_avatar/meta.discourse.org/tobiaseigen/{size}/539204_2.png","trust_level":2},{"id":28866,"username":"schungx","name":"Stephen Chung","avatar_template":"/user_avatar/meta.discourse.org/schungx/{size}/70989_2.png","trust_level":2},{"id":5795,"username":"mattdm","name":"Matthew Miller","avatar_template":"/user_avatar/meta.discourse.org/mattdm/{size}/216484_2.png","trust_level":2},{"id":85965,"username":"JonathanShaw","name":"Jonathan Shaw","avatar_template":"/user_avatar/meta.discourse.org/jonathanshaw/{size}/532672_2.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":33297,"username":"Heather_Dudley","name":"Heather Dudley","avatar_template":"/user_avatar/meta.discourse.org/heather_dudley/{size}/151925_2.png","trust_level":2},{"id":96216,"username":"Johnny_McIvor","name":"Johnny McIvor","avatar_template":"/user_avatar/meta.discourse.org/johnny_mcivor/{size}/218747_2.png","trust_level":2},{"id":12801,"username":"bartv","name":"Bart ","avatar_template":"/user_avatar/meta.discourse.org/bartv/{size}/130052_2.png","trust_level":2},{"id":71403,"username":"raghukamath","name":"Raghavendra Kamath","avatar_template":"/user_avatar/meta.discourse.org/raghukamath/{size}/160330_2.png","trust_level":2},{"id":66204,"username":"fzngagan","name":"Faizaan Gagan","avatar_template":"/user_avatar/meta.discourse.org/fzngagan/{size}/259349_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,"primary_group_name":"team","admin":true,"trust_level":3},{"id":84866,"username":"anon89147131","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/a/a8b319/{size}.png","trust_level":0},{"id":75906,"username":"neounix","name":"Dark Matter","avatar_template":"/user_avatar/meta.discourse.org/neounix/{size}/215617_2.png","trust_level":2},{"id":74650,"username":"zcuric","name":"Zdravko","avatar_template":"/user_avatar/meta.discourse.org/zcuric/{size}/292837_2.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","flair_name":"team","flair_url":"https://global.discourse-cdn.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"primary_group_name":"team","admin":true,"trust_level":2},{"id":39022,"username":"Judith","name":"Judith Meyer","avatar_template":"/user_avatar/meta.discourse.org/judith/{size}/289903_2.png","trust_level":2},{"id":38013,"username":"Gulshan_Kumar","name":"Gulshan Kumar","avatar_template":"/user_avatar/meta.discourse.org/gulshan_kumar/{size}/119562_2.png","trust_level":2},{"id":6626,"username":"riking","name":"Kane York","avatar_template":"/user_avatar/meta.discourse.org/riking/{size}/170938_2.png","trust_level":2},{"id":30818,"username":"PoojaPatel","name":"Pooja Patel","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/p/edb3f5/{size}.png","trust_level":2},{"id":2,"username":"neil","name":"Neil Lalonde","avatar_template":"/user_avatar/meta.discourse.org/neil/{size}/102150_2.png","trust_level":2}],"primary_groups":[{"id":276,"name":"VolunteerMods"},{"id":47,"name":"team"}],"flair_groups":[{"id":48,"name":"plugin_authors","flair_url":"plug","flair_bg_color":"dddddd","flair_color":"111111"},{"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":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":276,"name":"VolunteerMods","flair_url":"https://global.discourse-cdn.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_bg_color":"","flair_color":""},{"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":151,"name":"support-enthusiasts","flair_url":"https://global.discourse-cdn.com/meta/original/3X/1/3/13f5d8d7e56be8a6a1ea3de009b985a548aec8d4.svg","flair_bg_color":"FFFFFF","flair_color":""},{"id":50,"name":"translators","flair_url":"globe","flair_bg_color":"ddd","flair_color":"111"}],"topic_list":{"can_create_topic":false,"filter":"latest","more_topics_url":"/c/wiki/developers/179?page=1","per_page":30,"top_tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":274,"name":"plugin-guides","slug":"plugin-guides"},{"id":150,"name":"dev-install","slug":"dev-install"},{"id":479,"name":"explanation","slug":"explanation"},{"id":330,"name":"rest-api","slug":"rest-api"},{"id":482,"name":"reference","slug":"reference"},{"id":820,"name":"theme-guides","slug":"theme-guides"},{"id":16,"name":"translation","slug":"translation"},{"id":2,"name":"badges","slug":"badges"},{"id":813,"name":"content","slug":"content"},{"id":814,"name":"customization","slug":"customization"},{"id":278,"name":"development","slug":"development"},{"id":484,"name":"tutorial","slug":"tutorial"},{"id":618,"name":"user-custom-fields","slug":"user-custom-fields"}],"topics":[{"fancy_title":"Developer Index","fancy_title_localized":false,"locale":"en","id":322723,"title":"Developer Index","slug":"developer-index","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-08-21T14:15:42.960Z","last_posted_at":"2024-08-21T14:15:43.057Z","bumped":true,"bumped_at":"2024-08-21T14:15:43.057Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"Discourse dev environment setup: (outdated) Guide to Setting Up Discourse Development Environment - GitHub Codespace\nNSFW content blurring: Our solution for blurring NSFW content\nLanguage-specific code blocks: Setup Cod&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":288,"like_count":4,"has_summary":false,"last_poster_username":"Discourse","category_id":179,"op_like_count":4,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Common list of imports for Theme Components/plugins (JS)","fancy_title_localized":false,"locale":"en","id":382493,"title":"Common list of imports for Theme Components/plugins (JS)","slug":"common-list-of-imports-for-theme-components-plugins-js","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2025-09-13T03:13:05.568Z","last_posted_at":"2025-12-26T12:19:50.196Z","bumped":true,"bumped_at":"2026-09-05T03:10:02.518Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I usually find myself digging around to get imports for different things when I make a Theme Component, so I decided to compile a bunch of them and put them here. \nEmber-related\n\n\n\n\nName\nImport\nUsage\n\n\n\n\nComponent\nimport&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":281,"like_count":12,"has_summary":false,"last_poster_username":"chapoi","category_id":179,"op_like_count":11,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":135392,"primary_group_id":null,"flair_group_id":48},{"extras":"latest","description":"Most Recent Poster","user_id":113000,"primary_group_id":null,"flair_group_id":47}]},{"fancy_title":"Customizing subcategory boxes in Discourse","fancy_title_localized":false,"locale":"en","id":239691,"title":"Customizing subcategory boxes in Discourse","slug":"customizing-subcategory-boxes-in-discourse","posts_count":3,"reply_count":1,"highest_post_number":6,"image_url":"https://global.discourse-cdn.com/meta/original/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37.png","created_at":"2022-09-21T19:19:52.577Z","last_posted_at":"2026-04-02T21:45:10.074Z","bumped":true,"bumped_at":"2026-04-02T21:45:10.074Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: This guide explains how to customize the appearance of subcategory boxes in Discourse, including adjusting styles for featured topics, modifying the “Boxes” style, and managing category description truncation&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1021,"height":257,"url":"https://global.discourse-cdn.com/meta/original/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37.png"},{"max_width":800,"max_height":800,"width":800,"height":201,"url":"https://global.discourse-cdn.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_800x201.png"},{"max_width":600,"max_height":600,"width":600,"height":151,"url":"https://global.discourse-cdn.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_600x151.png"},{"max_width":400,"max_height":400,"width":400,"height":100,"url":"https://global.discourse-cdn.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_400x100.png"},{"max_width":300,"max_height":300,"width":300,"height":75,"url":"https://global.discourse-cdn.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_300x75.png"},{"max_width":200,"max_height":200,"width":200,"height":50,"url":"https://global.discourse-cdn.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_200x50.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":814,"name":"customization","slug":"customization"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":1550,"like_count":1,"has_summary":false,"last_poster_username":"Moin","category_id":179,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":135971,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":95552,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Setup a ToolTip in your Forum","fancy_title_localized":false,"locale":"en","id":45792,"title":"Setup a ToolTip in your Forum","slug":"setup-a-tooltip-in-your-forum","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":"https://global.discourse-cdn.com/meta/original/3X/2/9/29795cb79a11f5b947ca4b83334a38eee138cc01.png","created_at":"2016-06-16T23:09:01.116Z","last_posted_at":"2026-01-12T16:59:30.521Z","bumped":true,"bumped_at":"2026-01-12T16:59:30.521Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi, this is my first post sharing a resource to help this wonderful community. \nI want to help them create simple forms a tooltip for your forum making it modern and clean, ok lets do it! \nFirst what is tooltip? A toolti&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":377,"height":418,"url":"https://global.discourse-cdn.com/meta/original/3X/2/9/29795cb79a11f5b947ca4b83334a38eee138cc01.png"},{"max_width":400,"max_height":400,"width":360,"height":400,"url":"https://global.discourse-cdn.com/meta/optimized/3X/2/9/29795cb79a11f5b947ca4b83334a38eee138cc01_2_360x400.png"},{"max_width":300,"max_height":300,"width":270,"height":300,"url":"https://global.discourse-cdn.com/meta/optimized/3X/2/9/29795cb79a11f5b947ca4b83334a38eee138cc01_2_270x300.png"},{"max_width":200,"max_height":200,"width":180,"height":200,"url":"https://global.discourse-cdn.com/meta/optimized/3X/2/9/29795cb79a11f5b947ca4b83334a38eee138cc01_2_180x200.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":3275,"like_count":23,"has_summary":false,"last_poster_username":"denvergeeks","category_id":179,"op_like_count":11,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":20815,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":32,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":17969,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":72263,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Override existing Discourse methods in plugins","fancy_title_localized":false,"locale":"en","id":83389,"title":"Override existing Discourse methods in plugins","slug":"override-existing-discourse-methods-in-plugins","posts_count":9,"reply_count":5,"highest_post_number":13,"image_url":null,"created_at":"2018-03-20T11:37:16.168Z","last_posted_at":"2025-12-10T17:36:56.810Z","bumped":true,"bumped_at":"2025-12-10T17:36:56.810Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I’ve been running into a bunch of instances recently of needing to override existing ruby methods from plugins, and thought I’d share my best practices here. \nOverriding an instance method\nclass ::TopicQuery\n  module Bab&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":274,"name":"plugin-guides","slug":"plugin-guides"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":5003,"like_count":65,"has_summary":false,"last_poster_username":"TimFelix","category_id":179,"op_like_count":35,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":12933,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":88244,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":6548,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":185178,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"User custom fields validation implementation","fancy_title_localized":false,"locale":"en","id":388179,"title":"User custom fields validation implementation","slug":"user-custom-fields-validation-implementation","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-11-11T20:10:06.292Z","last_posted_at":"2025-11-11T20:10:06.361Z","bumped":true,"bumped_at":"2025-11-11T20:10:06.361Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This is an article for future DEVs that might need this for creating custom Plugin specifically for validation User custom fields. \nWritten while having Discourse version 3.6.0.beta3-latest (current commit a7326abf15), s&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":618,"name":"user-custom-fields","slug":"user-custom-fields"},{"id":278,"name":"development","slug":"development"}],"tags_descriptions":{},"views":136,"like_count":1,"has_summary":false,"last_poster_username":"Yan_Rudenko","category_id":179,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":183669,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Customize the New Topic button","fancy_title_localized":false,"locale":"en","id":197848,"title":"Customize the New Topic button","slug":"customize-the-new-topic-button","posts_count":12,"reply_count":4,"highest_post_number":13,"image_url":"https://global.discourse-cdn.com/meta/original/3X/0/0/00eff69c3ff5b23f725e12ce244a6c0892779804.gif","created_at":"2021-07-22T11:34:47.602Z","last_posted_at":"2025-06-10T22:58:15.707Z","bumped":true,"bumped_at":"2025-06-10T22:58:15.707Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hello, \nI just want to share with you how I make our new topic button. Little CSS :slight_smile: \nI use for this color variables. (tertiary, secondary and primary-medium) \nNew Topic button \n \nOpen Draft button \n \n\n#creat&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":542,"height":206,"url":"https://global.discourse-cdn.com/meta/original/3X/0/0/00eff69c3ff5b23f725e12ce244a6c0892779804.gif"},{"max_width":400,"max_height":400,"width":400,"height":152,"url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/00eff69c3ff5b23f725e12ce244a6c0892779804_2_400x152.gif"},{"max_width":300,"max_height":300,"width":300,"height":114,"url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/00eff69c3ff5b23f725e12ce244a6c0892779804_2_300x114.gif"},{"max_width":200,"max_height":200,"width":200,"height":76,"url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/00eff69c3ff5b23f725e12ce244a6c0892779804_2_200x76.gif"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":2505,"like_count":24,"has_summary":false,"last_poster_username":"nathank","category_id":179,"op_like_count":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":78445,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"Frequent Poster","user_id":83631,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":102688,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":103767,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":57788,"primary_group_id":null,"flair_group_id":148}]},{"fancy_title":"Working with .erb templates in a plugin","fancy_title_localized":false,"locale":"en","id":345777,"title":"Working with .erb templates in a plugin","slug":"working-with-erb-templates-in-a-plugin","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-01-06T09:12:26.736Z","last_posted_at":"2025-01-06T09:12:26.795Z","bumped":true,"bumped_at":"2025-04-13T11:08:29.684Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I’ve been giving some advice on how to work with .erb templates in Discourse recently and noticed there isn’t much detail on this here on meta, so I thought I’d start this wiki on the subject. This wiki assumes you know &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":186,"like_count":8,"has_summary":false,"last_poster_username":"angus","category_id":179,"op_like_count":8,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":13378,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"Preloading data and dealing with N+1 Query problems","fancy_title_localized":false,"locale":"en","id":347688,"title":"Preloading data and dealing with N+1 Query problems","slug":"preloading-data-and-dealing-with-n-1-query-problems","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-01-17T14:41:19.061Z","last_posted_at":"2025-01-17T14:41:19.129Z","bumped":true,"bumped_at":"2025-01-17T15:17:12.872Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"When working with the Discourse rails application, whether building a plugin, or making a pull request to discourse/discourse there are a number of contexts where you’ll encounter N+1 query problems. This topic explains &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":195,"like_count":4,"has_summary":false,"last_poster_username":"angus","category_id":179,"op_like_count":4,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":13378,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"(outdated) Guide to Setting Up Discourse Development Environment - GitHub Codespace","fancy_title_localized":false,"locale":"en","id":307231,"title":"(outdated) Guide to Setting Up Discourse Development Environment - GitHub Codespace","slug":"outdated-guide-to-setting-up-discourse-development-environment-github-codespace","posts_count":9,"reply_count":3,"highest_post_number":9,"image_url":"https://global.discourse-cdn.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_1024x827.png","created_at":"2024-05-08T10:44:56.543Z","last_posted_at":"2024-11-14T12:20:09.118Z","bumped":true,"bumped_at":"2024-11-14T12:20:09.118Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Developing Using GitHub Codespaces\nGitHub Codespace is a great development option. It’s great because it’s hosted in the cloud, I can easily ensure that everyone developing here has the same environment, no dealing wit&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":1552,"url":"https://global.discourse-cdn.com/meta/original/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":827,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_1024x827.png"},{"max_width":800,"max_height":800,"width":800,"height":646,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_800x646.png"},{"max_width":600,"max_height":600,"width":600,"height":485,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_600x485.png"},{"max_width":400,"max_height":400,"width":400,"height":323,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_400x323.png"},{"max_width":300,"max_height":300,"width":300,"height":242,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_300x242.png"},{"max_width":200,"max_height":200,"width":200,"height":161,"url":"https://global.discourse-cdn.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_200x161.png"}],"tags":[{"id":150,"name":"dev-install","slug":"dev-install"}],"tags_descriptions":{"dev-install":"Instructions and issues with installing Discourse for development"},"views":1195,"like_count":29,"has_summary":false,"last_poster_username":"david","category_id":179,"op_like_count":11,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":83098,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":135392,"primary_group_id":null,"flair_group_id":48},{"extras":null,"description":"Frequent Poster","user_id":95552,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Getting started using Postman with the Discourse API","fancy_title_localized":false,"locale":"en","id":333669,"title":"Getting started using Postman with the Discourse API","slug":"getting-started-using-postman-with-the-discourse-api","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://global.discourse-cdn.com/meta/original/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e.png","created_at":"2024-10-30T17:49:40.542Z","last_posted_at":"2024-10-30T17:49:40.683Z","bumped":true,"bumped_at":"2024-10-30T18:54:31.965Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Summary\nPostman is a way to easily construct and test requests against an API. \nConfiguring with Discourse\n\n\nAfter opening Postman, click Create Workspace: \n\n  \n\n\n\nChoose Blank workspace and click Next. \n\n\nTitle it Disco&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":633,"height":181,"url":"https://global.discourse-cdn.com/meta/original/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e.png"},{"max_width":600,"max_height":600,"width":600,"height":171,"url":"https://global.discourse-cdn.com/meta/optimized/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e_2_600x171.png"},{"max_width":400,"max_height":400,"width":400,"height":114,"url":"https://global.discourse-cdn.com/meta/optimized/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e_2_400x114.png"},{"max_width":300,"max_height":300,"width":300,"height":85,"url":"https://global.discourse-cdn.com/meta/optimized/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e_2_300x85.png"},{"max_width":200,"max_height":200,"width":200,"height":57,"url":"https://global.discourse-cdn.com/meta/optimized/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e_2_200x57.png"}],"tags":[],"tags_descriptions":{},"views":282,"like_count":8,"has_summary":false,"last_poster_username":"supermathie","category_id":179,"op_like_count":8,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Add a custom per-user setting in a plugin","fancy_title_localized":false,"locale":"en","id":94048,"title":"Add a custom per-user setting in a plugin","slug":"add-a-custom-per-user-setting-in-a-plugin","posts_count":28,"reply_count":16,"highest_post_number":29,"image_url":null,"created_at":"2018-08-06T20:39:54.293Z","last_posted_at":"2023-12-20T18:49:07.515Z","bumped":true,"bumped_at":"2024-09-12T12:50:45.252Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I just went through this process and experienced a bunch of trial and error, so I thought I’d document my findings to help the next developer to come along. \nThe things I needed: \n\n\nRegister your custom field type (mine &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":274,"name":"plugin-guides","slug":"plugin-guides"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":4959,"like_count":120,"has_summary":false,"last_poster_username":"merefield","category_id":179,"op_like_count":33,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":12933,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":8722,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Recent Poster","user_id":40288,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Automating Discourse Plugin Setup with `create-discourse-plugin` gem","fancy_title_localized":false,"locale":"en","id":315013,"title":"Automating Discourse Plugin Setup with `create-discourse-plugin` gem","slug":"automating-discourse-plugin-setup-with-create-discourse-plugin-gem","posts_count":8,"reply_count":4,"highest_post_number":8,"image_url":"https://global.discourse-cdn.com/meta/original/4X/c/1/d/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17.png","created_at":"2024-07-04T13:53:41.649Z","last_posted_at":"2024-08-27T18:26:52.104Z","bumped":true,"bumped_at":"2024-08-27T18:34:01.374Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":mega:  This plugin is now bundled with Discourse core. There is no need to use this gem. \nTo create a new plugin, use: \nrake plugin:create[plugin-name] \n\nSince I started developing discourse plugins, I felt the overall&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":690,"height":278,"url":"https://global.discourse-cdn.com/meta/original/4X/c/1/d/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17.png"},{"max_width":600,"max_height":600,"width":600,"height":241,"url":"https://global.discourse-cdn.com/meta/optimized/4X/c/1/d/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17_2_600x241.png"},{"max_width":400,"max_height":400,"width":400,"height":161,"url":"https://global.discourse-cdn.com/meta/optimized/4X/c/1/d/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17_2_400x161.png"},{"max_width":300,"max_height":300,"width":300,"height":120,"url":"https://global.discourse-cdn.com/meta/optimized/4X/c/1/d/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17_2_300x120.png"},{"max_width":200,"max_height":200,"width":200,"height":80,"url":"https://global.discourse-cdn.com/meta/optimized/4X/c/1/d/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17_2_200x80.png"}],"tags":[],"tags_descriptions":{},"views":593,"like_count":52,"has_summary":false,"last_poster_username":"pfaffman","category_id":179,"op_like_count":16,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":144959,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Recent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Most Recent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"Customize mention colors","fancy_title_localized":false,"locale":"en","id":219023,"title":"Customize mention colors","slug":"customize-mention-colors","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"https://global.discourse-cdn.com/meta/original/3X/6/c/6cacf59bada15e604aa436a0ada30f6c52adaf14.png","created_at":"2022-02-22T03:59:40.782Z","last_posted_at":"2023-12-13T17:04:32.023Z","bumped":true,"bumped_at":"2023-12-13T17:04:32.023Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Inspired by this topic, and the custom colors of Discord roles, I have written this very simple code that adds a data-mention to the mentions of groups and users, in this way to be able to place different colors (And not&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":112,"height":31,"url":"https://global.discourse-cdn.com/meta/original/3X/6/c/6cacf59bada15e604aa436a0ada30f6c52adaf14.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":1969,"like_count":15,"has_summary":false,"last_poster_username":"martyn_thomas","category_id":179,"op_like_count":11,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":73340,"primary_group_id":null,"flair_group_id":151},{"extras":null,"description":"Frequent Poster","user_id":63814,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":101949,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":141342,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Learn how to start building stuff for Discourse if you&rsquo;re newbie (like myself)","fancy_title_localized":false,"locale":"en","id":45954,"title":"Learn how to start building stuff for Discourse if you're newbie (like myself)","slug":"learn-how-to-start-building-stuff-for-discourse-if-youre-newbie-like-myself","posts_count":15,"reply_count":6,"highest_post_number":26,"image_url":null,"created_at":"2016-06-17T15:22:19.799Z","last_posted_at":"2023-10-15T20:19:53.785Z","bumped":true,"bumped_at":"2023-10-15T20:19:53.785Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"There are a few ‘how to start’ guides for working with Discourse already and a wealth of useful info on meta, but I thought it might help to give an insight to the mental processes of starting from little, if any, prior &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":479,"name":"explanation","slug":"explanation"}],"tags_descriptions":{},"views":30144,"like_count":319,"has_summary":false,"last_poster_username":"elle7","category_id":179,"op_like_count":238,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":67228,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":125384,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":139561,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":139330,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Installing the Discourse development environment on Ubuntu","fancy_title_localized":true,"locale":"zh_CN","id":248481,"title":":cn: Installing the Discourse development environment on Ubuntu 在 Ubuntu 上安装 Discourse 开发环境","slug":"installing-the-discourse-development-environment-on-ubuntu-ubuntu-discourse","posts_count":6,"reply_count":3,"highest_post_number":9,"image_url":"https://global.discourse-cdn.com/meta/original/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df.png","created_at":"2022-12-10T14:06:22.413Z","last_posted_at":"2023-10-13T06:20:08.282Z","bumped":true,"bumped_at":"2023-10-13T06:20:08.282Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"&lt;div&gt;&lt;/div&gt;\n\n\n:warning: This guide is only for configuring the Discourse development environment. If you need to install Discourse in a production environment, please refer to the content on the page: Install Discourse i&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"unicode_title":"🇨🇳 Installing the Discourse development environment on Ubuntu 在 Ubuntu 上安装 Discourse 开发环境","thumbnails":[{"max_width":null,"max_height":null,"width":690,"height":375,"url":"https://global.discourse-cdn.com/meta/original/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df.png"},{"max_width":600,"max_height":600,"width":600,"height":326,"url":"https://global.discourse-cdn.com/meta/optimized/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df_2_600x326.png"},{"max_width":400,"max_height":400,"width":400,"height":217,"url":"https://global.discourse-cdn.com/meta/optimized/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df_2_400x217.png"},{"max_width":300,"max_height":300,"width":300,"height":163,"url":"https://global.discourse-cdn.com/meta/optimized/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df_2_300x163.png"},{"max_width":200,"max_height":200,"width":200,"height":108,"url":"https://global.discourse-cdn.com/meta/optimized/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df_2_200x108.png"}],"tags":[{"id":150,"name":"dev-install","slug":"dev-install"}],"tags_descriptions":{"dev-install":"Instructions and issues with installing Discourse for development"},"views":2161,"like_count":6,"has_summary":false,"last_poster_username":"scavin","category_id":179,"op_like_count":2,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":79292,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":119102,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":138598,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":14617,"primary_group_id":null,"flair_group_id":50}]},{"fancy_title":"Package a Discourse plugin as a gem","fancy_title_localized":false,"locale":"en","id":273036,"title":"Package a Discourse plugin as a gem","slug":"package-a-discourse-plugin-as-a-gem","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2023-07-27T11:41:29.486Z","last_posted_at":"2023-07-27T16:59:01.681Z","bumped":true,"bumped_at":"2023-07-27T16:59:01.681Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Pavilion has started to package some Discourse plugins as ruby gems, starting with our subscription client. \n\n\nOur subscription client is still a separate plugin which now loads this gem, but it’s backend is now entirely&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":274,"name":"plugin-guides","slug":"plugin-guides"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":702,"like_count":19,"has_summary":false,"last_poster_username":"merefield","category_id":179,"op_like_count":14,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Recent Poster","user_id":45577,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Insertable, centrally maintained text/markdown snippets","fancy_title_localized":false,"locale":"en","id":97246,"title":"Insertable, centrally maintained text/markdown snippets","slug":"insertable-centrally-maintained-text-markdown-snippets","posts_count":10,"reply_count":1,"highest_post_number":10,"image_url":null,"created_at":"2018-09-15T07:17:42.016Z","last_posted_at":"2023-07-23T05:28:29.561Z","bumped":true,"bumped_at":"2023-07-23T07:03:44.781Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I was wondering if there was any way I could define a string of text in a single place and insert it within posts with a single, short reference. \nIt’s a bit like the out of the box Admin -&gt; Customize -&gt; Text Content, bu&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":482,"name":"reference","slug":"reference"}],"tags_descriptions":{},"views":3842,"like_count":37,"has_summary":false,"last_poster_username":"denvergeeks","category_id":179,"op_like_count":3,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13093,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"Frequent Poster","user_id":34674,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":98881,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":72263,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Set up a smart chatbot on discourse :robot:","fancy_title_localized":false,"locale":"en","id":82632,"title":"Set up a smart chatbot on discourse :robot:","slug":"set-up-a-smart-chatbot-on-discourse","posts_count":15,"reply_count":8,"highest_post_number":16,"image_url":"https://global.discourse-cdn.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_1024x516.gif","created_at":"2018-03-09T16:50:11.492Z","last_posted_at":"2023-02-09T00:52:36.718Z","bumped":true,"bumped_at":"2023-02-09T00:52:36.718Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hello, \nAfter weeks of tinkering, I finally managed to set up an AI bot, similar to discobot but one that learns and is more responsive.  Here is how I did it for anyone interested in setting it up.  There is quite a few&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"unicode_title":"Set up a smart chatbot on discourse 🤖","thumbnails":[{"max_width":null,"max_height":null,"width":1200,"height":605,"url":"https://global.discourse-cdn.com/meta/original/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211.gif"},{"max_width":1024,"max_height":1024,"width":1024,"height":516,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_1024x516.gif"},{"max_width":800,"max_height":800,"width":800,"height":403,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_800x403.gif"},{"max_width":600,"max_height":600,"width":600,"height":302,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_600x302.gif"},{"max_width":400,"max_height":400,"width":400,"height":201,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_400x201.gif"},{"max_width":300,"max_height":300,"width":300,"height":151,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_300x151.gif"},{"max_width":200,"max_height":200,"width":200,"height":100,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_200x100.gif"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":9356,"like_count":70,"has_summary":false,"last_poster_username":"SimonBiggs","category_id":179,"op_like_count":38,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":29613,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":36855,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":66060,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":72263,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":129042,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Add copyright protection to tagged topics","fancy_title_localized":false,"locale":"en","id":208970,"title":"Add copyright protection to tagged topics","slug":"add-copyright-protection-to-tagged-topics","posts_count":15,"reply_count":10,"highest_post_number":15,"image_url":null,"created_at":"2021-11-12T12:28:40.116Z","last_posted_at":"2022-12-17T14:46:39.178Z","bumped":true,"bumped_at":"2022-12-17T14:46:39.178Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hello, \nMany of our Member have quality topics, blog articles etc… Unfortunately others steal these (and make it public other sites as their own without any source) even if the author says clearly. “I only write it to th&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":1949,"like_count":43,"has_summary":false,"last_poster_username":"wendellverli","category_id":179,"op_like_count":18,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":78445,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"Frequent Poster","user_id":109684,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":13042,"primary_group_id":null,"flair_group_id":142},{"extras":"latest","description":"Most Recent Poster","user_id":124068,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Custom Discourse Reactions","fancy_title_localized":false,"locale":"en","id":198043,"title":"Custom Discourse Reactions","slug":"custom-discourse-reactions","posts_count":14,"reply_count":7,"highest_post_number":14,"image_url":"https://global.discourse-cdn.com/meta/original/3X/e/0/e0056318f848ada8e7d3f721c5b974da73222ccd.gif","created_at":"2021-07-24T02:06:56.491Z","last_posted_at":"2022-05-29T15:40:23.040Z","bumped":true,"bumped_at":"2022-05-29T15:40:23.040Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hello, \nI made some CSS modification on Discourse Reactions Plugin. So it looks much like Facebook reaction buttons. \nThese for 6 reaction buttons including the default which is on my site is :heart: . \nCOMMON / SCSS \nPl&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":502,"height":176,"url":"https://global.discourse-cdn.com/meta/original/3X/e/0/e0056318f848ada8e7d3f721c5b974da73222ccd.gif"},{"max_width":400,"max_height":400,"width":400,"height":140,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/0/e0056318f848ada8e7d3f721c5b974da73222ccd_2_400x140.gif"},{"max_width":300,"max_height":300,"width":300,"height":105,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/0/e0056318f848ada8e7d3f721c5b974da73222ccd_2_300x105.gif"},{"max_width":200,"max_height":200,"width":200,"height":70,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/0/e0056318f848ada8e7d3f721c5b974da73222ccd_2_200x70.gif"}],"tags":[{"id":482,"name":"reference","slug":"reference"}],"tags_descriptions":{},"views":2959,"like_count":82,"has_summary":false,"last_poster_username":"Don","category_id":179,"op_like_count":25,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":78445,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"Frequent Poster","user_id":19473,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":62294,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":67026,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":102068,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Setup Code blocks that stand out, per-language backgrounds","fancy_title_localized":false,"locale":"en","id":57255,"title":"Setup Code blocks that stand out, per-language backgrounds","slug":"setup-code-blocks-that-stand-out-per-language-backgrounds","posts_count":3,"reply_count":6,"highest_post_number":3,"image_url":"https://global.discourse-cdn.com/meta/original/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557.png","created_at":"2017-02-11T23:23:52.641Z","last_posted_at":"2017-10-17T14:10:29.316Z","bumped":true,"bumped_at":"2022-02-10T22:45:23.062Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Here’s a really quick and easy CSS change that may benefit forums where people post code in a few different languages. \nAt least with the languages we use, Discourse does a great job of guessing which language code is in&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":716,"height":221,"url":"https://global.discourse-cdn.com/meta/original/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557.png"},{"max_width":600,"max_height":600,"width":600,"height":185,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557_2_600x185.png"},{"max_width":400,"max_height":400,"width":400,"height":123,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557_2_400x123.png"},{"max_width":300,"max_height":300,"width":300,"height":92,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557_2_300x92.png"},{"max_width":200,"max_height":200,"width":200,"height":61,"url":"https://global.discourse-cdn.com/meta/optimized/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557_2_200x61.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":3365,"like_count":30,"has_summary":false,"last_poster_username":"schungx","category_id":179,"op_like_count":20,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":26605,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1995,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Recent Poster","user_id":8571,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":28866,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Create a custom badge with an image through the API","fancy_title_localized":false,"locale":"en","id":210616,"title":"Create a custom badge with an image through the API","slug":"create-a-custom-badge-with-an-image-through-the-api","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2021-12-01T00:14:48.335Z","last_posted_at":"2021-12-05T19:41:55.739Z","bumped":true,"bumped_at":"2021-12-07T01:28:19.597Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Sure, the included badges are … nice. Nothing wrong with them at all. But, what if you want more? What if you want to go beyond the pre-defined symbol set? Sure, there’s an admin page where you can upload them. But what &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":330,"name":"rest-api","slug":"rest-api"},{"id":478,"name":"how-to","slug":"how-to"},{"id":2,"name":"badges","slug":"badges"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse","how-to":"How to guides contain steps to follow to solve a specific problem","badges":""},"views":2042,"like_count":12,"has_summary":false,"last_poster_username":"mattdm","category_id":179,"op_like_count":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":5795,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Redirect an existing route in a theme component","fancy_title_localized":false,"locale":"en","id":201900,"title":"Redirect an existing route in a theme component","slug":"redirect-an-existing-route-in-a-theme-component","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2021-08-27T12:33:37.464Z","last_posted_at":"2021-08-27T12:33:37.625Z","bumped":true,"bumped_at":"2021-08-27T12:33:37.625Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"To redirect an existing Discourse route in a theme component, you can use api.modifyClass to modify the route class. \nMore information can be found in the Ember documentation on routing redirection. Here’s an example: \n&lt;s&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":820,"name":"theme-guides","slug":"theme-guides"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":1450,"like_count":8,"has_summary":false,"last_poster_username":"JonathanShaw","category_id":179,"op_like_count":8,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":85965,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Customize the loading icon","fancy_title_localized":false,"locale":"en","id":165743,"title":"Customize the loading icon","slug":"customize-the-loading-icon","posts_count":8,"reply_count":4,"highest_post_number":10,"image_url":"https://global.discourse-cdn.com/meta/original/3X/5/9/59a6848d38aaa5c6fbfb78ff9fe35c48f757c0fc.png","created_at":"2020-09-29T15:37:30.454Z","last_posted_at":"2021-06-16T18:12:06.469Z","bumped":true,"bumped_at":"2021-06-16T18:12:06.469Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Customize the loading icon\nNote that it changes the main loading icon, but not the small loading icon (composer, search menu, etc). \n\n\nEdit your current theme or create a new theme component. \n\n\nGo in &lt;/head&gt; and paste t&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":61,"height":52,"url":"https://global.discourse-cdn.com/meta/original/3X/5/9/59a6848d38aaa5c6fbfb78ff9fe35c48f757c0fc.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":3314,"like_count":37,"has_summary":false,"last_poster_username":"Johnny_McIvor","category_id":179,"op_like_count":26,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":78445,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"Recent Poster","user_id":33297,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":96216,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Our solution for blurring NSFW content","fancy_title_localized":false,"locale":"en","id":124584,"title":"Our solution for blurring NSFW content","slug":"our-solution-for-blurring-nsfw-content","posts_count":10,"reply_count":9,"highest_post_number":22,"image_url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_1024x382.jpeg","created_at":"2019-08-01T07:38:30.472Z","last_posted_at":"2020-11-14T22:56:30.466Z","bumped":true,"bumped_at":"2020-11-14T22:56:30.466Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"At the Blender Artists forum we have a faily liberal content policy where we allow nudity and violence (up to a point). While most members are fine with this kind of content, there are of course audiences and situations &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1586,"height":592,"url":"https://global.discourse-cdn.com/meta/original/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":382,"url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_1024x382.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":298,"url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_800x298.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":223,"url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_600x223.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":149,"url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_400x149.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":111,"url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_300x111.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":74,"url":"https://global.discourse-cdn.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_200x74.jpeg"}],"tags":[{"id":479,"name":"explanation","slug":"explanation"},{"id":813,"name":"content","slug":"content"}],"tags_descriptions":{},"views":10555,"like_count":83,"has_summary":false,"last_poster_username":"codinghorror","category_id":179,"op_like_count":55,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":12801,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":71403,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":66204,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Recent Poster","user_id":84866,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":32,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Use Node-Red and Telegram to Monitor Discourse Status","fancy_title_localized":false,"locale":"en","id":157229,"title":"Use Node-Red and Telegram to Monitor Discourse Status","slug":"use-node-red-and-telegram-to-monitor-discourse-status","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://global.discourse-cdn.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_575x1024.png","created_at":"2020-07-09T07:17:02.690Z","last_posted_at":"2020-07-09T07:17:02.864Z","bumped":true,"bumped_at":"2020-07-09T07:17:02.864Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Please note that this is a different application than sending Discourse application notifications using the Discourse Telegram Notifications plugin.   This NR application is for monitoring the server, Docker and the Dis&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":750,"height":1334,"url":"https://global.discourse-cdn.com/meta/original/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9.png"},{"max_width":1024,"max_height":1024,"width":575,"height":1024,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_575x1024.png"},{"max_width":800,"max_height":800,"width":449,"height":800,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_449x800.png"},{"max_width":600,"max_height":600,"width":337,"height":600,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_337x600.png"},{"max_width":400,"max_height":400,"width":224,"height":400,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_224x400.png"},{"max_width":300,"max_height":300,"width":168,"height":300,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_168x300.png"},{"max_width":200,"max_height":200,"width":112,"height":200,"url":"https://global.discourse-cdn.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_112x200.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":2581,"like_count":4,"has_summary":false,"last_poster_username":"neounix","category_id":179,"op_like_count":4,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":75906,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Use Ember.PromiseProxyMixin in a theme","fancy_title_localized":false,"locale":"en","id":147231,"title":"Use Ember.PromiseProxyMixin in a theme","slug":"use-ember-promiseproxymixin-in-a-theme","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2020-04-08T08:21:39.507Z","last_posted_at":"2020-04-08T10:01:08.796Z","bumped":true,"bumped_at":"2020-04-08T10:01:08.796Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Recently the Ember.PromiseProxyMixin was added to ember modules in the discourse core. \nhttps://github.com/discourse/discourse/pull/9312 \nIt’s very useful Ember mixin which allows you to make async requests and to work e&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"how-to","slug":"how-to"},{"id":820,"name":"theme-guides","slug":"theme-guides"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":1424,"like_count":9,"has_summary":false,"last_poster_username":"j.jaffeux","category_id":179,"op_like_count":4,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":74650,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":23163,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Use the API to create restricted categories for external groups","fancy_title_localized":false,"locale":"en","id":139107,"title":"Use the API to create restricted categories for external groups","slug":"use-the-api-to-create-restricted-categories-for-external-groups","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2020-01-19T18:31:12.605Z","last_posted_at":"2020-01-19T18:31:12.721Z","bumped":true,"bumped_at":"2020-01-19T18:31:12.721Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"If you have a community site that also (but not exclusively) uses Discourse, you may want to provide a restricted subforum for each of your groups, for example as a workspace. Here’s how, in Ruby: \n\n\nEnsure that your API&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":330,"name":"rest-api","slug":"rest-api"},{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse","how-to":"How to guides contain steps to follow to solve a specific problem"},"views":1344,"like_count":5,"has_summary":false,"last_poster_username":"Judith","category_id":179,"op_like_count":5,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":39022,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Display star ratings for Discourse pages in search engine results (SERPs)","fancy_title_localized":false,"locale":"en","id":84316,"title":"Display star ratings for Discourse pages in search engine results (SERPs)","slug":"display-star-ratings-for-discourse-pages-in-search-engine-results-serps","posts_count":14,"reply_count":7,"highest_post_number":14,"image_url":"https://global.discourse-cdn.com/meta/original/3X/5/9/595832e5dcdce03e82bbcedf2f398762e8f3d774.png","created_at":"2018-04-01T09:23:45.361Z","last_posted_at":"2019-04-26T10:31:01.659Z","bumped":true,"bumped_at":"2019-04-26T10:31:01.659Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Displaying star rating with Discourse is easy. I am happy to share, It can be done in simple few steps \nProcess \n\n\nSetup Google Tag Manager for your Discourse Application \n  \n\n\nAdd a new HTML Tag containing JSON-LD marku&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":555,"height":270,"url":"https://global.discourse-cdn.com/meta/original/3X/5/9/595832e5dcdce03e82bbcedf2f398762e8f3d774.png"},{"max_width":400,"max_height":400,"width":400,"height":194,"url":"https://global.discourse-cdn.com/meta/optimized/3X/5/9/595832e5dcdce03e82bbcedf2f398762e8f3d774_2_400x194.png"},{"max_width":300,"max_height":300,"width":300,"height":145,"url":"https://global.discourse-cdn.com/meta/optimized/3X/5/9/595832e5dcdce03e82bbcedf2f398762e8f3d774_2_300x145.png"},{"max_width":200,"max_height":200,"width":200,"height":97,"url":"https://global.discourse-cdn.com/meta/optimized/3X/5/9/595832e5dcdce03e82bbcedf2f398762e8f3d774_2_200x97.png"}],"tags":[{"id":478,"name":"how-to","slug":"how-to"}],"tags_descriptions":{"how-to":"How to guides contain steps to follow to solve a specific problem"},"views":3944,"like_count":39,"has_summary":false,"last_poster_username":"Gulshan_Kumar","category_id":179,"op_like_count":8,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":38013,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":6626,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":30818,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":2,"primary_group_id":null,"flair_group_id":null}]}]}}