config/install/extlink.settings.yml | 1 +
config/schema/extlink.schema.yml | 3 +++
extlink.css | 5 +++++
extlink.js | 19 ++++++++++++++-----
extlink.module | 1 +
src/Form/ExtlinkAdminSettingsForm.php | 7 +++++++
6 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/config/install/extlink.settings.yml b/config/install/extlink.settings.yml
index fa645e2..0832235 100644
--- a/config/install/extlink.settings.yml
+++ b/config/install/extlink.settings.yml
@@ -14,3 +14,4 @@ extlink_css_exclude: ''
extlink_css_explicit: ''
extlink_mailto_class: 'mailto'
extlink_mailto_label: '(link sends email)'
+extlink_use_font_awesome: false
diff --git a/config/schema/extlink.schema.yml b/config/schema/extlink.schema.yml
index d38736f..065318f 100644
--- a/config/schema/extlink.schema.yml
+++ b/config/schema/extlink.schema.yml
@@ -52,3 +52,6 @@ extlink.settings:
extlink_mailto_label:
type: label
label: 'Alternative text for mailto icon'
+ extlink_use_font_awesome:
+ type: boolean
+ label: 'Use Font Awesome icons instead of images.'
diff --git a/extlink.css b/extlink.css
index 9082064..3491e7e 100644
--- a/extlink.css
+++ b/extlink.css
@@ -21,3 +21,8 @@ span.mailto {
padding: 0;
}
}
+
+/* Put some whitespace between the link and its Font Awesome suffix. */
+span.extlink i {
+ padding-left: 0.2em;
+}
diff --git a/extlink.js b/extlink.js
index 6a5c35d..8caeafe 100644
--- a/extlink.js
+++ b/extlink.js
@@ -198,13 +198,22 @@
var length = $links_to_process.length;
for (i = 0; i < length; i++) {
var $link = $($links_to_process[i]);
- if (class_name === drupalSettings.data.extlink.mailtoClass) {
- $link.append('');
- }
+ if (drupalSettings.data.extlink.extUseFontAwesome) {
+ if (class_name === drupalSettings.data.extlink.mailtoClass) {
+ $link.append('');
+ }
+ else {
+ $link.append('');
+ }
+ }
else {
- $link.append('');
+ if (class_name === drupalSettings.data.extlink.mailtoClass) {
+ $link.append('');
+ }
+ else {
+ $link.append('');
+ }
}
- }
};
Drupal.behaviors.extlink = Drupal.behaviors.extlink || {};
diff --git a/extlink.module b/extlink.module
index bfba16d..434765a 100644
--- a/extlink.module
+++ b/extlink.module
@@ -63,5 +63,6 @@ function extlink_page_attachments(array &$attachments) {
'extAlertText' => $config->get('extlink_alert_text'),
'mailtoClass' => $config->get('extlink_mailto_class'),
'mailtoLabel' => Html::escape($config->get('extlink_mailto_label')),
+ 'extUseFontAwesome' => $config->get('extlink_use_font_awesome', FALSE),
];
}
diff --git a/src/Form/ExtlinkAdminSettingsForm.php b/src/Form/ExtlinkAdminSettingsForm.php
index 7b18751..a858408 100644
--- a/src/Form/ExtlinkAdminSettingsForm.php
+++ b/src/Form/ExtlinkAdminSettingsForm.php
@@ -74,6 +74,13 @@ class ExtlinkAdminSettingsForm extends ConfigFormBase {
'#description' => $this->t('If checked, images wrapped in an anchor tag will be treated as external links.'),
];
+ $form['extlink_use_font_awesome'] = [
+ '#type' => 'checkbox',
+ '#title' => $this->t('Use Font Awesome icons instead of images.'),
+ '#default_value' => variable_get('extlink_use_font_awesome', FALSE),
+ '#description' => $this->t('Add Font Awesome classes to the link as well as an i tag rather than images.'),
+ ];
+
$form['extlink_subdomains'] = [
'#type' => 'checkbox',
'#title' => $this->t('Exclude links with the same primary domain.'),