medit/moo/mooedit/langs/mediawiki.lang
2013-12-06 17:03:17 -08:00

324 lines
11 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Author: Jean-Philippe Fleury <contact@jpfleury.net>
Copyright © Jean-Philippe Fleury, 2009, 2011-2012.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<language id="mediawiki" _name="MediaWiki" version="2.0" _section="Markup">
<metadata>
<property name="block-comment-start">&lt;!--</property>
<property name="block-comment-end">--&gt;</property>
</metadata>
<styles>
<style id="strong-emphasis" _name="Strong Emphasis" map-to="def:statement"/>
<style id="light-emphasis" _name="Light Emphasis" map-to="def:doc-comment-element"/>
<style id="signature" _name="Signature" map-to="def:statement"/>
<style id="url" _name="URL" map-to="def:underlined"/>
<style id="link" _name="Link" map-to="def:comment"/>
<style id="link-symbol" _name="Symbol on a Link" map-to="def:shebang"/>
<style id="line" _name="Line" map-to="def:type"/>
<style id="list" _name="List" map-to="def:statement"/>
<style id="magic-word" _name="Magic Word" map-to="def:statement"/>
<style id="table-symbol" _name="Symbol of a Table" map-to="def:statement"/>
<style id="preformatted" _name="Preformatted" map-to="def:identifier"/>
<style id="redirect" _name="Redirect" map-to="def:statement"/>
<style id="title" _name="Title" map-to="def:type"/>
<style id="template" _name="Template" map-to="def:statement"/>
</styles>
<definitions>
<!-- See <http://www.mediawiki.org/wiki/Manual:$wgUrlProtocols>. -->
<define-regex id="regex-url">(http://|https://|ftp://|irc://|gopher://|telnet://|nntp://|worldwind://|mailto:|news:)[^\s]+</define-regex>
<define-regex id="regex-internal-link">\[\[\s*[^\[\]\s][^\[\]]*?((\|)[^\[\]\|]*)?\]\]</define-regex>
<context id="double-emphasis" style-ref="strong-emphasis">
<match>'''''.+?'''''</match>
</context>
<context id="strong-emphasis" style-ref="strong-emphasis">
<match>'''.+?'''</match>
</context>
<context id="light-emphasis" style-ref="light-emphasis">
<match>''.+?''</match>
</context>
<!-- See <http://www.mediawiki.org/wiki/Help:Signatures/fr>. -->
<context id="signature" style-ref="signature">
<match>~{3,5}</match>
</context>
<context id="url" style-ref="url">
<match>(\%{regex-url})</match>
<include>
<context sub-pattern="1" style-ref="link"/>
</include>
</context>
<context id="internal-link" style-ref="link">
<match>\%{regex-internal-link}</match>
<include>
<context sub-pattern="2" style-ref="link-symbol"/>
</include>
</context>
<context id="external-link" style-ref="link">
<match extended="true">
(?&lt;!\[)
\[
\s*
(\%{regex-url})
[^\[\]]*
\]
(?!\])
</match>
<include>
<context sub-pattern="1" style-ref="url"/>
</include>
</context>
<context id="line" style-ref="line">
<match>^-{4,}</match>
</context>
<context id="list">
<match>^((\*|#(?!REDIRECT))+)\s*[^\*#\s]+</match>
<include>
<context sub-pattern="1" style-ref="list"/>
</include>
</context>
<context id="glossary-term">
<match extended="true">
^(;)
\s*
[^;:\s]+?
[^:]*
(:?)
</match>
<include>
<context sub-pattern="1" style-ref="list"/>
<context sub-pattern="2" style-ref="list"/>
</include>
</context>
<context id="glossary-definition">
<match extended="true">
^(:)
\s*
[^;:\s]+
</match>
<include>
<context sub-pattern="1" style-ref="list"/>
</include>
</context>
<!-- Magic words. See <http://www.mediawiki.org/wiki/Help:Magic_words>. -->
<context id="magic-word-1" style-ref="magic-word">
<prefix>__</prefix>
<suffix>__</suffix>
<!-- Behavior switches. -->
<keyword>NOTOC</keyword>
<keyword>FORCETOC</keyword>
<keyword>TOC</keyword>
<keyword>NOEDITSECTION</keyword>
<keyword>NEWSECTIONLINK</keyword>
<keyword>NONEWSECTIONLINK</keyword>
<keyword>NOGALLERY</keyword>
<keyword>HIDDENCAT</keyword>
<keyword>NOCONTENTCONVERT</keyword>
<keyword>NOCC</keyword>
<keyword>NOTITLECONVERT</keyword>
<keyword>NOTC</keyword>
<keyword>START</keyword>
<keyword>END</keyword>
<keyword>INDEX</keyword>
<keyword>NOINDEX</keyword>
<keyword>STATICREDIRECT</keyword>
</context>
<context id="magic-word-2" style-ref="magic-word">
<prefix>{{</prefix>
<suffix>}}</suffix>
<!-- Date and time. -->
<keyword>CURRENTYEAR</keyword>
<keyword>CURRENTMONTH</keyword>
<keyword>CURRENTMONTHNAME</keyword>
<keyword>CURRENTMONTHNAMEGEN</keyword>
<keyword>CURRENTMONTHABBREV</keyword>
<keyword>CURRENTDAY</keyword>
<keyword>CURRENTDAY2</keyword>
<keyword>CURRENTDOW</keyword>
<keyword>CURRENTDAYNAME</keyword>
<keyword>CURRENTTIME</keyword>
<keyword>CURRENTHOUR</keyword>
<keyword>CURRENTWEEK</keyword>
<keyword>CURRENTTIMESTAMP</keyword>
<keyword>LOCALYEAR</keyword>
<keyword>LOCALMONTH</keyword>
<keyword>LOCALMONTHNAME</keyword>
<keyword>LOCALMONTHNAMEGEN</keyword>
<keyword>LOCALMONTHABBREV</keyword>
<keyword>LOCALDAY</keyword>
<keyword>LOCALDAY2</keyword>
<keyword>LOCALDOW</keyword>
<keyword>LOCALDAYNAME</keyword>
<keyword>LOCALTIME</keyword>
<keyword>LOCALHOUR</keyword>
<keyword>LOCALWEEK</keyword>
<keyword>LOCALTIMESTAMP</keyword>
<!-- Technical metadata. -->
<keyword>SITENAME</keyword>
<keyword>SERVER</keyword>
<keyword>SERVERNAME</keyword>
<keyword>DIRMARK</keyword>
<keyword>DIRECTIONMARK</keyword>
<keyword>SCRIPTPATH</keyword>
<keyword>STYLEPATH</keyword>
<keyword>CURRENTVERSION</keyword>
<keyword>CONTENTLANGUAGE</keyword>
<keyword>CONTENTLANG</keyword>
<keyword>REVISIONID</keyword>
<keyword>REVISIONDAY</keyword>
<keyword>REVISIONDAY2</keyword>
<keyword>REVISIONMONTH</keyword>
<keyword>REVISIONMONTH1</keyword>
<keyword>REVISIONYEAR</keyword>
<keyword>REVISIONTIMESTAMP</keyword>
<keyword>REVISIONUSER</keyword>
<!-- Statistics. -->
<keyword>NUMBEROFPAGES</keyword>
<keyword>NUMBEROFARTICLES</keyword>
<keyword>NUMBEROFFILES</keyword>
<keyword>NUMBEROFEDITS</keyword>
<keyword>NUMBEROFVIEWS</keyword>
<keyword>NUMBEROFUSERS</keyword>
<keyword>NUMBEROFADMINS</keyword>
<keyword>NUMBEROFACTIVEUSERS</keyword>
<!-- Page names. -->
<keyword>FULLPAGENAME</keyword>
<keyword>PAGENAME</keyword>
<keyword>BASEPAGENAME</keyword>
<keyword>SUBPAGENAME</keyword>
<keyword>SUBJECTPAGENAME</keyword>
<keyword>TALKPAGENAME</keyword>
<keyword>FULLPAGENAMEE</keyword>
<keyword>PAGENAMEE</keyword>
<keyword>BASEPAGENAMEE</keyword>
<keyword>SUBPAGENAMEE</keyword>
<keyword>SUBJECTPAGENAMEE</keyword>
<keyword>TALKPAGENAMEE</keyword>
<!-- Namespaces. -->
<keyword>NAMESPACE</keyword>
<keyword>SUBJECTSPACE</keyword>
<keyword>ARTICLESPACE</keyword>
<keyword>TALKSPACE</keyword>
<keyword>NAMESPACEE</keyword>
<keyword>SUBJECTSPACEE</keyword>
<keyword>TALKSPACEE</keyword>
</context>
<context id="table">
<start>^\s*({\|)</start>
<end>^\s*(\|})</end>
<include>
<context sub-pattern="1" where="start" style-ref="table-symbol"/>
<context sub-pattern="1" where="end" style-ref="table-symbol"/>
<context ref="double-emphasis"/>
<context ref="strong-emphasis"/>
<context ref="light-emphasis"/>
<context ref="signature"/>
<context ref="url"/>
<context ref="internal-link"/>
<context ref="external-link"/>
<context ref="magic-word-1"/>
<context ref="magic-word-2"/>
<context ref="html:html"/>
<context id="table-symbol" extend-parent="false" style-ref="table-symbol">
<match extended="true">
^\s*(\|\+ | \|-+ | !) | \| | !{2,}
</match>
</context>
</include>
</context>
<context id="preformatted" style-ref="preformatted">
<match>^ +[^ ]+.*$</match>
</context>
<context id="redirect">
<match>^(#REDIRECT)\s*(\%{regex-internal-link})</match>
<include>
<context sub-pattern="1" style-ref="redirect"/>
<context sub-pattern="2" style-ref="link"/>
<context sub-pattern="4" style-ref="link-symbol"/>
</include>
</context>
<context id="title" style-ref="title">
<match>^=.+=\s*$</match>
</context>
<context id="template">
<match>({{)\s*[^{}\s]+[^{}]*(}})</match>
<include>
<context sub-pattern="1" style-ref="template"/>
<context sub-pattern="2" style-ref="template"/>
</include>
</context>
<context id="mediawiki-syntax">
<include>
<context ref="double-emphasis"/>
<context ref="strong-emphasis"/>
<context ref="light-emphasis"/>
<context ref="signature"/>
<context ref="url"/>
<context ref="internal-link"/>
<context ref="external-link"/>
<context ref="line"/>
<context ref="list"/>
<context ref="glossary-term"/>
<context ref="glossary-definition"/>
<context ref="magic-word-1"/>
<context ref="magic-word-2"/>
<context ref="table"/>
<context ref="preformatted"/>
<context ref="redirect"/>
<context ref="title"/>
<context ref="template"/>
</include>
</context>
<replace id="html:embedded-lang-hook" ref="mediawiki-syntax"/>
<context id="mediawiki">
<include>
<context ref="mediawiki-syntax"/>
<context ref="html:html"/>
</include>
</context>
</definitions>
</language>