XF 2.3 Как добавить новый язык программирования в BB-код?

Версия XenForo
2.3.10

CHEL74

Проверенные
Сообщения
69
Решения
2
Реакции
20
Баллы
15
Видел эту тему, но она уже аж 2017 года, ссылка в ней мёртвая и предоставленный плагин заброшен, форкнут и уже даже форк заброшен) Может, появились более актуальные варианты решения проблемы? Нужно, чтобы синтаксис pawn подсвечивался и в идеале поменять "Популярные языки".

1778918080365.png
 
Последнее редактирование:
По пути js/vendor/codemirror/mode нашёл такое:
1779099504015.png
Попробовал для теста скопипастить папку и назвать её и файл внутри как pawn, а потом добавить в настройках этот язык хотя-бы в другие языки. Но не помогло 😁
 
Тут же затык именно в синтаксисе, который найти наверное почти нереально.
Надо добавить в список разрешенных кодов в админке (Allowed code BB code block languages) "pawn" (потом добавлением фразы перевести, чтобы там было не code_language, ну это понятно, дап), засунуть через модификацию шаблона prism_macros ссылку на файл с грамматикой (сам файл надо лить по пути js/vendor/prism), которую вы сами напишете, либо нанейроните (в списке prism нет pawn, к сожалению).

Популярные языки в шаблоне editor_dialog_code, тут:
Код:
                <xf:optgroup label="{{ phrase('common_languages') }}">
                    <xf:foreach loop="$languages" key="$key" value="$language">
                        <xf:if is="$language.common">
                            <xf:option value="{$key}">{$language.phrase}</xf:option>
                        </xf:if>
                    </xf:foreach>
                </xf:optgroup>
 
Последнее редактирование:
PaddingtonBaby, а может можно взять за основу другой похожий язык и как-то что-то где-то переименовать? 😀 По сути нет необходимости в том, чтобы подсвечивались конкретные нативы. Главное чтобы какие-то ключевые вещи подсвечивались. Комментарии, кавычки, функции. И какой язык можно бы было взять за основу?
 
PaddingtonBaby, а может можно взять за основу другой похожий язык и как-то что-то где-то переименовать? 😀 По сути нет необходимости в том, чтобы подсвечивались конкретные нативы. Главное чтобы какие-то ключевые вещи подсвечивались. Комментарии, кавычки, функции. И какой язык можно бы было взять за основу?
C/C++ похожи на него, скорее ближе к С.
Если вам не принципиально, чтобы в блоке кода было написано, что это С - просто выбирать его. Если принципиально - точно так же, как я описал раньше, можно "попросить" prism ссылаться на C.
Создать новый js файл рядом с основным prism.js приблизительно с таким содержанием (импровизация):
JavaScript:
(function () {
    if (typeof Prism !== 'undefined' && Prism.languages && Prism.languages.c) {
        Prism.languages.pawn = Prism.languages.c;
    }
}());
Потом подключить в prism_macros: <xf:js src="vendor/prism/prism-pawn.js" />
В целом, при большом желании можно сделать ещё и так, чтобы он те вещи, которые С не покрывает (условный native) подсвечивал отдельно, но там надо поизучать в prism их методы, вроде было что-то для клонирования.
 
Последнее редактирование:
Современный облачный хостинг провайдер | Aéza

Похожие темы

Назад
Сверху Снизу