Вариант подхода «заменить маркерами», этот раздел кода применяется к

весь контент страницы сразу.

Глобальная подстановка позволяет одному оператору сопоставления и замены

итеративно найти все вхождения, независимо от местоположения в тексте. Первая часть находит

и собирает все ссылки на страницы с обратными ссылками, удаляя при этом шаблон «.

Вторая часть проходит по собранному списку, восстанавливая ссылки на страницы и

добавление имени текущей страницы к каждой из этих страниц по очереди.

Эта конструкция кода имеет и другие применения в контексте сохранения.


ВЗЛОМ ВАШЕГО ИСТОЧНИКА WIKI

173

Обработка экранированных блоков

В предыдущем разделе о заменах перед подачей мы показали, как определить

экранированные блоки текста, которые останутся неизменными при переходе от исходного кода к окну браузера.

Если эта функциональность реализована и вы включили код для замены контента перед

сохранения, вам нужен соответствующий механизм побега. Он должен заключать в себе все

другие замены в этом разделе.

суб расширенные коды {

# -v- замена буквального блока, несколько экземпляров, см. также

рутина

конец

мой @blkLit; мой $blk = 0; # включить теги

в то время как ( s/\[($sic)\](.*?)\[\/\l\]/$lmark$blk$lmark/si ) {

$blkLit[$blk++] = $&

}

# другие расширенные замены перед сохранением

# -v- восстановить любые литеральные блоки

s/$lmark(\d+)$lmark/$blkLit[$1]/sg ;

# -v- вернуть текст перед сохранением

$$страница{текст} = $_ ;

}

Как и в разделе рендеринга, экранированный текст удаляется из ссылки для

продолжительность других замен или действий, управляемых шаблоном, и мы допускаем несколько

шаблоны, так что даже «побег» можно избежать. Опять же, модификатор «s» позволяет нам

охватывать многострочный текст страницы при замене.

Совет 6.18. Подавайте экранированный текст «как есть».

Важно, чтобы экранированный текст не запускал ничего из того, что его компонент

В противном случае шаблоны могут активироваться. Посмотрите на это с этой точки зрения: экранированный текст

должен быть в состоянии объяснить на примерах весь синтаксис собственного шаблона вики

точно так, как пользователь ввел бы его.

Подпрограмма для расширенных кодов обрабатывает не только замены текста.

Как подразумевает функция автоматических обратных ссылок, различные действия могут быть вызваны

шаблоны в тексте страницы, такие как уведомления.


1

42

НАСТРОЙКА ВАШЕЙ ВИКИ