Free Link


A link in a wiki that does not require the WikiCase LinkPattern, but is instead composed of text bracketed by delimiters (e.g., [[A wiki link]]). Most newer wikis support free links. Free links solve the WikiSingleWordProblem handily, and mollify those who just don't care for the look of WikiNames. [The term comes from UseMod - see - though it was invented in parallel by other wikis and WikiClones.]

There is no standard for free link syntax. UseMod and MediaWiki use doubled square brackets; other wikis use single square brackets, doubled parenthesis, or curly braces.

An extension of FreeLinks is the ability to provide a display name for a link (like HTML does). A made-up example: [[Robert Anton Wilson|author]] would appear as the link author.

[moved from WikiSingleWordProblem]

Just a suggestion, but what if "?" is used just before single words, and "?" before strings? For example, a single word link could be like:
and a multiword link could look like:
	?"New Zealand"
and the above examples could look like: A sentence using the above format could look like:
	?"Link Pattern" suggests to write two more specific words,
	e.g. ?"Java Language" instead of ?Java.

I've been trying out the above pattern in RebolLanguage in my own wiki script, and so far it seems to work out OK.

-- AndrewMartin

If implemented, best to require a link to be preceded and followed by whitespace or start/end line (to prevent consecutive links, and because "?" is used in some URLs (and in Spanish too).

MoinMoin and UseMod use ["link with spaces and stuff"].

[Moved from WikiPlacenameProblem]

A SimpleMinded Solution? The algorithm is simple: treat all characters following the backtick until a space (or newline) is encountered as a WikiWord. One treatment for a host of problems. -- AnonymousOnPurpose

Why not just dump wiki words altogether and go exclusively with the backtick syntax? For a new wiki, I would be in favor of such syntax, but when a wiki such as this one already has 25000 pages using a standard syntax, adaptation seems a less radical procedure. It is simple, can be easily programmed, is comprehensive and solves a multitude of representational issues as demonstrated in the illustration above. It allows the normal use of () {} {} or any other delimiters to their normal meaning in code snippets, as well as in qualifying enclosures. It is also to be favored over a bracketed syntax which is more invasive visually to a textual presentation. The backtick has low visual impact and requires only one keystroke. `SeeWhatI'Mean? -- AnonymousOnPurpose

Backtick syntax is used by VQWiki which we have been using for some time without problems (as far as WikiWords are concerned). The convention is that CamelCase words and strings enclosed in backticks (e.g. `Test`, or `Extended Test on 2nd September 2005`) are interpreted as WikiWords. -- Ant...

From WikiAlphabet:

How about extending the formatting rules to treat a period to be equivalent to one or more lowercase letters? For example, W.C.Fields, ArthurC.Clarke, I.B.M. would all be WikiWords. It looks to me to be an almost natural extension to the wiki rules that's consistent with English punctuation.

My 'parse rules use "?" followed by an Alphanumeric character (and several other characters) to detect single word links, and detect URLs before looking for link words. So far it seems to work OK on the above test line. Anyone got any ideas for more difficult tests?

-- AndrewMartin

What happens when the markup for a link with spaces is split across lines or uses multiple spaces or tabs?

"I can't type tabs." :) Parsing stops at the end of a line. And, if it doesn't fit the format, it's left unchanged (or falls through to detecting the URL and making that the link. Then the writer can see that it looks wrong and correct appropriately, by adding in the extra {"} or what ever. The parse rules are written in Rebol and are available from my site or from my mailing list.

I've put my Wiki Rebol script on this Wiki at RebolWiki. I think it's a practical solution to the WikiSingleWordProblem.

-- AndrewMartin

I like the {CurlyBrackets} suggested above, or <<DoubleAngleBrackets>>: <<CIA>>. I'm setting up a wiki (<--see?) for the CSCL2003 conference and I doubt that people will take the time to write ComputerSupportForCollaborativeLearning? every time they will use the term (and that will be a lot).

Related: I can't see why double capitalization is a problem? (DennisOHara, SwimmingInALake)

-- KurtGeorgeGjerde

I'm no Wiki expert, but it seems like if you tried to have a page called, say, CIA, it would print the title as C I A less than preferable behaviour I think

-- JobyElliott

It's impossible to have a page called CIA. You could do TheCia, which would render as "The Cia" or (ugh) CiaAcronym, which would render as "Cia Acronym". Of course, CentralIntelligenceAgency would be the best name here.

My own pet peeve (with CamelCase) happened when I tried to implement a WikiCalendar. There's just no F***ing way (in CamelCase) to construct the names of dates such that they are 1) compact 2) easy to read 3) sortable in any meaningful fashion 4) usable as links.

Trying to use a Wiki as a general-purpose data store (for me personally) fails on this point. There are other nuisance link problems, but I'm pretty sure that whatever would solve the calendar problem would solve the rest.

I imagine that some variation on [["2004-05-04" "May 4,2004"]] would be right. Anyone seen a usable calendar/journal/diary implementation in Wiki? What notation?

PhpWiki provides some date and calendar functions. I've created a small example at the SourceForge site (apparently currently regrettable slow, but...) -- HansWobbe

See CamelVsNonCamel for a comparison of these link methods.

The biggest problem I see with WikiWords is they only work with alphabets that differentiate syntax using capitalization and/or whitespace. Can anyone demonstrate a successful adaptation of WikiWords to Chinese? -- Roan. See ChineseWiki

I admit the code to implement WikiWords in wikinehesa is a tad large, confusing to understand, and generally annoying to me. implementing FreeLinks is MUCH simpler. Here is the code I just honked up- python code- and it is VERY simple and straightforward:

def makelink(word):
	if (word[0]=='[' and word[-1]==']'):
		return '<a href="./'+word[1:-1]+'">'+word[1:-1]+'</a>'
		return word

That sure is a lot simpler than 50 lines of code working as a state machine...

now I may implement it in the next generation of software, a complete rewrite, but this would entail hodging up some code to search through existing pages and converting them over to the new format for links.

				-- KirkBailey

I do not know whether this is the right page, but why could one not allow an underscore for a Camel_Case delimiter and convert it into a whitespace:

<a href="?Camel_Case">Camel Case</a>

I do not like the double square brackets syntax, especially on a non-english keyboard. -- FlorianBlatt?

Underscores would still not solve the WikiSingleWordProblem. -- JuergenErhard
See a notion that is related to FreeLink at SpecialCharacterPrefixAssociation

There is always the solution offered in LiterateProgramming:

EditText of this page (last edited October 26, 2013) or FindPage with title or text search