Это иконка [wrap=icon id=far-square][/wrap] и иконка [wrap=icon id=pencil][/wrap].
Примечание: если иконка не отображается, значит она отсутствует в вашем наборе. Если вы администратор, вы можете добавить её в настройках сайта: svg icon subset.
Размещено нами? Компоненты тем доступны для использования в наших тарифах Standard, Business и Enterprise.
(у meta очень много тем, но, к счастью, благодаря @kris.kotlarek у нас есть кнопка «Добавить ко всем темам»… нужно навести там порядок, потому что на применение магии уходит довольно много времени)
Я никогда не работал с BB-тегами и не кодировал вручную FontAwesome, поэтому использование пары пустых тегов всегда казалось мне странным. Это общепринятая практика или есть какая-то причина в веб-разработке для использования пар тегов? Также, могут ли они содержать что-то между собой, влияет ли это на текст?
Во-первых, когда я реализовывал функцию обёртки BBCode, @sam прямо попросил меня поддерживать три формата:
[wrap=foo][/wrap]
[wrap=foo]bar[/wrap]
[wrap=foo]
bar
[/wrap]
Это сделано для согласованности с нашим текущим использованием BBCode в Discourse.
Я мог бы использовать более удобный синтаксис, например [icon=times], но тогда это должно было бы быть плагином, а не компонентом темы.
В качестве эксперимента считаю, что текущее решение приемлемо. Если пользователи начнут использовать его активно, мы можем подумать о создании плагина с более лаконичным синтаксисом.
Ещё одна идея — добавить API для вставки символов автодополнения в редактор, как это уже сделано для пользователей, категорий и эмодзи. Однако я опасаюсь, что это превратится в кошмар, если несколько компонентов будут выбирать свои собственные символы…
О! Мне нужно добавить поддержку ещё одного bbcode-тега, и я думал, что использую это как отправную точку, но вы говорите, что обёртка обрабатывается в ядре, что объясняет, почему я не могу найти, как это делается в вашем компоненте темы.
Моё текущее решение — использовать компонент связанных слов и ужасный регулярное выражение, но я всё ещё борюсь с добавлением необходимых классов к ссылкам.
Ладно, я уже разглядывал это с десяток раз. Распечатал код вашего компонента и часами смотрел на него, пытаясь понять, что именно я не понимаю — степень использования JavaScript или Ember. Неужели я не могу добавить тег [foo] без плагина? Или я каким-то образом могу заменить в вашем коде wrap на foo, чтобы поддержать мой новый bbcode?
Нет, вы не можете. Это связано с тем, что часть функционала реализуется на стороне сервера. Если вы хотите создать собственный BBCode, вам потребуется написать плагин. В качестве примера можно посмотреть, как реализован тег wrap:
Спасибо! Начинает иметь смысл. У меня не было таких трудностей при изучении нового языка с тех пор, как C++ и Objective Pascal в 1990 году.
Мой текущий хак с регулярными выражениями почти работает. Мне нужно будет решить, пойти ли по пути плагина или остаться с этим хаком (и понять, как добавить классы).
По крайней мере, теперь я понимаю, почему не могу найти этот обёртывающий элемент в компоненте темы!
Используйте обёртку для иконки в предложении поста. Например: Это иконка [wrap=icon id=far-check-square][/wrap]
Выделите соответствующий текст и выберите «Цитировать»
В цитате иконка становится чрезмерно большой
Вот как выглядит синтаксис при цитировании с выделением:
[quote="JammyDodger, post:1, topic:294, full:true"]
Это иконка 
[/quote]
Это ответ, где она становится огромной
Однако цитирование через значок речевого пузыря в панели форматирования работает корректно.
Можете привести пример? На вашем скриншоте показан отмеченный флажок, и у меня нет проблем с его выбором в тестовом экземпляре (а также с другими иконками, которые, вероятно, не используются в Discourse, например, x-ray).
Я вижу проблему. Компонент ищет наличие обёртки с классом d-wrap; но если предоставленная иконка не входит в подмножество, обёртки нет. Вместо этого создаётся изображение в формате SVG.
Если вы процитируете изображения, компонент ничего не сделает, так как обёртки нет (а изображение преобразуется в Markdown, в результате чего получится изображение без каких-либо классов).
Это означает, что мне нужно иметь поле svg_icons в файле settings.yml, доступном в моей теме? Или я могу использовать любое поле svg_icons, доступное из любого включенного компонента темы? И если это так, имеет ли смысл добавлять это поле в этот компонент темы?