2.3.7 • Published 7 years ago

ff-url-finder v2.3.7

Weekly downloads
5
License
MIT
Repository
github
Last release
7 years ago

ff-url-finder

Экспортирует класс URLFinder.

Конструктор: new URLFinder(tlDomains, localDomains), где tlDomains — массив доменов 1-го уровня, которые должны распознаваться без явного указания протокола, localDomains — массив доменов, ссылки в которых считаются локальными.

Поле: withHashTags = false — нужно ли определять в тексте хэш-теги (по умолчанию false). Синтаксис хэш-тегов см. в файле hashtag-syntax.md.

Поле: withArrows = false — нужно ли определять в тексте стрелки-ссылки (^^^ или ↑↑↑).

Метод: parse(text) — разбивает строку текста на список блоков следующих типов:

{type: "text", text: "aa "} // простой текст
{type: "link", text: "google.com", url: "http://google.com/"} // внешняя ссылка
{type: "atLink", text: "@alice", username: "alice"} // @-ссылка с username
{type: "localLink", text: "freefeed.net/abc", uri: "/abc"} // локальная ссылка (в одном из доменов localDomains)
{type: "email", text: "aa@bb.ru", address: "aa@bb.ru"} // адрес e-mail
{type: "hashTag", text: "#3pm", hashTag: "3pm"} // хэш-тег
{type: "arrow", text: "^^^", count: 3} // стрелка-ссылка

Везде: type — тип блока, text — текст, который должен показываться пользователю (текст внутри тега A для ссылок). Остальные поля типо-специфичны.

Статический метод URLFinder.shorten(url, max_length) — возвращает url, укороченный до длины не большей max_length (без учёта протокола).

Фичи

  • Понимает ссылки без явно указанного протокола (для заданного набора TLD);
  • В тексте для пользователя делает urldecode, а также преобразует IDN к человекопонятному виду;
  • Правильно обрабатывает концевые скобки в URL;
  • Распознаёт стрелки-ссылки, при этом знает, что такое 10^6 или (=^・^=).
2.3.7

7 years ago

2.3.6

8 years ago

2.3.5

8 years ago

2.3.4

8 years ago

2.3.3

9 years ago

2.3.2

9 years ago

2.3.1

9 years ago

2.3.0

9 years ago

2.2.4

9 years ago

2.2.3

9 years ago

2.2.2

9 years ago

2.2.0

9 years ago

2.1.11

9 years ago

2.1.10

9 years ago

2.1.9

9 years ago

2.1.8

9 years ago

2.1.7

9 years ago

2.1.6

9 years ago

2.1.5

9 years ago

2.1.4

10 years ago

2.1.3

10 years ago

2.1.2

10 years ago

2.1.1

10 years ago

2.1.0

10 years ago

2.0.3

10 years ago

2.0.2

10 years ago

2.0.1

10 years ago