├── README.md └── $__ak_plugins_TWCrossLinks.json /README.md: -------------------------------------------------------------------------------- 1 | # TWCrossLinks 2 | TWCrossLinks is the core plugin of [Drift](https://akhater.github.io/drift) that I have repacked as a separate plugin since I realize that not a lot would prefer to add a plugin to their existing installation instead of install the whole package. 3 | 4 | # Features: 5 | * Adds a footer in the bottom of every Tiddler showing the keywords of that tiddler (if present) 6 | * Adds a footer in the bottom of every Tiddler showing all different types of inbound links to that tiddler (if present) 7 | _Backlinks_ | _Tags_ | _Keywords_ | _Freelinks_ 8 | * Footer won't show unless existing 9 | * _Backlinks_ & _Freelinks_ can be directly transcluded on hover 10 | 11 | # Change log 12 | ***2020-05-08***: v0.1.3 13 | 14 | * Added counter showing the number of inbound links 15 | * Fixed bug in Freelinks 16 | * Saved some screen real-estate in the footer 17 | * Added the possibility to remove the toggle and show the tabs by default saving even more screen estate 18 | 19 | ***2020-05-05***: v0.1.1 20 | * Inbound links for "Backlinks" and "Freelinks" can now be transcluded in a pop-up, try it by enabling this feature from the TWCrosslinks config panel 21 | * Bug fixes 22 | 23 | ***2020-05-03***: v0.0.7 24 | * Added configuration panel, can be found at $:/ak/plugins/TWCrossLinks 25 | * You can now set the Default state of the "inbound links" {Shown / Hidden} 26 | * You can now set the Default "inbound links" tab 27 | 28 | ***2020-05-02***: v0.0.3 29 | * Initial Release 30 | 31 | # Installation 32 | Download the [JSON file](https://github.com/akhater/TWCrossLinks/blob/master/%24__ak_plugins_TWCrossLinks.json) and drag/drop it in your TiddlyWiki 33 | 34 | # Usage & Demo site 35 | * Check [Drift](https://akhater.github.io/drift) 36 | 37 | # Credits 38 | * Danielo515 for his code of [Context Plugin](http://contextplugin.tiddlyspot.com/) 39 | 40 | 41 | # Discussion 42 | https://groups.google.com/forum/#!topic/tiddlywiki/9ra0s9AEKl4 43 | 44 | -------------------------------------------------------------------------------- /$__ak_plugins_TWCrossLinks.json: -------------------------------------------------------------------------------- 1 | [{"text":"{\n \"tiddlers\": {\n \"$:/ak/plugins/TWCrossLinks/config/default\": {\n \"created\": \"20200429195808011\",\n \"creator\": \"akhater\",\n \"text\": \"{\\n \\\"DefaultFoldData\\\": \\\"show\\\",\\n \\\"DefaultTab\\\": \\\"$:/ak/plugins/TWCrossLinks/core/backlinks\\\",\\n \\\"TranscludeInboundLinks\\\": \\\"true\\\",\\n \\\"HideInboundTitle\\\": \\\"false\\\",\\n \\\"UseFullMatch4Freelinks\\\": \\\"false\\\"\\n}\",\n \"bag\": \"default\",\n \"revision\": \"0\",\n \"type\": \"application/json\",\n \"title\": \"$:/ak/plugins/TWCrossLinks/config/default\",\n \"tags\": \"\",\n \"modified\": \"20200522132619441\",\n \"modifier\": \"akhater\"\n },\n \"$:/ak/plugins/TWCrossLinks/core/backlinks\": {\n \"created\": \"20200429182330136\",\n \"text\": \"\\\\define lingo-base() $:/language/TiddlerInfo/\\n<$list filter=\\\"[all[current]backlinks[]!is[system]!is[shadow]!tag[hide]sort[title]] -[is[current]]\\\" emptyMessage=<> variable=result>\\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[true]]\\\" variable=conf>\\n
<$link to=<> ><$view tiddler=<> field=title>
\\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[false]]\\\" variable=conf>\\n
\\n
\\n <$link to=<> ><$view tiddler=<> field=title template=\\\"$:/core/ui/ListItemTemplate\\\"> \\n <$context term=<> tiddler= <> /> \\n
\\n
\\n \\n\",\n \"bag\": \"default\",\n \"revision\": \"0\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"title\": \"$:/ak/plugins/TWCrossLinks/core/backlinks\",\n \"tags\": \"$:/tags/TWCrossLinks\",\n \"modified\": \"20200513143753383\",\n \"caption\": \"Backlinks\"\n },\n \"$:/ak/plugins/TWCrossLinks/core/freelinks\": {\n \"title\": \"$:/ak/plugins/TWCrossLinks/core/freelinks\",\n \"caption\": \"Freelinks\",\n \"created\": \"20200430051330741\",\n \"creator\": \"akhater\",\n \"modified\": \"20200522113718035\",\n \"modifier\": \"akhater\",\n \"tags\": \"$:/tags/TWCrossLinks\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define fullMatchPattern()\\n\\\\b$(currentTiddler)$\\\\b(?i)\\n\\\\end\\n\\n\\\\define PartialMatchPattern()\\n$(currentTiddler)$(?i)\\n\\\\end\\n\\n<$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[UseFullMatch4Freelinks]match[true]]\\\" variable=none>\\n <$set name=pattern value=<> >\\n <$list filter=\\\"[regexp:title] [regexp:text] -[all[current]backlinks[]] -[all[current]tagging[]] -[is[current]] -[tag[hide]] -[is[system]]\\\" emptyMessage=\\\"No freelinks to this tiddler\\\" variable=result>\\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[true]]\\\" variable=var1>\\n
<$link to=<> ><$view tiddler=<> field=title>
\\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[false]]\\\" variable=var1>\\n
\\n
\\n <$link to=<> ><$view tiddler=<> field=title> \\n <$context term=<> tiddler=<> /> \\n
\\n
\\n \\n \\n \\n\\n<$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[UseFullMatch4Freelinks]match[false]]\\\" variable=none>\\n <$set name=pattern value=<> >\\n <$list filter=\\\"[regexp:title] [regexp:text] -[all[current]backlinks[]] -[all[current]tagging[]] -[is[current]] -[tag[hide]] -[is[system]]\\\" emptyMessage=\\\"No freelinks to this tiddler\\\" variable=result>\\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[true]]\\\" variable=var1>\\n
<$link to=<> ><$view tiddler=<> field=title>
\\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[false]]\\\" variable=var1>\\n
\\n
\\n <$link to=<> ><$view tiddler=<> field=title> \\n <$context term=<> tiddler=<> /> \\n
\\n
\\n \\n \\n \\n\",\n \"revision\": \"0\",\n \"bag\": \"default\"\n },\n \"$:/ak/plugins/TWCrossLinks/core/keywords\": {\n \"title\": \"$:/ak/plugins/TWCrossLinks/core/keywords\",\n \"caption\": \"Keywords\",\n \"created\": \"20200429195123372\",\n \"creator\": \"akhater\",\n \"modified\": \"20200522105420967\",\n \"modifier\": \"akhater\",\n \"tags\": \"$:/tags/TWCrossLinks\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\n<$list filter=\\\"[search:keywords!is[system]!is[shadow]sort[title]]\\\" emptyMessage=\\\"There are no tiddler having this one as keyword\\\" variable=result>\\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[true]]\\\" variable=conf>\\n
<$link to=<> ><$view tiddler=<> field=title>
\\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[false]]\\\" variable=conf>\\n
\\n
\\n <$link to=<> ><$view tiddler=<> field=title template=\\\"$:/core/ui/ListItemTemplate\\\"> \\n <$transclude tiddler= <> /> \\n
\\n
\\n \\n\",\n \"revision\": \"0\",\n \"bag\": \"default\"\n },\n \"$:/ak/plugins/TWCrossLinks/core/tagging\": {\n \"title\": \"$:/ak/plugins/TWCrossLinks/core/tagging\",\n \"caption\": \"Tagged\",\n \"created\": \"20200429183952157\",\n \"creator\": \"akhater\",\n \"modified\": \"20200522113343160\",\n \"modifier\": \"akhater\",\n \"tags\": \"$:/tags/TWCrossLinks\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\n\\\\define lingo-base() $:/language/TiddlerInfo/\\n<$list filter=\\\"[all[current]tagging[]!is[system]!is[shadow]]\\\" emptyMessage=<> variable=result>\\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[true]]\\\" variable=conf>\\n
<$link to=<> ><$view tiddler=<> field=title>
\\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[TranscludeInboundLinks]] -[[false]]\\\" variable=conf>\\n
\\n
\\n <$link to=<> ><$view tiddler=<> field=title template=\\\"$:/core/ui/ListItemTemplate\\\"> \\n <$transclude tiddler= <> /> \\n
\\n
\\n \\n\\n\",\n \"revision\": \"0\",\n \"bag\": \"default\"\n },\n \"$:/ak/plugins/TWCrossLinks/ui/footer\": {\n \"created\": \"20200430143629582\",\n \"text\": \"\\\\define fullMatchPattern()\\n\\\\b$(currentTiddler)$\\\\b(?i)\\n\\\\end\\n\\n\\\\define PartialMatchPattern()\\n$(currentTiddler)$(?i)\\n\\\\end\\n\\n\\\\define showFooterTabs() \\n\\n <$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/TWCrossLinksSegment]!has[draft.of]] [[$:/ak/plugins/TWCrossLinks/ui/tabs]]\\\" variable=\\\"listItem\\\"><$transclude tiddler=<> mode=\\\"block\\\"> \\n\\n\\\\end\\n\\n<$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[UseFullMatch4Freelinks]match[true]]\\\" variable=none>\\n <$set name=\\\"text-pattern\\\" value=<>>\\n <$list filter=\\\"[all[current]tagging[]] [search:keywords] [regexp:text] [regexp:title] [all[current]backlinks[]] -[is[current]] -[tag[hide]] -[is[system]] +[limit[1]]\\\" variable=none>\\n <$reveal type=\\\"nomatch\\\" stateTitle=<> text=\\\"hide\\\">\\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[HideInboundTitle]] -[[true]]\\\" variable=conf>\\n
\\n \\n //<$count filter=\\\"[all[current]tagging[]] [search:keywords] [regexp:text] [regexp:title] [all[current]backlinks[]] -[is[current]] -[tag[hide]] -[is[system]]\\\" /> References:// \\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[DefaultFoldData]]\\\" variable=DefaultFoldState>\\n <$reveal type=\\\"nomatch\\\" stateTitle=\\\"$:/temp/TWCrossLinksFoldData\\\" stateIndex=<> text=\\\"show\\\" default=<> >\\n <$button class=<> setTitle=\\\"$:/temp/TWCrossLinksFoldData\\\" setIndex=<> setTo=\\\"show\\\">{{$:/core/images/unfold-button}} \\n \\n <$reveal type=\\\"match\\\" stateTitle=\\\"$:/temp/TWCrossLinksFoldData\\\" stateIndex=<> text=\\\"show\\\" default=<> >\\n <$button class=<> setTitle=\\\"$:/temp/TWCrossLinksFoldData\\\" setIndex=<> setTo=\\\"hide\\\" >{{$:/core/images/fold-button}} \\n <>\\n \\n \\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[HideInboundTitle]] -[[false]]\\\" variable=conf>\\n <>\\n \\n
\\n \\n \\n \\n\\n\\n<$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[UseFullMatch4Freelinks]match[false]]\\\" variable=none>\\n <$set name=\\\"text-pattern\\\" value=<>>\\n <$list filter=\\\"[all[current]tagging[]] [search:keywords] [regexp:text] [regexp:title] [all[current]backlinks[]] -[is[current]] -[tag[hide]] -[is[system]] +[limit[1]]\\\" variable=none>\\n <$reveal type=\\\"nomatch\\\" stateTitle=<> text=\\\"hide\\\">\\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[HideInboundTitle]] -[[true]]\\\" variable=conf>\\n
\\n \\n //<$count filter=\\\"[all[current]tagging[]] [search:keywords] [regexp:text] [regexp:title] [all[current]backlinks[]] -[is[current]] -[tag[hide]] -[is[system]]\\\" /> References:// \\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[DefaultFoldData]]\\\" variable=DefaultFoldState>\\n <$reveal type=\\\"nomatch\\\" stateTitle=\\\"$:/temp/TWCrossLinksFoldData\\\" stateIndex=<> text=\\\"show\\\" default=<> >\\n <$button class=<> setTitle=\\\"$:/temp/TWCrossLinksFoldData\\\" setIndex=<> setTo=\\\"show\\\">{{$:/core/images/unfold-button}} \\n \\n <$reveal type=\\\"match\\\" stateTitle=\\\"$:/temp/TWCrossLinksFoldData\\\" stateIndex=<> text=\\\"show\\\" default=<> >\\n <$button class=<> setTitle=\\\"$:/temp/TWCrossLinksFoldData\\\" setIndex=<> setTo=\\\"hide\\\" >{{$:/core/images/fold-button}} \\n <>\\n \\n \\n \\n <$list filter=\\\"[[$:/ak/plugins/TWCrossLinks/config/default]getindex[HideInboundTitle]] -[[false]]\\\" variable=conf>\\n <>\\n \\n
\\n \\n \\n \\n\",\n \"bag\": \"default\",\n \"revision\": \"0\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"title\": \"$:/ak/plugins/TWCrossLinks/ui/footer\",\n \"tags\": \"$:/tags/ViewTemplate\",\n \"modified\": \"20200518214521376\"\n },\n \"$:/ak/plugins/TWCrossLinks/ui/footer.kwd\": {\n \"created\": \"20200428214251454\",\n \"text\": \"\\n<$list filter=\\\"[all[current]has[keywords]]\\\">\\n,,//See also//:\\n<$list filter=\\\"[enlist{!!keywords}]\\\" template=\\\"$:/ak/plugins/TWCrossLinks/ui/footer.kwd.template\\\">,,\\n\\n\\n<$list filter=\\\"[is[current]!field:reference[]]\\\">\\n
\\n,,External ref: <$view field=\\\"reference\\\"}}/>
,,\\n\\n\\n\\n\\n\",\n \"bag\": \"default\",\n \"revision\": \"0\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"title\": \"$:/ak/plugins/TWCrossLinks/ui/footer.kwd\",\n \"tags\": \"$:/tags/ViewTemplate\",\n \"modified\": \"20200502090828057\",\n \"list-before\": \"$:/ak/plugins/TWCrossLinks/ui/footer\"\n },\n \"$:/ak/plugins/TWCrossLinks/ui/footer.kwd.css\": {\n \"created\": \"20200428212006657\",\n \"text\": \".sl-header{\\n color: #383d41;\\n background-color: #e2e3e5;\\n border-color: #d6d8db;\\n padding: 0.75rem 1.25rem;\\n margin-bottom: 1rem;\\n border-radius: 0.25rem;\\n}\\n\\n.sl-keywords {\\n display: inline-block;\\n padding: 0.16em 0.7em;\\n font-size: 0.9em;\\n font-weight: 400;\\n line-height: 1.2em;\\n color: #333333;\\n white-space: nowrap;\\n vertical-align: baseline;\\n border-radius: 1em;\\n background-color:#ffe7b3;\\n}\\n.sl-keywords {\\n outline:none;\\n} /*remove the blue border on button focus */\\n\\n.TWCrossLinksFooter p { margin: 0;}\",\n \"bag\": \"default\",\n \"revision\": \"0\",\n \"type\": \"text/css\",\n \"title\": \"$:/ak/plugins/TWCrossLinks/ui/footer.kwd.css\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"modified\": \"20200508045139340\"\n },\n \"$:/ak/plugins/TWCrossLinks/ui/footer.kwd.template\": {\n \"created\": \"20200428204919232\",\n \"text\": \"\\\\define keywords-body(kwd)\\n<$list filter=\\\"[tag[$kwd$]] [search:keywords[$kwd$]]\\\" variable=\\\"itemTid\\\">\\n<$link to=<> ><$text text=<>/>\\n\\n\\\\end\\n\\n\\n\\n<$set name=\\\"transclusion\\\" value=<> >\\n<$button class=\\\"tc-btn-invisible sl-keywords\\\" popup=<> >\\n<$text text=<>/>\\n\\n<$reveal state=<> type=\\\"popup\\\" position=\\\"below\\\" animate=\\\"yes\\\" class=\\\"tc-drop-down\\\">\\n<$link to=<> ><$text text=<>/>\\n
\\n<$macrocall $name=\\\"keywords-body\\\" kwd=<> />\\n\\n\\n\\n\",\n \"bag\": \"default\",\n \"revision\": \"0\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"title\": \"$:/ak/plugins/TWCrossLinks/ui/footer.kwd.template\",\n \"modified\": \"20200502091004582\"\n },\n \"$:/ak/plugins/TWCrossLinks/ui/tabs\": {\n \"title\": \"$:/ak/plugins/TWCrossLinks/ui/tabs\",\n \"created\": \"20200429182054776\",\n \"creator\": \"akhater\",\n \"modified\": \"20200522102012918\",\n \"modifier\": \"akhater\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define pattern()\\n\\\\b$(currentTiddler)$\\\\b(?i)\\n\\\\end\\n\\n\\n<$vars isBacklink={{{ [all[current]backlinks[]!is[system]!is[shadow]!tag[hide]sort[title]] -[is[current]] +[then[$:/ak/plugins/TWCrossLinks/core/backlinks]else[]] }}} \\n isKeyword={{{ [search:keywords!is[system]!is[shadow]sort[title]] +[then[$:/ak/plugins/TWCrossLinks/core/keywords]else[]] }}}\\n isTag = {{{ [all[current]tagging[]!is[system]!is[shadow]] +[then[$:/ak/plugins/TWCrossLinks/core/tagging]else[]] }}}\\n isFreelink = {{{ [regexp:title] [regexp:text] -[all[current]backlinks[]] -[is[current]] -[tag[hide]] -[is[system]] +[then[$:/ak/plugins/TWCrossLinks/core/freelinks]else[]] }}}\\n>\\n\\n <$set name=DefaultTab filter=\\\"[enlist] [enlist] [enlist] [enlist] +[sort[]first[]]\\\" >\\n <$macrocall $name=\\\"tabs\\\" tabsList=\\\"[enlist] [enlist] [enlist] [enlist] +[sort[]]\\\" default=<> />\\n \\n\\n\",\n \"revision\": \"0\",\n \"bag\": \"default\"\n },\n \"$:/ak/plugins/TWCrossLinks/change.log\": {\n \"created\": \"20200502091404523\",\n \"creator\": \"akhater\",\n \"text\": \"''2020-05-22'': v0.1.20\\n\\n* Empty tabs are not now hidden no need to look at empty spaces\\n* Transclusion now works for keywords and tags, full Tiddler is transcluded\\n* Change in the transclusion css to match the selected theme\\n\\n''2020-05-18'': v0.1.18\\n\\n* Bug fixes in freelinks\\n* Added option to allow freelinks matching with \\\"full match\\\" or \\\"Partial Match\\\"\\n\\n''2020-05-18'': v0.1.17\\n\\n* System Tiddlers should now be hidden\\n* Freelinks fixed to show only full word match (credits Scott Kingery)\\n* Freelinks now search titles too (credits Scott Kingery)\\n* Performance tweak | More efficient coding \\n* Bug fix in reference counter\\n\\n''2020-05-14'': v0.1.8\\n\\n* You can now exclude a tiddler from appearing in the references by tagging it with \\\"hide\\\" \\n\\n''2020-05-13'': v0.1.6\\n\\n* Bug fixes uncaught js error in transclusion code\\n\\n''2020-05-08'': v0.1.3\\n\\n* Added counter showing the number of inbound links\\n* Fixed bug in Freelinks\\n* Saved some screen real-estate in the footer \\n* Added the possibility to remove the toggle and show the tabs by default saving even more screen estate try it \\n**<$checkbox tiddler=\\\"$:/ak/plugins/TWCrossLinks/config/default\\\" index=\\\"HideInboundTitle\\\" checked=\\\"true\\\" unchecked=\\\"false\\\" default=\\\"false\\\"> ''Hide Inbound Links Title & display references''\\n\\n''2020-05-05'': v0.1.0\\n\\n* Inbound links for \\\"//Backlinks//\\\" and \\\"//Freelinks//\\\" can now be transcluded in a pop-up, try it by enabling this feature from the [[TWCrosslinks|$:/ak/plugins/TWCrossLinks]] config panel\\n\\n\\n''2020-05-03'': v0.0.7\\n\\n* Added configuration panel, can be found at $:/ak/plugins/TWCrossLinks\\n** You can now set the Default state of the \\\"inbound links\\\" {Shown / Hidden}\\n** You can now set the Default \\\"inbound links\\\" tab\\n\\n''2020-05-02'': v0.0.3\\n\\n* Initial packaging and release\",\n \"bag\": \"default\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"title\": \"$:/ak/plugins/TWCrossLinks/change.log\",\n \"tags\": \"\",\n \"modified\": \"20200522133028701\",\n \"revision\": \"32\",\n \"modifier\": \"akhater\"\n },\n \"$:/ak/plugins/TWCrossLinks/config\": {\n \"title\": \"$:/ak/plugins/TWCrossLinks/config\",\n \"created\": \"20200503100751953\",\n \"creator\": \"akhater\",\n \"modified\": \"20200522102100118\",\n \"modifier\": \"akhater\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"''By default the //inbound links// should be:''
\\n<$tiddler tiddler=\\\"$:/ak/plugins/TWCrossLinks/config/default\\\">\\n<$radio index=\\\"DefaultFoldData\\\" value=\\\"show\\\"> Shown \\n<$radio index=\\\"DefaultFoldData\\\" value=\\\"hide\\\"> Hidden \\n\\n\\n\\n\\n<$checkbox tiddler=\\\"$:/ak/plugins/TWCrossLinks/config/default\\\" index=\\\"TranscludeInboundLinks\\\" checked=\\\"true\\\" unchecked=\\\"false\\\" default=\\\"false\\\"> ''Transclude //Backlinks// & //Freelinks// on hover''\\n\\n<$checkbox tiddler=\\\"$:/ak/plugins/TWCrossLinks/config/default\\\" index=\\\"HideInboundTitle\\\" checked=\\\"true\\\" unchecked=\\\"false\\\" default=\\\"false\\\"> ''Make inbound links permanent (removes toggle option)''\\n\\n<$checkbox tiddler=\\\"$:/ak/plugins/TWCrossLinks/config/default\\\" index=\\\"UseFullMatch4Freelinks\\\" checked=\\\"true\\\" unchecked=\\\"false\\\" default=\\\"false\\\"> ''Consider only Full match as //freelink//''\\n\\n
,,~TWCrossLinks version {{$:/ak/plugins/TWCrossLinks!!version}},,
\",\n \"revision\": \"0\",\n \"bag\": \"default\"\n },\n \"$:/ak/plugins/TWCrossLinks/readme\": {\n \"created\": \"20200503110056664\",\n \"text\": \"For feedback / suggestions / help please visit plugin page on [[Google Groups|https://groups.google.com/forum/#!topic/tiddlywiki/9ra0s9AEKl4]] or [[Github|https://github.com/akhater/TWCrossLinks]]\",\n \"tags\": \"\",\n \"title\": \"$:/ak/plugins/TWCrossLinks/readme\",\n \"modified\": \"20200503110556549\"\n },\n \"$:/ak/plugins/TWCrossLinks/daniello/context.js\": {\n \"text\": \"/*\\\\\\\\\\ntitle: $:/core/modules/widgets/danielo/context-widget.js\\ntype: application/javascript\\nmodule-type: widget\\n\\nEdit-text widget\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar Widget = require(\\\"$:/core/modules/widgets/widget.js\\\").widget;\\nvar contextWidget = function(parseTreeNode,options) {\\n\\tthis.initialise(parseTreeNode,options);\\n};\\n\\n/*\\nInherit from the base widget class\\n*/\\ncontextWidget.prototype = new Widget();\\n\\n/*\\nRender this widget into the DOM\\n*/\\ncontextWidget.prototype.render = function(parent,nextSibling) {\\n // Save the parent dom node\\n\\tthis.parentDomNode = parent;\\n\\t// Compute our attributes\\n\\tthis.computeAttributes();\\n\\t// Execute our logic\\n\\tthis.execute();\\n \\n if(this.term && this.term.length>3){\\n \\n this.createRegexp();\\n var matches = this.executeRegexp();\\n\\t if(matches.length > 0){ \\n this.domNode = this.document.createElement(this.element);\\n this.domNode.className=\\\"tw-context\\\";\\n this.composeResults( matches ); //this appends to domNode \\n \\t// Insert element\\n \\tparent.insertBefore(this.domNode,nextSibling);\\n \\tthis.renderChildren(this.domNode,null);\\n\\t \\tthis.domNodes.push(this.domNode);\\n }\\n }\\n\\t\\n};\\n\\n/*\\nCompute the internal state of the widget\\n*/\\ncontextWidget.prototype.execute = function() {\\n\\t// Get the parameters from the attributes\\n this.matchedClass = this.getAttribute(\\\"matchClass\\\",\\\"matched\\\");\\n\\tthis.tiddler = this.getAttribute( \\\"tiddler\\\",this.getVariable(\\\"currentTiddler\\\") );\\n this.term = this.getAttribute(\\\"term\\\",this.getAttribute(\\\"searchTerm\\\"));\\n\\tthis.contextLength = this.getAttribute(\\\"length\\\",50);\\n this.before = this.getAttribute(\\\"before\\\",this.contextLength);\\n this.after = this.getAttribute(\\\"after\\\",this.contextLength);\\n this.maxMatches = this.getAttribute(\\\"maxMatches\\\",10);\\n this.element = this.getAttribute(\\\"element\\\",\\\"pre\\\");\\n\\tthis.makeChildWidgets();\\n};\\n\\n /*Create the regular expression*/\\ncontextWidget.prototype.createRegexp = function()\\n{\\n var regString = \\\"(\\\\\\\\w+[\\\\\\\\s\\\\\\\\S]{0,#before#})?(#term#)([\\\\\\\\s\\\\\\\\S]{0,#after#}\\\\\\\\w+)?\\\";\\n\\n var regString = regString.replace(\\\"#before#\\\",this.before).replace(\\\"#term#\\\", $tw.utils.escapeRegExp(this.term) ) .replace(\\\"#after#\\\",this.after);\\n this.regexp = new RegExp(regString,\\\"ig\\\");\\n //console.log(regString);\\n};\\n/*\\nexecute the regular expresion\\n*/\\ncontextWidget.prototype.executeRegexp = function()\\n{\\n var text = this.wiki.getTiddlerText(this.tiddler), match,results = new Array();\\n while( (match = this.regexp.exec( text ) ) && (results.length < this.maxMatches) )\\n { results.push(match) }\\n //console.log(\\\"matches\\\",results);\\n return results;\\n};\\n\\n/*\\ncompose the results\\nmatches : array of match objects from regular expression execute\\n*/\\ncontextWidget.prototype.composeResults = function(matches){\\n var result=[], self=this, node = this.domNode,\\n dots = textNode(\\\"...\\\\n\\\"),\\n span = matchedNode( this.term );\\n\\n for(var i=0; i < matches.length; i++){\\n try {\\n processMatch( matches[i] );\\n }\\n catch (e) {\\n console.log(e);\\n }\\n }\\n \\n function processMatch(match){\\n if( match.index !== 0) node.appendChild( dots.cloneNode(true) );\\n for( var i=1;i>;\\n border: 1px solid #cccccc;\\n border-radius: 3px;\\n}\\n\\n.tc-menu-list-item .trans-container {\\n padding-left: 5px;\\n}\",\n \"revision\": \"0\",\n \"bag\": \"default\"\n },\n \"$:/ak/plugins/TWCrossLinks/ui/transclude.css\": {\n \"title\": \"$:/ak/plugins/TWCrossLinks/ui/transclude.css\",\n \"text\": \".trans-container {\\n position: relative;\\n display: inline-block;\\n}\\n\\n.trans-container .trans-content {\\n visibility: hidden;\\n overflow: hidden;\\n margin-top: -2em;\\n padding: 5px;\\n display: block;\\n \\n /* Position the tooltip */\\n position: absolute;\\n z-index: 80;\\n \\n /* \\n top: 20px;\\n left: 20px; */\\n\\n float: right; \\n opacity: 0;\\n transition: opacity 0.3s; \\n}\\n\\n.trans-container .trans-content::after {\\n position: relative;\\n overflow: hidden;\\n margin: 0;\\n padding: 0;\\n border: 1px;\\n}\\n\\n.trans-content {\\n width: 90vw;\\n max-width: 32em;\\n}\\n\\n\\n.trans-container:hover > .trans-content {\\n margin-top:-5px;\\n visibility: visible;\\n opacity: 1;\\n transition: 0.25s all ease;\\n transition-delay: 0.75s;\\n}\\n\\nspan.trans-content.noContext {\\n\\nbackground-color: <>;\\n\\nborder-radius: 5px;\\npadding: 1px 1em;\\nborder: 1px solid #cccccc;\\n}\\n\\n\",\n \"created\": \"20200505112617003\",\n \"creator\": \"akhater\",\n \"modified\": \"20200522112043494\",\n \"modifier\": \"akhater\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"revision\": \"0\",\n \"bag\": \"default\"\n }\n }\n}","bag":"default","revision":"1","version":"0.1.19","type":"application/json","title":"$:/ak/plugins/TWCrossLinks","tags":"","plugin-type":"plugin","name":"TWCrossLinks","modified":"20200522133137356","list":"config readme change.log","description":"Discover all your intra tiddlers links","created":"20200502092707287"}] --------------------------------------------------------------------------------