{"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":135971,"username":"microhit","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/microhit/{size}/447960_2.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":20815,"username":"marcospreviato","name":"Marcos P","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/marcospreviato/{size}/54766_2.png","trust_level":2},{"id":32,"username":"codinghorror","name":"Jeff Atwood","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/codinghorror/{size}/110067_2.png","admin":true,"trust_level":2},{"id":17969,"username":"Pad_Pors","name":"Pad Pors","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pad_pors/{size}/52016_2.png","trust_level":2},{"id":72263,"username":"denvergeeks","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/denvergeeks/{size}/327671_2.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":113000,"username":"chapoi","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/chapoi/{size}/537252_2.png","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":12933,"username":"gdpelican","name":"James Kiesel","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/gdpelican/{size}/81308_2.png","trust_level":2},{"id":66606,"username":"spirobel","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/spirobel/{size}/170908_2.png","flair_name":"plugin_authors","flair_url":"plug","flair_bg_color":"dddddd","flair_color":"111111","flair_group_id":48,"trust_level":2},{"id":13378,"username":"angus","name":"Angus McLeod","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/angus/{size}/341715_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":88244,"username":"frank.manuel","name":"Frank Manuel","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/frank.manuel/{size}/203348_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-redesign-2026.discourse.group/yan_rudenko/{size}/493431_2.png","trust_level":1},{"id":78445,"username":"Don","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/don/{size}/228726_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":102688,"username":"valsha","name":"KingPin","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/valsha/{size}/230631_2.png","trust_level":2},{"id":83631,"username":"Jagster","name":"Jakke Flemming","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jagster/{size}/192154_2.png","trust_level":3},{"id":103767,"username":"Usman_Shahid","name":"Usman Shahid","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/usman_shahid/{size}/232411_2.png","trust_level":2},{"id":57788,"username":"nathank","name":"Nathan Kershaw","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/nathank/{size}/290039_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":4},{"id":83098,"username":"jordan-violet","name":"Jordan Violet","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jordan-violet/{size}/281428_2.png","trust_level":2},{"id":142927,"username":"Rick_Jing","name":"Rick Jing","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/rick_jing/{size}/354677_2.png","trust_level":2},{"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":3,"username":"supermathie","name":"Michael Brown","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/supermathie/{size}/507518_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":8722,"username":"Falco","name":"Falco","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/falco/{size}/179432_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":4},{"id":27384,"username":"merefield","name":"Robert","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/merefield/{size}/176214_2.png","trust_level":3},{"id":144959,"username":"gabriel","name":"Gabriel Grubba","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/gabriel/{size}/367911_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":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":73340,"username":"Alexander","name":"Alexander Barrios","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/alexander/{size}/497634_2.png","flair_name":"support-enthusiasts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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-redesign-2026.discourse.group/ondrej/{size}/198804_2.png","trust_level":3},{"id":101949,"username":"kinetiksoft","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/kinetiksoft/{size}/229578_2.png","trust_level":2},{"id":141342,"username":"martyn_thomas","name":"Martyn Thomas","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/martyn_thomas/{size}/344874_2.png","trust_level":2},{"id":67228,"username":"영광_임","name":"영광 임","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/영광_임/{size}/148997_2.png","trust_level":2},{"id":68923,"username":"Luke_Clancy","name":"Luke Clancy","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/luke_clancy/{size}/166703_2.png","trust_level":1},{"id":125384,"username":"SwanseN21","name":"Sean Monsanto","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/swansen21/{size}/283233_2.png","trust_level":1},{"id":139330,"username":"elle7","name":"Laura White","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/elle7/{size}/331525_2.png","trust_level":1},{"id":79292,"username":"honeymoose","name":"HoneyMoose","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/honeymoose/{size}/198718_2.png","trust_level":2},{"id":119102,"username":"Lhc_fl","name":"Linca","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/lhc_fl/{size}/268115_2.png","trust_level":2},{"id":138598,"username":"wayway_way","name":"wayway way","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/wayway_way/{size}/327018_2.png","trust_level":2},{"id":14617,"username":"scavin","name":"scavin","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/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":34674,"username":"Johani","name":"Joe","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/johani/{size}/176920_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":98881,"username":"Luke_Cousins","name":"Luke Cousins","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/luke_cousins/{size}/223644_2.png","trust_level":2},{"id":29613,"username":"Timothy_Vail","name":"Timothy Vail","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/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-redesign-2026.discourse.group/michael_mccrae/{size}/143362_2.png","trust_level":1},{"id":55682,"username":"Muwonge_Ronald","name":"Muwonge Ronald","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/muwonge_ronald/{size}/160546_2.png","trust_level":2},{"id":129042,"username":"SimonBiggs","name":"Simon Biggs","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/simonbiggs/{size}/292760_2.png","trust_level":2},{"id":109684,"username":"f1r4s","name":"Eddie","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/f1r4s/{size}/245347_2.png","trust_level":2},{"id":124068,"username":"wendellverli","name":"Wendell Fernandes","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/wendellverli/{size}/280396_2.png","trust_level":2},{"id":62294,"username":"Heliosurge","name":"Dan DeMontmorency","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/heliosurge/{size}/131899_2.png","trust_level":3},{"id":19473,"username":"neo","name":"R.Zhang","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/neo/{size}/156675_2.png","trust_level":2},{"id":102068,"username":"jayarr","name":"JR","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jayarr/{size}/230949_2.png","trust_level":2},{"id":67026,"username":"PaulinaMX","name":"ForosMX","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/paulinamx/{size}/210473_2.png","trust_level":2},{"id":26605,"username":"LeoDavidson","name":"Leo Davidson","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/leodavidson/{size}/119574_2.png","trust_level":2},{"id":1995,"username":"zogstrip","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/zogstrip/{size}/512781_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":8571,"username":"tobiaseigen","name":"Tobias Eigen","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/tobiaseigen/{size}/539204_2.png","trust_level":2},{"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":5795,"username":"mattdm","name":"Matthew Miller","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/mattdm/{size}/216484_2.png","trust_level":2},{"id":85965,"username":"JonathanShaw","name":"Jonathan Shaw","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jonathanshaw/{size}/532672_2.png","trust_level":2},{"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":33297,"username":"Heather_Dudley","name":"Heather Dudley","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/heather_dudley/{size}/151925_2.png","trust_level":2},{"id":96216,"username":"Johnny_McIvor","name":"Johnny McIvor","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/johnny_mcivor/{size}/218747_2.png","trust_level":2},{"id":12801,"username":"bartv","name":"Bart ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/bartv/{size}/130052_2.png","trust_level":2},{"id":71403,"username":"raghukamath","name":"Raghavendra Kamath","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/raghukamath/{size}/160330_2.png","trust_level":2},{"id":66204,"username":"fzngagan","name":"Faizaan Gagan","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/fzngagan/{size}/259349_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":75906,"username":"neounix","name":"Dark Matter","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/neounix/{size}/215617_2.png","trust_level":2},{"id":74650,"username":"zcuric","name":"Zdravko","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/zcuric/{size}/292837_2.png","trust_level":2},{"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":39022,"username":"Judith","name":"Judith Meyer","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/judith/{size}/289903_2.png","trust_level":2},{"id":38013,"username":"Gulshan_Kumar","name":"Gulshan Kumar","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/gulshan_kumar/{size}/119562_2.png","trust_level":2},{"id":6626,"username":"riking","name":"Kane York","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/riking/{size}/170938_2.png","trust_level":2},{"id":2,"username":"neil","name":"Neil Lalonde","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/neil/{size}/102150_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}],"primary_groups":[{"id":276,"name":"VolunteerMods"},{"id":47,"name":"team"}],"flair_groups":[{"id":73,"name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111"},{"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":48,"name":"plugin_authors","flair_url":"plug","flair_bg_color":"dddddd","flair_color":"111111"},{"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":151,"name":"support-enthusiasts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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,"more_topics_url":"/c/wiki/developers/179?page=1","per_page":30,"top_tags":[{"id":478,"name":"如何操作","slug":"how-to"},{"id":274,"name":"插件指南","slug":"plugin-guides"},{"id":150,"name":"开发人员安装","slug":"dev-install"},{"id":479,"name":"解释","slug":"explanation"},{"id":330,"name":"rest-api","slug":"rest-api"},{"id":482,"name":"参考","slug":"reference"},{"id":820,"name":"主题指南","slug":"theme-guides"},{"id":16,"name":"翻译","slug":"translation"},{"id":2,"name":"徽章","slug":"badges"},{"id":813,"name":"内容","slug":"content"},{"id":814,"name":"定制","slug":"customization"},{"id":278,"name":"开发","slug":"development"},{"id":484,"name":"教程","slug":"tutorial"},{"id":618,"name":"用户自定义字段","slug":"user-custom-fields"}],"topics":[{"fancy_title":"开发者指数","fancy_title_localized":true,"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 开发环境设置：(outdated) Guide to Setting Up Discourse Development Environment - GitHub Codespace\nNSFW 内容模糊：Our solution for blurring NSFW content\n特定语言的代码块：Setup Code blocks that stand out, per-language backgrounds\n主&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":259,"like_count":3,"has_summary":false,"last_poster_username":"Discourse","category_id":179,"op_like_count":3,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Collection of links to various Discourse development guides, including environment setup, plugin creation, customization, and API usage, covering topics from beginner guides to advanced plugin development and theme customization.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"原始发帖人、最新发帖人","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"自定义 Discourse 中的子分类框","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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: 本指南介绍如何自定义 Discourse 中子分类框的外观，包括调整特色主题样式、修改“框”样式以及管理分类描述的截断…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1021,"height":257,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37.png"},{"max_width":800,"max_height":800,"width":800,"height":201,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_800x201.png"},{"max_width":600,"max_height":600,"width":600,"height":151,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_600x151.png"},{"max_width":400,"max_height":400,"width":400,"height":100,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_400x100.png"},{"max_width":300,"max_height":300,"width":300,"height":75,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_300x75.png"},{"max_width":200,"max_height":200,"width":200,"height":50,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/6/f/6f81f6c65323d8d5c2beb14c5458b3d8ee3f5e37_2_200x50.png"}],"tags":[{"id":478,"name":"如何操作","slug":"how-to"},{"id":814,"name":"定制","slug":"customization"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":1448,"like_count":1,"has_summary":false,"last_poster_username":"Moin","category_id":179,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user questions why topics remain visible on mobile despite desktop customizations, to which another member responds that separate mobile-specific settings likely control this behavior.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":135971,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":95552,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"在您的论坛中设置一个工具提示","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/2/9/29795cb79a11f5b947ca4b83334a38eee138cc01.png"},{"max_width":400,"max_height":400,"width":360,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/9/29795cb79a11f5b947ca4b83334a38eee138cc01_2_360x400.png"},{"max_width":300,"max_height":300,"width":270,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/9/29795cb79a11f5b947ca4b83334a38eee138cc01_2_270x300.png"},{"max_width":200,"max_height":200,"width":180,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/2/9/29795cb79a11f5b947ca4b83334a38eee138cc01_2_180x200.png"}],"tags":[{"id":478,"name":"如何操作","slug":"how-to"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":3189,"like_count":23,"has_summary":false,"last_poster_username":"denvergeeks","category_id":179,"op_like_count":11,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user shares CSS code to create tooltips for forums, while another suggests using a theme component instead, noting hover-based tooltips don’t work well on mobile devices.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":20815,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":32,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":17969,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":72263,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"主题组件/插件的常见导入列表 (JS)","fancy_title_localized":true,"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":"2025-12-26T12:19:50.196Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"我通常在创建主题组件时，需要为不同的东西到处寻找导入（imports），所以我决定将它们整理并放在这里。\n与 Ember 相关的\n\n名称\n导入\n用法\n\n组件\nimport…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":189,"like_count":12,"has_summary":false,"last_poster_username":"chapoi","category_id":179,"op_like_count":11,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users appreciate the compiled list of Ember and Discourse imports for theme components, noting VS Code's autocomplete often suggests incorrect paths, making such references helpful.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":135392,"primary_group_id":null,"flair_group_id":73},{"extras":"latest","description":"最新发帖人","user_id":113000,"primary_group_id":null,"flair_group_id":47}]},{"fancy_title":"在插件中覆盖现有的Discourse方法","fancy_title_localized":true,"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":"如何操作","slug":"how-to"},{"id":274,"name":"插件指南","slug":"plugin-guides"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":4890,"like_count":65,"has_summary":false,"last_poster_username":"TimFelix","category_id":179,"op_like_count":35,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A discussion on overriding existing Discourse methods in plugins, focusing on techniques for instance methods, class methods, and scopes, with a recent example showing how to override a singleton class method using prepend in a module.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":12933,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":66606,"primary_group_id":null,"flair_group_id":48},{"extras":null,"description":"频繁发帖人","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"频繁发帖人","user_id":88244,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":185178,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"用户自定义字段验证实现","fancy_title_localized":true,"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":"这篇文档是为未来可能需要为自定义插件创建特定于验证用户自定义字段的开发人员准备的。\n撰写时使用的是 Discourse 版本 3.6.0.beta3-latest（当前提交 a7326abf15），s…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":618,"name":"用户自定义字段","slug":"user-custom-fields"},{"id":278,"name":"开发","slug":"development"}],"tags_descriptions":{},"views":108,"like_count":1,"has_summary":false,"last_poster_username":"Yan_Rudenko","category_id":179,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A developer shares a guide for implementing unique value validation on Discourse user custom fields via a custom plugin, addressing lack of documentation and core API usage.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"原始发帖人、最新发帖人","user_id":183669,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"自定义新主题按钮","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/0/0/00eff69c3ff5b23f725e12ce244a6c0892779804.gif"},{"max_width":400,"max_height":400,"width":400,"height":152,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/0/0/00eff69c3ff5b23f725e12ce244a6c0892779804_2_400x152.gif"},{"max_width":300,"max_height":300,"width":300,"height":114,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/0/0/00eff69c3ff5b23f725e12ce244a6c0892779804_2_300x114.gif"},{"max_width":200,"max_height":200,"width":200,"height":76,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/0/0/00eff69c3ff5b23f725e12ce244a6c0892779804_2_200x76.gif"}],"tags":[{"id":478,"name":"如何操作","slug":"how-to"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":2403,"like_count":24,"has_summary":false,"last_poster_username":"nathank","category_id":179,"op_like_count":10,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss customizing the New Topic button's appearance and text via CSS and theme components, with solutions shared for styling, hover effects, and text changes through site texts or I18n translations.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":78445,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"频繁发帖人","user_id":102688,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":83631,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":103767,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":57788,"primary_group_id":null,"flair_group_id":148}]},{"fancy_title":"在插件中使用 .erb 模板","fancy_title_localized":true,"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":"我最近一直在提供有关如何使用 Discourse 中的 .erb 模板的建议，并注意到这里元上关于此主题的细节不多，因此我想在此开始创建关于此主题的维基。本维基假定您知道什么是 .erb 模板及其在 Discourse 和更广泛的 Rails 中的功能。如果您想了解更多关于该背景的详细信息，请先阅读此内容。 \n\n\n服务器插件插口 (Server plugin outlets)\n服务器插件插口的工作方式与客户端插件插口类似，尽管只有少数几&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":135,"like_count":8,"has_summary":false,"last_poster_username":"angus","category_id":179,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Angus initiated a wiki to explain working with .erb templates in Discourse plugins, covering server outlets, HTML builders, and template overriding, assuming prior Rails knowledge.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"原始发帖人、最新发帖人","user_id":13378,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"预加载数据并处理 N+1 查询问题","fancy_title_localized":true,"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":"在使用 Discourse rails 应用程序时，无论是构建插件还是向 discourse/discourse 提交拉取请求，都会遇到 N+1 查询问题。本主题将介绍如何通过数据预加载来解决这些问题，并保持 Discourse 的高性能。 \nRails 中的 N+1 查询问题\n首先，如果您还不熟悉 N+1 查询问题以及 Rails 如何解决它们，请参阅指南的这一部分。 \n\n主题\n加载主题时需要注意的 N+1 问题是加载与帖子关联的表。&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":156,"like_count":4,"has_summary":false,"last_poster_username":"angus","category_id":179,"op_like_count":4,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Encountering N+1 query problems in Discourse rails application requires handling data preloading, addressed through eager loading associations and utilizing hooks like TopicView's on_preload method.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"原始发帖人、最新发帖人","user_id":13378,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"（过时）Discourse开发环境设置指南 - GitHub Codespace","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"使用 GitHub Codespaces 进行开发\nGitHub Codespace 是一个很好的开发选项。它很棒，因为它托管在云端，我可以轻松确保在此处进行开发的每个人都拥有相同的环境，无需处理本地 docker 安装，可以轻松地将我的本地开发实例公开可用，而且使用新技术也很有趣。 \n我目前正在重新学习开发，并决定在学习 Discourse 开发的同时学习 GitHub Codespaces，因此我为任何希望在 GitHub Co&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":1552,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":827,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_1024x827.png"},{"max_width":800,"max_height":800,"width":800,"height":646,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_800x646.png"},{"max_width":600,"max_height":600,"width":600,"height":485,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_600x485.png"},{"max_width":400,"max_height":400,"width":400,"height":323,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_400x323.png"},{"max_width":300,"max_height":300,"width":300,"height":242,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_300x242.png"},{"max_width":200,"max_height":200,"width":200,"height":161,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/e/6/be6d2b97057f5c5195529fa13f081b6e5a995f8a_2_200x161.png"}],"tags":[{"id":150,"name":"开发人员安装","slug":"dev-install"}],"tags_descriptions":{"开发人员安装":"为开发安装 Discourse 的说明和问题"},"views":991,"like_count":29,"has_summary":false,"last_poster_username":"david","category_id":179,"op_like_count":11,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse core updated with devcontainer configuration, simplifying development environment setup on GitHub Codespaces, rendering manual steps obsolete, as stated in official docs.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":83098,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":142927,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":135392,"primary_group_id":null,"flair_group_id":73},{"extras":null,"description":"频繁发帖人","user_id":95552,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":23968,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"开始使用 Postman 与 Discourse API","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"摘要\nPostman 是一个方便的工具，用于轻松构建和测试 API 请求。 \n使用 Discourse 进行配置\n\n\n打开 Postman 后，点击 “创建工作区”： \n\n  \n\n\n\n选择“空白工作区”并点击“下一步”。 \n\n\n标题为“Discourse API”并选择“创建”： \n  \n\n\n点击“集合”： \n  \n\n\n点击“导入”： \n  \n\n\n粘贴 https://docs.discourse.org/openapi.json（这是&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":633,"height":181,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e.png"},{"max_width":600,"max_height":600,"width":600,"height":171,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e_2_600x171.png"},{"max_width":400,"max_height":400,"width":400,"height":114,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e_2_400x114.png"},{"max_width":300,"max_height":300,"width":300,"height":85,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e_2_300x85.png"},{"max_width":200,"max_height":200,"width":200,"height":57,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/2/2/f222bdab4f11f399c8fb7df63c90a3db372b439e_2_200x57.png"}],"tags":[],"tags_descriptions":{},"views":209,"like_count":7,"has_summary":false,"last_poster_username":"supermathie","category_id":179,"op_like_count":7,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Postman is used to construct and test API requests; configuring it with Discourse API involves creating a workspace, importing the API, and adding authentication via variables and pre-request scripts.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"原始发帖人、最新发帖人","user_id":3,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"在插件中添加一个自定义的每用户设置","fancy_title_localized":true,"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":"如何操作","slug":"how-to"},{"id":274,"name":"插件指南","slug":"plugin-guides"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":4630,"like_count":120,"has_summary":false,"last_poster_username":"merefield","category_id":179,"op_like_count":33,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss adding custom per-user settings in a plugin, highlighting the required steps, potential issues with Ruby 3.x, and the possibility of a simpler registration method, while also exploring the display of custom fields in user profiles and cards.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":12933,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"频繁发帖人","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"频繁发帖人","user_id":8722,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"最新发帖人","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"使用 `create-discourse-plugin` gem 自动化 Discourse 插件设置","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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:  此插件现已与 Discourse 核心捆绑在一起。无需使用此 gem。 \n创建新插件，请使用： \nrake plugin:create[plugin-name] \n\n自从我开始开发 Discourse 插件以来，我一直觉得整体设置可以更简单。我们在创建插件时应该有更好的整体开发体验。 \n本着这种精神，我利用业余时间创建了这个名为 create-discourse-plugin 的 gem。 \n它有什么作用？\n它会根据您&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":690,"height":278,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/c/1/d/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17.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/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17_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/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17_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/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17_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/c1d3a38e2cdaeba5efdff8fc10ff0a5dbe926b17_2_200x80.png"}],"tags":[],"tags_descriptions":{},"views":493,"like_count":52,"has_summary":false,"last_poster_username":"pfaffman","category_id":179,"op_like_count":16,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The `create-discourse-plugin` gem has been deprecated as its functionality has been integrated into Discourse core via a new rake task, `rake plugin:create`, which now provides an official, git-based solution for plugin creation without relying on GitHub CLI.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":144959,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"频繁发帖人","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"最新发帖人","user_id":15209,"primary_group_id":null,"flair_group_id":142}]},{"fancy_title":"自定义提及颜色","fancy_title_localized":true,"locale":"en","id":219023,"title":"Customize mention colors","slug":"customize-mention-colors","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"受 此主题 和 Discord 角色自定义颜色的启发，我编写了这段非常简单的代码，它为群组和用户的提及添加了 data-mention，这样就可以通过 CSS 设置不同的颜色（而不是“通用颜色”）：smile: \n目前的代码是 JQuery，但将来我也会将其更改为 Vanilla JavaScript：sweat_smile: \n\n要应用它，只需将代码粘贴到你的主题或组件的头部： \n&lt;script type=&quot;text/discours&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":112,"height":31,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/6/c/6cacf59bada15e604aa436a0ada30f6c52adaf14.png"}],"tags":[{"id":478,"name":"如何操作","slug":"how-to"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":1880,"like_count":15,"has_summary":false,"last_poster_username":"martyn_thomas","category_id":179,"op_like_count":11,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users request adjustments to color mentions of everyone belonging to a specific group, and to identify users not in a group, building on the initial code that allows custom colors for individual mentions via CSS.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":73340,"primary_group_id":null,"flair_group_id":151},{"extras":null,"description":"频繁发帖人","user_id":63814,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":101949,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":141342,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"学习如何为Discourse开始搭建东西，如果你是新手（就像我一样）","fancy_title_localized":true,"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":"解释","slug":"explanation"}],"tags_descriptions":{},"views":29849,"like_count":319,"has_summary":false,"last_poster_username":"elle7","category_id":179,"op_like_count":238,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A beginner's guide to building Discourse plugins is shared, emphasizing learning basics like widgets, Ember.js, and code structure, with community members confirming its usefulness and noting updates to code references and tools.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"频繁发帖人","user_id":67228,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":68923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":125384,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":139330,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":":cn: Installing the Discourse development environment on Ubuntu 在 Ubuntu 上安装 Discourse 开发环境","fancy_title_localized":false,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":":warning: 本指南只针对 Discourse 开发环境的配置，如果你需要在生产环境中安装 Discourse ，请访问页面：Install Discourse in production with the official supported instructions 中的内容。 \n\n\n:information_source:   有关开发环境的设置英文原文，请参考：Set up a local Discourse Dev&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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df.png"},{"max_width":600,"max_height":600,"width":600,"height":326,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df_2_600x326.png"},{"max_width":400,"max_height":400,"width":400,"height":217,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df_2_400x217.png"},{"max_width":300,"max_height":300,"width":300,"height":163,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df_2_300x163.png"},{"max_width":200,"max_height":200,"width":200,"height":108,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/a/b/7abf3e163b634e6055a850caf0b974004f9e01df_2_200x108.png"}],"tags":[{"id":150,"name":"开发人员安装","slug":"dev-install"}],"tags_descriptions":{"开发人员安装":"为开发安装 Discourse 的说明和问题"},"views":2029,"like_count":6,"has_summary":false,"last_poster_username":"scavin","category_id":179,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Clarification provided on setting up a Discourse development environment in Ubuntu, specifically regarding creating a user with the same name as the Ubuntu system username, with users expressing gratitude for the clarification.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":79292,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":119102,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":138598,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":14617,"primary_group_id":null,"flair_group_id":50}]},{"fancy_title":"将Discourse插件打包成gem","fancy_title_localized":true,"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 已开始将一些 Discourse 插件打包成 Ruby gems，首先是我们的订阅客户端。 \n\n\n我们的订阅客户端仍然是一个单独的插件，现在加载这个 gem，但它的后端现在完全打包成了一个 gem，并且该单独的插件将很快被完全弃用。这是一个关于如何为更适合打包成 gem 的插件做同样事情的简要介绍。 \n如何使用 gem\n首先，你需要了解如何使用 Ruby gems。如果你以前从未创建过 gem，我建议你在尝试将 Dis&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"如何操作","slug":"how-to"},{"id":274,"name":"插件指南","slug":"plugin-guides"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":628,"like_count":19,"has_summary":false,"last_poster_username":"merefield","category_id":179,"op_like_count":14,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Packaging a Discourse plugin as a gem is suitable for backend components, but not for theme-related frontend code, which requires separate handling.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"频繁发帖人","user_id":45577,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"可插入的、集中维护的文本/Markdown 片段","fancy_title_localized":true,"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":"参考","slug":"reference"}],"tags_descriptions":{},"views":3729,"like_count":37,"has_summary":false,"last_poster_username":"denvergeeks","category_id":179,"op_like_count":3,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss implementing insertable, centrally managed text/markdown snippets in Discourse, with proposed solutions including a trigger string expanding to markdown, a composer button, or a plugin with configurable snippets.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":34674,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":13093,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"频繁发帖人","user_id":98881,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":72263,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"在discourse上设置智能聊天机器人🤖","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211.gif"},{"max_width":1024,"max_height":1024,"width":1024,"height":516,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_1024x516.gif"},{"max_width":800,"max_height":800,"width":800,"height":403,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_800x403.gif"},{"max_width":600,"max_height":600,"width":600,"height":302,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_600x302.gif"},{"max_width":400,"max_height":400,"width":400,"height":201,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_400x201.gif"},{"max_width":300,"max_height":300,"width":300,"height":151,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_300x151.gif"},{"max_width":200,"max_height":200,"width":200,"height":100,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/c/ec96c1fb651b7b4ac62c75a3f0b352f2610c6211_2_200x100.gif"}],"tags":[{"id":478,"name":"如何操作","slug":"how-to"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":9163,"like_count":70,"has_summary":false,"last_poster_username":"SimonBiggs","category_id":179,"op_like_count":38,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user seeks clarification on the setup guide for a smart chatbot on Discourse, indicating potential difficulties in following the instructions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":29613,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":36855,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":66060,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":55682,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":129042,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"为标记的主题添加版权保护","fancy_title_localized":true,"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":"你好， \n我们的许多会员都有优质话题、博客文章等。不幸的是，其他人会窃取这些内容（并将其公开到其他网站，冒充自己的内容，而不注明任何来源），即使作者明确说明。“我只在此网站上撰写，请勿窃取。如果您想使用此内容，请先与我联系。”我们不得不采取一些措施，因为我们的作者只是因为创作新优质内容而感到沮丧。我们不想将论坛设为封闭（私有），因为许多访客都在论坛外阅读这些内容。 \n我们知道这是互联网，无法对版权内容提供 100% 的解决方案，但我们可&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"如何操作","slug":"how-to"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":1851,"like_count":43,"has_summary":false,"last_poster_username":"wendellverli","category_id":179,"op_like_count":18,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A copyright protection solution for tagged topics has been implemented and packaged into a Theme Component, with additional features to disable video downloads and right-click context menus, addressing concerns from users and improving content protection.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":78445,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"频繁发帖人","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":109684,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":83631,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":124068,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"自定义Discourse 反应","fancy_title_localized":true,"locale":"en","id":198043,"title":"Custom Discourse Reactions","slug":"custom-discourse-reactions","posts_count":14,"reply_count":7,"highest_post_number":14,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/0/e0056318f848ada8e7d3f721c5b974da73222ccd.gif"},{"max_width":400,"max_height":400,"width":400,"height":140,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/0/e0056318f848ada8e7d3f721c5b974da73222ccd_2_400x140.gif"},{"max_width":300,"max_height":300,"width":300,"height":105,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/0/e0056318f848ada8e7d3f721c5b974da73222ccd_2_300x105.gif"},{"max_width":200,"max_height":200,"width":200,"height":70,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/0/e0056318f848ada8e7d3f721c5b974da73222ccd_2_200x70.gif"}],"tags":[{"id":482,"name":"参考","slug":"reference"}],"tags_descriptions":{},"views":2885,"like_count":82,"has_summary":false,"last_poster_username":"Don","category_id":179,"op_like_count":25,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Custom Discourse Reactions are now available as a theme component, offering easier use, fixes, and settings, including reaction label, picker and panel rounding, and options to hide user lists and who liked sections.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"原始发帖人、最新发帖人","user_id":78445,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"频繁发帖人","user_id":62294,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":19473,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":102068,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":67026,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"设置突出显示的代码块，不同语言的背景","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557.png"},{"max_width":600,"max_height":600,"width":600,"height":185,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557_2_600x185.png"},{"max_width":400,"max_height":400,"width":400,"height":123,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557_2_400x123.png"},{"max_width":300,"max_height":300,"width":300,"height":92,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557_2_300x92.png"},{"max_width":200,"max_height":200,"width":200,"height":61,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/e/f/efed2b833ae3f2570e6ada665d4f60aef6303557_2_200x61.png"}],"tags":[{"id":478,"name":"如何操作","slug":"how-to"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":3309,"like_count":30,"has_summary":false,"last_poster_username":"schungx","category_id":179,"op_like_count":20,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users suggest improvements to the code block design, proposing to extract the language name from the class instead of using images, or using CSS to add the language text via `:before` or `:after` pseudo-elements.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":26605,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":1995,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"频繁发帖人","user_id":8571,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":28866,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"通过API创建带有图片的自定义徽章","fancy_title_localized":true,"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":"当然，包含的徽章……很不错。它们没有任何问题。但是，如果你想要更多呢？如果你想_超越预定义的符号集_呢？当然，有一个管理页面可以让你上传它们。但是如果你想制作大量的徽章呢？ \n好消息！你可以通过 API 来实现。这里是用 Python 代码展示它是如何工作的。（而且它最后还会授予徽章，以防万一。） \n即使你不是 Python 程序员，这段代码也应该很容易阅读。如果你愿意，甚至可以用 curl 在命令行中复制它。 \n这期望你的 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":"如何操作","slug":"how-to"},{"id":2,"name":"徽章","slug":"badges"}],"tags_descriptions":{"rest-api":"关于向 Discourse 发出外部请求的主题","如何操作":"操作指南包含解决特定问题的步骤","徽章":""},"views":1988,"like_count":12,"has_summary":false,"last_poster_username":"mattdm","category_id":179,"op_like_count":7,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Creating custom badges through the API no longer requires a global admin key, but instead specific API key permissions, and uploading images requires \"upload\" permission in a separate section from badges API permissions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"原始发帖人、最新发帖人","user_id":5795,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"在主题组件中重定向现有路由","fancy_title_localized":true,"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":"如何操作","slug":"how-to"},{"id":820,"name":"主题指南","slug":"theme-guides"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":1408,"like_count":8,"has_summary":false,"last_poster_username":"JonathanShaw","category_id":179,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Use `api.modifyClass` to modify a Discourse route class, enabling redirection in a theme component, with options to load data asynchronously using promise returns for conditional redirect decisions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"原始发帖人、最新发帖人","user_id":85965,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"自定义加载图标","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/5/9/59a6848d38aaa5c6fbfb78ff9fe35c48f757c0fc.png"}],"tags":[{"id":478,"name":"如何操作","slug":"how-to"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":3231,"like_count":37,"has_summary":false,"last_poster_username":"Johnny_McIvor","category_id":179,"op_like_count":26,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users explore customizing the Discourse loading icon, with one successfully replacing the small spinner globally, while others inquire about using GIFs or static images, with the current limitation being no GIF support.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":78445,"primary_group_id":276,"flair_group_id":276},{"extras":null,"description":"频繁发帖人","user_id":33297,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":96216,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"我们对模糊NSFW内容的解决方案","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":382,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_1024x382.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":298,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_800x298.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":223,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_600x223.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":149,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_400x149.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":111,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_300x111.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":74,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/0/0/0040c0a0e1d99176a752e2927f02e0985a7ebd01_2_200x74.jpeg"}],"tags":[{"id":479,"name":"解释","slug":"explanation"},{"id":813,"name":"内容","slug":"content"}],"tags_descriptions":{},"views":10391,"like_count":83,"has_summary":false,"last_poster_username":"codinghorror","category_id":179,"op_like_count":55,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discussion on implementing NSFW content blurring continues, with proposed solutions for mobile and hover issues, including click-based reveal and potential plugin development, as well as custom modifications for alternative use cases.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":12801,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":71403,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":66204,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"最新发帖人","user_id":32,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"使用 Node-Red 和 Telegram 监控 Discourse 状态","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9.png"},{"max_width":1024,"max_height":1024,"width":575,"height":1024,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_575x1024.png"},{"max_width":800,"max_height":800,"width":449,"height":800,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_449x800.png"},{"max_width":600,"max_height":600,"width":337,"height":600,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_337x600.png"},{"max_width":400,"max_height":400,"width":224,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_224x400.png"},{"max_width":300,"max_height":300,"width":168,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_168x300.png"},{"max_width":200,"max_height":200,"width":112,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/b/3b0c191e3b5b32d85ef6003e733f00eda047ebb9_2_112x200.png"}],"tags":[{"id":478,"name":"如何操作","slug":"how-to"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":2546,"like_count":4,"has_summary":false,"last_poster_username":"neounix","category_id":179,"op_like_count":4,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Neounix shares a Node-Red and Telegram setup for monitoring a Discourse server, Docker, and application, providing real-time alerts and checks, with plans for future expansion of Docker and Discourse monitoring functions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"原始发帖人、最新发帖人","user_id":75906,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"在主题中使用 Ember.PromiseProxyMixin","fancy_title_localized":true,"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":"如何操作","slug":"how-to"},{"id":820,"name":"主题指南","slug":"theme-guides"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":1362,"like_count":9,"has_summary":false,"last_poster_username":"j.jaffeux","category_id":179,"op_like_count":4,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse now includes Ember.PromiseProxyMixin, allowing easier work with Promises in components, with potential for theme and plugin development, and plans to explore and simplify its application in the Discourse codebase.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"原始发帖人","user_id":74650,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"最新发帖人","user_id":23163,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"使用 API 为外部群组创建受限制的类别","fancy_title_localized":true,"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":"如何操作","slug":"how-to"}],"tags_descriptions":{"rest-api":"关于向 Discourse 发出外部请求的主题","如何操作":"操作指南包含解决特定问题的步骤"},"views":1289,"like_count":5,"has_summary":false,"last_poster_username":"Judith","category_id":179,"op_like_count":5,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Create restricted subforums for external groups in Discourse by authenticating API calls as an admin, creating a group, and programmatically generating a subforum accessible only to that group.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"原始发帖人、最新发帖人","user_id":39022,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"在搜索引擎结果（SERPs）中显示Discourse页面的星级评分","fancy_title_localized":true,"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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.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":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/5/9/595832e5dcdce03e82bbcedf2f398762e8f3d774.png"},{"max_width":400,"max_height":400,"width":400,"height":194,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/5/9/595832e5dcdce03e82bbcedf2f398762e8f3d774_2_400x194.png"},{"max_width":300,"max_height":300,"width":300,"height":145,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/5/9/595832e5dcdce03e82bbcedf2f398762e8f3d774_2_300x145.png"},{"max_width":200,"max_height":200,"width":200,"height":97,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/5/9/595832e5dcdce03e82bbcedf2f398762e8f3d774_2_200x97.png"}],"tags":[{"id":478,"name":"如何操作","slug":"how-to"}],"tags_descriptions":{"如何操作":"操作指南包含解决特定问题的步骤"},"views":3818,"like_count":39,"has_summary":false,"last_poster_username":"Gulshan_Kumar","category_id":179,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse's Google Tag Manager (GTM) support has been updated to add code to the head, resolving an issue with displaying star ratings in search engine results pages (SERPs) using GTM and JSON-LD markup.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"原始发帖人、最新发帖人","user_id":38013,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":6626,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"频繁发帖人","user_id":2,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"频繁发帖人","user_id":30818,"primary_group_id":null,"flair_group_id":null}]}]}}