league / commonmark-ext-autolink
Extension for league/commonmark which autolinks URLs, emails, and @-mentions
Fund package maintenance!
colinodell
Patreon
Installs: 82 054
Dependents: 1
Suggesters: 0
Security: 0
Stars: 11
Watchers: 3
Forks: 2
Open Issues: 0
Type:commonmark-extension
Requires
- php: ^7.1
- league/commonmark: ^1.3
Requires (Dev)
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2020-04-04 14:21:17 UTC
README
DEPRECATED
This extension has been deprecated. All of its functionality now exists in league/commonmark
1.3+ under the League\CommonMark\Extension\Autolink
namespace, so you should upgrade to that version and use that bundled extension instead of this one.
Overview
This extension adds GFM-style autolinking to the league/commonmark
Markdown parser for PHP. It automatically link URLs and email addresses even when the CommonMark <...>
autolink syntax is not used.
It also provides a parser to autolink @mentions
to Twitter, Github, or any custom service you wish, though this is disabled by default.
Install
Via Composer
$ composer require league/commonmark-ext-autolink
Usage
Configure your Environment
as usual and simply add the AutolinkExtension
provided by this package:
use League\CommonMark\CommonMarkConverter; use League\CommonMark\Environment; use League\CommonMark\Ext\Autolink\AutolinkExtension; // Obtain a pre-configured Environment with all the CommonMark parsers/renderers ready-to-go $environment = Environment::createCommonMarkEnvironment(); // Add this extension $environment->addExtension(new AutolinkExtension()); // Instantiate the converter engine and start converting some Markdown! $converter = new CommonMarkConverter([], $environment); echo $converter->convertToHtml('I successfully installed the https://github.com/thephpleague/commonmark-ext-autolink extension!');
@mention
Autolinking
This extension also provides functionality to automatically link "mentions" like @colinodell
to Twitter, Github, or any other site of your choice!
For Twitter:
use League\CommonMark\Environment; use League\CommonMark\Ext\Autolink\InlineMentionParser; $environment = Environment::createCommonMarkEnvironment(); $environment->addInlineParser(InlineMentionParser::createTwitterHandleParser()); // TODO: Instantiate your converter and convert some Markdown
For GitHub:
use League\CommonMark\Environment; use League\CommonMark\Ext\Autolink\InlineMentionParser; $environment = Environment::createCommonMarkEnvironment(); $environment->addInlineParser(InlineMentionParser::createGithubHandleParser()); // TODO: Instantiate your converter and convert some Markdown
Or configure your own custom one:
use League\CommonMark\Environment; use League\CommonMark\Ext\Autolink\InlineMentionParser; $environment = Environment::createCommonMarkEnvironment(); $environment->addInlineParser(new InlineMentionParser('https://www.example.com/users/%s/profile')); // TODO: Instantiate your converter and convert some Markdown
When creating your own, you can provide two parameters to the constructor:
- A URL template where
%s
is replaced with the username (required) - A regular expression to parse and validate the username (optional - defaults to
'/^[A-Za-z0-9_]+(?!\w)/'
)
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email colinodell@gmail.com instead of using the issue tracker.
Credits
License
This library is licensed under the BSD-3 license. See the License File for more information.