{"users":[{"id":115923,"username":"Discourse","name":null,"avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/discourse/{size}/148734_2.png","admin":true,"trust_level":4},{"id":100484,"username":"JammyDodger","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jammydodger/{size}/254611_2.png","trust_level":3},{"id":153005,"username":"wal","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/w/d6d6ee/{size}.png","trust_level":2},{"id":15209,"username":"pfaffman","name":"Jay Pfaffman","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pfaffman/{size}/120154_2.png","flair_name":"support-experts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":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":8571,"username":"tobiaseigen","name":"Tobias Eigen","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/tobiaseigen/{size}/539204_2.png","trust_level":2},{"id":63921,"username":"eextra","name":"Sylwia","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/eextra/{size}/170266_2.png","trust_level":2},{"id":77477,"username":"b4oshany","name":"Oshane Bailey","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/b4oshany/{size}/176298_2.png","trust_level":2},{"id":68638,"username":"ClawdiaWolf","name":"Claudia","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/clawdiawolf/{size}/262518_2.png","trust_level":2},{"id":16295,"username":"cogdog","name":"Alan Levine","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/cogdog/{size}/116536_2.png","trust_level":2},{"id":1,"username":"sam","name":"Sam Saffron","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/sam/{size}/102149_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":150857,"username":"MachineScholar","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/machinescholar/{size}/424719_2.png","trust_level":2},{"id":127856,"username":"Lilly","name":"Lillian ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/lilly/{size}/555832_2.png","trust_level":3},{"id":172000,"username":"Olle11","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/o/cdc98d/{size}.png","trust_level":2},{"id":95552,"username":"Moin","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/moin/{size}/554653_2.png","trust_level":3},{"id":64663,"username":"patrickemin","name":"Patrick EMIN","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/patrickemin/{size}/520162_2.png","trust_level":2},{"id":83775,"username":"fitzy","name":"Michael Fitz-Payne","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/fitzy/{size}/192549_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"trust_level":4},{"id":35474,"username":"Canapin","name":"Coin-coin le Canapin","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/canapin/{size}/119591_2.png","trust_level":3},{"id":166720,"username":"opcourdis","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/o/45deac/{size}.png","trust_level":2},{"id":135392,"username":"NateDhaliwal","name":"Nate Dhaliwal","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/natedhaliwal/{size}/313494_2.png","flair_name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111","flair_group_id":73,"trust_level":3},{"id":24816,"username":"RBoy","name":"RBoy","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/{size}.png","trust_level":2},{"id":133767,"username":"petermarkley","name":null,"avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/petermarkley/{size}/307825_2.png","trust_level":1},{"id":138567,"username":"pHneutre","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/phneutre/{size}/326831_2.png","trust_level":2},{"id":79696,"username":"Jim_Starkweather","name":"Jim Starkweather","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jim_starkweather/{size}/181916_2.png","trust_level":2},{"id":19,"username":"eviltrout","name":"Robin Ward","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/eviltrout/{size}/5275_2.png","trust_level":4},{"id":14353,"username":"simon","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/simon/{size}/339122_2.png","trust_level":2},{"id":111706,"username":"kiefferr","name":"Ryan Kieffer","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/k/a5b964/{size}.png","trust_level":2},{"id":31832,"username":"Ivan_Rapekas","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/ivan_rapekas/{size}/248924_2.png","trust_level":2},{"id":5859,"username":"j127","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/j127/{size}/79093_2.png","trust_level":2},{"id":27773,"username":"bletch","name":"Danny Goodall","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/bletch/{size}/69088_2.png","trust_level":2},{"id":117526,"username":"Dave_Driesmans","name":"Dave Driesmans","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/dave_driesmans/{size}/253276_2.png","trust_level":0},{"id":179822,"username":"kcahtoor","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/k/9de0a6/{size}.png","trust_level":1},{"id":40486,"username":"TheBestPessimist","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/thebestpessimist/{size}/247704_2.png","trust_level":2},{"id":57427,"username":"Machigatta","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/machigatta/{size}/125064_2.png","trust_level":1},{"id":104279,"username":"nat","name":"Natalie T","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/nat/{size}/235063_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":19127,"username":"webeindustry","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/webeindustry/{size}/53973_2.png","trust_level":2},{"id":27611,"username":"Jen_Lijo","name":"Jen","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jen_lijo/{size}/77057_2.png","trust_level":2},{"id":23842,"username":"AhmadF.Cheema","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/ahmadf.cheema/{size}/87109_2.png","trust_level":2},{"id":13093,"username":"pacharanero","name":"Marcus Baw","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pacharanero/{size}/500583_2.png","primary_group_name":"VolunteerMods","flair_name":"VolunteerMods","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"trust_level":4},{"id":28866,"username":"schungx","name":"Stephen Chung","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/schungx/{size}/70989_2.png","trust_level":2},{"id":141900,"username":"maaatt","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/m/ecb155/{size}.png","trust_level":2},{"id":25674,"username":"Jithin_Krishnan","name":"Jithin Krishnan","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jithin_krishnan/{size}/121329_2.png","trust_level":1},{"id":704,"username":"AstonJ","name":"AstonJ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/astonj/{size}/215041_2.png","trust_level":2},{"id":149694,"username":"Ambient.Impact","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/ambient.impact/{size}/387027_2.png","trust_level":1},{"id":-1,"username":"system","name":"system","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/system/{size}/443519_2.png","admin":true,"moderator":true,"trust_level":4},{"id":23968,"username":"david","name":"David Taylor","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/david/{size}/157490_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":27384,"username":"merefield","name":"Robert","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/merefield/{size}/176214_2.png","trust_level":3},{"id":19189,"username":"rkda","name":"RK","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/rkda/{size}/120046_2.png","trust_level":2},{"id":43426,"username":"debryc","name":"Deborah Chang","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/debryc/{size}/101652_2.png","trust_level":2},{"id":193655,"username":"Devansh_Bartwal","name":"Devansh Bartwal","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/devansh_bartwal/{size}/489793_2.png","trust_level":0},{"id":179252,"username":"Athenkosi","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/a/e79b87/{size}.png","trust_level":0},{"id":160471,"username":"Ethsim2","name":"Ethan ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/ethsim2/{size}/522255_2.png","flair_name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111","flair_group_id":73,"trust_level":1},{"id":83228,"username":"xu2","name":"Xu2","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/xu2/{size}/539078_2.png","trust_level":2},{"id":29739,"username":"southpaw","name":"Southpaw","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/southpaw/{size}/79352_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":21029,"username":"pmusaraj","name":"Penar Musaraj","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pmusaraj/{size}/119489_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3}],"primary_groups":[{"id":47,"name":"team"},{"id":276,"name":"VolunteerMods"}],"flair_groups":[{"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":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":47,"name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_bg_color":"","flair_color":"111"},{"id":73,"name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111"},{"id":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":""}],"topic_list":{"can_create_topic":false,"more_topics_url":"/c/documentation/10?page=1","per_page":30,"top_tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":482,"name":"ссылка","slug":"reference"},{"id":543,"name":"ии","slug":"ai"},{"id":479,"name":"объяснение","slug":"explanation"},{"id":812,"name":"пользователи","slug":"users"},{"id":820,"name":"руководства-по-темам","slug":"theme-guides"},{"id":39,"name":"email","slug":"email"},{"id":814,"name":"настройка","slug":"customization"},{"id":330,"name":"rest-api","slug":"rest-api"},{"id":60,"name":"sso","slug":"sso"},{"id":484,"name":"учебник","slug":"tutorial"},{"id":275,"name":"автоматизация","slug":"automation"},{"id":9,"name":"группы","slug":"groups"},{"id":819,"name":"код","slug":"code"},{"id":3,"name":"умеренность","slug":"moderation"},{"id":274,"name":"руководства-по-плагинам","slug":"plugin-guides"},{"id":271,"name":"настройка","slug":"configuring"},{"id":811,"name":"интерфейс","slug":"interface"},{"id":65,"name":"миграции","slug":"migrations"},{"id":481,"name":"расширенная-настройка","slug":"advanced-setup"},{"id":230,"name":"интеграция-чата","slug":"chat-integration"},{"id":799,"name":"индекс","slug":"index"},{"id":813,"name":"содержимое","slug":"content"},{"id":150,"name":"dev-install","slug":"dev-install"},{"id":816,"name":"платформы","slug":"platforms"},{"id":632,"name":"ai-бот","slug":"ai-bot"},{"id":24,"name":"docker","slug":"docker"},{"id":509,"name":"приглашения","slug":"invites"},{"id":55,"name":"резервные-копии","slug":"backups"},{"id":2,"name":"значки","slug":"badges"},{"id":263,"name":"discourseconnect","slug":"discourseconnect"}],"topics":[{"fancy_title":"Административные массовые операции","fancy_title_localized":true,"locale":"en","id":118349,"title":"Administrative Bulk Operations","slug":"administrative-bulk-operations","posts_count":9,"reply_count":24,"highest_post_number":39,"image_url":null,"created_at":"2019-05-22T00:36:34.343Z","last_posted_at":"2026-06-09T07:19:49.127Z","bumped":true,"bumped_at":"2026-06-09T07:19:49.127Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Ниже представлен набор пакетных операций, которые можно запустить из командной строки. Для этого потребуется доступ по SSH, поэтому, если вы являетесь клиентом с размещённым сервисом, вам необходимо обратиться к команде Discourse для выполнения этих…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":482,"name":"ссылка","slug":"reference"},{"id":271,"name":"настройка","slug":"configuring"}],"tags_descriptions":{},"views":14259,"like_count":75,"has_summary":false,"last_poster_username":"nathank","category_id":55,"op_like_count":70,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user resolved a group export issue by disabling membership requests to avoid requiring an owner, allowing migration to proceed before patching settings post-transfer.","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":100484,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":153005,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":"latest","description":"Последний автор","user_id":57788,"primary_group_id":null,"flair_group_id":148}]},{"fancy_title":"Понимание и настройка страницы «О нас»","fancy_title_localized":true,"locale":"en","id":332161,"title":"Understanding and customizing the About page","slug":"understanding-and-customizing-the-about-page","posts_count":1,"reply_count":5,"highest_post_number":1,"image_url":null,"created_at":"2024-10-29T13:31:19.910Z","last_posted_at":"2024-10-29T13:31:19.910Z","bumped":true,"bumped_at":"2026-06-08T22:02:26.641Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Страница «О нас» в Discourse служит вводным разделом для посетителей и новичков, предоставляя обзор сообщества, информацию о людях, стоящих за ним, базовую статистику и контактные данные. Хотя она в первую очередь предназначена...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"visibility_reason_id":4,"tags":[{"id":917,"name":"о-странице","slug":"about-page"}],"tags_descriptions":{},"views":1341,"like_count":7,"has_summary":false,"last_poster_username":"Discourse","category_id":53,"op_like_count":7,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Administrators can customize Discourse's About page to reflect community identity, including text, banner, and contact details, without needing console access.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Исходный автор, Последний автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":8571,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Создание новых тем, постов и личных сообщений через IFTTT","fancy_title_localized":true,"locale":"en","id":61336,"title":"Generate new topics, posts and PM via IFTTT","slug":"generate-new-topics-posts-and-pm-via-ifttt","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c.png","created_at":"2017-04-20T16:30:45.305Z","last_posted_at":"2023-03-23T22:43:21.096Z","bumped":true,"bumped_at":"2026-06-08T21:52:07.575Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Хотите использовать IFTTT для создания новых тем, сообщений и личных сообщений? Давайте начнём!\nС помощью вебхуков сервиса IFTTT мы можем выполнять вызовы API Discourse. Для этого сначала необходимо сгенерировать ключи API. Вы можете создать ключи API&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1007,"height":209,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c.png"},{"max_width":800,"max_height":800,"width":800,"height":166,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_800x166.png"},{"max_width":600,"max_height":600,"width":600,"height":124,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_600x124.png"},{"max_width":400,"max_height":400,"width":400,"height":83,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_400x83.png"},{"max_width":300,"max_height":300,"width":300,"height":62,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_300x62.png"},{"max_width":200,"max_height":200,"width":200,"height":41,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/9/1/9165372a47fa7a7f88adf252d9e56f649bf01b6c_2_200x41.png"}],"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":817,"name":"задачи","slug":"tasks"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы"},"views":11493,"like_count":26,"has_summary":false,"last_poster_username":"cogdog","category_id":167,"op_like_count":22,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users face issues with IFTTT integration due to API key and username being sent as GET params instead of headers, prompting alternatives like custom PHP scripts or Zapier for seamless Discourse integration.","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":63921,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":77477,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":68638,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":16295,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Discourse AI — веб-артефакты","fancy_title_localized":true,"locale":"en","id":339972,"title":"Discourse AI - Web Artifacts","slug":"discourse-ai-web-artifacts","posts_count":5,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2024-12-03T02:36:29.068Z","last_posted_at":"2025-06-13T18:58:11.481Z","bumped":true,"bumped_at":"2026-06-08T21:51:22.542Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Что такое артефакты ИИ?\nАртефакты ИИ — это мощные инструменты, позволяющие пользователям создавать, внедрять и взаимодействовать с динамическими веб-компонентами непосредственно внутри поста на Discourse. Эти компоненты могут содержать пользовательские HTML, CSS и…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":543,"name":"ии","slug":"ai"}],"tags_descriptions":{},"views":719,"like_count":25,"has_summary":false,"last_poster_username":"MachineScholar","category_id":53,"op_like_count":23,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse AI Artifacts allow embedding interactive web components in posts, but a user reported a bug where an artifact shared via a bot in a private category remains inaccessible to the intended group despite database permissions indicating access.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":1,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Последний автор","user_id":150857,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Настройка автоподнятия тем","fancy_title_localized":true,"locale":"en","id":262158,"title":"Configuring auto-bumping for topics","slug":"configuring-auto-bumping-for-topics","posts_count":25,"reply_count":14,"highest_post_number":31,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/2/0/220a55444deeacff454dc3c7faeca8949d426546.png","created_at":"2023-04-19T00:42:32.634Z","last_posted_at":"2026-06-06T20:10:57.964Z","bumped":true,"bumped_at":"2026-06-06T20:10:57.964Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: Это руководство объясняет, как настроить и использовать автоматическое поднятие тем в Discourse, включая настройки для всей категории и таймеры для отдельных тем. \n:person_raising_hand: Требуемый уровень доступа: Администратор \n\nАвто-под...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":719,"height":983,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/2/0/220a55444deeacff454dc3c7faeca8949d426546.png"},{"max_width":800,"max_height":800,"width":585,"height":800,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/2/0/220a55444deeacff454dc3c7faeca8949d426546_2_585x800.png"},{"max_width":600,"max_height":600,"width":438,"height":600,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/2/0/220a55444deeacff454dc3c7faeca8949d426546_2_438x600.png"},{"max_width":400,"max_height":400,"width":292,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/2/0/220a55444deeacff454dc3c7faeca8949d426546_2_292x400.png"},{"max_width":300,"max_height":300,"width":219,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/2/0/220a55444deeacff454dc3c7faeca8949d426546_2_219x300.png"},{"max_width":200,"max_height":200,"width":146,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/2/0/220a55444deeacff454dc3c7faeca8949d426546_2_146x200.png"}],"tags":[{"id":627,"name":"авто-поднятие","slug":"auto-bump"}],"tags_descriptions":{},"views":2132,"like_count":30,"has_summary":false,"last_poster_username":"patrickemin","category_id":53,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user suggested enhancing auto-bumping by prioritizing topics based on visitor interest metrics like views or votes, and by excluding recently created topics to prevent spamming new content.","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":127856,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":172000,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":95552,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":64663,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Как отменить мой тарифный план хостинга?","fancy_title_localized":true,"locale":"en","id":306413,"title":"How do I cancel my hosting plan?","slug":"how-do-i-cancel-my-hosting-plan","posts_count":1,"reply_count":1,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/d/0/7d0e3983d3e759ed6a137929fd2ec8b781b5b882_2_1024x228.png","created_at":"2024-05-01T23:36:57.849Z","last_posted_at":"2024-05-01T23:36:57.942Z","bumped":true,"bumped_at":"2026-06-05T11:39:22.941Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: В этом руководстве объясняется, как отменить услугу Discourse, загрузить свои данные и понять варианты поддержания ограниченного доступа к вашему сайту.\n:person_raising_hand: Требуемый уровень пользователя: Админ...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1630,"height":364,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/7/d/0/7d0e3983d3e759ed6a137929fd2ec8b781b5b882.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":228,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/d/0/7d0e3983d3e759ed6a137929fd2ec8b781b5b882_2_1024x228.png"},{"max_width":800,"max_height":800,"width":800,"height":178,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/d/0/7d0e3983d3e759ed6a137929fd2ec8b781b5b882_2_800x178.png"},{"max_width":600,"max_height":600,"width":600,"height":133,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/d/0/7d0e3983d3e759ed6a137929fd2ec8b781b5b882_2_600x133.png"},{"max_width":400,"max_height":400,"width":400,"height":89,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/d/0/7d0e3983d3e759ed6a137929fd2ec8b781b5b882_2_400x89.png"},{"max_width":300,"max_height":300,"width":300,"height":66,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/d/0/7d0e3983d3e759ed6a137929fd2ec8b781b5b882_2_300x66.png"},{"max_width":200,"max_height":200,"width":200,"height":44,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/d/0/7d0e3983d3e759ed6a137929fd2ec8b781b5b882_2_200x44.png"}],"tags":[],"tags_descriptions":{},"views":614,"like_count":3,"has_summary":false,"last_poster_username":"Discourse","category_id":164,"op_like_count":3,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The guide outlines steps to cancel a Discourse hosting plan, detailing automatic data backup generation, alternative downgrade options like staff-only or read-only modes, and the decommissioning timeline.","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 для разработки на Fedora Linux","fancy_title_localized":true,"locale":"en","id":163348,"title":"Set up Discourse for development on Fedora Linux","slug":"set-up-discourse-for-development-on-fedora-linux","posts_count":13,"reply_count":12,"highest_post_number":25,"image_url":null,"created_at":"2020-09-08T11:00:32.308Z","last_posted_at":"2026-06-05T08:25:11.120Z","bumped":true,"bumped_at":"2026-06-05T08:25:11.120Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Данное руководство протестировано на свежих установках Fedora 31 и 33, но может работать и на более старых версиях, которые также используют dnf как инструмент управления пакетами. Это не официальное руководство, но оно может оказаться полезным для других разработчиков...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":150,"name":"dev-install","slug":"dev-install"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы","dev-install":"Инструкции и проблемы при установке Discourse для разработки"},"views":4491,"like_count":43,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":27,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users question the guide's official status and the use of an outdated Ruby version (2.7.1) in the Fedora Discourse development setup instructions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":83775,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Частый автор","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":166720,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Configure Facebook login for Discourse","fancy_title_localized":false,"locale":"en","id":13394,"title":"Configure Facebook login for Discourse","slug":"configure-facebook-login-for-discourse","posts_count":38,"reply_count":114,"highest_post_number":210,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_1024x523.png","created_at":"2014-03-04T17:40:19.713Z","last_posted_at":"2026-06-03T12:45:59.346Z","bumped":true,"bumped_at":"2026-06-03T12:45:59.346Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":exclamation: As of February 2023, Meta has implemented a business verification requirement when publishing new and existing apps. \n\n:warning: Updating the Facebook app API or creating a new app will break existing login&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1394,"height":713,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":523,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_1024x523.png"},{"max_width":800,"max_height":800,"width":800,"height":409,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_800x409.png"},{"max_width":600,"max_height":600,"width":600,"height":306,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_600x306.png"},{"max_width":400,"max_height":400,"width":400,"height":204,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_400x204.png"},{"max_width":300,"max_height":300,"width":300,"height":153,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_300x153.png"},{"max_width":200,"max_height":200,"width":200,"height":102,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/5/e/f5e6494265fecb4d7c9d54ee2ca1fc5a1c646754_2_200x102.png"}],"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":60,"name":"sso","slug":"sso"},{"id":755,"name":"социальная-аутентификация","slug":"social-auth"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы"},"views":332047,"like_count":138,"has_summary":false,"last_poster_username":"pHneutre","category_id":167,"op_like_count":77,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The tutorial for configuring Facebook login in Discourse is currently outdated because the provided developer link is broken and Meta's February 2023 business verification requirement has changed the setup process.","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":24816,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":133767,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":138567,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Embed Discourse comments on another website via Javascript","fancy_title_localized":false,"locale":"en","id":31963,"title":"Embed Discourse comments on another website via Javascript","slug":"embed-discourse-comments-on-another-website-via-javascript","posts_count":128,"reply_count":311,"highest_post_number":491,"image_url":null,"created_at":"2015-08-10T18:20:46.333Z","last_posted_at":"2026-06-02T19:14:05.544Z","bumped":true,"bumped_at":"2026-06-02T19:14:05.544Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse has the ability to embed the comments from a topic in a remote site using a Javascript API that creates an IFRAME. For an example of this in action, check out Coding Horror’s blog. The blog is run via Ghost b&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":43,"name":"встраивание","slug":"embedding"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы"},"views":302993,"like_count":281,"has_summary":true,"last_poster_username":"kiefferr","category_id":167,"op_like_count":116,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss embedding Discourse comments on external sites, noting that private forums on separate domains block display for non-logged-in users and that HTTP 419 errors may stem from CSRF token mismatches between disconnected domains.","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":79696,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":19,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":14353,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":111706,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Настройка входящей почты для создания новых тем или групповых сообщений","fancy_title_localized":true,"locale":"en","id":62977,"title":"Configuring incoming email to create new topics or group messages","slug":"configuring-incoming-email-to-create-new-topics-or-group-messages","posts_count":4,"reply_count":30,"highest_post_number":57,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/d/7da6974c6b7c56a7db91950b9f1116e0b04ff8e0_2_1024x327.png","created_at":"2017-05-18T20:07:09.953Z","last_posted_at":"2026-02-10T09:21:38.030Z","bumped":true,"bumped_at":"2026-06-02T17:19:29.151Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: В этом руководстве объясняется, как настроить входящие письма для создания новых тем или групповых сообщений в Discourse, включая конфигурацию настроек сайта, а также настроек, специфичных для категорий или групп. \n:person_raising_hand: …","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1190,"height":381,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/7/d/7da6974c6b7c56a7db91950b9f1116e0b04ff8e0.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":327,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/d/7da6974c6b7c56a7db91950b9f1116e0b04ff8e0_2_1024x327.png"},{"max_width":800,"max_height":800,"width":800,"height":256,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/d/7da6974c6b7c56a7db91950b9f1116e0b04ff8e0_2_800x256.png"},{"max_width":600,"max_height":600,"width":600,"height":192,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/d/7da6974c6b7c56a7db91950b9f1116e0b04ff8e0_2_600x192.png"},{"max_width":400,"max_height":400,"width":400,"height":128,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/d/7da6974c6b7c56a7db91950b9f1116e0b04ff8e0_2_400x128.png"},{"max_width":300,"max_height":300,"width":300,"height":96,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/d/7da6974c6b7c56a7db91950b9f1116e0b04ff8e0_2_300x96.png"},{"max_width":200,"max_height":200,"width":200,"height":64,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/d/7da6974c6b7c56a7db91950b9f1116e0b04ff8e0_2_200x64.png"}],"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":832,"name":"входящие","slug":"email-in"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы"},"views":24573,"like_count":52,"has_summary":false,"last_poster_username":"Moin","category_id":53,"op_like_count":50,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user troubleshooting incoming email setup on a self-hosted Discourse instance, using an outdated Bitnami version, seeks clarification on email configuration settings and receives guidance to test on a supported platform instead.","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":100484,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":127856,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":31832,"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":61196,"title":"Create and share a color scheme","slug":"create-and-share-a-color-scheme","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_1024x670.png","created_at":"2017-04-18T14:44:23.540Z","last_posted_at":"2025-08-01T18:49:05.210Z","bumped":true,"bumped_at":"2026-06-02T14:54:24.218Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse теперь поддерживает импорт цветовых схем из удалённого репозитория. Здесь я покажу, как это сделать.\nПерейдите в раздел цветов и добавьте цветовую схему.\nОткройте страницу /admin/customize/colors на вашем сайте…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1950,"height":1276,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":670,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_1024x670.png"},{"max_width":800,"max_height":800,"width":800,"height":523,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_800x523.png"},{"max_width":600,"max_height":600,"width":600,"height":392,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_600x392.png"},{"max_width":400,"max_height":400,"width":400,"height":261,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_400x261.png"},{"max_width":300,"max_height":300,"width":300,"height":196,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_300x196.png"},{"max_width":200,"max_height":200,"width":200,"height":130,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/b/7/b7fced237ee399d52c634a3ab6fcc9416db65605_2_200x130.png"}],"tags":[{"id":478,"name":"как-сделать","slug":"how-to"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы"},"views":6291,"like_count":23,"has_summary":false,"last_poster_username":"j127","category_id":56,"op_like_count":23,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"User suggests adding 'hover' and 'selected' fields to the color scheme configuration for enhanced customization.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":5859,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Создайте и поделитесь компонентом темы шрифта","fancy_title_localized":true,"locale":"en","id":62462,"title":"Create and share a font theme component","slug":"create-and-share-a-font-theme-component","posts_count":5,"reply_count":0,"highest_post_number":7,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_1024x412.png","created_at":"2017-05-10T20:48:47.477Z","last_posted_at":"2025-08-19T22:34:35.578Z","bumped":true,"bumped_at":"2026-06-02T14:54:22.736Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse поддерживает импорт тем, содержащих ресурсы из удалённого репозитория. Это позволяет авторам тем обмениваться шрифтами и изображениями. Создайте новый репозиторий Git со шрифтом:\nmkdir discourse-roboto-theme\ncd discourse-rob&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1508,"height":608,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":412,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_1024x412.png"},{"max_width":800,"max_height":800,"width":800,"height":322,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_800x322.png"},{"max_width":600,"max_height":600,"width":600,"height":241,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_600x241.png"},{"max_width":400,"max_height":400,"width":400,"height":161,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_400x161.png"},{"max_width":300,"max_height":300,"width":300,"height":120,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_300x120.png"},{"max_width":200,"max_height":200,"width":200,"height":80,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/1/d/c1de6b52ae98df03f557c91f1ae02251f08cda18_2_200x80.png"}],"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":820,"name":"руководства-по-темам","slug":"theme-guides"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы"},"views":5991,"like_count":23,"has_summary":false,"last_poster_username":"kcahtoor","category_id":56,"op_like_count":19,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users report errors with undefined variables and missing assets when following the font theme component guide, questioning if the instructions need updating.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":27773,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Частый автор","user_id":117526,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":179822,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Разработка плагинов для Discourse — Часть 6: Добавление тестов принятия","fancy_title_localized":true,"locale":"en","id":32619,"title":"Developing Discourse Plugins - Part 6 - Add acceptance tests","slug":"developing-discourse-plugins-part-6-add-acceptance-tests","posts_count":33,"reply_count":26,"highest_post_number":38,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_1024x715.png","created_at":"2015-08-27T21:32:26.323Z","last_posted_at":"2022-06-02T11:06:38.274Z","bumped":true,"bumped_at":"2026-06-02T14:54:21.418Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Предыдущий урок: Разработка плагинов для Discourse — Часть 5 — Добавление административного интерфейса\n\nЗнали ли вы, что в коде Discourse есть два больших набора тестов? На стороне сервера наш Ruby-код имеет набор тестов, который использует rs…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1058,"height":739,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":715,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_1024x715.png"},{"max_width":800,"max_height":800,"width":800,"height":558,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_800x558.png"},{"max_width":600,"max_height":600,"width":600,"height":419,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_600x419.png"},{"max_width":400,"max_height":400,"width":400,"height":279,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_400x279.png"},{"max_width":300,"max_height":300,"width":300,"height":209,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_300x209.png"},{"max_width":200,"max_height":200,"width":200,"height":139,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/6/0/2/602e6bb3fe340f0569c1bfd60bb74f6d83d92893_2_200x139.png"}],"tags":[{"id":484,"name":"учебник","slug":"tutorial"},{"id":274,"name":"руководства-по-плагинам","slug":"plugin-guides"},{"id":58,"name":"тестирование","slug":"testing"}],"tags_descriptions":{"учебник":""},"views":17409,"like_count":82,"has_summary":false,"last_poster_username":"nat","category_id":56,"op_like_count":30,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users are troubleshooting issues with running acceptance tests for Discourse plugins, resolving errors related to test suites, plugin registration, and EmberCLI, with solutions involving test setup, plugin configuration, and code updates.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":1,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Частый автор","user_id":40486,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":57427,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":104279,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Разработка плагинов для Discourse — часть 5: добавление административного интерфейса","fancy_title_localized":true,"locale":"en","id":31761,"title":"Developing Discourse Plugins - Part 5 - Add an admin interface","slug":"developing-discourse-plugins-part-5-add-an-admin-interface","posts_count":47,"reply_count":40,"highest_post_number":51,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3.png","created_at":"2015-08-04T20:34:32.128Z","last_posted_at":"2024-09-24T11:10:58.173Z","bumped":true,"bumped_at":"2026-06-02T14:54:20.026Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Предыдущее руководство: Разработка плагинов для Discourse — Часть 4 — Настройка git\n\nИногда настроек сайта недостаточно для того, чтобы ваш плагин работал так, как вы хотите. Например, если вы установите плагин discourse-akism…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":995,"height":244,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3.png"},{"max_width":800,"max_height":800,"width":800,"height":196,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_800x196.png"},{"max_width":600,"max_height":600,"width":600,"height":147,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_600x147.png"},{"max_width":400,"max_height":400,"width":400,"height":98,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_400x98.png"},{"max_width":300,"max_height":300,"width":300,"height":73,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_300x73.png"},{"max_width":200,"max_height":200,"width":200,"height":49,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/f/c8f5548016153a30a3ace7679111c95847f293c3_2_200x49.png"}],"tags":[{"id":484,"name":"учебник","slug":"tutorial"},{"id":274,"name":"руководства-по-плагинам","slug":"plugin-guides"}],"tags_descriptions":{"учебник":""},"views":26495,"like_count":85,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":28,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Users discuss and resolve issues with adding admin interfaces for their Discourse plugins, sharing code fixes and troubleshooting advice on Ember routing, file naming conventions, and testing errors.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":19127,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":27611,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":19,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Разработка плагинов для Discourse — Часть 4 — Настройка git","fancy_title_localized":true,"locale":"en","id":31272,"title":"Developing Discourse Plugins - Part 4 - Setup git","slug":"developing-discourse-plugins-part-4-setup-git","posts_count":11,"reply_count":5,"highest_post_number":11,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007.png","created_at":"2015-07-21T20:54:59.409Z","last_posted_at":"2024-01-30T11:12:28.312Z","bumped":true,"bumped_at":"2026-06-02T14:54:17.764Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Предыдущее руководство: Разработка плагинов для Discourse — Часть 3 — Добавление пользовательских настроек сайта\n\nТеперь, когда ваш плагин становится более сложным, пришло время и для более продвинутого подхода к его разработке.\nМы рекомендуем вам…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":730,"height":413,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007.png"},{"max_width":600,"max_height":600,"width":600,"height":339,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007_2_600x339.png"},{"max_width":400,"max_height":400,"width":400,"height":226,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007_2_400x226.png"},{"max_width":300,"max_height":300,"width":300,"height":169,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007_2_300x169.png"},{"max_width":200,"max_height":200,"width":200,"height":113,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/d/4/bd4e72b31887f4016cfe86b0d0617f1799f1d007_2_200x113.png"}],"tags":[{"id":484,"name":"учебник","slug":"tutorial"},{"id":274,"name":"руководства-по-плагинам","slug":"plugin-guides"}],"tags_descriptions":{"учебник":""},"views":13108,"like_count":37,"has_summary":false,"last_poster_username":"maaatt","category_id":56,"op_like_count":23,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Windows and macOS users face challenges with symbolic links in Discourse plugin development; solutions include using junctions in Windows, aliases in macOS, or a synced folder in Vagrant to create working symlinks within the development environment.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":23842,"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":28866,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":141900,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Разработка плагинов для Discourse — Часть 1: Создание базового плагина","fancy_title_localized":true,"locale":"en","id":30515,"title":"Developing Discourse Plugins - Part 1 - Create a basic plugin","slug":"developing-discourse-plugins-part-1-create-a-basic-plugin","posts_count":33,"reply_count":87,"highest_post_number":141,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73.png","created_at":"2015-06-26T21:01:08.310Z","last_posted_at":"2025-07-08T20:52:10.855Z","bumped":true,"bumped_at":"2026-06-02T14:54:16.316Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Создание плагина для Discourse может быть очень простым, как только вы разберётесь с несколькими особенностями. Цель этой статьи — создать шаблон плагина и познакомить вас с основами.\nВаша среда разработки\nУбедитесь, что у вас ha…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":845,"height":128,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73.png"},{"max_width":800,"max_height":800,"width":800,"height":121,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_800x121.png"},{"max_width":600,"max_height":600,"width":600,"height":90,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_600x90.png"},{"max_width":400,"max_height":400,"width":400,"height":60,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_400x60.png"},{"max_width":300,"max_height":300,"width":300,"height":45,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_300x45.png"},{"max_width":200,"max_height":200,"width":200,"height":30,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/7/b/97b7e2daac4cae0c6b3642a17d5b87dcec4b5c73_2_200x30.png"}],"tags":[{"id":484,"name":"учебник","slug":"tutorial"},{"id":274,"name":"руководства-по-плагинам","slug":"plugin-guides"}],"tags_descriptions":{"учебник":""},"views":82768,"like_count":210,"has_summary":false,"last_poster_username":"Ambient.Impact","category_id":56,"op_like_count":110,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The discussion details an issue encountered when creating plugins with the Docker setup, requiring users to configure Git's user email and name within the container before running `rake plugin:create`.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":25674,"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":704,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":149694,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Использование DModal API для отображения модальных окон (также известных как всплывающие окна/диалоги) в Discourse","fancy_title_localized":true,"locale":"en","id":268304,"title":"Using the DModal API to render Modal windows (aka popups/dialogs) in Discourse","slug":"using-the-dmodal-api-to-render-modal-windows-aka-popups-dialogs-in-discourse","posts_count":1,"reply_count":1,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35.png","created_at":"2023-07-03T09:52:06.275Z","last_posted_at":"2023-07-03T09:52:06.275Z","bumped":true,"bumped_at":"2026-06-02T14:54:11.378Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse 3.1.0.beta6 включает в себя совершенно новый компонентный API на основе <DModal>.\n\nℹ️ Он заменяет устаревший старый API на основе контроллеров. Если у вас есть существующие модальные окна, использующие старые API, п...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":696,"height":258,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35.png"},{"max_width":600,"max_height":600,"width":600,"height":222,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35_2_600x222.png"},{"max_width":400,"max_height":400,"width":400,"height":148,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35_2_400x148.png"},{"max_width":300,"max_height":300,"width":300,"height":111,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35_2_300x111.png"},{"max_width":200,"max_height":200,"width":200,"height":74,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/0/b/40be9a7c253202136882269ba77d47ad86bd6d35_2_200x74.png"}],"tags":[{"id":819,"name":"код","slug":"code"}],"tags_descriptions":{},"views":2083,"like_count":17,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":17,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse 3.1.0.beta6 introduces the <DModal> component API for rendering modals, replacing the deprecated controller-based method, with examples for template use, component wrapping, and service-based triggering.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Исходный автор, Последний автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":1,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Индекс руководств разработчика","fancy_title_localized":true,"locale":"en","id":308036,"title":"Developer Guides Index","slug":"developer-guides-index","posts_count":1,"reply_count":1,"highest_post_number":1,"image_url":null,"created_at":"2024-05-15T06:05:51.350Z","last_posted_at":"2024-05-15T06:05:51.457Z","bumped":true,"bumped_at":"2026-06-01T15:09:46.938Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"Документация о расширении Discourse с помощью плагинов, тем и компонентов тем, работе с основным кодом и использовании API Discourse.\nВведение\n\nВведение: Введение в разработку для Discourse\n\nРазработка…","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":799,"name":"индекс","slug":"index"}],"tags_descriptions":{"индекс":"Разделы индекса категории документации."},"views":1986,"like_count":13,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":13,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discussion about creating a plugin skeleton, with the original link now found at https://meta.discourse.org/t/automating-discourse-plugin-setup-with-create-discourse-plugin-gem/315013, which provides a rake task for automating Discourse plugin setup.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Исходный автор, Последний автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":100484,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Вставьте текст или изображения в любое место вашего сайта с помощью псевдоэлементов CSS","fancy_title_localized":true,"locale":"en","id":99200,"title":"Insert text or images anywhere on your site using CSS pseudo-elements","slug":"insert-text-or-images-anywhere-on-your-site-using-css-pseudo-elements","posts_count":1,"reply_count":6,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_1024x471.png","created_at":"2018-10-11T11:12:34.130Z","last_posted_at":"2018-10-11T11:12:34.130Z","bumped":true,"bumped_at":"2026-06-01T15:09:42.855Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Итак, вы хотите вставить текст или изображение на ваш сайт Discourse. \nЧто касается текста, то в большинстве случаев достаточно изменить его через /admin/customize/site_texts. \nОднако иногда возникает желание добавить предложение …","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1911,"height":879,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":471,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_1024x471.png"},{"max_width":800,"max_height":800,"width":800,"height":367,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_800x367.png"},{"max_width":600,"max_height":600,"width":600,"height":275,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_600x275.png"},{"max_width":400,"max_height":400,"width":400,"height":183,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_400x183.png"},{"max_width":300,"max_height":300,"width":300,"height":137,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_300x137.png"},{"max_width":200,"max_height":200,"width":200,"height":91,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/7/3/8/7382dd2cbcd102675e74e8a1853a79d2e32a0021_2_200x91.png"}],"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":814,"name":"настройка","slug":"customization"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы"},"views":17984,"like_count":33,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":33,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"To insert text or images on a site, use CSS pseudo-elements `:before` and `:after` to add content to elements without modifying existing HTML, by editing the site's stylesheet in the browser's developer console.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Исходный автор, Последний автор","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Designing for Different Devices (Viewport Size, Touch/Hover, etc.)","fancy_title_localized":false,"locale":null,"id":367810,"title":"Designing for Different Devices (Viewport Size, Touch/Hover, etc.)","slug":"designing-for-different-devices-viewport-size-touch-hover-etc","posts_count":15,"reply_count":11,"highest_post_number":15,"image_url":null,"created_at":"2025-05-27T18:17:05.719Z","last_posted_at":"2026-01-25T21:34:26.908Z","bumped":true,"bumped_at":"2026-06-01T15:09:36.242Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This document outlines the APIs used to adapt Discourse’s user interface for different devices. \nViewport Size\nThe most important characteristic to consider is the viewport size. We design “mobile first” and then add cus&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":701,"like_count":24,"has_summary":false,"last_poster_username":"merefield","category_id":56,"op_like_count":12,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse is phasing out legacy mobile/desktop modes in favor of viewport and touch detection; users discuss deprecating outdated classes like pull-left and adapting core components for responsive layouts across devices.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":-1,"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":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Частый автор","user_id":127856,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Guidelines for CSS classes using BEM","fancy_title_localized":false,"locale":null,"id":361851,"title":"Guidelines for CSS classes using BEM","slug":"guidelines-for-css-classes-using-bem","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-04-15T05:48:23.418Z","last_posted_at":"2025-04-15T05:48:23.483Z","bumped":true,"bumped_at":"2026-06-01T15:09:34.864Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Background\nWhen writing CSS classes for Discourse components, themes, or plugins, we follow a modified variant of Block Element Modifier (BEM). Following these guidelines will make it much less likely for CSS conflicts t&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":294,"like_count":8,"has_summary":false,"last_poster_username":"system","category_id":56,"op_like_count":8,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse uses a modified BEM variant for CSS classes, following specific syntax and guidelines to minimize conflicts and improve specificity.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Исходный автор, Последний автор","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Using Transformers to customize client-side values and behavior","fancy_title_localized":false,"locale":null,"id":349954,"title":"Using Transformers to customize client-side values and behavior","slug":"using-transformers-to-customize-client-side-values-and-behavior","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2025-01-31T20:19:51.229Z","last_posted_at":"2025-11-03T03:00:09.908Z","bumped":true,"bumped_at":"2026-06-01T15:09:33.590Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse core includes a number of “transformer” hooks which can be used to customize client behavior. These fall into two categories: \n\n\nValue Transformers take an output from Discourse core, and optionally modify it, &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":605,"like_count":11,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":10,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A discussion on using Discourse's transformer hooks to customize client-side values and behavior, with recent updates including a PR to modify the Transformers registry link to the frontend directory.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Set up Slack notifications using the discourse-chat-integration plugin","fancy_title_localized":false,"locale":"en","id":66730,"title":"Set up Slack notifications using the discourse-chat-integration plugin","slug":"set-up-slack-notifications-using-the-discourse-chat-integration-plugin","posts_count":107,"reply_count":64,"highest_post_number":118,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257.png","created_at":"2017-07-24T16:45:28.351Z","last_posted_at":"2026-06-01T13:26:59.689Z","bumped":true,"bumped_at":"2026-06-01T13:26:59.689Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This <span class=\"hashtag-icon-placeholder\"></span>howto</span> describes how to setup the Slack provider included in discourse-chat-integration. \nIt allows posting notifications to Slack, managing rules using Slash Commands, and posting transcripts back to Discourse. Slas&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":564,"height":464,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257.png"},{"max_width":400,"max_height":400,"width":400,"height":329,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257_2_400x329.png"},{"max_width":300,"max_height":300,"width":300,"height":246,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257_2_300x246.png"},{"max_width":200,"max_height":200,"width":200,"height":164,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/7/1/712d23f0886549eb0934b392fe790eaecd55b257_2_200x164.png"}],"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":230,"name":"интеграция-чата","slug":"chat-integration"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы"},"views":33759,"like_count":194,"has_summary":true,"last_poster_username":"Devansh_Bartwal","category_id":167,"op_like_count":33,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user inquired whether the discourse-chat-integration plugin allows tagging Slack users based on keywords used within the Discourse community.","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":19189,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Частый автор","user_id":43426,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":193655,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Developer&rsquo;s guide to Markdown extensions","fancy_title_localized":false,"locale":"en","id":66023,"title":"Developer's guide to Markdown extensions","slug":"developers-guide-to-markdown-extensions","posts_count":2,"reply_count":13,"highest_post_number":24,"image_url":null,"created_at":"2017-07-11T21:23:25.941Z","last_posted_at":"2026-06-01T08:45:53.539Z","bumped":true,"bumped_at":"2026-06-01T08:45:53.539Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Discourse uses a Markdown engine called Markdown-it. \nHere are some dev notes that will help you either fix bugs in core or create your new plugins. \nThe Basics\nDiscourse only contains a few helpers on top of the engine,&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":482,"name":"ссылка","slug":"reference"},{"id":52,"name":"markdown","slug":"markdown"},{"id":819,"name":"код","slug":"code"}],"tags_descriptions":{},"views":13554,"like_count":35,"has_summary":false,"last_poster_username":"NateDhaliwal","category_id":56,"op_like_count":35,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"While the guide details creating Markdown extensions for Discourse, a user inquires whether these customizations can be implemented within Theme Components or are restricted to plugins.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":115923,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":135392,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Создание, загрузка и восстановление резервной копии базы данных Discourse","fancy_title_localized":true,"locale":"en","id":122710,"title":"Create, download, and restore a backup of your Discourse database","slug":"create-download-and-restore-a-backup-of-your-discourse-database","posts_count":26,"reply_count":41,"highest_post_number":69,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/5/1/251a2ade814ccd6010680618bb1fff0be9ea50a7_2_1024x292.png","created_at":"2019-07-11T18:39:08.493Z","last_posted_at":"2026-05-29T20:31:09.472Z","bumped":true,"bumped_at":"2026-05-29T20:31:09.472Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":":bookmark: Это руководство содержит пошаговые инструкции по созданию, загрузке и восстановлению резервной копии базы данных Discourse.\n:person_raising_hand: Требуемый уровень доступа пользователя: Администратор\n\nDiscourse позволяет администраторам сайта...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1241,"height":354,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/5/1/251a2ade814ccd6010680618bb1fff0be9ea50a7.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":292,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/5/1/251a2ade814ccd6010680618bb1fff0be9ea50a7_2_1024x292.png"},{"max_width":800,"max_height":800,"width":800,"height":228,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/2/5/1/251a2ade814ccd6010680618bb1fff0be9ea50a7_2_800x228.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/2/5/1/251a2ade814ccd6010680618bb1fff0be9ea50a7_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/2/5/1/251a2ade814ccd6010680618bb1fff0be9ea50a7_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/2/5/1/251a2ade814ccd6010680618bb1fff0be9ea50a7_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/2/5/1/251a2ade814ccd6010680618bb1fff0be9ea50a7_2_200x57.png"}],"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":55,"name":"резервные-копии","slug":"backups"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы"},"views":24487,"like_count":42,"has_summary":false,"last_poster_username":"southpaw","category_id":55,"op_like_count":32,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse clarified that their infrastructure backups are for disaster recovery only and cannot be used for individual site restores, directing users to contact support for assistance with creating full backups that include uploads.","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":179252,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":160471,"primary_group_id":null,"flair_group_id":73},{"extras":null,"description":"Частый автор","user_id":83228,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Последний автор","user_id":29739,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Theme Developer Tutorial: 2. Creating a remote theme","fancy_title_localized":false,"locale":null,"id":357797,"title":"Theme Developer Tutorial: 2. Creating a remote theme","slug":"theme-developer-tutorial-2-creating-a-remote-theme","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-03-18T15:59:09.382Z","last_posted_at":"2025-03-18T15:59:09.454Z","bumped":true,"bumped_at":"2026-05-29T10:12:51.441Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In the last chapter, we created a basic theme via the Discourse admin interface. This works well enough for very simple themes. But as soon as you want to do something more complex, or share a theme more widely, you’ll n&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":724,"like_count":2,"has_summary":false,"last_poster_username":"system","category_id":56,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The tutorial guides users through creating a remote Discourse theme using the discourse_theme CLI, syncing it to a Discourse instance, adding custom code, and preparing it for GitHub hosting.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Исходный автор, Последний автор","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Write end-to-end system specs for the Discourse user interface","fancy_title_localized":false,"locale":null,"id":325937,"title":"Write end-to-end system specs for the Discourse user interface","slug":"write-end-to-end-system-specs-for-the-discourse-user-interface","posts_count":4,"reply_count":2,"highest_post_number":5,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64.png","created_at":"2024-09-11T04:07:31.148Z","last_posted_at":"2025-08-28T14:51:13.004Z","bumped":true,"bumped_at":"2026-05-29T10:12:45.063Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Background\nRails system specs are used to simulate the actions of a real user using the app in a browser. We use the Playwright ruby driver which is becoming an industry standard. The tests run locally and in CI out of t&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":990,"height":602,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64.png"},{"max_width":800,"max_height":800,"width":800,"height":486,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_800x486.png"},{"max_width":600,"max_height":600,"width":600,"height":364,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_600x364.png"},{"max_width":400,"max_height":400,"width":400,"height":243,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_400x243.png"},{"max_width":300,"max_height":300,"width":300,"height":182,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_300x182.png"},{"max_width":200,"max_height":200,"width":200,"height":121,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/5/5/5/55573c386666cc876d212e64995fd6a7a8bccc64_2_200x121.png"}],"tags":[],"tags_descriptions":{},"views":619,"like_count":12,"has_summary":false,"last_poster_username":"merefield","category_id":56,"op_like_count":9,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user encountered test failures due to missing color schemes in the test database, which was resolved by resetting the test database using migration commands after confirming the issue was with the local Discourse instance setup.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Исходный автор","user_id":-1,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Частый автор","user_id":21029,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Последний автор","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Использование «тахометра» Google для измерения изменений производительности JS в Discourse","fancy_title_localized":true,"locale":"en","id":281158,"title":"Using Google's 'tachometer' to measure JS performance changes in Discourse","slug":"using-googles-tachometer-to-measure-js-performance-changes-in-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_1024x146.png","created_at":"2023-10-05T13:57:29.422Z","last_posted_at":"2023-10-05T13:57:29.614Z","bumped":true,"bumped_at":"2026-05-29T10:12:43.709Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"При работе с клиентской частью в ядре Discourse, плагинах или темах важно учитывать влияние на производительность. Проект Google «Tachometer» предоставляет статистически строгий инструмент для бенчмаркинга, который мы можем использовать для …","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1234,"height":176,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":146,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_1024x146.png"},{"max_width":800,"max_height":800,"width":800,"height":114,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_800x114.png"},{"max_width":600,"max_height":600,"width":600,"height":85,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_600x85.png"},{"max_width":400,"max_height":400,"width":400,"height":57,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_400x57.png"},{"max_width":300,"max_height":300,"width":300,"height":42,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_300x42.png"},{"max_width":200,"max_height":200,"width":200,"height":28,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/c/8/c/c8c2c8280eb16bf88a2041b68bf45af1ef81b6d8_2_200x28.png"}],"tags":[{"id":819,"name":"код","slug":"code"}],"tags_descriptions":{},"views":986,"like_count":17,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":17,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Google's 'Tachometer' project is used to measure JS performance changes in Discourse by statistically benchmarking changes through a 'round-robin' approach, reducing external factor impact and producing a comparison table after hundreds/thousands of iterations.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Исходный автор, Последний автор","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Настройка среды разработки для мультисайта","fancy_title_localized":true,"locale":"en","id":229310,"title":"Set up a multisite development environment","slug":"set-up-a-multisite-development-environment","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2022-06-07T16:01:37.089Z","last_posted_at":"2022-06-07T16:01:37.228Z","bumped":true,"bumped_at":"2026-05-29T10:12:41.903Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Запуск Discourse в режиме мультисайта в среде разработки возможен. Мультисайтовый сервер использует отдельную базу данных и имя хоста для каждого обслуживаемого сайта. Это полезно, если вы разрабатываете функцию или плагин, которые должны…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":150,"name":"dev-install","slug":"dev-install"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы","dev-install":"Инструкции и проблемы при установке Discourse для разработки"},"views":2013,"like_count":12,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":12,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Set up multisite development by adding a `config/multisite.yml` file, specifying a separate DB and hostname for each site, and using the `RAILS_DB` environment variable to run rake tasks against targeted sites.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Исходный автор, Последний автор","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Установка плагинов в вашей среде разработки без Docker","fancy_title_localized":true,"locale":"en","id":205337,"title":"Install plugins in your non-Docker development environment","slug":"install-plugins-in-your-non-docker-development-environment","posts_count":1,"reply_count":2,"highest_post_number":1,"image_url":null,"created_at":"2021-10-06T09:47:24.341Z","last_posted_at":"2021-10-06T09:47:24.632Z","bumped":true,"bumped_at":"2026-05-29T10:12:40.846Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"(Это руководство охватывает только установку для разработки без Docker. Для установки в среде разработки с Docker :whale: см. Установка Discourse для разработки с использованием Docker)\nЕсли вы следовали инструкциям по настройке локального Discourse, вы можете установить плагин ло...","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":478,"name":"как-сделать","slug":"how-to"},{"id":150,"name":"dev-install","slug":"dev-install"}],"tags_descriptions":{"как-сделать":"Руководства содержат шаги для решения конкретной проблемы","dev-install":"Инструкции и проблемы при установке Discourse для разработки"},"views":3406,"like_count":16,"has_summary":false,"last_poster_username":"Discourse","category_id":56,"op_like_count":16,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"To install a plugin locally in a non-Docker development environment, download the plugin, run migrations if necessary, restart the server, and edit settings at localhost:4200/admin/plugins.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Исходный автор, Последний автор","user_id":115923,"primary_group_id":null,"flair_group_id":null}]}]}}