LINUX.ORG.RU

Линкификатор текстов - помогите потестировать

 , автолинкер


0

1

http://markdown-it.github.io/linkify-it/

Библиотека предназначена для поиска кусков текста, похожих на ссылки. Принципиальное отличие от кучи других - нормальная работа с юникодом (попаболь яваскрипта). Ну и еще там регулярки не виснут :).

Потестируйте пожалуйста. Если найдете реальные ссылки, которые определяются неправильно - напишите в трекер или здесь (специально сделать некодный паттерн я и сам могу).

PS. В демке не грузится полный список доменов (возможность есть), поэтому все ссылки без http:// и mailto: в демке прочухиваются только для сокращенного списка зон https://github.com/markdown-it/linkify-it/blob/master/index.js#L91.

★★★★★

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

anonymous
()

попаболь яваскрипта

твоя попаболь из-за незнания яваскрипта.

anonymous
()

Осторожно! В комментариях упоротые.

anonymous
()
Ответ на: комментарий от Dron

ipv6 я не делал и пока не вижу смысла.

Насчет первой ссылки не понял. Протокол sftp не определен, поэтому считается невалидной схемой. Если его добавить в конфигурацию, будет работать. См. пример для git https://github.com/markdown-it/linkify-it#example-1

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

ipv6 я не делал и пока не вижу смысла.

считается невалидной схемой

Each URI begins with a scheme name that refers to a specification for assigning identifiers within that scheme. As such, the URI syntax is a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme.

Scheme names consist of a sequence of characters beginning with a letter and followed by any combination of letters, digits, plus («+»), period ("."), or hyphen ("-"). Although schemes are case- insensitive, the canonical form is lowercase and documents that specify schemes must do so with lowercase letters. An implementation should accept uppercase letters as equivalent to lowercase in scheme names (e.g., allow «HTTP» as well as «http») for the sake of robustness but should only produce lowercase scheme names for consistency.

scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

Типикал жс параша.

Deleted
()
Ответ на: комментарий от Vit

Насчет первой ссылки не понял

Я просто подумал, ты из коробки детектить всё и вся решил.

См. пример для git

Ааа, тогда ясно.

Dron ★★★★★
()
Ответ на: комментарий от Dron

Не, там принцип «детектить разумно», т.к. ложные срабатывания магии (a:b=c) - очень плохо. К тому же на схемах типа skype:, tel: нужны другие валидаторы.

Поэтому пока политика opt-in.

Vit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.