No description
This repository has been archived on 2024-06-09. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
Mark Felder 26fa3bffeb Try to make intelligent decisions when deciding if parens should be stripped before linking
This logic is torture and needs some rework.

Rules:

- Always strip leading (, as it can't be part of a URL
- Short circuit to only strip leading if no trailing
- If valid email address when trailing ) stripped, we can strip trailing )
- If not even a valid URL without trailing ), short circuit to only strip leading
- If query parameters detected, strip trailing. It should have been encoded as %29.
- If there isn't a / the trailing ) can't be part of the URL, strip trailing.
- If there isn't at least one ( in the URI.path, only strip leading. Assume ) is not part of the URL.
- If we have an equal count of ( and ) chars with the leading ( already stripped, only strip leading
2021-01-26 18:30:35 -06:00
lib Try to make intelligent decisions when deciding if parens should be stripped before linking 2021-01-26 18:30:35 -06:00
priv priv/tlds.txt: Bump to 2020111900 2020-11-19 23:19:13 +01:00
test Try to make intelligent decisions when deciding if parens should be stripped before linking 2021-01-26 18:30:35 -06:00
.formatter.exs add formatter 2019-02-05 18:22:51 +07:00
.gitignore Small fixes and improvements 2019-02-18 16:49:08 +00:00
.gitlab-ci.yml Bump Elixir version 2019-06-27 16:10:11 +07:00
.travis.yml update elixir verison in travis 2017-03-29 16:56:03 -04:00
CHANGELOG.md Document fix, prepare for release 2020-12-21 14:02:04 -06:00
LICENSE prep for first release 2017-03-29 16:27:13 -04:00
mix.exs Mix: Update version 2020-12-22 14:18:02 +01:00
mix.lock Update ex_doc 2020-11-17 18:41:43 +04:00
README.md Add example to README showing how we link user mentions 2020-11-17 15:45:38 +00:00

Linkify

Linkify is a basic package for turning website names into links.

Use this package in your web view to convert web references into click-able links.

Installation

The package can be installed by adding linkify to your list of dependencies in mix.exs:

def deps do
  [{:linkify, "~> 0.3"}]
end

Usage

The following examples illustrate some examples on how to use the auto linker.


iex> Linkify.link("google.com")
"<a href=\"http://google.com\">google.com</a>"

iex> Linkify.link("google.com", class: "linkified")
"<a href=\"http://google.com\" class=\"linkified\">google.com</a>"

iex> Linkify.link("google.com", new_window: true)
"<a href=\"http://google.com\" target=\"_blank\">google.com</a>"

iex> Linkify.link("google.com", new_window: true, rel: "noopener noreferrer")
"<a href=\"http://google.com\" target=\"_blank\" rel=\"noopener noreferrer\">google.com</a>"

iex> Linkify.link("Hello @niceguy17@pleroma.com", mention: true, mention_prefix: "/users/")
"Hello <a href=\"/users/niceguy17@pleroma.com\">@niceguy17@pleroma.com</a>"

See the Docs for more examples

Acknowledgments

This is a fork of auto_linker by Steve Pallen.

License

Copyright © 2017 E-MetroTel

Copyright © 2019-2020 Pleroma Authors

The source is released under the MIT License.

Check LICENSE for more information.