Links in Wiki

12.1.2016 2:59

Links in Wiki

Reference Links

[TeaCode link](http://teacode.com)

[TeaCode link][teacode]

[teacode]: CONTENT

where

CONTENT <- <url> ('"' <title> '"')? (<attrname> '=' <attrval>)*

Email Links

@[TeaCode link](any@anydomain.com)

@[TeaCode link][teacode]

@[teacode]: CONTENT

where

CONTENT <- <email address> ('"' <title> '"')? (<attrname> '=' <attrval>)*

Images

![Caption text](<image url>)

![Caption text][imageID]

![imageID]: CONTENT

where

CONTENT <- <image url> ('"' <image title> '"')? (<attrname> '=' <attrval>)*

Video

>[Caption text](<video url>)

>[Caption text][videoID]

>[videoID]: CONTENT

where

CONTENT <- <video url> ('"' <video title> '"')? (<attrname> '=' <attrval>)*

Audio

:[Caption text](<audio url>)

:[Caption text][audioID]

:[audioID]: CONTENT

where

CONTENT <- <audio url> ('"' <audio title> '"')? (<attrname> '=' <attrval>)*

Библиография

~[p.300](Malykh, A., Mantsivoda. A Query Language)

~[p.300][ref1]

~[ref1]: CONTENT

where

CONTENT <- <bibitem paragraph>+

Remark 1.  In case of two or more paragraphs, the following paragraphs must be indented by two spaces to be included.

Сноски

^[tlevel](Here is a text)

^[tlevel][somefootnote]

^[somefootnote]: CONTENT

where

CONTENT <- <footnote paragraph>+

See remark 1. Here tlevel is the level of a title before which the footnote is inserted.

tlevel <- ('#' ('1' / '2' / '3' / '4' / '5' / '6'))?
E.g.:
^[#2](here is a footnote) – before the next ##–header.
^[](here is another footnote) – in the end of document

Локальные метки

Организация локальных ссылок:

#[label] – метка (якорь). Организует ссылку на самый внутренний блок, в котором находится (если блок существует), либо на место вхождения метки (во внешнем абзаце)

Локальные линки (внутри сайта/базы)

The local link syntax (PEG):

LocalLink <- path fragment? params?

path <- (domains / item / paramname)

domains <- 
  (user '/' site '/' page) / (site '/' page)

item <- '!' DocID

paramname <- '$' NAME

fragment <- '#' NAME

params <- '?' param ('&' param*)

param <- key '=' value

key <- NAME

value <- path

user <- NAME

site <- NAME

page <- NAME

e.g.

asdf/qewr/#header2
Here

  • 12345 is the pattern's ID of the linked page.
  • $2 is the parametric link to the linked page's 1st parameter (i.e., the 2nd parameter of the current page is the 1st parameter of the linked page)
  • 23456 is the ID of the linked page's 2nd parameter
  • #header is the anchor within the linked page

Организация локальных ссылок в wiki-документе:

*[link text](localLink)

*[link text][otherpage]

*[otherpage]: <localLink> ('"' <title> '"')? (<attrname> '=' <attrval>)*

[Link text](http://...#label) – стандартная гиперссылка на блок

*[Link text](#label) – локальная ссылка на блок в том же документе

*[Link text](patternId/parId1/.../parIdN#label) – локальная ссылка на блок в другом документе

*[Link text][llnk]

*[llnk]: CONTENT
where
CONTENT <- <localLink> ('"' <title> '"')? (<attrname> '=' <attrval>)*

Remark 2.  A base (a site) is the collection of wiki-documents accessible from a certain wiki document (the base root) via local cross-references

Remark 3.  It is possible to call a page by its local link, e.g.

http://lwiki.com/showlocal/patternId/parId1/.../parIdN
Here patternId/parId1/.../parIdN is a local link.

Insertions

+[comment](localLink)

+[comment][insId]

+[InsId]: CONTENT
where
CONTENT <- <localLink> ('"' <title> '"')? (<attrname> '=' <attrval>)*

User Defined Blocks

Blocks are text blocks, which have special meaning or play special structural role in the text. The LibrettoWiki has a number of predefined blocks:

  • items of numbered and bulleted lists
  • footnotes
  • headers
  • quotes
  • bibliography items

Users can also create their own blocks using the following syntax:

&[Blockname] <paragraph>+
The user defines his/her own blocks like theorems, remarks, definitions by selecting their names, e.g. "Remark":
&[Remark] here is the remark text.
User defined blocks are automatically numbered. To suppress block numbering use *:
&[Definition]* ...Text...
Anonymous blocks (the space instead of the name):
&[ ]* Anonymous...

General Link PEG

link <- spotlink / reflink / linknote

sym <- '$' / '*' / '#' / ':' / '%' / '@' / '!'

header <- sym? '[' TEXT ']'
rheader <- sym? '[' LINKREF ']'

spotlink <- header '(' hyperlink (' ' '"' TEXT '"')? ')'
reflink <- header '[' LINKREF ']'
linknote <- rheader ':' content

content <- PARAGRAPH+ / hyperlink description? attribute*
hyperlink <- localLink / URL / '<' (localLink / URL) '>'
attribute <- NAME '=' '"' VALUE '"'
description <- '"' TEXT '"' / ''' TEXT ''' / '(' TEXT ')'


localLink <-
  (step ('/' step)*)? ('#' anchor)?

step <- docId / param
param <- '$' NUMBER
docId <- <global identifier of the document>