Чтобы обеспечить победоносное шествие языка программирования форт по всей планете предлагаю захватить вики-среду, навязав всем форт
Вводные- Вики-проекты работают на движке MediaWiki
- Работающий в движке язык шаблонов (макросы для бедных) откровенно хренов.
- В стандартную поставку MediaWiki входит скриптовый движок Lua.
- Напрямую писать скрипты для вики-сайта с помощью Lua нельзя. Те же самые макросы на Lua делаются через обвязку.
Исходя из этих вводных, предполагаем, что на вики-сайтах отсутствует вменяемый скриптовый язык. Его нишу может занять форт.
Без лишних танцев с бубном реализовать форт-машину мы можем на том же Lua. Для нас главное вывести скриптинг из закромов на уровень вики-текста.
Недостатки такого решения:
- Мы не можем использовать некоторые комбинации и специальные символы: {{ }} |
- Результат скрипта будет кэширован. Динамические свистопляски возможны только с лагом в 10-15 часов)
Встроенный скрипт на форте будет выглядеть как-то так:
Код:
{{forth|script=
'style' var? \\ передана ли в скрипт именнованная переменная с именем style
if
'style' get \\ если да, кладём на стек значение переменной
else
'font-color:green' \\ если нет, кладём на стек строку
then
value style-link \\ создаём переменную и записываем туда значение со стека
L2
if
L1
'<span style="' .. style-link .. '">' .. L2 .. '</span>'
create-link
else
`[[<span style="` .. style-link .. `">` .. L1 .. '</span>]]'
then
\\ Ниже идут переменные, которые будут использоваться в скрипте
|переменная 1
|переменная 2
}}
Этот код должен красить ссылку в вики-тексте в зелёный цвет, если не выбран какой-то другой цвет/стиль. Счас у меня это реализовано на языке шаблонов, но решение на нём хрен поменяешь и масштабируешь.
Почему именно forth?Простота реализации – создать интерпретатор форта можно на чём угодно.
Требования к реализации фортаТребование всего одно – просто