mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-09-11 23:09:42 +00:00
![Jeremy Ruston](/assets/img/avatar_default.png)
This arrangement takes better advantage of the similarities between the now deleted widget renderer and the element renderer. It also obviates the need for wrapper elements around every widget.
49 lines
868 B
JavaScript
49 lines
868 B
JavaScript
/*\
|
|
title: $:/core/modules/parsers/wikiparser/rules/prettylink.js
|
|
type: application/javascript
|
|
module-type: wikirule
|
|
|
|
Wiki text inline rule for pretty links. For example:
|
|
|
|
```
|
|
[[Introduction]]
|
|
|
|
[[Link description|TiddlerTitle]]
|
|
```
|
|
|
|
\*/
|
|
(function(){
|
|
|
|
/*jslint node: true, browser: true */
|
|
/*global $tw: false */
|
|
"use strict";
|
|
|
|
exports.name = "prettylink";
|
|
exports.types = {inline: true};
|
|
|
|
exports.init = function(parser) {
|
|
this.parser = parser;
|
|
// Regexp to match
|
|
this.matchRegExp = /\[\[(.*?)(?:\|(.*?))?\]\]/mg;
|
|
};
|
|
|
|
exports.parse = function() {
|
|
// Move past the match
|
|
this.parser.pos = this.matchRegExp.lastIndex;
|
|
// Process the link
|
|
var text = this.match[1],
|
|
link = this.match[2] || text;
|
|
return [{
|
|
type: "element",
|
|
tag: "$link",
|
|
attributes: {
|
|
to: {type: "string", value: link}
|
|
},
|
|
children: [{
|
|
type: "text", text: text
|
|
}]
|
|
}];
|
|
};
|
|
|
|
})();
|