276 lines
18 KiB
XML
276 lines
18 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE language
|
|
[
|
|
<!ENTITY time "\d\d+(?:\:[0-5]\d){2}[\,\.]\d{3}">
|
|
<!ENTITY coordinates "(?:\s+[XY][12]\:\d+){0,4}\s*$">
|
|
<!ENTITY formatTags "(?:</?[bius]>|\{/?[bius]\})">
|
|
<!ENTITY htmlName "[A-Za-z_\:][\w\.\:\-]*">
|
|
<!ENTITY htmlAttributeName "[A-Za-z_:\*#\(\[][\)\]\w\.\:_\-]+">
|
|
]>
|
|
|
|
<!--
|
|
SubRip Text (.SRT) Subtitles Syntax Highlighting Definition
|
|
===========================================================================
|
|
|
|
This file is part of the KDE's KSyntaxHighlighting framework.
|
|
|
|
SPDX-FileCopyrightText: 2019-2020 Nibaldo González S. <nibgonz@gmail.com>
|
|
|
|
SPDX-License-Identifier: MIT
|
|
|
|
===========================================================================
|
|
|
|
Mor information: http://ale5000.altervista.org/subtitles.htm
|
|
|
|
Last update: September 30, 2020 (v2)
|
|
-->
|
|
|
|
<language name="SubRip Subtitles"
|
|
version="5"
|
|
kateversion="5.79"
|
|
section="Other"
|
|
extensions="*.srt"
|
|
mimetype="application/x-subrip"
|
|
priority="9"
|
|
author="Nibaldo González (nibgonz@gmail.com)"
|
|
license="MIT">
|
|
|
|
<highlighting>
|
|
|
|
<contexts>
|
|
|
|
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
|
|
<RegExpr context="FindTime" attribute="Sequence Number" String="\d+(?=\s*$)" firstNonSpace="true" />
|
|
<RegExpr context="Time" String="(&time;\s+)(\-\->)(\s+&time;)(&coordinates;)" firstNonSpace="true" lookAhead="true" />
|
|
<Int context="TimeError" attribute="Error" firstNonSpace="true" />
|
|
</context>
|
|
<context name="FindTime" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#pop">
|
|
<RegExpr context="#pop!Time" String="(&time;\s+)(\-\->)(\s+&time;)(&coordinates;)" firstNonSpace="true" lookAhead="true" />
|
|
<Int context="#pop!TimeError" attribute="Error" firstNonSpace="true" />
|
|
</context>
|
|
<context name="Time" attribute="Normal Text" lineEndContext="#pop!SubtitleContent">
|
|
<StringDetect context="#stay" attribute="Appearance Time" String="%1" dynamic="true" />
|
|
<StringDetect context="#stay" attribute="Time Arrow" String="%2" dynamic="true" />
|
|
<StringDetect context="#stay" attribute="Disappearance Time" String="%3" dynamic="true" />
|
|
<StringDetect context="#pop!SubtitleContent" attribute="Coordinates" String="%4" dynamic="true" />
|
|
</context>
|
|
|
|
<!-- Mark all subtitle text as error -->
|
|
<context name="TimeError" attribute="Error" lineEndContext="Error" lineEmptyContext="#pop" />
|
|
<context name="Error" attribute="Error (Subtitle)" lineEndContext="#stay" lineEmptyContext="#pop#pop" />
|
|
|
|
<context name="SubtitleContent" attribute="Subtitle" lineEndContext="#stay" lineEmptyContext="#pop">
|
|
<StringDetect context="BoldThan" attribute="Format Tag: Bold" String="<b>" />
|
|
<StringDetect context="ItalicThan" attribute="Format Tag: Italic" String="<i>" />
|
|
<StringDetect context="UnderlineThan" attribute="Format Tag: Underline" String="<u>" />
|
|
<StringDetect context="StrikeoutThan" attribute="Format Tag: Strikethrough" String="<s>" />
|
|
<StringDetect context="BoldCBracket" attribute="Format Tag: Bold" String="{b}" />
|
|
<StringDetect context="ItalicCBracket" attribute="Format Tag: Italic" String="{i}" />
|
|
<StringDetect context="UnderlineCBracket" attribute="Format Tag: Underline" String="{u}" />
|
|
<StringDetect context="StrikeoutCBracket" attribute="Format Tag: Strikethrough" String="{s}" />
|
|
<RegExpr context="#stay" attribute="Format Tag" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
|
|
<context name="SubtitleCommon" attribute="Subtitle" lineEndContext="#stay">
|
|
<!-- {\anX} -->
|
|
<RegExpr context="#stay" attribute="Line Alignment Tag" String="\{\\an\d\}" />
|
|
<!-- {\some_letters_or_numbers_or_chars}, {Y:some_letters_or_numbers_or_chars} -->
|
|
<RegExpr context="#stay" attribute="Tag" String="\{(?:\\|Y\:)[^\{\}\s][^\{\}]*\}" />
|
|
<RegExpr context="#stay" attribute="Escape" String="\\[hN<>\{\}]" />
|
|
<!-- HTML Tag -->
|
|
<RegExpr context="FindHTML" String="<&htmlName;(?:\s+&htmlAttributeName;(?:\s*\=\s*(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[^><"'\s]+))?)*\s*/?>|</&htmlName;\s*>" lookAhead="true" />
|
|
</context>
|
|
<context name="FindHTML" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
|
|
<IncludeRules context="FindElements##HTML" />
|
|
</context>
|
|
|
|
<!-- Format Tag: <b>, <i>, <u>, <s> -->
|
|
<context name="BoldThan" attribute="Bold" lineEndContext="#stay" lineEmptyContext="#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold" String="</b>" />
|
|
<StringDetect context="BoldThan-ItalicThan" attribute="Format Tag: Bold-Italic" String="<i>" />
|
|
<StringDetect context="BoldThan-UnderlineThan" attribute="Format Tag: Bold-Underline" String="<u>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<context name="ItalicThan" attribute="Italic" lineEndContext="#stay" lineEmptyContext="#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Italic" String="</i>" />
|
|
<StringDetect context="ItalicThan-BoldThan" attribute="Format Tag: Bold-Italic" String="<b>" />
|
|
<StringDetect context="ItalicThan-UnderlineThan" attribute="Format Tag: Italic-Underline" String="<u>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Italic" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<context name="UnderlineThan" attribute="Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Underline" String="</u>" />
|
|
<StringDetect context="UnderlineThan-BoldThan" attribute="Format Tag: Bold-Underline" String="<b>" />
|
|
<StringDetect context="UnderlineThan-ItalicThan" attribute="Format Tag: Italic-Underline" String="<i>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<context name="StrikeoutThan" attribute="Strikethrough" lineEndContext="#stay" lineEmptyContext="#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Strikethrough" String="</s>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Strikethrough" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
|
|
<!-- Format Tag: {b}, {i}, {u}, {s} -->
|
|
<context name="BoldCBracket" attribute="Bold" lineEndContext="#stay" lineEmptyContext="#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold" String="{/b}" />
|
|
<StringDetect context="BoldCBracket-ItalicCBracket" attribute="Format Tag: Bold-Italic" String="{i}" />
|
|
<StringDetect context="BoldCBracket-UnderlineCBracket" attribute="Format Tag: Bold-Underline" String="{u}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<context name="ItalicCBracket" attribute="Italic" lineEndContext="#stay" lineEmptyContext="#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Italic" String="{/i}" />
|
|
<StringDetect context="ItalicCBracket-BoldCBracket" attribute="Format Tag: Bold-Italic" String="{b}" />
|
|
<StringDetect context="ItalicCBracket-UnderlineCBracket" attribute="Format Tag: Italic-Underline" String="{u}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Italic" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<context name="UnderlineCBracket" attribute="Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Underline" String="{/u}" />
|
|
<StringDetect context="UnderlineCBracket-BoldCBracket" attribute="Format Tag: Bold-Underline" String="{b}" />
|
|
<StringDetect context="UnderlineCBracket-ItalicCBracket" attribute="Format Tag: Italic-Underline" String="{i}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<context name="StrikeoutCBracket" attribute="Strikethrough" lineEndContext="#stay" lineEmptyContext="#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Strikethrough" String="{/s}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Strikethrough" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
|
|
<!-- Bold-Italic -->
|
|
|
|
<!-- <b> <i> text </i> </b> -->
|
|
<context name="BoldThan-ItalicThan" attribute="Bold-Italic" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold-Italic" String="</i>" />
|
|
<StringDetect context="#pop#pop!ItalicThan" attribute="Format Tag: Bold-Italic" String="</b>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold-Italic" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<!-- <i> <b> text </b> </i> -->
|
|
<context name="ItalicThan-BoldThan" attribute="Bold-Italic" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold-Italic" String="</b>" />
|
|
<StringDetect context="#pop#pop!BoldThan" attribute="Format Tag: Bold-Italic" String="</i>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold-Italic" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<!-- {b} {i} text {/i} {/b} -->
|
|
<context name="BoldCBracket-ItalicCBracket" attribute="Bold-Italic" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold-Italic" String="{/i}" />
|
|
<StringDetect context="#pop#pop!ItalicCBracket" attribute="Format Tag: Bold-Italic" String="{/b}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold-Italic" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<!-- {i} {b} text {/b} {/i} -->
|
|
<context name="ItalicCBracket-BoldCBracket" attribute="Bold-Italic" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold-Italic" String="{/b}" />
|
|
<StringDetect context="#pop#pop!BoldCBracket" attribute="Format Tag: Bold-Italic" String="{/i}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold-Italic" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
|
|
<!-- Bold-Underline -->
|
|
|
|
<!-- <b> <u> text </u> </b> -->
|
|
<context name="BoldThan-UnderlineThan" attribute="Bold-Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold-Underline" String="</u>" />
|
|
<StringDetect context="#pop#pop!UnderlineThan" attribute="Format Tag: Bold-Underline" String="</b>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold-Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<!-- <u> <b> text </b> </u> -->
|
|
<context name="UnderlineThan-BoldThan" attribute="Bold-Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold-Underline" String="</b>" />
|
|
<StringDetect context="#pop#pop!BoldThan" attribute="Format Tag: Bold-Underline" String="</u>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold-Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<!-- {b} {u} text {/u} {/b} -->
|
|
<context name="BoldCBracket-UnderlineCBracket" attribute="Bold-Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold-Underline" String="{/u}" />
|
|
<StringDetect context="#pop#pop!UnderlineCBracket" attribute="Format Tag: Bold-Underline" String="{/b}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold-Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<!-- {u} {b} text {/b} {/u} -->
|
|
<context name="UnderlineCBracket-BoldCBracket" attribute="Bold-Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Bold-Underline" String="{/b}" />
|
|
<StringDetect context="#pop#pop!BoldCBracket" attribute="Format Tag: Bold-Underline" String="{/u}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Bold-Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
|
|
<!-- Italic-Underline -->
|
|
|
|
<!-- <i> <u> text </u> </i> -->
|
|
<context name="ItalicThan-UnderlineThan" attribute="Italic-Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Italic-Underline" String="</u>" />
|
|
<StringDetect context="#pop#pop!UnderlineThan" attribute="Format Tag: Italic-Underline" String="</i>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Italic-Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<!-- <u> <i> text </i> </u> -->
|
|
<context name="UnderlineThan-ItalicThan" attribute="Italic-Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Italic-Underline" String="</i>" />
|
|
<StringDetect context="#pop#pop!ItalicThan" attribute="Format Tag: Italic-Underline" String="</u>" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Italic-Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<!-- {i} {u} text {/u} {/i} -->
|
|
<context name="ItalicCBracket-UnderlineCBracket" attribute="Italic-Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Italic-Underline" String="{/u}" />
|
|
<StringDetect context="#pop#pop!UnderlineCBracket" attribute="Format Tag: Italic-Underline" String="{/i}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Italic-Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
<!-- {u} {i} text {/i} {/u} -->
|
|
<context name="UnderlineCBracket-ItalicCBracket" attribute="Italic-Underline" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop">
|
|
<StringDetect context="#pop" attribute="Format Tag: Italic-Underline" String="{/i}" />
|
|
<StringDetect context="#pop#pop!ItalicCBracket" attribute="Format Tag: Italic-Underline" String="{/u}" />
|
|
<RegExpr context="#stay" attribute="Format Tag: Italic-Underline" String="&formatTags;" />
|
|
<IncludeRules context="SubtitleCommon" />
|
|
</context>
|
|
|
|
</contexts>
|
|
|
|
<itemDatas>
|
|
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
|
|
|
|
<itemData name="Sequence Number" defStyleNum="dsOthers" bold="1" spellChecking="false" />
|
|
<itemData name="Appearance Time" defStyleNum="dsComment" bold="0" italic="0" spellChecking="false" />
|
|
<itemData name="Disappearance Time" defStyleNum="dsComment" bold="0" italic="0" spellChecking="false" />
|
|
<itemData name="Time Arrow" defStyleNum="dsComment" bold="1" italic="0" spellChecking="false" />
|
|
<itemData name="Coordinates" defStyleNum="dsAnnotation" bold="0" italic="0" underline="0" spellChecking="false" />
|
|
<itemData name="Subtitle" defStyleNum="dsNormal" />
|
|
|
|
<itemData name="Tag" defStyleNum="dsVariable" bold="0" italic="0" underline="0" spellChecking="false" />
|
|
<itemData name="Line Alignment Tag" defStyleNum="dsVariable" bold="1" italic="0" underline="0" spellChecking="false" />
|
|
<itemData name="Format Tag" defStyleNum="dsVariable" bold="0" italic="0" underline="0" strikeOut="0" spellChecking="false" />
|
|
<itemData name="Format Tag: Bold" defStyleNum="dsVariable" bold="1" italic="0" underline="0" strikeOut="0" spellChecking="false" />
|
|
<itemData name="Format Tag: Italic" defStyleNum="dsVariable" bold="0" italic="1" underline="0" strikeOut="0" spellChecking="false" />
|
|
<itemData name="Format Tag: Underline" defStyleNum="dsVariable" bold="0" italic="0" underline="1" strikeOut="0" spellChecking="false" />
|
|
<itemData name="Format Tag: Strikethrough" defStyleNum="dsVariable" bold="0" italic="0" underline="0" strikeOut="1" spellChecking="false" />
|
|
<itemData name="Format Tag: Bold-Italic" defStyleNum="dsVariable" bold="1" italic="1" underline="0" strikeOut="0" spellChecking="false" />
|
|
<itemData name="Format Tag: Bold-Underline" defStyleNum="dsVariable" bold="1" italic="0" underline="1" strikeOut="0" spellChecking="false" />
|
|
<itemData name="Format Tag: Italic-Underline" defStyleNum="dsVariable" bold="0" italic="1" underline="1" strikeOut="0" spellChecking="false" />
|
|
<itemData name="Bold" defStyleNum="dsNormal" bold="1" />
|
|
<itemData name="Italic" defStyleNum="dsNormal" italic="1" />
|
|
<itemData name="Underline" defStyleNum="dsNormal" underline="1" />
|
|
<itemData name="Strikethrough" defStyleNum="dsNormal" strikeOut="1" />
|
|
<itemData name="Bold-Italic" defStyleNum="dsNormal" bold="1" italic="1" />
|
|
<itemData name="Bold-Underline" defStyleNum="dsNormal" bold="1" underline="1" />
|
|
<itemData name="Italic-Underline" defStyleNum="dsNormal" italic="1" underline="1" />
|
|
|
|
<itemData name="Escape" defStyleNum="dsSpecialChar" spellChecking="false" />
|
|
<itemData name="Error" defStyleNum="dsError" />
|
|
<itemData name="Error (Subtitle)" defStyleNum="dsError" bold="0" italic="0" underline="0" />
|
|
</itemDatas>
|
|
|
|
</highlighting>
|
|
|
|
</language>
|
|
<!-- kate: replace-tabs off; tab-width 3; indent-width 3; remove-trailing-spaces mod; dynamic-word-wrap off; -->
|