Изменения

internalise
Строка 29: Строка 29:  
     Module:Wikifier.
 
     Module:Wikifier.
 
      
 
      
     Вызовы функций re() и internalise() будут выполнены только серверным викификатором,
+
     Вызовы функций re(), collect_links() и internalise_links() будут выполнены только серверным викификатором,
 
     а в JavaScript они не будут иметь эффекта.
 
     а в JavaScript они не будут иметь эффекта.
 
     */
 
     */
Строка 49: Строка 49:  
// -- внутренние <a> → [[]);
 
// -- внутренние <a> → [[]);
 
s = r (s, /<\s*a\s+href\s*=\s*(["'])(\S+?)\1\s*>(.+?)<\s*\/a\s*>/gi, '[$2 $3]'); // -- <a> → [);
 
s = r (s, /<\s*a\s+href\s*=\s*(["'])(\S+?)\1\s*>(.+?)<\s*\/a\s*>/gi, '[$2 $3]'); // -- <a> → [);
s = r (s, /\[\s*(https?:\/\/[^\]\s]+)\s*([^\]]*)\]/gi, internalise); // — замена внешних ссылок на загруженные документы.
+
s = r (s, /\[\s*(https?:\/\/[^\]\s]+)\s*([^\]]*)\]/gi, collect_links); // — замена внешних ссылок на загруженные документы.
 
 
 
 
 
s = hide (s, /(?:https?|ftp|news|nntp|telnet|irc|gopher|magnet):\/\/[^\s\[\]<>"]+ ?/gi); // — гиперссылки.
 
s = hide (s, /(?:https?|ftp|news|nntp|telnet|irc|gopher|magnet):\/\/[^\s\[\]<>"]+ ?/gi); // — гиперссылки.
Строка 247: Строка 247:  
s = r (s, /^\n/, '');
 
s = r (s, /^\n/, '');
 
s = r (s, /\n$/, '');
 
s = r (s, /\n$/, '');
 +
 +
// Интернализация ссылок. Выполняется только в Lua.
 +
s = internalise_links (s);
    
// Восстановление скрытого:
 
// Восстановление скрытого:
Строка 293: Строка 296:  
return s;
 
return s;
 
}
 
}
function internalise (_, __, url, alias) {
+
function collect_links (_, __, url, alias) {
 +
return '[' + url + ' ' + alias + ']';
 +
}
 +
function internalise_links (_, __, url, alias) {
 
return '[' + url + ' ' + alias + ']';
 
return '[' + url + ' ' + alias + ']';
 
}
 
}
 +
    
// Превращение ссылок HTML на «Традицию» в викиссылки:
 
// Превращение ссылок HTML на «Традицию» в викиссылки: