TiddlyWiki5/plugins/tiddlywiki/freelinks
jeremy@jermolene.com f725123690 Simplify freelinks regexp
As discussed here: https://github.com/Jermolene/TiddlyWiki5/issues/6029#issuecomment-917612980
2021-09-14 10:22:27 +01:00
..
config-Freelinks-Enable.tid Initial commit of freelinks plugin 2020-01-03 10:40:35 +00:00
macros-view.tid Freelinks plugin: Add support for ignoring case 2020-05-02 14:07:39 +01:00
plain-text.js Initial commit of freelinks plugin 2020-01-03 10:40:35 +00:00
plugin.info Initial commit of freelinks plugin 2020-01-03 10:40:35 +00:00
readme.tid Merge branch 'tiddlywiki-com' 2020-08-28 15:25:47 +01:00
settings.tid Freelinks: Add a filter for which tiddlers can be the targets of freelinks 2021-02-13 12:03:35 +00:00
styles.tid Add a faint background to freelinks 2020-01-04 16:33:52 +00:00
text.js Simplify freelinks regexp 2021-09-14 10:22:27 +01:00

readme.tid

title: $:/plugins/tiddlywiki/freelinks/readme

This plugin adds automatic generation of links to tiddler titles.

''Note that automatic link generation can be very slow when there are a large number of tiddlers''.

Freelinking is activated for runs of text that have the following variables set:

* `tv-wikilinks` is NOT equal to `no`
* `tv-freelinks` is set to `yes`

Freelinks are case sensitive by default but can be configured to ignore case in the settings tab.

Within view templates, the variable `tv-freelinks` is automatically set to the content of $:/config/Freelinks/Enable, which can be set via the settings panel of this plugin.

!! Notes

To change within which tiddlers freelinking occurs requires customising the shadow tiddler [[$:/plugins/tiddlywiki/freelinks/macros/view]]. This tiddler is tagged $:/tags/Macro/View  which means that it will be included as a local macro in each view template. By default, its content is:

```
<$set name="tv-freelinks" value={{$:/config/Freelinks/Enable}}/>
```

That means that for each tiddler the variable tv-freelinks will be set to the tiddler $:/config/Freelinks/Enable, which is set to "yes" or "no" by the settings in control panel.

Instead, we can use a filter expression to, say, only freelink within the tiddler with the title "HelloThere":

```
<$set name="tv-freelinks" value={{{ [<currentTiddler>match[HelloThere]then[yes]else[no]] }}}/>
```

Or, we can make a filter that will only freelink within tiddlers with the tag "MyTag":

```
<$set name="tv-freelinks" value={{{ [<currentTiddler>tag[MyTags]then[yes]else[no]] }}}/>
```

Or we can combine both approaches:

```
<$set name="tv-freelinks" value={{{ [<currentTiddler>match[HelloThere]] ~[<currentTiddler>tag[MyTag]] +[then[yes]else[no]] }}}/>
```