Возможно ли переместить опцию «Создать опрос» (на компьютере) из дополнительного меню рядом с остальными кнопками форматирования?
Как и ваш запрос для мобильных устройств, это требует более сложного редактирования, которое я не могу добавить в этот компонент темы. Однако это должно быть выполнимо в рамках пользовательского компонента для настольных версий, следуя логике, представленной angus и spirobel.
Как можно убрать центральную кнопку и выровнять кнопки влево и вправо?
Кстати, мне очень нравится этот компонент.
Привет!
Вы можете добавить эти строки CSS в вашу тему или в компонент:
.align_center_button, .align_right_button, .align_justify_button {
display: none;
}
Думаю, вы имели в виду кнопку выравнивания по ширине, так как выравнивание по левому краю не было добавлено в тот же компонент.
Можно ли переместить все эти новые кнопки в меню «Параметры»?
Это возможно, но вам придется немного покопаться в коде.
В разделе Desktop > Head вы найдете весь JavaScript — нужно изменить несколько строк.
Например, код для кнопки на панели инструментов выглядит так:
api.onToolbarCreate(toolbar => {
toolbar.addButton({
id: "underline_button",
group: "fontStyles",
icon: "underline",
perform: e => e.applySurround('[u]', '[/u]', 'underline_text')
});
});
Вам нужно заменить его на следующий:
api.addToolbarPopupMenuOptionsCallback(() => {
return {
action: "underline",
icon: "underline",
label: "underline_button"
};
});
А затем добавить действие в этот блок:
api.modifyClass("controller:composer", {
actions: {
underline() {
this.get("toolbarEvent").applySurround('[u]', '[/u]', "underline_text");
},
floatleft() {
this.get("toolbarEvent").applySurround('[wrap="floatl"]\n', '\n[/wrap]', "float_left_text");
},
columns() {
this.get("toolbarEvent").applySurround('[wrap="columns"]\n', '\n[/wrap]', "columns_text");
}
}
});
С переводом проблем быть не должно.
Вы быстро заметите, если что-то пойдёт не так, поскольку Discourse выводит сообщения об ошибках при сохранении изменений.
Отличный компонент, @Steven! Было бы здорово, если бы у нас также были H1, H2 и H3.
Можно ли добавить [color] [/color] к этому компоненту темы? Если да, то это было бы идеально, так как тогда можно будет использовать официальный редактор Discourse с поддержкой BBCode и Markdown. Сейчас я использую панель инструментов форматирования + mdcomposer. Конечно, я могу использовать CSS, чтобы скрыть лишние кнопки, но есть места, где CSS не применяется, например, в панели администратора или в плагине Custom Wizard от Pavilion. Кнопка цвета используется очень часто.
Вот что у меня получается с CSS (это идеально):
![]()
А вот что получается без него:
![]()
Мой план — создать компонент для тех, кто не хочет использовать плагин. Однако я сделаю ветку с поддержкой цветных BB-кодов. Попробую реализовать это через несколько часов, если будет время. Сообщу вам, когда всё будет готово, и расскажу, как установить.
Скорее всего, я потруду над реорганизацией компонента темы. По умолчанию я предпочитаю простой TC, но для тех, у кого есть официальный плагин BB-кодов, сделаю отдельную ветку «все опции» с кнопками для нижнего индекса и ветку BB-кодов.
Спасибо, кнопки нижнего и верхнего индекса — одна из причин продолжать использовать md composer, чего не хватает другим плагинам и компонентам тем. Официальный bbcode включает множество функций, отсутствующих в плагине панели форматирования, например [spoiler] [/spoiler]. Чтобы получить лучшее из обоих миров, я считаю, что лучше сохранить bbcode discourse, а затем добавить необходимые кнопки через mdcomposer.
Я не думал, что кнопки скриптов популярны, но оставлю их в базовом компоненте.
Создам несколько веток: одну простую — только с базовыми кнопками форматирования, и ветку для цветов, которая добавит цветовой bbcode.
Привет, ребята,
Хотел сообщить, что в md composer добавлена новая ветка color. Теперь вы можете использовать официальный плагин bbcode для Discourse + md composer (ветка color) + discourse spoiler-alert (размытие спойлеров). Считаю, что это лучшее доступное сочетание кнопок для композитора на Discourse.
Также есть идея добавить выбор цвета с использованием этой бесплатной библиотеки:
Если кто-то хочет помочь и знает, как добавить выбор цвета, не стесняйтесь помочь Стивену!
Как можно полностью скрыть или удалить некоторые из этих кнопок? Нам нужны лишь несколько из них, и я заметил, что удаление кнопки не убирает сам элемент — он всё ещё отображается в списке (остаётся пустое место без видимого значка).
Лучший способ — добавить несколько строк CSS в вашу текущую тему.
Я привёл эти примеры для кнопок выравнивания, если вы хотите их скрыть.
.align_center_button, .align_right_button, .align_justify_button {
display: none;
}
Я также могу предоставить вам CSS-код для конкретных кнопок, которые нужно скрыть.
Привет, Стивен, отличный компонент. Спасибо, что поделился!
Вопрос на скорую руку: возможно ли добавить кнопки для вставки неразрывных пробелов (например, nbsp, ensp, emsp)? Что мне следует использовать вместо applySurround?
Некоторые участники моего сообщества испытывают трудности с форматированием постов (в основном отступами), и я думаю, что это им очень помогло бы.
Спасибо!
Да, вы можете легко добавить кнопку, и вместо applysurround я использую addText.
У меня есть этот старый пример, который вы можете использовать:
api.onToolbarCreate(toolbar => {
toolbar.addButton({
id: "br_button",
group: "extras",
icon: "level-down-alt",
perform: e => e.addText('<br>', 'br_text')
});
});
Спасибо! Это сработает!
Хм… Похоже, в панели инструментов форматирования Discourse нет зачёркивания, а здесь оно есть. Тем не менее, я предпочитаю панель форматирования, так как в ней есть всё остальное и даже больше, но мне бы хотелось иметь возможность зачёркивания. Что вы рекомендуете, учитывая проблему совместимости между этими двумя компонентами?
Я мог бы добавить кнопку зачёркивания в панель инструментов плагина — это может оказаться актуальным в будущем.
Я подумаю над этим, а пока вы можете использовать плагин и добавить этот компонент: GitHub - MonDiscourse/discourse-strikethrough: Add a strikethrough button in the composer · GitHub
Он добавит кнопку зачёркивания в всплывающее меню действий, и он совместим с плагином.
Я отправил pull-запрос: https://github.com/MonDiscourse/md-composer-extras/pull/10, который, если я не перепутал запятую или что-то в этом роде, должен исправить
Чтобы избежать ошибок в тестах, добавьте ключ `pluginId` в вызов `modifyClass`. Это обеспечит применение модификации только один раз.
