2.3.7 • Published 6 years ago

ff-url-finder v2.3.7

Weekly downloads
5
License
MIT
Repository
github
Last release
6 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

6 years ago

2.3.6

6 years ago

2.3.5

7 years ago

2.3.4

7 years ago

2.3.3

8 years ago

2.3.2

8 years ago

2.3.1

8 years ago

2.3.0

8 years ago

2.2.4

8 years ago

2.2.3

8 years ago

2.2.2

8 years ago

2.2.0

8 years ago

2.1.11

8 years ago

2.1.10

8 years ago

2.1.9

8 years ago

2.1.8

8 years ago

2.1.7

8 years ago

2.1.6

8 years ago

2.1.5

8 years ago

2.1.4

8 years ago

2.1.3

8 years ago

2.1.2

8 years ago

2.1.1

8 years ago

2.1.0

8 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago