Строка 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 на «Традицию» в викиссылки: |