1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2025-11-14 14:27:16 +00:00

Add additional searchModes to Dynannotate (#7260)

* Add searchModes: literal, some and words

* Add additional search modes

Description of selection tracker config tiddlers was also changed.

* Update simple.tid

* Improve View Template examples

Transcludes a sample tiddler for demonstration instead of the dynannotate view template code.
Adds an example for usage with $genesis to add state tiddler controlled per-tiddler highlights.

* Make search highlights not case sensitive

* Remove created and modified fields

* Add another example text (Searching in Tiddlywiki)

* Add dynannotate for vercel deployment

This should probably not be merged...

* Create LegacySelectionTracker.tid

* Create SelectionTracker.tid

* Revert putting the SelectionTracker config titles in code blocks

* Replace inline styles with CSS class

* Add class for view template examples

Class name is tc-dynannotate-example-frame.

* Remove some <br> line breaks.

* Remove first example transclusion and fix some tab spacing

* Add class to override control panel table layout

* Add class to settings table

* More tab shenanigans

Great Scott!

* Add explanatory comment to example macro

* Change defaults to match widget behavior

* Make previous macro comment more concise

* Change example to transclude CP tiddler

$:/core/ui/ControlPanel/TiddlerFields

* Delete unnecessary example tiddler
This commit is contained in:
yaisog
2023-05-06 12:30:21 +02:00
committed by GitHub
parent 4e641f4fc0
commit 2340d48844
9 changed files with 125 additions and 64 deletions

View File

@@ -15,7 +15,7 @@ Structure for modelling mapping between a string and its representation in the D
var PREFIX_SUFFIX_LENGTH = 50;
/*
Build a map of the text content of a dom node and its descendents:
Build a map of the text content of a DOM node and its descendants:
string: concatenation of the text content of child nodes
metadata: array of {start,end,domNode} where start and end identify position in the string
@@ -60,7 +60,7 @@ exports.TextMap.prototype.locateMetadata = function(position) {
};
/*
Search for the first occurance of a target string within the textmap of a dom node
Search for the first occurrence of a target string within the textmap of a DOM node
Returns an object with the following properties:
startNode: node containing the start of the text
@@ -92,10 +92,10 @@ exports.TextMap.prototype.findText = function(targetString,targetPrefix,targetSu
};
/*
Search for all occurances of a string within the textmap of a dom node
Search for all occurrences of a string within the textmap of a DOM node
Options include:
mode: "normal", "regexp" or "whitespace"
mode: "normal", "literal", "regexp", "whitespace", "some" or "words"
caseSensitive: true if the search should be case sensitive
Returns an array of objects with the following properties:
@@ -121,6 +121,11 @@ exports.TextMap.prototype.search = function(searchString,options) {
regExpString = "(" + searchString.split(/\s+/g).filter(function(word) {
return !!word
}).map($tw.utils.escapeRegExp).join("\\s+") + ")";
} else if(options.mode === "words" || options.mode === "some") {
// Match any word separated by whitespace
regExpString = "(" + searchString.split(/\s+/g).filter(function(word) {
return !!word
}).map($tw.utils.escapeRegExp).join("|") + ")";
} else {
// Normal search
regExpString = "(" + $tw.utils.escapeRegExp(searchString) + ")";