This seems a very good approach.
I think Jeremy should consider to include this into the core. What about a
pull request Stephan? The only step left is to move that list to an
external tiddler and make every new tiddler to add its title to it.
El sábado, 9 de agosto de 2014 20:04:15 UTC+2, Stephan Hradek escribió:
>
> So there is some mistake in your copy & paste, which I can't fix without
> seeing it.
>
> But for your convenience I'll copy the full working tiddler here:
>
> /*\
> title: $:/core/modules/parsers/wikiparser/rules/wikilink.js
> type: application/javascript
> module-type: wikirule
>
> Wiki text inline rule for wiki links. For example:
>
> ```
> AWikiLink
> AnotherLink
> ~SuppressedLink
> ```
>
> Precede a camel case word with `~` to prevent it from being recognised as
> a link.
>
> \*/
> (function(){
>
> /*jslint node: true, browser: true */
> /*global $tw: false */
> "use strict";
>
> exports.name = "wikilink";
> exports.types = {inline: true};
>
> var textPrimitives = {
> upperLetter: "[A-Z\u00c0-\u00de\u0150\u0170]",
> lowerLetter: "[a-z0-9_\\-\u00df-\u00ff\u0151\u0171]",
> anyLetter:
> "[A-Za-z0-9_\\-\u00c0-\u00de\u00df-\u00ff\u0150\u0170\u0151\u0171]",
> anyLetterStrict:
> "[A-Za-z0-9\u00c0-\u00de\u00df-\u00ff\u0150\u0170\u0151\u0171]"
> };
> var knownLinks = [
> "Gropius",
> "Bauhaus"
> ];
>
> textPrimitives.unWikiLink = "~";
> textPrimitives.wikiLink = textPrimitives.upperLetter + "+" +
> textPrimitives.lowerLetter + "+" +
> textPrimitives.upperLetter +
> textPrimitives.anyLetter + "*";
>
> exports.init = function(parser) {
> this.parser = parser;
> // Regexp to match
> this.matchRegExp = new RegExp(textPrimitives.unWikiLink + "?(" + +
> textPrimitives.wikiLink+"|"+knownLinks.join("|")+")","mg");
> };
>
> /*
> Parse the most recent match
> */
> exports.parse = function() {
> // Get the details of the match
> var linkText = this.match[0];
> // Move past the macro call
> this.parser.pos = this.matchRegExp.lastIndex;
> // If the link starts with the unwikilink character then just output
> it as plain text
> if(linkText.substr(0,1) === textPrimitives.unWikiLink) {
> return [{type: "text", text: linkText.substr(1)}];
> }
> // If the link has been preceded with a letter then don't treat it as
> a link
> if(this.match.index > 0) {
> var preRegExp = new RegExp(textPrimitives.anyLetterStrict,"mg");
> preRegExp.lastIndex = this.match.index-1;
> var preMatch = preRegExp.exec(this.parser.source);
> if(preMatch && preMatch.index === this.match.index-1) {
> return [{type: "text", text: linkText}];
> }
> }
> return [{
> type: "link",
> attributes: {
> to: {type: "string", value: linkText}
> },
> children: [{
> type: "text",
> text: linkText
> }]
> }];
> };
>
> })();
>
>
>
>
--
You received this message because you are subscribed to the Google Groups
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/d/optout.