diff --git a/class/dashboard/subpage-main.php b/class/dashboard/subpage-main.php
index 4e381cd..e1714cd 100644
--- a/class/dashboard/subpage-main.php
+++ b/class/dashboard/subpage-main.php
@@ -6,7 +6,7 @@
* @author Stefan Herndler
* @since 1.5.0 14.09.14 14:47
*
- * Last modified: 2021-01-02T2335+0100
+ * Last modified: 2021-01-07T2207+0100
*
* Edited:
* @since 2.0.4 restore arrow settings 2020-11-01T0509+0100
@@ -39,6 +39,8 @@
* @see
* @see
* @since 2.4.0 footnote shortcode syntax validation 2021-01-01T0624+0100
+ * @since 2.5.0 Shortcode syntax validation: add more information around the setting, thanks to @andreasra
+ * @see
*/
/**
@@ -98,12 +100,17 @@ class MCI_Footnotes_Layout_Settings extends MCI_Footnotes_LayoutEngine {
*/
protected function getSections() {
$l_arr_Tabs = array();
+
+ // sync tab name with mirror in task.php:
$l_arr_Tabs[] = $this->addSection("settings", __("General settings", MCI_Footnotes_Config::C_STR_PLUGIN_NAME), 0, true);
- // tab name used in public function CustomCSSMigration()
+
+ // sync tab name with mirror in public function CustomCSSMigration():
$l_arr_Tabs[] = $this->addSection("customize", __("Referrers and tooltips", MCI_Footnotes_Config::C_STR_PLUGIN_NAME), 1, true);
+
$l_arr_Tabs[] = $this->addSection("expert", __("Scope and priority", MCI_Footnotes_Config::C_STR_PLUGIN_NAME), 2, true);
$l_arr_Tabs[] = $this->addSection("customcss", __("Custom CSS", MCI_Footnotes_Config::C_STR_PLUGIN_NAME), 3, true);
$l_arr_Tabs[] = $this->addSection("how-to", __("Quick start guide", MCI_Footnotes_Config::C_STR_PLUGIN_NAME), null, false);
+
return $l_arr_Tabs;
}
@@ -132,6 +139,7 @@ class MCI_Footnotes_Layout_Settings extends MCI_Footnotes_LayoutEngine {
protected function getMetaBoxes() {
$l_arr_MetaBoxes = array();
+ // sync box name with mirror in task.php:
$l_arr_MetaBoxes[] = $this->addMetaBox("settings", "start-end", __("Footnote start and end short codes", MCI_Footnotes_Config::C_STR_PLUGIN_NAME), "StartEnd");
$l_arr_MetaBoxes[] = $this->addMetaBox("settings", "numbering", __("Footnotes numbering", MCI_Footnotes_Config::C_STR_PLUGIN_NAME), "Numbering");
$l_arr_MetaBoxes[] = $this->addMetaBox("settings", "scrolling", __("Scrolling behavior", MCI_Footnotes_Config::C_STR_PLUGIN_NAME), "Scrolling");
@@ -340,8 +348,10 @@ class MCI_Footnotes_Layout_Settings extends MCI_Footnotes_LayoutEngine {
* @since 2.2.0 3 boxes for clarity 2020-12-12T1422+0100
* @since 2.2.5 support for Ibid. notation thanks to @meglio 2020-12-17T2019+0100
* @see
- * @since 2.4.0 added warning about Block Editor escapement disruption 2021-01-02T2324+0100
- * @since 2.4.0 removed the HTML comment tag option 2021-01-02T2325+0100
+ * @since 2.4.0 added warning about Block Editor escapement disruption 2021-01-02T2324+0100
+ * @since 2.4.0 removed the HTML comment tag option 2021-01-02T2325+0100
+ * @since 2.5.0 Shortcode syntax validation: add more information around the setting, thanks to @andreasra
+ * @see
*/
public function StartEnd() {
// footnotes start tag short code options:
@@ -384,7 +394,7 @@ class MCI_Footnotes_Layout_Settings extends MCI_Footnotes_LayoutEngine {
$l_obj_Template->replace(
array(
- "description" => __("WARNING: Short codes with closing pointy brackets are disabled in the new WordPress Block Editor that disrupts the traditional balanced escapement applied by WordPress Classic Editor.", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
+ "description-escapement" => __("WARNING: Short codes with closing pointy brackets are disabled in the new WordPress Block Editor that disrupts the traditional balanced escapement applied by WordPress Classic Editor.", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
"label-short-code-start" => $this->addLabel(MCI_Footnotes_Settings::C_STR_FOOTNOTES_SHORT_CODE_START, __("Footnote start tag short code:", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)),
"short-code-start" => $this->addSelectBox(MCI_Footnotes_Settings::C_STR_FOOTNOTES_SHORT_CODE_START, $l_arr_ShortCodeStart),
@@ -395,15 +405,19 @@ class MCI_Footnotes_Layout_Settings extends MCI_Footnotes_LayoutEngine {
"short-code-end-user" => $this->addTextBox(MCI_Footnotes_Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED),
// for script showing/hiding user defined text boxes:
- "short-code-start-id" => MCI_Footnotes_Settings::C_STR_FOOTNOTES_SHORT_CODE_START,
+ "short-code-start-id" => MCI_Footnotes_Settings::C_STR_FOOTNOTES_SHORT_CODE_START,
"short-code-end-id" => MCI_Footnotes_Settings::C_STR_FOOTNOTES_SHORT_CODE_END,
"short-code-start-user-id" => MCI_Footnotes_Settings::C_STR_FOOTNOTES_SHORT_CODE_START_USER_DEFINED,
"short-code-end-user-id" => MCI_Footnotes_Settings::C_STR_FOOTNOTES_SHORT_CODE_END_USER_DEFINED,
- // option to enable syntax validation:
+ "description-parentheses" => __("WARNING: Although widespread industry standard, the double parentheses are problematic because they may occur in scripts embedded in the content and be mistaken as a short code.", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
+
+ // option to enable syntax validation, label mirrored in task.php:
"label-syntax" => $this->addLabel(MCI_Footnotes_Settings::C_BOOL_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, __("Check for balanced shortcodes:", MCI_Footnotes_Config::C_STR_PLUGIN_NAME)),
"syntax" => $this->addSelectBox(MCI_Footnotes_Settings::C_BOOL_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE, $l_arr_Enable),
"notice-syntax" => __("In the presence of a lone start tag shortcode, a warning displays below the post title.", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
+
+ "description-syntax" => __("If the start tag short code is ‘((’ or ‘(((’, it will not be reported as unbalanced if the following string contains braces hinting that it is a script.", MCI_Footnotes_Config::C_STR_PLUGIN_NAME),
)
);
// display template with replaced placeholders
@@ -550,6 +564,7 @@ class MCI_Footnotes_Layout_Settings extends MCI_Footnotes_LayoutEngine {
* Edited heading 2020-12-12T1453+0100
* @since 2.1.1 more settings and notices, thanks to @nikelaos
* @see
+ * @see
* @since 2.2.0 dedicated to the excerpt setting and its notices 2020-12-12T1454+0100
*/
public function Excerpts() {
diff --git a/class/settings.php b/class/settings.php
index 271ed6a..d282fdf 100644
--- a/class/settings.php
+++ b/class/settings.php
@@ -6,7 +6,7 @@
* @author Stefan Herndler
* @since 1.5.0 14.09.14 10:43
*
- * Last modified: 2021-01-02T2340+0100
+ * Last modified: 2021-01-07T2206+0100
*
* Edited:
* @since 2.0.4 restore arrow settings 2020-11-02T2115+0100
diff --git a/class/task.php b/class/task.php
index 3862fca..20fe81b 100644
--- a/class/task.php
+++ b/class/task.php
@@ -8,7 +8,7 @@
*
* Edited for v2.0.0 and following.
*
- * Last modified: 2021-01-04T1623+0100
+ * Last modified: 2021-01-07T2219+0100
*
* @since 2.0.5 Autoload / infinite scroll support added thanks to code from @docteurfitness
* @see
@@ -72,6 +72,12 @@
* @since 2.4.0 set empty reference container label to NNBSP to make it more robust, thanks to @lukashuggenberg 2021-01-04T0504+0100
* @since 2.4.0 optimize template load and process, thanks to @misfist 2021-01-04T1355+0100
* @since 2.4.0 initialize hard link address as empty to fix undefined variable bug, thanks to @a223123131 2021-01-04T1622+0100
+ * @since 2.5.0 Shortcode syntax validation: exclude certain cases involving scripts, thanks to @andreasra 2021-01-07T0824+0100
+ * @since 2.5.0 Shortcode syntax validation: complete message with hint about setting, thanks to @andreasra
+ * @since 2.5.0 Shortcode syntax validation: limit length of quoted string to 300 characters, thanks to @andreasra
+ * @see
+ * @since 2.5.0 Hooks: support the term_description hook, thanks to @vitaefit (feature) and @misfist (hook name)
+ * @see
*/
// If called directly, abort:
@@ -247,9 +253,12 @@ class MCI_Footnotes_Task {
* @since 1.5.0
*
* Edited for:
- * @since 2.0.5 through v2.0.7 changes to priority 2020-11-02T0330+0100..2020-11-06T1344+0100
- * @since 2.1.1 add setting for the_content
- * @since 2.1.2 add settings for 4 other hooks 2020-11-19T1248+0100
+ * @since 2.0.5 through v2.0.7 changes to priority 2020-11-02T0330+0100..2020-11-06T1344+0100
+ * @since 2.1.1 add setting for the_content
+ * @since 2.1.2 add settings for 4 other hooks 2020-11-19T1248+0100
+ *
+ * @since 2.5.0 support for the term_description hook, thanks to @vitaefit (feature) and @misfist (hook name)
+ * @see
*
* Setting the_content priority to "10" instead of PHP_INT_MAX i.e. 9223372036854775807
* makes the footnotes reference container display beneath the post and above other
@@ -293,6 +302,7 @@ class MCI_Footnotes_Task {
// custom priority level for reference container relative positioning; default 98:
if (MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_EXPERT_LOOKUP_THE_CONTENT))) {
add_filter('the_content', array($this, "the_content"), $p_int_TheContentPriority);
+ add_filter('term_description', array($this, "the_content"), $p_int_TheContentPriority);
}
if (MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_EXPERT_LOOKUP_THE_EXCERPT))) {
@@ -305,6 +315,11 @@ class MCI_Footnotes_Task {
add_filter('widget_text', array($this, "widget_text"), $p_int_WidgetTextPriority);
}
+ // HOOK FOR CATEGORY PAGES:
+ // 2021-01-05T1402+0100
+ // see
+ // add_filter('term_description', array($this, "the_content"), $p_int_TheContentPriority);
+
// REMOVED the_post HOOK 2020-11-08T1839+0100
//
@@ -772,6 +787,10 @@ class MCI_Footnotes_Task {
* Edited since 2.0.0
*
* @since 2.4.0 footnote shortcode syntax validation
+ * @since 2.5.0 Shortcode syntax validation: exclude certain cases involving scripts, thanks to @andreasra 2021-01-07T0824+0100
+ * @since 2.5.0 Shortcode syntax validation: complete message with hint about setting, thanks to @andreasra
+ * @since 2.5.0 Shortcode syntax validation: limit length of quoted string to 300 characters, thanks to @andreasra
+ * @see
*/
public function search($p_str_Content, $p_bool_ConvertHtmlChars, $p_bool_HideFootnotesText) {
@@ -780,7 +799,7 @@ class MCI_Footnotes_Task {
// contains the index for the next footnote on this page
$l_int_FootnoteIndex = count(self::$a_arr_Footnotes) + 1;
-
+
// contains the starting position for the lookup of a footnote
$l_int_PosStart = 0;
@@ -805,9 +824,24 @@ class MCI_Footnotes_Task {
// if footnotes short codes are unbalanced, and syntax validation is not disabled,
// return content with prepended warning:
if (MCI_Footnotes_Convert::toBool(MCI_Footnotes_Settings::instance()->get(MCI_Footnotes_Settings::C_BOOL_FOOTNOTE_SHORTCODE_SYNTAX_VALIDATION_ENABLE))) {
+
+ // convert the shortcodes to regex syntax conformant:
$l_str_StartTagRegex = preg_replace( '#([\(\)\{\}\[\]\*\.\?\!])#', '\\\\$1', $l_str_StartingTag );
$l_str_EndTagRegex = preg_replace( '#([\(\)\{\}\[\]\*\.\?\!])#', '\\\\$1', $l_str_EndingTag );
- $l_str_ValidationRegex = '#' . $l_str_StartTagRegex . '(((?!' . $l_str_EndTagRegex . ').)*?)(' . $l_str_StartTagRegex . '|$)#s';
+
+ // apply different regex depending on whether start shortcode is double/triple opening parenthesis:
+ if ( $l_str_StartingTag == '((' || $l_str_StartingTag == '(((' ) {
+
+ // this prevents from catching a script containing e.g. a double opening parenthesis:
+ $l_str_ValidationRegex = '#' . $l_str_StartTagRegex . '(((?!' . $l_str_EndTagRegex . ')[^\{\}])*?)(' . $l_str_StartTagRegex . '|$)#s';
+
+ } else {
+
+ // catch all only if the start shortcode is not double/triple opening parenthesis, i.e. is unlikely to occur in scripts:
+ $l_str_ValidationRegex = '#' . $l_str_StartTagRegex . '(((?!' . $l_str_EndTagRegex . ').)*?)(' . $l_str_StartTagRegex . '|$)#s';
+ }
+
+ // check syntax and get error locations:
preg_match( $l_str_ValidationRegex, $p_str_Content, $p_arr_ErrorLocation );
if ( empty( $p_arr_ErrorLocation ) ) {
self::$l_bool_SyntaxErrorFlag = false;
@@ -815,15 +849,33 @@ class MCI_Footnotes_Task {
// prevent generating and inserting the warning multiple times:
if ( self::$l_bool_SyntaxErrorFlag ) {
- $l_str_ErrorSpotString = strip_tags($p_arr_ErrorLocation[1]);
+ // get plain text string for error location:
+ $l_str_ErrorSpotString = strip_tags( $p_arr_ErrorLocation[1] );
+
+ // limit string length to 300 characters:
+ if ( strlen( $l_str_ErrorSpotString ) > 300 ) {
+ $l_str_ErrorSpotString = substr( $l_str_ErrorSpotString, 0, 299 ) . '…';
+ }
+
+ // compose warning box:
$l_str_SyntaxErrorWarning = '';
+ // prepend the warning box to the content:
$p_str_Content = $l_str_SyntaxErrorWarning . $p_str_Content;
+
+ // checked, set flag to false to prevent duplicate warning:
self::$l_bool_SyntaxErrorFlag = false;
return $p_str_Content;
@@ -1276,10 +1328,10 @@ class MCI_Footnotes_Task {
// INDEX COLUMN WITH ONE BACKLINK PER TABLE ROW
// if enabled, and for the case the footnote is single, compose hard link:
- // define variable as empty for the reference container if not enabled:
- $l_str_HardLinkAddress = '';
-
- if (self::$l_bool_HardLinksEnable) {
+ // define variable as empty for the reference container if not enabled:
+ $l_str_HardLinkAddress = '';
+
+ if (self::$l_bool_HardLinksEnable) {
// compose fragment ID anchor with offset, for use in reference container, an
// empty span child of empty span to avoid tall dotted rectangles in browser:
diff --git a/class/template.php b/class/template.php
index b44dc0c..67db337 100644
--- a/class/template.php
+++ b/class/template.php
@@ -6,7 +6,7 @@
* @author Stefan Herndler
* @since 1.5.0 14.09.14 10:58
*
- * Last modified: 2021-01-02T2352+0100
+ * Last modified: 2021-01-07T2209+0100
*
* Edited:
* @since 2.0.3 prettify reference container template
@@ -18,6 +18,8 @@
* @see
* @since 2.4.0 templates may be in active theme, thanks to @misfist
* @see
+ * @since 2.5.0 Enable template location stack, contributed by @misfist
+ * @see
*/
@@ -68,7 +70,7 @@ class MCI_Footnotes_Template {
/**
* Plugin Directory
- *
+ *
* @author Patrizia Lutz @misfist
* @since 2.4.0d3
*
@@ -93,7 +95,7 @@ class MCI_Footnotes_Template {
* @see
*
* @since 2.2.6 delete a space before a closing pointy bracket
- *
+ *
* @since 2.4.0 look for custom template in the active theme first, thanks to @misfist
* @see
*/
@@ -105,18 +107,18 @@ class MCI_Footnotes_Template {
/**
* Define plugin root path
- *
+ *
* @since 2.4.0d3
- *
+ *
* @author Patrizia Lutz @misfist
*/
$this->plugin_directory = plugin_dir_path( dirname( __FILE__ ) );
/**
* Modularize functions
- *
+ *
* @since 2.4.0d3
- *
+ *
* @author Patrizia Lutz @misfist
*/
if( $template = $this->get_template( $p_str_FileType, $p_str_FileName, $p_str_Extension ) ) {
@@ -173,11 +175,11 @@ class MCI_Footnotes_Template {
return $this->a_str_ReplacedContent;
}
- /**
+ /**
* Process template file
- *
+ *
* @author Patrizia Lutz @misfist
- *
+ *
* @since 2.4.0d3
*
* @param string $template
@@ -194,9 +196,9 @@ class MCI_Footnotes_Template {
/**
* Get the template
- *
+ *
* @author Patrizia Lutz @misfist
- *
+ *
* @since 2.4.0d3
*
* @param string $p_str_FileType
@@ -221,17 +223,17 @@ class MCI_Footnotes_Template {
/**
* Look in active (child) theme
*/
- if ( file_exists( trailingslashit( get_stylesheet_directory() ) . $template_directory . $template_name ) ) {
+ if ( file_exists( trailingslashit( get_stylesheet_directory() ) . $template_directory . $template_name ) ) {
$located = trailingslashit( get_stylesheet_directory() ) . $template_directory . $template_name;
-
+
/**
* Look in parent theme
*/
} elseif ( file_exists( trailingslashit( get_template_directory() ) . $template_directory . $template_name ) ) {
$located = trailingslashit( get_template_directory() ) . $template_directory . $template_name;
-
+
/**
- * Look custom directory
+ * Look in custom directory
*/
} elseif ( file_exists( trailingslashit( WP_PLUGIN_DIR ) . $custom_directory . 'templates/' . $template_name ) ) {
$located = trailingslashit( WP_PLUGIN_DIR ) . $custom_directory . 'templates/' . $template_name;
diff --git a/css/public.css b/css/public.css
index 8a12f6a..a7c41e8 100755
--- a/css/public.css
+++ b/css/public.css
@@ -5,9 +5,9 @@
* Created-Time: 16:21
* Since: 1.0
*
- * Version: 2.4.0
+ * Version: 2.5.0
*
- * Last modified: 2021-01-02T1203+0100
+ * Last modified: 2021-01-07T0851+0100
*
*
* Classes added to public.css may be added to the
@@ -62,28 +62,39 @@ issue with missing content or footnotes, while it may
be hard to detect in long posts and under deadline.
A validation check displays a warning box below the
-post title, populated with the first instance of a
-content snippet preceded by an unbalanced start tag
-short code.
+post title, populated with 300 characters of contente
+preceded by the first unbalanced start tag short code.
@since 2.4.0
+@since 2.5.0 improvement increased paragraph number
*/
.footnotes_validation_error {
- border: 4px solid red;
- padding: 20px;
- background: #ff000055;
+ border: 4px solid red;
+ padding: 20px 40px;
+ margin: 20px 0;
+ background: #ff000055;
+ text-align: start;
}
.footnotes_validation_error p:first-child {
- font-size: 20px;
- font-weight: bold;
- text-align: center;
+ font-size: 20px;
+ font-weight: bold;
+ text-align: center;
+}
+
+.footnotes_validation_error p:nth-child(2) {
+ font-size: 16px;
+ font-style: italic;
+}
+
+.footnotes_validation_error p:nth-child(3) {
+ font-size: 14px;
+ font-weight: bold;
}
.footnotes_validation_error p:last-child {
- font-size: 12px;
- text-align: start;
+ font-size: 12px;
}
/*****************************************************
diff --git a/css/settings.css b/css/settings.css
index 1d6c5d7..f343d34 100755
--- a/css/settings.css
+++ b/css/settings.css
@@ -5,9 +5,9 @@
* Created-Time: 16:21
* Since: 1.0
*
- * Version: 2.4.0
+ * Version: 2.5.0
*
- * Last modified: 2021-01-02T1204+0100
+ * Last modified: 2021-01-07T1816+0100
*/
@@ -166,51 +166,54 @@ Hooks and priority levels:
initialized from style attributes in templates
IE doesn’t support nth child, but these are not critical
*/
-#expert_lookup tr th:first-child,
-#expert_lookup tr td:first-child {
+.expert_lookup tr th:first-child,
+.expert_lookup tr td:first-child {
width: 170px !important;
}
-#expert_lookup tr th:nth-child(2),
-#expert_lookup tr td:nth-child(2) {
+.expert_lookup tr th:nth-child(2),
+.expert_lookup tr td:nth-child(2) {
width: 65px !important;
}
-#expert_lookup tr th:nth-child(3),
-#expert_lookup tr td:nth-child(3) {
+.expert_lookup tr th:nth-child(3),
+.expert_lookup tr td:nth-child(3) {
width: 200px !important;
}
-#expert_lookup tr td:nth-child(3) input {
+.expert_lookup tr td:nth-child(3) input {
width: 190px;
}
-#expert_lookup tr th:last-child,
-#expert_lookup tr td:last-child {
+.expert_lookup tr th:last-child,
+.expert_lookup tr td:last-child {
white-space: nowrap;
}
/*
Custom CSS
+The number of CSS classes recommended for customization
+significantly increased from 4 to 18 as of v2.4.0.
+
Localized notices are dropped to ease translators’ task.
-16 CSS classes are listed directly in the template
+CSS classes are listed directly in the template
templates/dashboard/customize-css.html
-
end tags are omitted per HTML5 standard, to improve
-maintainability and readability of the source list.
+For better maintainability and readability of the source
+list, the end tags are omitted per HTML5 standard:
The textarea has monospace font, but no other features
-helping edit CSS, as tab support and syntactic colors.
+helping edit CSS, like tab support and syntactic colors.
*/
-#customize_css_new tr td:first-child {
+.customize_css_new tr td:first-child {
width: 44% !important;
font-weight: normal !important;
}
-#customize_css_new tr td:first-child span:first-child {
+.customize_css_new tr td:first-child span:first-child {
font-weight: bold !important;
}
-#customize_css_new .list {
+.customize_css_new .list {
padding-top: 10px;
}
-#customize_css_new .list p {
+.customize_css_new .list p {
font-family: monospace;
padding: 0 10px;
text-indent: -10px;
diff --git a/footnotes.php b/footnotes.php
index 8910131..6c8d1b8 100755
--- a/footnotes.php
+++ b/footnotes.php
@@ -4,12 +4,12 @@
Plugin URI: https://wordpress.org/plugins/footnotes/
Description: time to bring footnotes to your website! footnotes are known from offline publishing and everybody takes them for granted when reading a magazine.
Author: Mark Cheret
- Version: 2.5.0d0
+ Version: 2.5.0
Author URI: http://cheret.de/plugins/footnotes-2/
Text Domain: footnotes
Domain Path: /languages
*/
-define( 'FOOTNOTES_VERSION', '2.5.0d0' );
+define( 'FOOTNOTES_VERSION', '2.5.0' );
/*
Copyright 2020 Mark Cheret (email: mark@cheret.de)
diff --git a/readme.txt b/readme.txt
index eb245ef..c474daf 100755
--- a/readme.txt
+++ b/readme.txt
@@ -80,17 +80,24 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
== Changelog ==
-= 2.4.0 =
-- Bugfix: initialize hard link address as empty to fix undefined variable bug, thanks to @a223123131
-- Bugfix: Shortcodes: Dashboard: warning about '>' escapement disruption in WordPress Block Editor
-- Bugfix: Shortcodes: Dashboard: remove new option involving HTML comment tags only usable in source mode
+= 2.5.0 =
- Add: Customization: Enable template location stack, contributed by @misfist
-- Bugfix: optimize template load and process according to settings, thanks to @misfist
+- Bugfix: Hooks: support the term_description hook, thanks to @vitaefit (feature) and @misfist (hook name)
+- Bugfix: Shortcode syntax validation: exclude certain cases involving scripts, thanks to @andreasra
+- Bugfix: Shortcode syntax validation: complete message with hint about setting, thanks to @andreasra
+- Bugfix: Shortcode syntax validation: limit length of quoted string to 300 characters, thanks to @andreasra
+- Update: Shortcode syntax validation: add more information around the setting, thanks to @andreasra
+- Bugfix: Shortcodes: Dashboard: warning about '>' escapement disruption in WordPress Block Editor
+
+= 2.4.0 =
- Add: Shortcodes: syntax validation for balanced footnote start and end tag short codes
+- Bugfix: initialize hard link address variable to empty to fix 'undefined variable' bug, thanks to @a223123131
+- Bugfix: Shortcodes: Dashboard: remove new option involving HTML comment tags only usable in source mode
+- Bugfix: optimize template load and process according to settings, thanks to @misfist
- Bugfix: Reference container: Row borders: adapt left padding to the presence of an optional left border
- Bugfix: Reference container: Label: set empty label to U+202F NNBSP for more robustness, thanks to @lukashuggenberg
- Bugfix: Scroll offset: initialize to safer one third window height for more robustness, thanks to @lukashuggenberg
-- Bugfix: Reference container: add class 'footnote_plugin_symbol' to disambiguate repurposed class footnote_plugin_link
+- Bugfix: Reference container: add class 'footnote_plugin_symbol' to disambiguate repurposed class 'footnote_plugin_link'
= 2.3.0 =
- Add: optional hard links in referrers and backlinks for AMP compatibility, thanks to @psykonevro and @martinneumannat
@@ -125,14 +132,15 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
- Add: Customization: support for custom templates in sibling folder (should be filterable function, thanks to @misfist)
= 2.2.5 =
-- Add: Dashboard: Footnotes numbering: add support for Ibid. notation in suggestions for guidance, thanks to @meglio
-- Add: Reference container: support options for label element and label bottom border, thanks to @markhillyer
+- Bugfix: Dashboard: Footnotes numbering: add missing support for Ibid. notation to suggestions, thanks to @meglio
+- Bugfix: Reference container: Label: not enforce bottom border but make it an option, thanks to @markhillyer
+- Bugfix: Reference container: Label: allow to switch from paragraph element to heading, thanks to @markhillyer
- Bugfix: Referernce container: delete position shortcode if unused because position may be widget or footer, thanks to @hamshe
- Bugfix: Dashboard: Tooltip position/timing settings: include alternative tooltips (for themes not supporting jQuery tooltips)
- Bugfix: Dashboard: Tooltip position/timing settings: raise above tooltip truncation settings for better consistency
= 2.2.4 =
-- Bugfix: Reference container: Backlink symbol selection: moved back to previous tab “Referrers and tooltips”
+- Bugfix: Reference container: Backlink symbol selection: move back to previous tab “Referrers and tooltips”
- Bugfix: Custom CSS: make inserting existing in header depend on migration complete checkbox status
= 2.2.3 =
@@ -140,7 +148,7 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
= 2.2.2 =
- Bugfix: Dashboard: Link element setting only under General settings > Reference container
-- Add: Dashboard: migrate Custom CSS to dedicated new tab, keep legacy until checking a box
+- Bugfix: Dashboard: Custom CSS: unearth text area and migrate to dedicated tab as designed
- Bugfix: Reference container: edits to optional basic responsive page layout style sheets
= 2.2.1 =
@@ -148,16 +156,16 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
= 2.2.0 =
- Add: Reference container: support for custom position shortcode, thanks to @hamshe
-- Update: Priority levels: update the notice in the dashboard Priority tab
-- Bugfix: Tooltips: add 'important' property to z-index to fix display overlay issue
- Add: Start/end short codes: more predefined options
- Add: Numbering styles: lowercase Roman numerals support
-- Update: Dashboard: Tooltip settings: grouped into 3 thematic containers
-- Update: Dashboard: Main settings: grouped into 3 specific containers
-- Update: Dashboard: moved link element option to the Referrers options
-- Update: Dashboard: moved URL wrap option to the Reference container options
-- Update: Dashboard: grouped both Custom CSS and priority level settings under the same tab
-- Update: Dashboard: renamed tab labels 'Referrers and tooltips', 'Priority and CSS'
+- Update: Priority levels: update the notice in the dashboard Priority tab
+- Update: Dashboard: Tooltip settings: group into 3 thematic containers
+- Update: Dashboard: Main settings: group into 3 specific containers
+- Update: Dashboard: move link element option to the Referrers options
+- Update: Dashboard: move URL wrap option to the Reference container options
+- Update: Dashboard: group both Custom CSS and priority level settings under the same tab
+- Update: Dashboard: rename tab labels 'Referrers and tooltips', 'Priority and CSS'
+- Bugfix: Tooltips: add 'important' property to z-index to fix display overlay issue
- Bugfix: Localization: correct arguments for plugin textdomain load function
- Bugfix: Reference container, tooltips: URL wrap: specifically catch the quotation mark
- Add: Footnotes mention in the footer: more options
@@ -176,13 +184,14 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
- Bugfix: Reference container, tooltips: URL wrap: exclude image source too, thanks to @bjrnet21
= 2.1.4 =
-- Add: Dashboard: Main settings: add settings for scroll offset and duration
-- Add: Dashboard: Tooltip settings: add settings for display delays and fade durations
-- Add: Styling: Tooltips: fix font size issue by adding font size to settings with legacy as default
-- Add: Reference container: fix theme-dependent layout issues by optionally enqueuing additional style sheet
-- Add: Reference container: fix layout issues by moving backlink column width to settings
-- Add: Reference container: separating and terminating punctuation optional and customizable
-- Add: Reference container: Backlinks: optional line breaks to stack enumerations
+- Bugfix: Scroll offset: make configurable to fix site-dependent issues related to fixed headers
+- Bugfix: Scroll duration: make configurable to conform to website content and style requirements
+- Bugfix: Tooltips: make display delays and fade durations configurable to conform to website style
+- Bugfix: Styling: Tooltips: fix font size issue by adding font size to settings with legacy as default
+- Bugfix: Reference container: fix layout by optionally enqueuing additional style sheet (depends on theme)
+- Bugfix: Reference container: fix layout issues by moving backlink column width to settings
+- Bugfix: Reference container: make separating and terminating punctuation optional and configurable
+- Bugfix: Reference container: Backlinks: fix stacked enumerations by adding optional line breaks
- Bugfix: Layout: Tooltips: prevent line break in Read-on link label
- Bugfix: Styling: Referrers and backlinks: make link elements optional to fix issues
- Bugfix: Styling: Referrers: disable hover underline
@@ -265,6 +274,7 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
- Update: UX: Tooltip: set display predelay to 0 for responsiveness (was 800 since 2.0.0, 400 before)
- Update: UX: Tooltip: set fade duration to 200ms both ways (was 200 in and 2000 out since 2.0.0, 0 in and 100 out before)
- BUGFIX: Priority level back to PHP_INT_MAX (ref container positioning not this plugin’s responsibility)
+- Update: Scroll offset: raise percentage from 12% to a safer 20% inner window height, by lack of configurability
= 2.0.5 =
- Bugfix: Get references container close to content, not below all other features, by priority level 10
@@ -291,6 +301,7 @@ Visit this swift write-up from a **footnotes** user by the name of **Southwest**
- Bugfix: Print style: prevent a page break just after the reference container label
- Bugfix: Print style: Hide reference collapse button
- Update: Layout: Removed padding before reference container label
+- Update: Scroll offset: raise percentage from 5% to a safer 12% inner window height, by lack of configurability
= 2.0.2 =
- Bugfix: Restored expand/collapse button of reference container
diff --git a/templates/dashboard/customize-css-migration.html b/templates/dashboard/customize-css-migration.html
index 24c3830..1ed6521 100644
--- a/templates/dashboard/customize-css-migration.html
+++ b/templates/dashboard/customize-css-migration.html
@@ -1,7 +1,7 @@
-
+
[[label-css]] |
diff --git a/templates/dashboard/customize-css-new.html b/templates/dashboard/customize-css-new.html
index 74b737b..fc907e4 100644
--- a/templates/dashboard/customize-css-new.html
+++ b/templates/dashboard/customize-css-new.html
@@ -1,4 +1,4 @@
-
+
[[headline]]
diff --git a/templates/dashboard/customize-css.html b/templates/dashboard/customize-css.html
index 5c2dbe0..2101474 100644
--- a/templates/dashboard/customize-css.html
+++ b/templates/dashboard/customize-css.html
@@ -1,7 +1,7 @@
-
+
[[label-css]] |
diff --git a/templates/dashboard/customize-hyperlink-arrow.html b/templates/dashboard/customize-hyperlink-arrow.html
index 148a903..030df5d 100644
--- a/templates/dashboard/customize-hyperlink-arrow.html
+++ b/templates/dashboard/customize-hyperlink-arrow.html
@@ -1,7 +1,7 @@
-
+
[[label-symbol]] |
diff --git a/templates/dashboard/customize-superscript.html b/templates/dashboard/customize-superscript.html
index ed520aa..aa61e71 100644
--- a/templates/dashboard/customize-superscript.html
+++ b/templates/dashboard/customize-superscript.html
@@ -1,4 +1,4 @@
-
+
[[label-superscript]] |
diff --git a/templates/dashboard/diagnostics.html b/templates/dashboard/diagnostics.html
index bb9a428..fc8d1af 100644
--- a/templates/dashboard/diagnostics.html
+++ b/templates/dashboard/diagnostics.html
@@ -1,4 +1,4 @@
-
+
[[label-server]] |
diff --git a/templates/dashboard/expert-lookup.html b/templates/dashboard/expert-lookup.html
index d296c7e..5fda00d 100644
--- a/templates/dashboard/expert-lookup.html
+++ b/templates/dashboard/expert-lookup.html
@@ -3,7 +3,7 @@
[[description-2]]
[[description-3]]
-
+
[[head-hook]] |
diff --git a/templates/dashboard/mouse-over-box-appearance.html b/templates/dashboard/mouse-over-box-appearance.html
index 395db79..c9f7ffb 100644
--- a/templates/dashboard/mouse-over-box-appearance.html
+++ b/templates/dashboard/mouse-over-box-appearance.html
@@ -1,4 +1,4 @@
-
+
[[label-font-size]] |
diff --git a/templates/dashboard/mouse-over-box-display.html b/templates/dashboard/mouse-over-box-display.html
index 963f15e..a1d1628 100644
--- a/templates/dashboard/mouse-over-box-display.html
+++ b/templates/dashboard/mouse-over-box-display.html
@@ -1,4 +1,4 @@
-
+
[[label-enable]] |
diff --git a/templates/dashboard/mouse-over-box-position.html b/templates/dashboard/mouse-over-box-position.html
index 6a35464..e1eae8a 100644
--- a/templates/dashboard/mouse-over-box-position.html
+++ b/templates/dashboard/mouse-over-box-position.html
@@ -1,4 +1,4 @@
-
+
[[label-position]] |
diff --git a/templates/dashboard/mouse-over-box-timing.html b/templates/dashboard/mouse-over-box-timing.html
index a15b234..aeabba6 100644
--- a/templates/dashboard/mouse-over-box-timing.html
+++ b/templates/dashboard/mouse-over-box-timing.html
@@ -1,4 +1,4 @@
-
+
[[label-fade-in-delay]] |
diff --git a/templates/dashboard/mouse-over-box-truncation.html b/templates/dashboard/mouse-over-box-truncation.html
index 66a8be0..7afe49f 100644
--- a/templates/dashboard/mouse-over-box-truncation.html
+++ b/templates/dashboard/mouse-over-box-truncation.html
@@ -1,4 +1,4 @@
-
+
[[label-truncation]] |
diff --git a/templates/dashboard/settings-excerpts.html b/templates/dashboard/settings-excerpts.html
index e2236a3..2f4143c 100644
--- a/templates/dashboard/settings-excerpts.html
+++ b/templates/dashboard/settings-excerpts.html
@@ -1,4 +1,4 @@
-
+
[[label-excerpts]] |
diff --git a/templates/dashboard/settings-love.html b/templates/dashboard/settings-love.html
index 728d954..21d775b 100644
--- a/templates/dashboard/settings-love.html
+++ b/templates/dashboard/settings-love.html
@@ -1,4 +1,4 @@
-
+
[[label-love]] |
diff --git a/templates/dashboard/settings-numbering.html b/templates/dashboard/settings-numbering.html
index 1b328dd..18a0c60 100644
--- a/templates/dashboard/settings-numbering.html
+++ b/templates/dashboard/settings-numbering.html
@@ -1,4 +1,4 @@
-
+
[[label-counter-style]] |
diff --git a/templates/dashboard/settings-reference-container.html b/templates/dashboard/settings-reference-container.html
index e2769ae..f08e7db 100644
--- a/templates/dashboard/settings-reference-container.html
+++ b/templates/dashboard/settings-reference-container.html
@@ -1,4 +1,4 @@
-
+
[[label-name]] |
diff --git a/templates/dashboard/settings-scrolling.html b/templates/dashboard/settings-scrolling.html
index bf1ca11..2398e80 100644
--- a/templates/dashboard/settings-scrolling.html
+++ b/templates/dashboard/settings-scrolling.html
@@ -1,4 +1,4 @@
- |