From af7cda8805765ee9aa546091cbb64bf4623d98d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Sat, 8 Aug 2020 18:37:17 +0200 Subject: [PATCH 01/15] [RELEASE] Prepare version 2.2.0 --- CHANGELOG.md | 4 ++++ Documentation/Settings.cfg | 2 +- ext_emconf.php | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 148ab0d..800713d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.2.0] - 2020-08-08 + +- Update Prism to version 1.21.0 + ## [2.1.0] - 2020-04-01 - Update Prism to version 1.19.0 diff --git a/Documentation/Settings.cfg b/Documentation/Settings.cfg index d2a9533..5ac9f38 100644 --- a/Documentation/Settings.cfg +++ b/Documentation/Settings.cfg @@ -2,7 +2,7 @@ [general] project = Code Highlight -release = 2.2.0-dev +release = 2.2.0 copyright = 2019-2020 by Chris Müller [html_theme_options] diff --git a/ext_emconf.php b/ext_emconf.php index fea6d43..9d7c88f 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -8,7 +8,7 @@ 'clearCacheOnLoad' => true, 'author' => 'Chris Müller', 'author_email' => 'typo3@krue.ml', - 'version' => '2.2.0-dev', + 'version' => '2.2.0', 'constraints' => [ 'depends' => [ 'typo3' => '9.5.5-10.4.99', From f7a9091b15e728eb87483cdb3c2c9789f6158418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Mon, 12 Oct 2020 17:53:15 +0200 Subject: [PATCH 02/15] [TASK] Set version to 2.3.0-dev --- Documentation/Settings.cfg | 2 +- ext_emconf.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/Settings.cfg b/Documentation/Settings.cfg index 5ac9f38..18e5350 100644 --- a/Documentation/Settings.cfg +++ b/Documentation/Settings.cfg @@ -2,7 +2,7 @@ [general] project = Code Highlight -release = 2.2.0 +release = 2.3.0-dev copyright = 2019-2020 by Chris Müller [html_theme_options] diff --git a/ext_emconf.php b/ext_emconf.php index 9d7c88f..4065ba7 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -8,7 +8,7 @@ 'clearCacheOnLoad' => true, 'author' => 'Chris Müller', 'author_email' => 'typo3@krue.ml', - 'version' => '2.2.0', + 'version' => '2.3.0-dev', 'constraints' => [ 'depends' => [ 'typo3' => '9.5.5-10.4.99', From fb8639a45a45596caae3ddd8f8c6650358a7a5f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Mon, 12 Oct 2020 18:28:42 +0200 Subject: [PATCH 03/15] [TASK] Update Prism to version 1.22.0 --- ...smjs+1.21.0.patch => prismjs+1.22.0.patch} | 19 +++++++++----- Build/yarn.lock | 6 ++--- CHANGELOG.md | 21 +++++++-------- .../Private/Language/ProgrammingLanguages.xlf | 26 ++++++++++++++++++- .../PHP/AvailableProgrammingLanguages.php | 8 ++++++ .../Prism/components/prism-arduino.min.js | 2 +- .../Public/Prism/components/prism-bash.min.js | 2 +- .../Public/Prism/components/prism-birb.min.js | 1 + .../Public/Prism/components/prism-bsl.min.js | 1 + .../Public/Prism/components/prism-cil.min.js | 2 +- .../Prism/components/prism-clojure.min.js | 2 +- .../prism-firestore-security-rules.min.js | 2 +- .../Prism/components/prism-fortran.min.js | 2 +- .../Public/Prism/components/prism-gml.min.js | 2 +- .../Prism/components/prism-groovy.min.js | 2 +- .../Prism/components/prism-haskell.min.js | 2 +- .../Prism/components/prism-iecst.min.js | 2 +- .../Public/Prism/components/prism-io.min.js | 2 +- .../Prism/components/prism-javascript.min.js | 2 +- .../Prism/components/prism-js-extras.min.js | 2 +- .../Prism/components/prism-mongodb.min.js | 1 + .../Public/Prism/components/prism-n1ql.min.js | 2 +- .../Prism/components/prism-naniscript.min.js | 1 + .../Public/Prism/components/prism-php.min.js | 2 +- .../Prism/components/prism-powershell.min.js | 2 +- .../Prism/components/prism-processing.min.js | 2 +- .../Prism/components/prism-purebasic.min.js | 2 +- .../Prism/components/prism-purescript.min.js | 1 + .../Prism/components/prism-regex.min.js | 2 +- .../Public/Prism/components/prism-rust.min.js | 2 +- .../Prism/components/prism-scheme.min.js | 2 +- .../components/prism-shell-session.min.js | 2 +- .../Public/Prism/components/prism-sml.min.js | 1 + .../Public/Prism/components/prism-stan.min.js | 1 + .../Prism/components/prism-typoscript.min.js | 1 + .../Public/Prism/components/prism-vala.min.js | 2 +- .../Public/Prism/components/prism-vim.min.js | 2 +- .../Prism/components/prism-warpscript.min.js | 2 +- .../Public/Prism/components/prism-yaml.min.js | 2 +- .../autoloader/prism-autoloader.min.js | 2 +- 40 files changed, 93 insertions(+), 49 deletions(-) rename Build/patches/{prismjs+1.21.0.patch => prismjs+1.22.0.patch} (73%) create mode 100644 Resources/Public/Prism/components/prism-birb.min.js create mode 100644 Resources/Public/Prism/components/prism-bsl.min.js create mode 100644 Resources/Public/Prism/components/prism-mongodb.min.js create mode 100644 Resources/Public/Prism/components/prism-naniscript.min.js create mode 100644 Resources/Public/Prism/components/prism-purescript.min.js create mode 100644 Resources/Public/Prism/components/prism-sml.min.js create mode 100644 Resources/Public/Prism/components/prism-stan.min.js create mode 100644 Resources/Public/Prism/components/prism-typoscript.min.js diff --git a/Build/patches/prismjs+1.21.0.patch b/Build/patches/prismjs+1.22.0.patch similarity index 73% rename from Build/patches/prismjs+1.21.0.patch rename to Build/patches/prismjs+1.22.0.patch index 0006a4e..e8bd284 100644 --- a/Build/patches/prismjs+1.21.0.patch +++ b/Build/patches/prismjs+1.22.0.patch @@ -1,13 +1,17 @@ diff --git a/node_modules/prismjs/plugins/autoloader/prism-autoloader.js b/node_modules/prismjs/plugins/autoloader/prism-autoloader.js -index b57c694..23ed575 100644 +index 36764c4..57d0401 100644 --- a/node_modules/prismjs/plugins/autoloader/prism-autoloader.js +++ b/node_modules/prismjs/plugins/autoloader/prism-autoloader.js -@@ -227,23 +227,7 @@ +@@ -233,28 +233,9 @@ + var lang_data = {}; + + var ignored_language = 'none'; +- var languages_path = 'components/'; var script = Prism.util.currentScript(); - if (script) { -- var autoloaderFile = /\bplugins\/autoloader\/prism-autoloader\.(?:min\.)js(?:\?[^\r\n/]*)?$/i; -- var prismFile = /(^|\/)[\w-]+\.(?:min\.)js(?:\?[^\r\n/]*)?$/i; +- if (script) { +- var autoloaderFile = /\bplugins\/autoloader\/prism-autoloader\.(?:min\.)?js(?:\?[^\r\n/]*)?$/i; +- var prismFile = /(^|\/)[\w-]+\.(?:min\.)?js(?:\?[^\r\n/]*)?$/i; - - var autoloaderPath = script.getAttribute('data-autoloader-path'); - if (autoloaderPath != null) { @@ -23,7 +27,8 @@ index b57c694..23ed575 100644 - languages_path = src.replace(prismFile, '$1components/'); - } - } -+ var languages_path = '/typo3conf/ext/codehighlight/Resources/Public/Prism/components/'; - } +- } ++ var languages_path = '/typo3conf/ext/codehighlight/Resources/Public/Prism/components/'; var config = Prism.plugins.autoloader = { + languages_path: languages_path, diff --git a/Build/yarn.lock b/Build/yarn.lock index a0e49c5..d034669 100644 --- a/Build/yarn.lock +++ b/Build/yarn.lock @@ -2017,9 +2017,9 @@ pretty-hrtime@^1.0.0: integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= prismjs@^1.19.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" - integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== + version "1.22.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.22.0.tgz#73c3400afc58a823dd7eed023f8e1ce9fd8977fa" + integrity sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w== optionalDependencies: clipboard "^2.0.0" diff --git a/CHANGELOG.md b/CHANGELOG.md index 800713d..649244d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,32 +6,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Updated +- Prism to version 1.22.0 + ## [2.2.0] - 2020-08-08 -- Update Prism to version 1.21.0 +### Updated +- Prism to version 1.21.0 ## [2.1.0] - 2020-04-01 -- Update Prism to version 1.19.0 +### Updated +- Prism to version 1.19.0 ## [2.0.1] - 2019-12-20 ### Added - - Add t3 pseudo language (#13) ### Fixed - - Fixed an error when editing translated content (#14) ## [2.0.0] - 2019-11-07 ### Added - - Possibility to display filename for snippet (#10) ### Changed - - Move asset handling and HTML code generation from template to view helper (#8) - Move command line TypoScript settings to site configuration (#9) - Separate shell and bash, bnf and rbnf in the list of available languages @@ -39,13 +40,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.1.1] - 2019-10-13 ### Fixed - - Use reference to lib.contentElement instead of assigning FLUIDTEMPLATE (#5) ## [1.1.0] - 2019-10-11 ### Added - - Setting for default user and host in command line (#2) - Activate heading and appearance tab in content element (#3) - Using URL hash to highlight lines and jump to them (#4) @@ -53,17 +52,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.0.1] - 2019-10-03 ### Added - - German translations ## [1.0.0] - 2019-10-01 ### Added - - Content element "Code Snippet" - Syntax highlighting with Prism -[Unreleased]: https://github.com/brotkrueml/codehighlight/compare/v2.1.0...HEAD + +[Unreleased]: https://github.com/brotkrueml/codehighlight/compare/v2.2.0...HEAD +[2.2.0]: https://github.com/brotkrueml/codehighlight/compare/v2.1.0...v2.2.0 [2.1.0]: https://github.com/brotkrueml/codehighlight/compare/v2.0.1...v2.1.0 [2.0.1]: https://github.com/brotkrueml/codehighlight/compare/v2.0.0...v2.0.1 [2.0.0]: https://github.com/brotkrueml/codehighlight/compare/v1.1.1...v2.0.0 diff --git a/Resources/Private/Language/ProgrammingLanguages.xlf b/Resources/Private/Language/ProgrammingLanguages.xlf index a6e96a7..cf9c6ec 100644 --- a/Resources/Private/Language/ProgrammingLanguages.xlf +++ b/Resources/Private/Language/ProgrammingLanguages.xlf @@ -1,6 +1,6 @@ - + @@ -68,6 +68,9 @@ + + + @@ -83,6 +86,9 @@ + + + @@ -389,6 +395,9 @@ + + + @@ -398,6 +407,9 @@ + + + @@ -497,6 +509,9 @@ + + + @@ -575,6 +590,9 @@ + + + @@ -596,6 +614,9 @@ + + + @@ -641,6 +662,9 @@ + + + diff --git a/Resources/Private/PHP/AvailableProgrammingLanguages.php b/Resources/Private/PHP/AvailableProgrammingLanguages.php index f6ccead..b62d9d6 100644 --- a/Resources/Private/PHP/AvailableProgrammingLanguages.php +++ b/Resources/Private/PHP/AvailableProgrammingLanguages.php @@ -22,11 +22,13 @@ 'basic', 'batch', 'bbcode', + 'birb', 'bison', 'bnf', 'brainfuck', 'brightscript', 'bro', + 'bsl', 'c', 'cil', 'clike', @@ -127,11 +129,13 @@ 'matlab', 'mel', 'mizar', + 'mongodb', 'monkey', 'moonscript', 'n1ql', 'n4js', 'nand2tetris-hdl', + 'naniscript', 'nasm', 'neon', 'nginx', @@ -163,6 +167,7 @@ 'puppet', 'pure', 'purebasic', + 'purescript', 'python', 'q', 'qml', @@ -187,6 +192,7 @@ 'smali', 'smalltalk', 'smarty', + 'sml', 'solidity', 'solution-file', 'soy', @@ -194,6 +200,7 @@ 'splunk-spl', 'sqf', 'sql', + 'stan', 'stylus', 'swift', 't4-cs', @@ -208,6 +215,7 @@ 'turtle', 'twig', 'typescript', + 'typoscript', 'unrealscript', 'vala', 'vbnet', diff --git a/Resources/Public/Prism/components/prism-arduino.min.js b/Resources/Public/Prism/components/prism-arduino.min.js index 9624128..010132e 100644 --- a/Resources/Public/Prism/components/prism-arduino.min.js +++ b/Resources/Public/Prism/components/prism-arduino.min.js @@ -1 +1 @@ -Prism.languages.arduino=Prism.languages.extend("cpp",{keyword:/\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\b/,builtin:/\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|IPAddress|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\b/,constant:/\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\b/}); \ No newline at end of file +Prism.languages.arduino=Prism.languages.extend("cpp",{keyword:/\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\b/,builtin:/\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\b/,constant:/\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\b/}); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-bash.min.js b/Resources/Public/Prism/components/prism-bash.min.js index bf4e91a..835749b 100644 --- a/Resources/Public/Prism/components/prism-bash.min.js +++ b/Resources/Public/Prism/components/prism-bash.min.js @@ -1 +1 @@ -!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\2)[^\\])*\2/,lookbehind:!0,greedy:!0,inside:n}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],r=n.variable[1].inside,s=0;s>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:a},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\2)[^\\])*\2/,lookbehind:!0,greedy:!0,inside:a}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:a.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=a.variable[1].inside,o=0;o>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/}),Prism.languages.insertBefore("birb","function",{metadata:{pattern:/<\w+>/,greedy:!0,alias:"symbol"}}); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-bsl.min.js b/Resources/Public/Prism/components/prism-bsl.min.js new file mode 100644 index 0000000..c2d118b --- /dev/null +++ b/Resources/Public/Prism/components/prism-bsl.min.js @@ -0,0 +1 @@ +Prism.languages.bsl={comment:/\/\/.*/,string:[{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},{pattern:/'(?:[^'\r\n\\]|\\.)*'/}],keyword:[{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:while|for|new|break|try|except|raise|else|endtry|undefined|function|var|return|endfunction|null|if|elseif|procedure|endprocedure|then|val|export|endif|in|each|true|false|to|do|enddo|execute)\b/i}],number:{pattern:/(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+\.?\d*|\.\d+)(?:E[+-]?\d+)?/i,lookbehind:!0},operator:[/[<>+\-*/]=?|[%=]/,{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:и|или|не)(?![\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:and|or|not)\b/i}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/,directive:[{pattern:/^(\s*)&.*/m,lookbehind:!0,alias:"important"},{pattern:/^\s*#.*/gm,alias:"important"}]},Prism.languages.oscript=Prism.languages.bsl; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-cil.min.js b/Resources/Public/Prism/components/prism-cil.min.js index 5669fc4..4b5e3f9 100644 --- a/Resources/Public/Prism/components/prism-cil.min.js +++ b/Resources/Public/Prism/components/prism-cil.min.js @@ -1 +1 @@ -Prism.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|iant|idispatch|implements|import|initonly|instance|u?int(?:8|16|32|64)?|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|unaligned|volatile|readonly|tail|no)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.[0-9]+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.[0-9]+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|ldvirtftn|castclass|beq(?:\.s)?|mkrefany|localloc|ckfinite|rethrow|ldtoken|ldsflda|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stloc|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|clt|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:true|false)\b/,number:/\b-?(?:0x[0-9a-fA-F]+|[0-9]+)(?:\.[0-9a-fA-F]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}; \ No newline at end of file +Prism.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|iant|idispatch|implements|import|initonly|instance|u?int(?:8|16|32|64)?|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|unaligned|volatile|readonly|tail|no)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.[0-9]+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.[0-9]+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|ldvirtftn|castclass|beq(?:\.s)?|mkrefany|localloc|ckfinite|rethrow|ldtoken|ldsflda|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:true|false)\b/,number:/\b-?(?:0x[0-9a-fA-F]+|[0-9]+)(?:\.[0-9a-fA-F]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-clojure.min.js b/Resources/Public/Prism/components/prism-clojure.min.js index f9f1dcd..122f9ba 100644 --- a/Resources/Public/Prism/components/prism-clojure.min.js +++ b/Resources/Public/Prism/components/prism-clojure.min.js @@ -1 +1 @@ -Prism.languages.clojure={comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},operator:/(?:::|[:|'])\b[a-z][\w*+!?-]*\b/i,keyword:{pattern:/([^\w+*'?-])(?:def|if|do|let|\.\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\.|new|set!|def\-|defn|defn\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\*|\+|\-|\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\*|list|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\?|new|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\?|union|up|update-proxy|val|vals|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[^\w+*'?-])/,lookbehind:!0},boolean:/\b(?:true|false|nil)\b/,number:/\b[\da-f]+\b/i,punctuation:/[{}\[\](),]/}; \ No newline at end of file +Prism.languages.clojure={comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},operator:/(?:::|[:|'])\b[a-z][\w*+!?-]*\b/i,keyword:{pattern:/([^\w+*'?-])(?:def|if|do|let|\.\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\.|new|set!|def\-|defn|defn\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\*|\+|\-|\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\*|list|load|load-file|locking|long|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\?|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\?|union|up|update-proxy|val|vals|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[^\w+*'?-])/,lookbehind:!0},boolean:/\b(?:true|false|nil)\b/,number:/\b[\da-f]+\b/i,punctuation:/[{}\[\](),]/}; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-firestore-security-rules.min.js b/Resources/Public/Prism/components/prism-firestore-security-rules.min.js index e9171f4..c826193 100644 --- a/Resources/Public/Prism/components/prism-firestore-security-rules.min.js +++ b/Resources/Public/Prism/components/prism-firestore-security-rules.min.js @@ -1 +1 @@ -Prism.languages["firestore-security-rules"]=Prism.languages.extend("clike",{comment:/\/\/.*/,keyword:/\b(?:allow|function|if|match|null|return|rules_version|service)\b/,operator:/&&|\|\||[<>!=]=?|[-+*/%=]|\b(?:in|is)\b/}),delete Prism.languages["firestore-security-rules"]["class-name"],Prism.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/[/]/}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}}); \ No newline at end of file +Prism.languages["firestore-security-rules"]=Prism.languages.extend("clike",{comment:/\/\/.*/,keyword:/\b(?:allow|function|if|match|null|return|rules_version|service)\b/,operator:/&&|\|\||[<>!=]=?|[-+*/%]|\b(?:in|is)\b/}),delete Prism.languages["firestore-security-rules"]["class-name"],Prism.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/[/]/}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}}); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-fortran.min.js b/Resources/Public/Prism/components/prism-fortran.min.js index 6fc0847..aa25e86 100644 --- a/Resources/Public/Prism/components/prism-fortran.min.js +++ b/Resources/Public/Prism/components/prism-fortran.min.js @@ -1 +1 @@ -Prism.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:\s*!.+(?:\r\n?|\n))?|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:TRUE|FALSE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV)\.|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}; \ No newline at end of file +Prism.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:\s*!.+(?:\r\n?|\n))?|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:TRUE|FALSE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-gml.min.js b/Resources/Public/Prism/components/prism-gml.min.js index a4a662c..d8cc676 100644 --- a/Resources/Public/Prism/components/prism-gml.min.js +++ b/Resources/Public/Prism/components/prism-gml.min.js @@ -1 +1 @@ -Prism.languages.gamemakerlanguage=Prism.languages.gml=Prism.languages.extend("clike",{number:/(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ulf]*/i,keyword:/\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\b/,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at|xor|not)\b/,constant:/\b(?:self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\d|numpad\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|spritespeed_framesper(?:second|gameframe)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(?:obj|scr|spr|rm)\w+)\b/,variable:/\b(?:x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\d)|argument|global|local|self|other)\b/}); \ No newline at end of file +Prism.languages.gamemakerlanguage=Prism.languages.gml=Prism.languages.extend("clike",{number:/(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ulf]*/i,keyword:/\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\b/,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at|xor)\b/,constant:/\b(?:self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\d|numpad\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|spritespeed_framesper(?:second|gameframe)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(?:obj|scr|spr|rm)\w+)\b/,variable:/\b(?:x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\d)|argument|global|local|self|other)\b/}); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-groovy.min.js b/Resources/Public/Prism/components/prism-groovy.min.js index 726bcb6..79850e6 100644 --- a/Resources/Public/Prism/components/prism-groovy.min.js +++ b/Resources/Public/Prism/components/prism-groovy.min.js @@ -1 +1 @@ -Prism.languages.groovy=Prism.languages.extend("clike",{string:[{pattern:/("""|''')(?:[^\\]|\\[\s\S])*?\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0},{pattern:/(["'/])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:/\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),.:$]/}),Prism.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),Prism.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:setup|given|when|then|and|cleanup|expect|where):/}),Prism.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),Prism.hooks.add("wrap",function(e){if("groovy"===e.language&&"string"===e.type){var t=e.content[0];if("'"!=t){var n=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;"$"===t&&(n=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),e.content=e.content.replace(/</g,"<").replace(/&/g,"&"),e.content=Prism.highlight(e.content,{expression:{pattern:n,lookbehind:!0,inside:Prism.languages.groovy}}),e.classes.push("/"===t?"regex":"gstring")}}}); \ No newline at end of file +Prism.languages.groovy=Prism.languages.extend("clike",{string:[{pattern:/("""|''')(?:[^\\]|\\[\s\S])*?\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0},{pattern:/(["'/])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:/\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),Prism.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),Prism.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:setup|given|when|then|and|cleanup|expect|where):/}),Prism.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),Prism.hooks.add("wrap",function(e){if("groovy"===e.language&&"string"===e.type){var t=e.content[0];if("'"!=t){var n=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;"$"===t&&(n=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),e.content=e.content.replace(/</g,"<").replace(/&/g,"&"),e.content=Prism.highlight(e.content,{expression:{pattern:n,lookbehind:!0,inside:Prism.languages.groovy}}),e.classes.push("/"===t?"regex":"gstring")}}}); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-haskell.min.js b/Resources/Public/Prism/components/prism-haskell.min.js index 49010de..7b9534d 100644 --- a/Resources/Public/Prism/components/prism-haskell.min.js +++ b/Resources/Public/Prism/components/prism-haskell.min.js @@ -1 +1 @@ -Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--[^-!#$%*+=?&@|~.:<>^\\\/].*|{-[\s\S]*?-})/m,lookbehind:!0},char:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,string:{pattern:/"(?:[^\\"]|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\s+\\)*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,import_statement:{pattern:/((?:\r?\n|\r|^)\s*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][_a-zA-Z0-9']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|qualified|as|hiding)\b/}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,hvariable:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,constant:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,punctuation:/[{}[\];(),.:]/},Prism.languages.hs=Prism.languages.haskell; \ No newline at end of file +Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|{-[\s\S]*?-})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^\s*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|qualified|as|hiding)\b/}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,hvariable:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,constant:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,punctuation:/[{}[\];(),.:]/},Prism.languages.hs=Prism.languages.haskell; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-iecst.min.js b/Resources/Public/Prism/components/prism-iecst.min.js index 2356700..7a45ddf 100644 --- a/Resources/Public/Prism/components/prism-iecst.min.js +++ b/Resources/Public/Prism/components/prism-iecst.min.js @@ -1 +1 @@ -Prism.languages.iecst={comment:[{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":/\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:GLOBAL|INPUT|PUTPUT|IN_OUT|ACCESS|TEMP|EXTERNAL|CONFIG)|VAR|METHOD|PROPERTY)\b/i,keyword:/\b(?:(?:END_)?(?:IF|WHILE|REPEAT|CASE|FOR)|ELSE|FROM|THEN|ELSIF|DO|TO|BY|PRIVATE|PUBLIC|PROTECTED|CONSTANT|RETURN|EXIT|CONTINUE|GOTO|JMP|AT|RETAIN|NON_RETAIN|TASK|WITH|UNTIL|USING|EXTENDS|IMPLEMENTS|GET|SET|__TRY|__CATCH|__FINALLY|__ENDTRY)\b/,variable:/\b(?:AT|BOOL|BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT|L?REAL|TIME(?:_OF_DAY)?|TOD|DT|DATE(?:_AND_TIME)?|STRING|ARRAY|ANY|POINTER)\b/,symbol:/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,number:/\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:T|D|DT|TOD)#[\d_shmd:]*|\b[A-Z]*\#[\d.,_]*|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/,function:/\w+(?=\()/,operator:/(?:S?R?:?=>?|&&?|\*\*?|<=?|>=?|[-:^/+])|\b(?:OR|AND|MOD|NOT|XOR|LE|GE|EQ|NE|GE|LT)\b/,punctuation:/[();]/,type:{pattern:/#/,alias:"selector"}}; \ No newline at end of file +Prism.languages.iecst={comment:[{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":/\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:GLOBAL|INPUT|PUTPUT|IN_OUT|ACCESS|TEMP|EXTERNAL|CONFIG)|VAR|METHOD|PROPERTY)\b/i,keyword:/\b(?:(?:END_)?(?:IF|WHILE|REPEAT|CASE|FOR)|ELSE|FROM|THEN|ELSIF|DO|TO|BY|PRIVATE|PUBLIC|PROTECTED|CONSTANT|RETURN|EXIT|CONTINUE|GOTO|JMP|AT|RETAIN|NON_RETAIN|TASK|WITH|UNTIL|USING|EXTENDS|IMPLEMENTS|GET|SET|__TRY|__CATCH|__FINALLY|__ENDTRY)\b/,variable:/\b(?:AT|BOOL|BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT|L?REAL|TIME(?:_OF_DAY)?|TOD|DT|DATE(?:_AND_TIME)?|STRING|ARRAY|ANY|POINTER)\b/,symbol:/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,number:/\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:T|D|DT|TOD)#[\d_shmd:]*|\b[A-Z]*\#[\d.,_]*|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/,function:/\w+(?=\()/,operator:/(?:S?R?:?=>?|&&?|\*\*?|<=?|>=?|[-:^/+])|\b(?:OR|AND|MOD|NOT|XOR|LE|GE|EQ|NE|GT|LT)\b/,punctuation:/[();]/,type:{pattern:/#/,alias:"selector"}}; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-io.min.js b/Resources/Public/Prism/components/prism-io.min.js index 4e62e55..52bd123 100644 --- a/Resources/Public/Prism/components/prism-io.min.js +++ b/Resources/Public/Prism/components/prism-io.min.js @@ -1 +1 @@ -Prism.languages.io={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum|Sequence)\b/,boolean:/\b(?:true|false|nil)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*/%+\-^&|]=|>>?=?|<>?=?|<|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.js=Prism.languages.javascript; \ No newline at end of file +Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\s*[\[$\w\xA0-\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-flags":/[a-z]+$/,"regex-delimiter":/^\/|\/$/}},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.js=Prism.languages.javascript; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-js-extras.min.js b/Resources/Public/Prism/components/prism-js-extras.min.js index 7a5aa0f..0505140 100644 --- a/Resources/Public/Prism/components/prism-js-extras.min.js +++ b/Resources/Public/Prism/components/prism-js-extras.min.js @@ -1 +1 @@ -!function(a){a.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+a.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),a.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+a.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),a.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),a.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),a.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),a.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:/(\.\s*)#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*/,lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var e=["function","function-variable","method","method-variable","property-access"],t=0;t/g,function(){return"[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*"}),e)}a.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+a.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),a.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+a.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),a.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),a.languages.insertBefore("javascript","keyword",{imports:{pattern:e("(\\bimport\\b\\s*)(?:(?:\\s*,\\s*(?:\\*\\s*as\\s+|\\{[^{}]*\\}))?|\\*\\s*as\\s+|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)"),lookbehind:!0,inside:a.languages.javascript},exports:{pattern:e("(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})"),lookbehind:!0,inside:a.languages.javascript}}),a.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|for|finally|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),a.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),a.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:e("(\\.\\s*)#?"),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var t=["function","function-variable","method","method-variable","property-access"],r=0;r=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}; \ No newline at end of file +Prism.languages.n1ql={comment:/\/\*[\s\S]*?(?:$|\*\/)/,parameter:/\$[\w.]+/,string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},function:/\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|IsBitSET|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\s*\()/i,keyword:/\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\b/i,boolean:/\b(?:TRUE|FALSE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+\.?\d*|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-naniscript.min.js b/Resources/Public/Prism/components/prism-naniscript.min.js new file mode 100644 index 0000000..11558ba --- /dev/null +++ b/Resources/Public/Prism/components/prism-naniscript.min.js @@ -0,0 +1 @@ +!function(e){var a=/\{[^\r\n\[\]{}]*\}/,n={"quoted-string":{pattern:/"(?:[^"\\]|\\.)*"/,alias:"operator"},"command-param-id":{pattern:/(\s)\w+:/,lookbehind:!0,alias:"property"},"command-param-value":[{pattern:a,alias:"selector"},{pattern:/([\t ])\S+/,lookbehind:!0,greedy:!0,alias:"operator"},{pattern:/\S(?:.*\S)?/,alias:"operator"}]};function t(e){return"string"==typeof e?e:Array.isArray(e)?e.map(t).join(""):t(e.content)}e.languages.naniscript={comment:{pattern:/^([\t ]*);.*/m,lookbehind:!0},define:{pattern:/^>.+/m,alias:"tag",inside:{value:{pattern:/(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,lookbehind:!0,alias:"operator"},key:{pattern:/(^>)\w+/,lookbehind:!0}}},label:{pattern:/^([\t ]*)#[\t ]*\w+[\t ]*$/m,lookbehind:!0,alias:"regex"},command:{pattern:/^([\t ]*)@\w+(?=[\t ]|$).*/m,lookbehind:!0,alias:"function",inside:{"command-name":/^@\w+/,expression:{pattern:a,greedy:!0,alias:"selector"},"command-params":{pattern:/[\s\S]*\S[\s\S]*/,inside:n}}},"generic-text":{pattern:/(^[ \t]*)[^#@>;\s].*/m,lookbehind:!0,alias:"punctuation",inside:{"escaped-char":/\\[{}\[\]"]/,expression:{pattern:a,greedy:!0,alias:"selector"},"inline-command":{pattern:/\[[\t ]*\w+[^\r\n\[\]]*\]/,greedy:!0,alias:"function",inside:{"command-params":{pattern:/(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,lookbehind:!0,inside:n},"command-param-name":{pattern:/^(\[[\t ]*)\w+/,lookbehind:!0,alias:"name"},"start-stop-char":/[\[\]]/}}}}},e.languages.nani=e.languages.naniscript,e.hooks.add("after-tokenize",function(e){e.tokens.forEach(function(e){if("string"!=typeof e&&"generic-text"===e.type){var a=t(e);(function(e){for(var a=[],n=0;n$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),n.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),n.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var e={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)*)/,lookbehind:!0,inside:n.languages.php};n.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:e}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:e}}}),delete n.languages.php.string,n.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){n.languages["markup-templating"].buildPlaceholders(e,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}}),n.hooks.add("after-tokenize",function(e){n.languages["markup-templating"].tokenizePlaceholders(e,"php")})}(Prism); \ No newline at end of file +!function(n){n.languages.php=n.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,boolean:{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),n.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),n.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),n.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),n.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var e={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)*)/,lookbehind:!0,inside:n.languages.php};n.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:e}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:e}}}),delete n.languages.php.string,n.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){n.languages["markup-templating"].buildPlaceholders(e,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}}),n.hooks.add("after-tokenize",function(e){n.languages["markup-templating"].tokenizePlaceholders(e,"php")})}(Prism); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-powershell.min.js b/Resources/Public/Prism/components/prism-powershell.min.js index ca7177b..b52e861 100644 --- a/Resources/Public/Prism/components/prism-powershell.min.js +++ b/Resources/Public/Prism/components/prism-powershell.min.js @@ -1 +1 @@ -!function(e){var i=Prism.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:{function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*]|[^\[\]])*]|[^\[\]])*]/i,boolean:/\$(?:true|false)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/},r=i.string[0].inside;r.boolean=i.boolean,r.variable=i.variable,r.function.inside=i}(); \ No newline at end of file +!function(e){var i=Prism.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:{function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*]|[^\[\]])*]|[^\[\]])*]/i,boolean:/\$(?:true|false)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/},r=i.string[0].inside;r.boolean=i.boolean,r.variable=i.variable,r.function.inside=i}(); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-processing.min.js b/Resources/Public/Prism/components/prism-processing.min.js index e2cc0d1..9ba03b7 100644 --- a/Resources/Public/Prism/components/prism-processing.min.js +++ b/Resources/Public/Prism/components/prism-processing.min.js @@ -1 +1 @@ -Prism.languages.processing=Prism.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),Prism.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z]\w*)\b/,alias:"variable"}}),Prism.languages.processing.function.pattern=/\w+(?=\s*\()/,Prism.languages.processing["class-name"].alias="variable"; \ No newline at end of file +Prism.languages.processing=Prism.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),Prism.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/,alias:"variable"}}),Prism.languages.processing.function=/\w+(?=\s*\()/,Prism.languages.processing["class-name"].alias="variable"; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-purebasic.min.js b/Resources/Public/Prism/components/prism-purebasic.min.js index 131123b..377ee4c 100644 --- a/Resources/Public/Prism/components/prism-purebasic.min.js +++ b/Resources/Public/Prism/components/prism-purebasic.min.js @@ -1 +1 @@ -Prism.languages.purebasic=Prism.languages.extend("clike",{comment:/;.*/,keyword:/\b(?:declarecdll|declaredll|compilerselect|compilercase|compilerdefault|compilerendselect|compilererror|enableexplicit|disableexplicit|not|and|or|xor|calldebugger|debuglevel|enabledebugger|disabledebugger|restore|read|includepath|includebinary|threaded|runtime|with|endwith|structureunion|endstructureunion|align|newlist|newmap|interface|endinterface|extends|enumeration|endenumeration|swap|foreach|continue|fakereturn|goto|gosub|return|break|module|endmodule|declaremodule|enddeclaremodule|declare|declarec|prototype|prototypec|enableasm|disableasm|dim|redim|data|datasection|enddatasection|to|procedurereturn|debug|default|case|select|endselect|as|import|endimport|importc|compilerif|compilerelse|compilerendif|compilerelseif|end|structure|endstructure|while|wend|for|next|step|if|else|elseif|endif|repeat|until|procedure|proceduredll|procedurec|procedurecdll|endprocedure|protected|shared|static|global|define|includefile|xincludefile|macro|endmacro)\b/i,function:/\b\w+(?:\.\w+)?\s*(?=\()/,number:/(?:\$[\da-f]+|\b-?\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*/@]/}),Prism.languages.insertBefore("purebasic","keyword",{tag:/#\w+/,asm:{pattern:/(^\s*)!.*/m,lookbehind:!0,alias:"tag",inside:{comment:/;.*/,string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"label-reference-anonymous":{pattern:/(\s*!\s*j[a-z]+\s+)@[fb]/i,lookbehind:!0,alias:"fasm-label"},"label-reference-addressed":{pattern:/(\s*!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,lookbehind:!0,alias:"fasm-label"},function:{pattern:/^(\s*!\s*)[\da-z]+(?=\s|$)/im,lookbehind:!0},"function-inline":{pattern:/(\s*:\s*)[\da-z]+(?=\s)/i,lookbehind:!0,alias:"function"},label:{pattern:/^(\s*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,lookbehind:!0,alias:"fasm-label"},keyword:[/(?:extern|extern|global)[^;\r\n]*/i,/(?:CPU|FLOAT|DEFAULT).*/],register:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s|mm\d+)\b/i,number:/(?:\b|-|(?=\$))(?:0[hx][\da-f]*\.?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-/%<>=&|$!,.:]/}}}),delete Prism.languages.purebasic["class-name"],delete Prism.languages.purebasic.boolean,Prism.languages.pbfasm=Prism.languages.purebasic; \ No newline at end of file +Prism.languages.purebasic=Prism.languages.extend("clike",{comment:/;.*/,keyword:/\b(?:declarecdll|declaredll|compilerselect|compilercase|compilerdefault|compilerendselect|compilererror|enableexplicit|disableexplicit|not|and|or|xor|calldebugger|debuglevel|enabledebugger|disabledebugger|restore|read|includepath|includebinary|threaded|runtime|with|endwith|structureunion|endstructureunion|align|newlist|newmap|interface|endinterface|extends|enumeration|endenumeration|swap|foreach|continue|fakereturn|goto|gosub|return|break|module|endmodule|declaremodule|enddeclaremodule|declare|declarec|prototype|prototypec|enableasm|disableasm|dim|redim|data|datasection|enddatasection|to|procedurereturn|debug|default|case|select|endselect|as|import|endimport|importc|compilerif|compilerelse|compilerendif|compilerelseif|end|structure|endstructure|while|wend|for|next|step|if|else|elseif|endif|repeat|until|procedure|proceduredll|procedurec|procedurecdll|endprocedure|protected|shared|static|global|define|includefile|xincludefile|macro|endmacro)\b/i,function:/\b\w+(?:\.\w+)?\s*(?=\()/,number:/(?:\$[\da-f]+|\b-?\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*/@]/}),Prism.languages.insertBefore("purebasic","keyword",{tag:/#\w+/,asm:{pattern:/(^\s*)!.*/m,lookbehind:!0,alias:"tag",inside:{comment:/;.*/,string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"label-reference-anonymous":{pattern:/(\s*!\s*j[a-z]+\s+)@[fb]/i,lookbehind:!0,alias:"fasm-label"},"label-reference-addressed":{pattern:/(\s*!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,lookbehind:!0,alias:"fasm-label"},function:{pattern:/^(\s*!\s*)[\da-z]+(?=\s|$)/im,lookbehind:!0},"function-inline":{pattern:/(\s*:\s*)[\da-z]+(?=\s)/i,lookbehind:!0,alias:"function"},label:{pattern:/^(\s*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,lookbehind:!0,alias:"fasm-label"},keyword:[/(?:extern|global)[^;\r\n]*/i,/(?:CPU|FLOAT|DEFAULT).*/],register:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s|mm\d+)\b/i,number:/(?:\b|-|(?=\$))(?:0[hx][\da-f]*\.?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-/%<>=&|$!,.:]/}}}),delete Prism.languages.purebasic["class-name"],delete Prism.languages.purebasic.boolean,Prism.languages.pbfasm=Prism.languages.purebasic; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-purescript.min.js b/Resources/Public/Prism/components/prism-purescript.min.js new file mode 100644 index 0000000..5f82482 --- /dev/null +++ b/Resources/Public/Prism/components/prism-purescript.min.js @@ -0,0 +1 @@ +Prism.languages.purescript=Prism.languages.extend("haskell",{keyword:/\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^\s*)import\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*(?:\s+as\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|as|hiding)\b/}},builtin:/\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\b/}),Prism.languages.purs=Prism.languages.purescript; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-regex.min.js b/Resources/Public/Prism/components/prism-regex.min.js index e2a76df..15de75e 100644 --- a/Resources/Public/Prism/components/prism-regex.min.js +++ b/Resources/Public/Prism/components/prism-regex.min.js @@ -1 +1 @@ -!function(n){var a={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},e=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|c[a-zA-Z]|0[0-7]{0,2}|[123][0-7]{2}|.)/,t="(?:[^\\\\-]|"+e.source+")",i=RegExp(t+"-"+t),r={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};n.languages.regex={charset:{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"charset-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"charset-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:i,inside:{escape:e,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":a,charclass:{pattern:/\\[wsd]|\\p{[^{}]+}/i,alias:"class-name"},escape:e}},"special-escape":a,charclass:{pattern:/\.|\\[wsd]|\\p{[^{}]+}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":r}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:e,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|']+(?=[>']$)/,lookbehind:!0,alias:"variable"};a.languages.regex={charset:{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"charset-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"charset-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":e,charclass:{pattern:/\\[wsd]|\\p{[^{}]+}/i,alias:"class-name"},escape:n}},"special-escape":e,charclass:{pattern:/\.|\\[wsd]|\\p{[^{}]+}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":i}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|)*\\*/",t=0;t<2;t++)a=a.replace(//g,function(){return a});a=a.replace(//g,function(){return"[^\\s\\S]"}),e.languages.rust={comment:[{pattern:RegExp("(^|[^\\\\])"+a),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u{(?:[\da-fA-F]_*){1,6}|.)|[^\\\r\n\t'])'/,greedy:!0,alias:"string"},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|Self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:[ui](?:8|16|32|64|128|size)|f(?:32|64)|bool|char|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64|size)?|f32|f64))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism); \ No newline at end of file +!function(e){for(var a="/\\*(?:[^*/]|\\*(?!/)|/(?!\\*)|)*\\*/",t=0;t<2;t++)a=a.replace(//g,function(){return a});a=a.replace(//g,function(){return"[^\\s\\S]"}),e.languages.rust={comment:[{pattern:RegExp("(^|[^\\\\])"+a),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0,alias:"string"},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|Self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:[ui](?:8|16|32|64|128|size)|f(?:32|64)|bool|char|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64|size)?|f32|f64))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-scheme.min.js b/Resources/Public/Prism/components/prism-scheme.min.js index 7176052..db51b86 100644 --- a/Resources/Public/Prism/components/prism-scheme.min.js +++ b/Resources/Public/Prism/components/prism-scheme.min.js @@ -1 +1 @@ -Prism.languages.scheme={comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},symbol:{pattern:/'[^()#'\s]+/,greedy:!0},character:{pattern:/#\\(?:[ux][a-fA-F\d]+|[-a-zA-Z]+|\S)/,greedy:!0,alias:"string"},"lambda-parameter":[{pattern:/(\(lambda\s+)[^()'\s]+/,lookbehind:!0},{pattern:/(\(lambda\s+\()[^()']+/,lookbehind:!0}],keyword:{pattern:/(\()(?:define(?:-library|-macro|-syntax|-values)?|defmacro|(?:case-)?lambda|let(?:(?:\*|rec)?(?:-values)?|-syntax|rec-syntax)|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-(?:case|rules))(?=[()\s]|$)/,lookbehind:!0},builtin:{pattern:/(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)(?=[()\s]|$)/,lookbehind:!0},number:{pattern:/(^|[\s()])(?:(?:#d(?:#[ei])?|#[ei](?:#d)?)?[+-]?(?:(?:\d*\.?\d+(?:[eE][+-]?\d+)?|\d+\/\d+)(?:[+-](?:\d*\.?\d+(?:[eE][+-]?\d+)?|\d+\/\d+)i)?|(?:\d*\.?\d+(?:[eE][+-]?\d+)?|\d+\/\d+)i)|(?:#[box](?:#[ei])?|#[ei](?:#[box])?)[+-]?(?:[\da-fA-F]+(?:\/[\da-fA-F]+)?(?:[+-][\da-fA-F]+(?:\/[\da-fA-F]+)?i)?|[\da-fA-F]+(?:\/[\da-fA-F]+)?i))(?=[()\s]|$)/,lookbehind:!0},boolean:{pattern:/(^|[\s()])#[ft](?=[()\s]|$)/,lookbehind:!0},operator:{pattern:/(\()(?:[-+*%\/]|[<>]=?|=>?)(?=[()\s]|$)/,lookbehind:!0},function:{pattern:/(\()[^()'\s]+(?=[()\s]|$)/,lookbehind:!0},punctuation:/[()']/}; \ No newline at end of file +Prism.languages.scheme={comment:/;.*|#;\s*\((?:[^()]|\([^()]*\))*\)|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},symbol:{pattern:/'[^()#'\s]+/,greedy:!0},character:{pattern:/#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|\S)/,greedy:!0,alias:"string"},"lambda-parameter":[{pattern:/(\(lambda\s+)(?:[^|()'\s]+|\|(?:[^\\|]|\\.)*\|)/,lookbehind:!0},{pattern:/(\(lambda\s+\()[^()']+/,lookbehind:!0}],keyword:{pattern:/(\()(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|export|except|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\s]|$)/,lookbehind:!0},builtin:{pattern:/(\()(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\s]|$)/,lookbehind:!0},operator:{pattern:/(\()(?:[-+*%/]|[<>]=?|=>?)(?=[()\s]|$)/,lookbehind:!0},number:{pattern:/(^|[\s()])(?:(?:#d(?:#[ei])?|#[ei](?:#d)?)?[+-]?(?:(?:\d*\.?\d+(?:[eE][+-]?\d+)?|\d+\/\d+)(?:[+-](?:\d*\.?\d+(?:[eE][+-]?\d+)?|\d+\/\d+)i)?|(?:\d*\.?\d+(?:[eE][+-]?\d+)?|\d+\/\d+)i)|(?:#[box](?:#[ei])?|#[ei](?:#[box])?)[+-]?(?:[\da-fA-F]+(?:\/[\da-fA-F]+)?(?:[+-][\da-fA-F]+(?:\/[\da-fA-F]+)?i)?|[\da-fA-F]+(?:\/[\da-fA-F]+)?i))(?=[()\s]|$)/,lookbehind:!0},boolean:{pattern:/(^|[\s()])#(?:[ft]|false|true)(?=[()\s]|$)/,lookbehind:!0},function:{pattern:/(\()(?:[^|()'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\s]|$)/,lookbehind:!0},identifier:{pattern:/(^|[\s()])\|(?:[^\\|]|\\.)*\|(?=[()\s]|$)/,lookbehind:!0,greedy:!0},punctuation:/[()']/}; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-shell-session.min.js b/Resources/Public/Prism/components/prism-shell-session.min.js index 1bfb208..c4f3e71 100644 --- a/Resources/Public/Prism/components/prism-shell-session.min.js +++ b/Resources/Public/Prism/components/prism-shell-session.min.js @@ -1 +1 @@ -!function(n){var s=["([\"'])(?:\\\\[^]|\\$\\([^)]+\\)|`[^`]+`|(?!\\1)[^\\\\])*\\1","<<-?\\s*(\\w+?)[ \t]*(?!.)[^]*?[\r\n]\\2","<<-?\\s*([\"'])(\\w+)\\3[ \t]*(?!.)[^]*?[\r\n]\\4"].join("|");n.languages["shell-session"]={info:{pattern:/^[^\r\n$#*!]+(?=[$#])/m,alias:"punctuation",inside:{path:{pattern:/(:)[\s\S]+/,lookbehind:!0},user:/^[^\s@:$#*!/\\]+@[^\s@:$#*!/\\]+(?=:|$)/,punctuation:/:/}},command:{pattern:RegExp("[$#](?:[^\\\\\r\n'\"<]|\\\\.|<>)+".replace(/<>/g,function(){return s})),greedy:!0,inside:{bash:{pattern:/(^[$#]\s*)[\s\S]+/,lookbehind:!0,alias:"language-bash",inside:n.languages.bash},"shell-symbol":{pattern:/^[$#]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/}}(Prism); \ No newline at end of file +!function(s){var n=["([\"'])(?:\\\\[^]|\\$\\([^)]+\\)|`[^`]+`|(?!\\1)[^\\\\])*\\1","<<-?\\s*([\"']?)(\\w+)\\2\\s[^]*?[\r\n]\\3"].join("|");s.languages["shell-session"]={info:{pattern:/^[^\r\n$#*!]+(?=[$#])/m,alias:"punctuation",inside:{path:{pattern:/(:)[\s\S]+/,lookbehind:!0},user:/^[^\s@:$#*!/\\]+@[^\s@:$#*!/\\]+(?=:|$)/,punctuation:/:/}},command:{pattern:RegExp("[$#](?:[^\\\\\r\n'\"<]|\\\\.|<>)+".replace(/<>/g,function(){return n})),greedy:!0,inside:{bash:{pattern:/(^[$#]\s*)[\s\S]+/,lookbehind:!0,alias:"language-bash",inside:s.languages.bash},"shell-symbol":{pattern:/^[$#]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/},s.languages["sh-session"]=s.languages.shellsession=s.languages["shell-session"]}(Prism); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-sml.min.js b/Resources/Public/Prism/components/prism-sml.min.js new file mode 100644 index 0000000..d6a8e3d --- /dev/null +++ b/Resources/Public/Prism/components/prism-sml.min.js @@ -0,0 +1 @@ +!function(e){var n=/\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i;e.languages.sml={comment:/\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,string:{pattern:/#?"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":[{pattern:RegExp("((?:^|[^:]):\\s*)(?:\\s*(?:(?:\\*|->)\\s*|,\\s*(?:(?=)|(?!)\\s+)))*".replace(//g,function(){return"\\s*(?:[*,]|->)"}).replace(//g,function(){return"(?:'[\\w']*||\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+)*"}).replace(//g,function(){return"(?!)[a-z\\d_][\\w'.]*"}).replace(//g,function(){return n.source}),"i"),lookbehind:!0,greedy:!0,inside:null},{pattern:/((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,lookbehind:!0}],function:{pattern:/((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,lookbehind:!0},keyword:n,variable:{pattern:/(^|[^\w'])'[\w']*/,lookbehind:!0},number:/~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,word:{pattern:/\b0w(?:\d+|x[\da-f]+)\b/i,alias:"constant"},boolean:/\b(?:false|true)\b/i,operator:/\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,punctuation:/[(){}\[\].:,;]/},e.languages.sml["class-name"][0].inside=e.languages.sml,e.languages.smlnj=e.languages.sml}(Prism); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-stan.min.js b/Resources/Public/Prism/components/prism-stan.min.js new file mode 100644 index 0000000..5acd72c --- /dev/null +++ b/Resources/Public/Prism/components/prism-stan.min.js @@ -0,0 +1 @@ +Prism.languages.stan={comment:/\/\/.*|\/\*[\s\S]*?\*\/|#(?!include).*/,string:{pattern:/"[\x20\x21\x23-\x5B\x5D-\x7E]*"/,greedy:!0},directive:{pattern:/^([ \t]*)#include\b.*/m,lookbehind:!0,alias:"property"},"function-arg":{pattern:/(\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\s*\(\s*)[a-zA-Z]\w*/,lookbehind:!0,alias:"function"},constraint:{pattern:/(\b(?:int|matrix|real|row_vector|vector)\s*)<[^<>]*>/,lookbehind:!0,inside:{expression:{pattern:/(=\s*)(?:(?!\s*(?:>$|,\s*\w+\s*=))[\s\S])+/,lookbehind:!0,inside:null},property:/\b[a-z]\w*(?=\s*=)/i,operator:/=/,punctuation:/^<|>$|[,]/}},keyword:[/\b(?:break|cholesky_factor_corr|cholesky_factor_cov|continue|corr_matrix|cov_matrix|data|else|for|functions|generated|if|in|increment_log_prob|int|matrix|model|ordered|parameters|positive_ordered|print|quantities|real|reject|return|row_vector|simplex|target|transformed|unit_vector|vector|void|while)\b/,/\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\b/],function:/\b[a-z]\w*(?=\s*\()/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,operator:/<-|\.[*/]=?|\|\|?|&&|[!=<>+\-*/]=?|['^%~?:]/,punctuation:/[()\[\]{},;]/},Prism.languages.stan.constraint.inside.expression.inside=Prism.languages.stan; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-typoscript.min.js b/Resources/Public/Prism/components/prism-typoscript.min.js new file mode 100644 index 0000000..45ce355 --- /dev/null +++ b/Resources/Public/Prism/components/prism-typoscript.min.js @@ -0,0 +1 @@ +!function(E){var n=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;E.languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern://,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:n}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!]\n).)*/,lookbehind:!0,inside:{function:/{\$.*}/,keyword:n,number:/^[0-9]+$/,punctuation:/[,|:]/}},keyword:n,number:{pattern:/[0-9]+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[\w-\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},E.languages.tsconfig=E.languages.typoscript}(Prism); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-vala.min.js b/Resources/Public/Prism/components/prism-vala.min.js index 5976b47..85a4963 100644 --- a/Resources/Public/Prism/components/prism-vala.min.js +++ b/Resources/Public/Prism/components/prism-vala.min.js @@ -1 +1 @@ -Prism.languages.vala=Prism.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w+)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new|struct|enum)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],constant:/\b[A-Z0-9_]+\b/,function:/\w+(?=\s*\()/,keyword:/\b(?:bool|char|double|float|null|size_t|ssize_t|string|unichar|void|int|int8|int16|int32|int64|long|short|uchar|uint|uint8|uint16|uint32|uint64|ulong|ushort|class|delegate|enum|errordomain|interface|namespace|struct|break|continue|do|for|foreach|return|while|else|if|switch|assert|case|default|abstract|const|dynamic|ensures|extern|inline|internal|override|private|protected|public|requires|signal|static|virtual|volatile|weak|async|owned|unowned|try|catch|finally|throw|as|base|construct|delete|get|in|is|lock|new|out|params|ref|sizeof|set|this|throws|typeof|using|value|var|yield)\b/i,number:/(?:\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/}),Prism.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:Prism.languages.vala}},string:/[\s\S]+/}}}),Prism.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0}}); \ No newline at end of file +Prism.languages.vala=Prism.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w+)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new|struct|enum)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],constant:/\b[A-Z0-9_]+\b/,function:/\w+(?=\s*\()/,keyword:/\b(?:bool|char|double|float|null|size_t|ssize_t|string|unichar|void|int|int8|int16|int32|int64|long|short|uchar|uint|uint8|uint16|uint32|uint64|ulong|ushort|class|delegate|enum|errordomain|interface|namespace|struct|break|continue|do|for|foreach|return|while|else|if|switch|assert|case|default|abstract|const|dynamic|ensures|extern|inline|internal|override|private|protected|public|requires|signal|static|virtual|volatile|weak|async|owned|unowned|try|catch|finally|throw|as|base|construct|delete|get|in|is|lock|new|out|params|ref|sizeof|set|this|throws|typeof|using|value|var|yield)\b/i,number:/(?:\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/}),Prism.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:Prism.languages.vala}},string:/[\s\S]+/}}}),Prism.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-flags":/[a-z]+$/,"regex-delimiter":/^\/|\/$/}}}); \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-vim.min.js b/Resources/Public/Prism/components/prism-vim.min.js index 9430d15..8a0e126 100644 --- a/Resources/Public/Prism/components/prism-vim.min.js +++ b/Resources/Public/Prism/components/prism-vim.min.js @@ -1 +1 @@ -Prism.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\w+(?=\()/,keyword:/\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|sm|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}; \ No newline at end of file +Prism.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\w+(?=\()/,keyword:/\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-warpscript.min.js b/Resources/Public/Prism/components/prism-warpscript.min.js index b5a6a70..030ea5b 100644 --- a/Resources/Public/Prism/components/prism-warpscript.min.js +++ b/Resources/Public/Prism/components/prism-warpscript.min.js @@ -1 +1 @@ -Prism.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:false|true|F|T)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|==|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}; \ No newline at end of file +Prism.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:false|true|F|T)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}; \ No newline at end of file diff --git a/Resources/Public/Prism/components/prism-yaml.min.js b/Resources/Public/Prism/components/prism-yaml.min.js index f4be9e0..e46001e 100644 --- a/Resources/Public/Prism/components/prism-yaml.min.js +++ b/Resources/Public/Prism/components/prism-yaml.min.js @@ -1 +1 @@ -!function(n){var t=/[*&][^\s[\]{},]+/,e=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+e.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+e.source+")?)";function a(n,t){t=(t||"").replace(/m/g,"")+"m";var e="([:\\-,[{]\\s*(?:\\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|]|}|\\s*#))".replace(/<>/g,function(){return r}).replace(/<>/g,function(){return n});return RegExp(e,t)}n.languages.yaml={scalar:{pattern:RegExp("([\\-:]\\s*(?:\\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\\2[^\r\n]+)*)".replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp("((?:^|[:\\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)[^\r\n{[\\]},#\\s]+?(?=\\s*:\\s)".replace(/<>/g,function(){return r})),lookbehind:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:a("\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?[ \t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?)?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?"),lookbehind:!0,alias:"number"},boolean:{pattern:a("true|false","i"),lookbehind:!0,alias:"important"},null:{pattern:a("null|~","i"),lookbehind:!0,alias:"important"},string:{pattern:a("(\"|')(?:(?!\\2)[^\\\\\r\n]|\\\\.)*\\2"),lookbehind:!0,greedy:!0},number:{pattern:a("[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+\\.?\\d*|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)","i"),lookbehind:!0},tag:e,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},n.languages.yml=n.languages.yaml}(Prism); \ No newline at end of file +!function(e){var n=/[*&][^\s[\]{},]+/,t=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+t.source+"(?:[ \t]+"+n.source+")?|"+n.source+"(?:[ \t]+"+t.source+")?)",a="(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*".replace(//g,function(){return"[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]"}),d="\"(?:[^\"\\\\\r\n]|\\\\.)*\"|'(?:[^'\\\\\r\n]|\\\\.)*'";function o(e,n){n=(n||"").replace(/m/g,"")+"m";var t="([:\\-,[{]\\s*(?:\\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|]|}|\\s*#))".replace(/<>/g,function(){return r}).replace(/<>/g,function(){return e});return RegExp(t,n)}e.languages.yaml={scalar:{pattern:RegExp("([\\-:]\\s*(?:\\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\\2[^\r\n]+)*)".replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp("((?:^|[:\\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\\s*:\\s)".replace(/<>/g,function(){return r}).replace(/<>/g,function(){return"(?:"+a+"|"+d+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o("\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?[ \t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?)?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?"),lookbehind:!0,alias:"number"},boolean:{pattern:o("true|false","i"),lookbehind:!0,alias:"important"},null:{pattern:o("null|~","i"),lookbehind:!0,alias:"important"},string:{pattern:o(d),lookbehind:!0,greedy:!0},number:{pattern:o("[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+\\.?\\d*|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)","i"),lookbehind:!0},tag:t,important:n,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(Prism); \ No newline at end of file diff --git a/Resources/Public/Prism/plugins/autoloader/prism-autoloader.min.js b/Resources/Public/Prism/plugins/autoloader/prism-autoloader.min.js index 7645b3e..cd747e6 100644 --- a/Resources/Public/Prism/plugins/autoloader/prism-autoloader.min.js +++ b/Resources/Public/Prism/plugins/autoloader/prism-autoloader.min.js @@ -1 +1 @@ -!function(){if("undefined"!=typeof self&&self.Prism&&self.document&&document.createElement){var o={javascript:"clike",actionscript:"javascript",arduino:"cpp",aspnet:["markup","csharp"],bison:"c",c:"clike",csharp:"clike",cpp:"c",coffeescript:"javascript",crystal:"ruby","css-extras":"css",d:"clike",dart:"clike",django:"markup-templating",ejs:["javascript","markup-templating"],etlua:["lua","markup-templating"],erb:["ruby","markup-templating"],fsharp:"clike","firestore-security-rules":"clike",flow:"javascript",ftl:"markup-templating",gml:"clike",glsl:"c",go:"clike",groovy:"clike",haml:"ruby",handlebars:"markup-templating",haxe:"clike",hlsl:"c",java:"clike",javadoc:["markup","java","javadoclike"],jolie:"clike",jsdoc:["javascript","javadoclike","typescript"],"js-extras":"javascript",json5:"json",jsonp:"json","js-templates":"javascript",kotlin:"clike",latte:["clike","markup-templating","php"],less:"css",lilypond:"scheme",markdown:"markup","markup-templating":"markup",n4js:"javascript",nginx:"clike",objectivec:"c",opencl:"c",parser:"markup",php:["clike","markup-templating"],phpdoc:["php","javadoclike"],"php-extras":"php",plsql:"sql",processing:"clike",protobuf:"clike",pug:["markup","javascript"],purebasic:"clike",qml:"javascript",qore:"clike",racket:"scheme",jsx:["markup","javascript"],tsx:["jsx","typescript"],reason:"clike",ruby:"clike",sass:"css",scss:"css",scala:"java","shell-session":"bash",smarty:"markup-templating",solidity:"clike",soy:"markup-templating",sparql:"turtle",sqf:"clike",swift:"clike","t4-cs":["t4-templating","csharp"],"t4-vb":["t4-templating","vbnet"],tap:"yaml",tt2:["clike","markup-templating"],textile:"markup",twig:"markup",typescript:"javascript",vala:"clike",vbnet:"basic",velocity:"markup",wiki:"markup",xeora:"markup","xml-doc":"markup",xquery:"markup"},m={html:"markup",xml:"markup",svg:"markup",mathml:"markup",ssml:"markup",atom:"markup",rss:"markup",js:"javascript",g4:"antlr4",adoc:"asciidoc",shell:"bash",shortcode:"bbcode",rbnf:"bnf",cs:"csharp",dotnet:"csharp",coffee:"coffeescript",conc:"concurnas",jinja2:"django","dns-zone":"dns-zone-file",dockerfile:"docker",eta:"ejs",xlsx:"excel-formula",xls:"excel-formula",gamemakerlanguage:"gml",hs:"haskell",gitignore:"ignore",hgignore:"ignore",npmignore:"ignore",webmanifest:"json",kt:"kotlin",kts:"kotlin",tex:"latex",context:"latex",ly:"lilypond",emacs:"lisp",elisp:"lisp","emacs-lisp":"lisp",md:"markdown",moon:"moonscript",n4jsd:"n4js",objc:"objectivec",objectpascal:"pascal",px:"pcaxis",pcode:"peoplecode",pq:"powerquery",mscript:"powerquery",pbfasm:"purebasic",py:"python",rkt:"racket",rpy:"renpy",robot:"robotframework",rb:"ruby",sol:"solidity",sln:"solution-file",rq:"sparql",t4:"t4-cs",trig:"turtle",ts:"typescript",uscript:"unrealscript",uc:"unrealscript",vb:"visual-basic",vba:"visual-basic",xeoracube:"xeora",yml:"yaml"},u={},e="components/";if(Prism.util.currentScript())e="/typo3conf/ext/codehighlight/Resources/Public/Prism/components/";var k=Prism.plugins.autoloader={languages_path:e,use_minified:!0,loadLanguages:g};Prism.hooks.add("complete",function(e){var a=e.element,r=e.language;if(a&&r&&"none"!==r){var t=function(e){var a=(e.getAttribute("data-dependencies")||"").trim();if(!a){var r=e.parentElement;r&&"pre"===r.tagName.toLowerCase()&&(a=(r.getAttribute("data-dependencies")||"").trim())}return a?a.split(/\s*,\s*/g):[]}(a);t.push(r),t.every(d)||g(t,function(){Prism.highlightElement(a)})}})}function d(e){if(0<=e.indexOf("!"))return!1;if((e=m[e]||e)in Prism.languages)return!0;var a=u[e];return a&&!a.error&&!1===a.loading}function g(e,a,r){"string"==typeof e&&(e=[e]);var t=e.length,i=0,s=!1;function c(){s||++i===t&&a&&a(e)}0!==t?e.forEach(function(e){!function(c,l,n){var p=0<=c.indexOf("!");function e(){var e,a,r,t,i,s=u[c];(s=s||(u[c]={callbacks:[]})).callbacks.push({success:l,error:n}),!p&&d(c)?f(c,"success"):!p&&s.error?f(c,"error"):!p&&s.loading||(s.loading=!0,s.error=!1,i=c,e=k.languages_path+"prism-"+i+(k.use_minified?".min":"")+".js",a=function(){s.loading=!1,f(c,"success")},r=function(){s.loading=!1,s.error=!0,f(c,"error")},(t=document.createElement("script")).src=e,t.async=!0,t.onload=function(){document.body.removeChild(t),a&&a()},t.onerror=function(){document.body.removeChild(t),r&&r()},document.body.appendChild(t))}c=c.replace("!",""),c=m[c]||c;var a=o[c];a&&a.length?g(a,e,n):e()}(e,c,function(){s||(s=!0,r&&r(e))})}):a&&setTimeout(a,0)}function f(e,a){if(u[e]){for(var r=u[e].callbacks,t=0,i=r.length;t Date: Mon, 12 Oct 2020 18:31:00 +0200 Subject: [PATCH 04/15] [BUGFIX] Show content element in wizard in TYPO3 v10 --- CHANGELOG.md | 3 +++ ext_tables.php | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 649244d..fa191dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Updated - Prism to version 1.22.0 +### Fixed +- Show content element in wizard in TYPO3 v10 + ## [2.2.0] - 2020-08-08 ### Updated diff --git a/ext_tables.php b/ext_tables.php index c7b753a..67767cb 100644 --- a/ext_tables.php +++ b/ext_tables.php @@ -13,7 +13,7 @@ ); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig( - '@import "EXT:' . $extensionKey . '/Configuration/TSconfig/Page/"' + '@import "EXT:' . $extensionKey . '/Configuration/TSconfig/Page/*.tsconfig"' ); $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem']['codehighlight'] = From 8da136f71281c9b750e5f306d29fb43d30045a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Mon, 12 Oct 2020 18:36:28 +0200 Subject: [PATCH 05/15] [TASK] Update dependencies --- Build/package.json | 4 +- Build/yarn.lock | 249 +++++++++++++++++++++++++++++++-------------- 2 files changed, 173 insertions(+), 80 deletions(-) diff --git a/Build/package.json b/Build/package.json index 2a50104..6eddc75 100644 --- a/Build/package.json +++ b/Build/package.json @@ -2,10 +2,10 @@ "name": "codehighlight", "license": "GPL-2.0+", "dependencies": { - "prismjs": "^1.19.0" + "prismjs": "^1.22.0" }, "devDependencies": { - "del": "^5.1.0", + "del": "^6.0.0", "gulp": "^4.0.2", "gulp-clean-css": "^4.3.0", "gulp-concat": "^2.6.1", diff --git a/Build/yarn.lock b/Build/yarn.lock index d034669..9cf1294 100644 --- a/Build/yarn.lock +++ b/Build/yarn.lock @@ -23,23 +23,10 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "14.0.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" - integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== +"@sindresorhus/is@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-3.1.2.tgz#548650de521b344e3781fbdb0ece4aa6f729afb8" + integrity sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ== "@yarnpkg/lockfile@^1.1.0": version "1.1.0" @@ -52,9 +39,9 @@ a-sync-waterfall@^1.0.0: integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" @@ -595,7 +582,7 @@ default-resolution@^2.0.0: resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= -define-properties@^1.1.2: +define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -624,18 +611,18 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -del@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" - integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== +del@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" + integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== dependencies: - globby "^10.0.1" - graceful-fs "^4.2.2" + globby "^11.0.1" + graceful-fs "^4.2.4" is-glob "^4.0.1" is-path-cwd "^2.2.0" - is-path-inside "^3.0.1" - p-map "^3.0.0" - rimraf "^3.0.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" slash "^3.0.0" delegate@^3.1.2: @@ -687,6 +674,50 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.17.5: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.0: + version "1.18.0-next.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" + integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50: version "0.10.53" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" @@ -799,7 +830,7 @@ fancy-log@^1.3.2: parse-node-version "^1.0.0" time-stamp "^1.0.0" -fast-glob@^3.0.3: +fast-glob@^3.1.1: version "3.2.4" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== @@ -811,6 +842,11 @@ fast-glob@^3.0.3: micromatch "^4.0.2" picomatch "^2.2.1" +fast-levenshtein@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz#e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9" + integrity sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk= + fastq@^1.6.0: version "1.8.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" @@ -1054,18 +1090,16 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globby@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== dependencies: - "@types/glob" "^7.1.1" array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" slash "^3.0.0" glogg@^1.0.0: @@ -1082,7 +1116,7 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.2: +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -1131,10 +1165,11 @@ gulp-concat@^2.6.1: vinyl "^2.0.0" gulp-nunjucks@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/gulp-nunjucks/-/gulp-nunjucks-5.0.1.tgz#b1b34b9af3f9ba7571a49a1b715aa793fa419950" - integrity sha512-rg2n86trGEz/6sQ01U0/GNGAlC/eIvsKBk5Tmz2brRREgqOALb9aBYVo24jUzGfKALVHALKjikufv0roqsXB6g== + version "5.1.0" + resolved "https://registry.yarnpkg.com/gulp-nunjucks/-/gulp-nunjucks-5.1.0.tgz#2dac820917b11018de71c497c3ab738ba0c0c5d3" + integrity sha512-85prmLsQPIBXa7ROVcnivVHxil7SufT6H+rSezictJuRHmVjjPzJXr67Ajbl/Pf2bLkD+Gq3GWvLI9G0qbxT8w== dependencies: + "@sindresorhus/is" "^3.1.2" nunjucks "^3.2.0" plugin-error "^1.0.1" through2 "^3.0.1" @@ -1189,7 +1224,7 @@ has-gulplog@^0.1.0: dependencies: sparkles "^1.0.0" -has-symbols@^1.0.0: +has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== @@ -1225,6 +1260,13 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + homedir-polyfill@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" @@ -1237,7 +1279,7 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== -ignore@^5.1.1: +ignore@^5.1.4: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -1321,6 +1363,11 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-callable@^1.1.4, is-callable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== + is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -1342,6 +1389,11 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -1403,6 +1455,11 @@ is-negated-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -1425,7 +1482,7 @@ is-path-cwd@^2.2.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-inside@^3.0.1: +is-path-inside@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== @@ -1437,6 +1494,13 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + is-relative@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" @@ -1444,6 +1508,13 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + is-unc-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" @@ -1631,7 +1702,7 @@ matchdep@^2.0.0: resolve "^1.4.0" stack-trace "0.0.10" -merge2@^1.2.3, merge2@^1.3.0: +merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -1779,7 +1850,12 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-keys@^1.0.11, object-keys@^1.0.12: +object-inspect@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -1791,15 +1867,15 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.0.4, object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== +object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" + integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.0" + has-symbols "^1.0.1" + object-keys "^1.1.1" object.defaults@^1.0.0, object.defaults@^1.1.0: version "1.1.0" @@ -1860,10 +1936,10 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" @@ -2016,7 +2092,7 @@ pretty-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -prismjs@^1.19.0: +prismjs@^1.22.0: version "1.22.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.22.0.tgz#73c3400afc58a823dd7eed023f8e1ce9fd8977fa" integrity sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w== @@ -2215,7 +2291,7 @@ rimraf@^2.6.3: dependencies: glob "^7.1.3" -rimraf@^3.0.0: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -2381,9 +2457,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + version "3.0.6" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" + integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -2424,6 +2500,22 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -2568,9 +2660,9 @@ type@^1.0.1: integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + version "2.1.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" + integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== typedarray@^0.0.6: version "0.0.6" @@ -2578,9 +2670,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= uglify-js@^3.0.5: - version "3.10.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.1.tgz#dd14767eb7150de97f2573a5ff210db14fffe4ad" - integrity sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q== + version "3.11.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.2.tgz#9f50325544273c27b20e586def140e7726c525ea" + integrity sha512-G440NU6fewtnQftSgqRV1r2A5ChKbU1gqFCJ7I8S7MPpY/eZZfLGefaY6gUZYiWebMaO+txgiQ1ZyLDuNWJulg== unc-path-regex@^0.1.2: version "0.1.2" @@ -2593,15 +2685,16 @@ undertaker-registry@^1.0.0: integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= undertaker@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b" - integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.3.0.tgz#363a6e541f27954d5791d6fa3c1d321666f86d18" + integrity sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg== dependencies: arr-flatten "^1.0.1" arr-map "^2.0.0" bach "^1.0.0" collection-map "^1.0.0" es6-weak-map "^2.0.1" + fast-levenshtein "^1.0.0" last-run "^1.1.0" object.defaults "^1.0.0" object.reduce "^1.0.0" @@ -2722,9 +2815,9 @@ vinyl-sourcemaps-apply@0.2.1, vinyl-sourcemaps-apply@^0.2.0: source-map "^0.5.1" vinyl@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== + version "2.2.1" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== dependencies: clone "^2.1.1" clone-buffer "^1.0.0" From 024f47f75a81aabbb4ee441f4b3fa00650ab3f1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Mon, 12 Oct 2020 19:03:37 +0200 Subject: [PATCH 06/15] [RELEASE] Prepare version 2.3.0 --- CHANGELOG.md | 5 ++++- Documentation/Settings.cfg | 2 +- ext_emconf.php | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa191dd..24ff083 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.3.0] - 2020-10-12 + ### Updated - Prism to version 1.22.0 @@ -64,7 +66,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Syntax highlighting with Prism -[Unreleased]: https://github.com/brotkrueml/codehighlight/compare/v2.2.0...HEAD +[Unreleased]: https://github.com/brotkrueml/codehighlight/compare/v2.3.0...HEAD +[2.3.0]: https://github.com/brotkrueml/codehighlight/compare/v2.2.0...v2.3.0 [2.2.0]: https://github.com/brotkrueml/codehighlight/compare/v2.1.0...v2.2.0 [2.1.0]: https://github.com/brotkrueml/codehighlight/compare/v2.0.1...v2.1.0 [2.0.1]: https://github.com/brotkrueml/codehighlight/compare/v2.0.0...v2.0.1 diff --git a/Documentation/Settings.cfg b/Documentation/Settings.cfg index 18e5350..addf8fa 100644 --- a/Documentation/Settings.cfg +++ b/Documentation/Settings.cfg @@ -2,7 +2,7 @@ [general] project = Code Highlight -release = 2.3.0-dev +release = 2.3.0 copyright = 2019-2020 by Chris Müller [html_theme_options] diff --git a/ext_emconf.php b/ext_emconf.php index 4065ba7..0dd0074 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -8,7 +8,7 @@ 'clearCacheOnLoad' => true, 'author' => 'Chris Müller', 'author_email' => 'typo3@krue.ml', - 'version' => '2.3.0-dev', + 'version' => '2.3.0', 'constraints' => [ 'depends' => [ 'typo3' => '9.5.5-10.4.99', From 22bf325901af9f3d8fe2ed9e131702ccb1aaa5f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Thu, 15 Oct 2020 11:00:03 +0200 Subject: [PATCH 07/15] [TASK] Use package typo3/coding-standards --- .editorconfig | 13 +-- .php_cs | 58 ++-------- Classes/DataProcessing/FlexFormProcessor.php | 1 + .../ContentElementPreviewRenderer.php | 1 + Classes/Service/ProgrammingLanguages.php | 1 + Classes/ViewHelpers/CssViewHelper.php | 1 + Classes/ViewHelpers/PrismViewHelper.php | 1 + Tests/Unit/ViewHelpers/CssViewHelperTest.php | 1 + .../Unit/ViewHelpers/PrismViewHelperTest.php | 1 + composer.json | 103 +++++++++--------- 10 files changed, 69 insertions(+), 112 deletions(-) diff --git a/.editorconfig b/.editorconfig index 064426d..3460826 100644 --- a/.editorconfig +++ b/.editorconfig @@ -21,19 +21,16 @@ indent_size = 2 indent_style = tab # ReST-Files -[{*.rst,*.rst.txt}] +[*.rst] indent_size = 3 -max_line_length = 80 # YAML-Files [*.{yaml,yml}] indent_size = 2 # package.json -# .travis.yml -[{package.json,.travis.yml}] +[package.json] indent_size = 2 -indent_style = space # TypoScript [*.{typoscript,tsconfig}] @@ -41,7 +38,7 @@ indent_size = 2 # XLF-Files [*.xlf] -indent_size = 2 +indent_style = tab # SQL-Files [*.sql] @@ -51,7 +48,3 @@ indent_size = 2 # .htaccess [{_.htaccess,.htaccess}] indent_style = tab - -# composer.json -[composer.json] -indent_style = space diff --git a/.php_cs b/.php_cs index 54c8bfa..6875979 100644 --- a/.php_cs +++ b/.php_cs @@ -1,6 +1,7 @@ getFinder() ->in(__DIR__ . '/Classes') ->in(__DIR__ . '/Configuration') ->in(__DIR__ . '/Tests') @@ -13,53 +14,8 @@ For the full copyright and license information, please read the LICENSE.txt file that was distributed with this source code. EOF; -return PhpCsFixer\Config::create() - ->setRiskyAllowed(true) - ->setRules([ - '@DoctrineAnnotation' => true, - '@PSR2' => true, - 'array_indentation' => true, - 'array_syntax' => ['syntax' => 'short'], - 'cast_spaces' => ['space' => 'none'], - 'concat_space' => ['spacing' => 'one'], - 'declare_equal_normalize' => ['space' => 'none'], - 'dir_constant' => true, - 'function_typehint_space' => true, - 'hash_to_slash_comment' => true, - 'header_comment' => ['header' => $header, 'separate' => 'both'], - 'lowercase_cast' => true, - 'modernize_types_casting' => true, - 'native_function_casing' => true, - 'no_alias_functions' => true, - 'no_blank_lines_after_phpdoc' => true, - 'no_empty_phpdoc' => true, - 'no_empty_statement' => true, - 'no_extra_consecutive_blank_lines' => true, - 'no_leading_import_slash' => true, - 'no_leading_namespace_whitespace' => true, - 'no_null_property_initialization' => true, - 'no_short_bool_cast' => true, - 'no_singleline_whitespace_before_semicolons' => true, - 'no_superfluous_elseif' => true, - 'no_trailing_comma_in_singleline_array' => true, - 'no_unneeded_control_parentheses' => true, - 'no_unused_imports' => true, - 'no_useless_else' => true, - 'no_whitespace_in_blank_line' => true, - 'ordered_imports' => true, - 'phpdoc_no_access' => true, - 'phpdoc_no_empty_return' => true, - 'phpdoc_no_package' => true, - 'phpdoc_scalar' => true, - 'phpdoc_trim' => true, - 'phpdoc_types' => true, - 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], - 'php_unit_mock_short_will_return' => true, - 'php_unit_set_up_tear_down_visibility' => true, - 'php_unit_strict' => true, - 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'], - 'return_type_declaration' => ['space_before' => 'none'], - 'single_quote' => true, - 'whitespace_after_comma_in_array' => true, - ]) - ->setFinder($finder); +$config->addRules([ + 'header_comment' => ['header' => $header, 'separate' => 'both'], +]); + +return $config; diff --git a/Classes/DataProcessing/FlexFormProcessor.php b/Classes/DataProcessing/FlexFormProcessor.php index 32fa530..f7c0b53 100644 --- a/Classes/DataProcessing/FlexFormProcessor.php +++ b/Classes/DataProcessing/FlexFormProcessor.php @@ -1,4 +1,5 @@ ')([0-9]+\\.[0-9]+\\.[0-9]+)\" ext_emconf.php | xargs -I {version} sh -c 'mkdir -p ../zip; git archive -v -o \"../zip/${PWD##*/}_{version}.zip\" v{version}'", - "fix-cs": ".Build/bin/php-cs-fixer fix" - } + "name": "brotkrueml/codehighlight", + "type": "typo3-cms-extension", + "license": "GPL-2.0-or-later", + "description": "Code highlighter for various programming languages", + "authors": [ + { + "name": "Chris Müller", + "role": "Developer" + } + ], + "keywords": [ + "TYPO3 CMS", + "TYPO3 extension", + "Syntax highlighting", + "Code highlighting" + ], + "require": { + "typo3/cms-backend": "^9.5.5 || ^10.4", + "typo3/cms-core": "^9.5.5 || ^10.4", + "typo3/cms-fluid": "^9.5.5 || ^10.4", + "typo3/cms-fluid-styled-content": "^9.5.5 || ^10.4", + "typo3/cms-frontend": "^9.5.5 || ^10.4" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.16", + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5 || ^9.1", + "typo3/coding-standards": "^0.2" + }, + "suggest": { + "typo3/cms-t3editor": "Add syntax highlighting in backend form" + }, + "autoload": { + "psr-4": { + "Brotkrueml\\CodeHighlight\\": "Classes/" + } + }, + "config": { + "sort-packages": true, + "vendor-dir": ".Build/vendor", + "bin-dir": ".Build/bin" + }, + "extra": { + "typo3/cms": { + "app-dir": ".Build", + "web-dir": ".Build/web" + } + }, + "scripts": { + "zip": "grep -Po \"(?<='version' => ')([0-9]+\\.[0-9]+\\.[0-9]+)\" ext_emconf.php | xargs -I {version} sh -c 'mkdir -p ../zip; git archive -v -o \"../zip/${PWD##*/}_{version}.zip\" v{version}'", + "fix-cs": ".Build/bin/php-cs-fixer fix" + } } From 44c1ad79a29a9aedf633aedd48e46c893ae16c8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Tue, 27 Oct 2020 19:32:46 +0100 Subject: [PATCH 08/15] [TASK] Add extra.typo3/cms.extension-key to composer.json In the next release of typo3/cms-composer-installers the configuration of the extension key is enforced: See: https://github.com/TYPO3/CmsComposerInstallers/commit/3c60d0568ed9be3eb00dae1bf306bdafc817d9db --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index fa04cbf..b7e086b 100644 --- a/composer.json +++ b/composer.json @@ -43,6 +43,7 @@ }, "extra": { "typo3/cms": { + "extension-key": "codehighlight", "app-dir": ".Build", "web-dir": ".Build/web" } From 4715539191a9dad930f7eb79e6440c26046f74bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Mon, 9 Nov 2020 18:59:37 +0100 Subject: [PATCH 09/15] [DOCS] Use Includes.rst.txt and absolute path names --- Documentation/Configuration/Index.rst | 6 +++--- Documentation/Editor/Index.rst | 14 +++++++------- Documentation/{Includes.txt => Includes.rst.txt} | 0 Documentation/Index.rst | 15 ++++----------- Documentation/Installation/Index.rst | 4 ++-- Documentation/Introduction/Index.rst | 7 +++---- Documentation/Maintenance/Index.rst | 2 +- Documentation/Migration/Index.rst | 3 +-- 8 files changed, 21 insertions(+), 30 deletions(-) rename Documentation/{Includes.txt => Includes.rst.txt} (100%) diff --git a/Documentation/Configuration/Index.rst b/Documentation/Configuration/Index.rst index bb75b8c..7c6bc2c 100644 --- a/Documentation/Configuration/Index.rst +++ b/Documentation/Configuration/Index.rst @@ -1,4 +1,4 @@ -.. include:: ../Includes.txt +.. include:: /Includes.rst.txt .. _configuration: @@ -19,7 +19,7 @@ Some site-wide configurations can be made in the Site Configuration. Select a site under :guilabel:`Site Management` > :guilabel:`Sites` and switch to the tab :guilabel:`Code Highlight`. -.. figure:: ../Images/Configuration/site-configuration.png +.. figure:: /Images/Configuration/site-configuration.png :class: with-shadow :alt: Site Configuration @@ -89,7 +89,7 @@ Some constants can be defined in the Select the category :guilabel:`Codehighlight` and make your adjustments. -.. figure:: ../Images/Configuration/constant-editor.png +.. figure:: /Images/Configuration/constant-editor.png :class: with-shadow :alt: Constant Editor diff --git a/Documentation/Editor/Index.rst b/Documentation/Editor/Index.rst index 69c42ea..2bf171a 100644 --- a/Documentation/Editor/Index.rst +++ b/Documentation/Editor/Index.rst @@ -1,4 +1,4 @@ -.. include:: ../Includes.txt +.. include:: /Includes.rst.txt .. _for-editors: @@ -18,7 +18,7 @@ The extension is shipped with a content element :guilabel:`Code Snippet`. You'll find it in the content element wizard under the :guilabel:`Special elements` tab: -.. figure:: ../Images/Editor/content-element-wizard.png +.. figure:: /Images/Editor/content-element-wizard.png :class: with-shadow :alt: "Code Snippet" content element in the content element wizard @@ -34,7 +34,7 @@ General In the :guilabel:`General` tab insert the code snippet into the according field: -.. figure:: ../Images/Editor/content-element-general.png +.. figure:: /Images/Editor/content-element-general.png :class: with-shadow :alt: The "General" tab of the content element @@ -50,7 +50,7 @@ Here you'll find some settings to tune the visual representation of the code snippet. First of all you can select the programming language - dependent on the language the snippet is formatted: -.. figure:: ../Images/Editor/content-element-options-general.png +.. figure:: /Images/Editor/content-element-options-general.png :class: with-shadow :alt: General options @@ -75,7 +75,7 @@ Sometimes it is desirable to add line numbers, start them at a different number than 1 or highlight one or more lines to point out something important. You can adjust these settings under the :guilabel:`Line numbers` tab of the options: -.. figure:: ../Images/Editor/content-element-options-line-numbers.png +.. figure:: /Images/Editor/content-element-options-line-numbers.png :class: with-shadow :alt: Options for showing and adjusting line numbers @@ -129,14 +129,14 @@ Highlight lines Command line ~~~~~~~~~~~~ -.. figure:: ../Images/Introduction/example-shell.png +.. figure:: /Images/Introduction/example-shell.png :class: with-shadow :alt: Shell command with prompt To visualise the commands on a console you can activate the :guilabel:`Display command line` switch. A prompt will be shown before a code line. -.. figure:: ../Images/Editor/content-element-options-command-line.png +.. figure:: /Images/Editor/content-element-options-command-line.png :class: with-shadow :alt: Options for a command line snippet diff --git a/Documentation/Includes.txt b/Documentation/Includes.rst.txt similarity index 100% rename from Documentation/Includes.txt rename to Documentation/Includes.rst.txt diff --git a/Documentation/Index.rst b/Documentation/Index.rst index b6905af..6270d7e 100644 --- a/Documentation/Index.rst +++ b/Documentation/Index.rst @@ -1,4 +1,4 @@ -.. include:: Includes.txt +.. include:: /Includes.rst.txt .. _start: @@ -43,20 +43,13 @@ also some formatting settings. The code highlighting is based on The content of this document is related to TYPO3 CMS, a GNU/GPL CMS/Framework available from `typo3.org `_. -**Community Documentation** - -This documentation is community documentation for the TYPO3 extension -codehighlight. - -It is maintained as part of this third party extension. - -If you find an error or something is missing, please: -`Report a Problem `__. - **Extension Manual** This documentation is for the TYPO3 extension codehighlight. +If you find an error or something is missing, please: +`Report a Problem `_. + **For Contributors** You are welcome to help improve this guide. Just click the "Edit on GitHub" diff --git a/Documentation/Installation/Index.rst b/Documentation/Installation/Index.rst index 933d72a..8f1ba3c 100644 --- a/Documentation/Installation/Index.rst +++ b/Documentation/Installation/Index.rst @@ -1,4 +1,4 @@ -.. include:: ../Includes.txt +.. include:: /Includes.rst.txt .. _installation: @@ -77,6 +77,6 @@ The extension ships some TypoScript code which needs to be included. #. Select :guilabel:`Code Highlight (codehighlight)` from the available items at the field :guilabel:`Include static (from extensions):` -.. figure:: ../Images/Installation/include-static-template.png +.. figure:: /Images/Installation/include-static-template.png :class: with-shadow :alt: Include static TypoScript diff --git a/Documentation/Introduction/Index.rst b/Documentation/Introduction/Index.rst index 93e558a..1d5a284 100644 --- a/Documentation/Introduction/Index.rst +++ b/Documentation/Introduction/Index.rst @@ -1,5 +1,4 @@ -.. include:: ../Includes.txt - +.. include:: /Includes.rst.txt .. _introduction: @@ -30,7 +29,7 @@ PHP code snippet Example output using the Coy theme for a PHP code snippet with line numbers and line highlighting: -.. figure:: ../Images/Introduction/example-php.png +.. figure:: /Images/Introduction/example-php.png :class: with-shadow :alt: PHP code snippet with line numbers and line highlighting @@ -40,7 +39,7 @@ Shell command Example output using the Coy theme for a shell command with prompt: -.. figure:: ../Images/Introduction/example-shell.png +.. figure:: /Images/Introduction/example-shell.png :class: with-shadow :alt: Shell command with prompt diff --git a/Documentation/Maintenance/Index.rst b/Documentation/Maintenance/Index.rst index 1833ebb..8d22f4b 100644 --- a/Documentation/Maintenance/Index.rst +++ b/Documentation/Maintenance/Index.rst @@ -1,4 +1,4 @@ -.. include:: ../Includes.txt +.. include:: /Includes.rst.txt .. highlight:: shell diff --git a/Documentation/Migration/Index.rst b/Documentation/Migration/Index.rst index e026e46..82653cb 100644 --- a/Documentation/Migration/Index.rst +++ b/Documentation/Migration/Index.rst @@ -1,5 +1,4 @@ -.. include:: ../Includes.txt - +.. include:: /Includes.rst.txt .. _migration: From d9bcf58a36c21f1aa65cc04fbfde84365604e057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Sat, 12 Dec 2020 10:19:59 +0100 Subject: [PATCH 10/15] [TASK] Update dependencies --- Build/yarn.lock | 187 +++++++++++++++--------------------------------- 1 file changed, 59 insertions(+), 128 deletions(-) diff --git a/Build/yarn.lock b/Build/yarn.lock index 9cf1294..5b812b2 100644 --- a/Build/yarn.lock +++ b/Build/yarn.lock @@ -321,6 +321,14 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" @@ -355,9 +363,9 @@ chokidar@^2.0.0: fsevents "^1.2.7" chokidar@^3.3.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -365,7 +373,7 @@ chokidar@^3.3.0: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.4.0" + readdirp "~3.5.0" optionalDependencies: fsevents "~2.1.2" @@ -674,50 +682,6 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.5: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.0: - version "1.18.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" - integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50: version "0.10.53" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" @@ -848,9 +812,9 @@ fast-levenshtein@^1.0.0: integrity sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk= fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + version "1.9.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947" + integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w== dependencies: reusify "^1.0.4" @@ -1009,6 +973,15 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== +get-intrinsic@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -1303,9 +1276,9 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== interpret@^1.4.0: version "1.4.0" @@ -1363,11 +1336,6 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" - integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== - is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -1375,6 +1343,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -1389,11 +1364,6 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -1455,11 +1425,6 @@ is-negated-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= -is-negative-zero@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" - integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -1494,13 +1459,6 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - is-relative@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" @@ -1508,13 +1466,6 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - is-unc-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" @@ -1765,9 +1716,9 @@ mute-stdout@^1.0.0: integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanomatch@^1.2.9: version "1.2.13" @@ -1850,11 +1801,6 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -1867,13 +1813,13 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" - integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== +object.assign@^4.0.4, object.assign@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.0" has-symbols "^1.0.1" object-keys "^1.1.1" @@ -2169,10 +2115,10 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" @@ -2268,10 +2214,11 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: + is-core-module "^2.1.0" path-parse "^1.0.6" ret@~0.1.10: @@ -2299,9 +2246,9 @@ rimraf@^3.0.2: glob "^7.1.3" run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" @@ -2457,9 +2404,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" - integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw== + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -2500,22 +2447,6 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -2670,9 +2601,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= uglify-js@^3.0.5: - version "3.11.2" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.2.tgz#9f50325544273c27b20e586def140e7726c525ea" - integrity sha512-G440NU6fewtnQftSgqRV1r2A5ChKbU1gqFCJ7I8S7MPpY/eZZfLGefaY6gUZYiWebMaO+txgiQ1ZyLDuNWJulg== + version "3.12.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.1.tgz#78307f539f7b9ca5557babb186ea78ad30cc0375" + integrity sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ== unc-path-regex@^0.1.2: version "0.1.2" From baecd73b79b7620fa962fe64844cb4ff8582c648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Sat, 12 Dec 2020 10:35:59 +0100 Subject: [PATCH 11/15] [TASK] Set version to 2.4.0-dev --- Documentation/Settings.cfg | 2 +- composer.json | 9 ++++++--- ext_emconf.php | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Documentation/Settings.cfg b/Documentation/Settings.cfg index addf8fa..9a49049 100644 --- a/Documentation/Settings.cfg +++ b/Documentation/Settings.cfg @@ -2,7 +2,7 @@ [general] project = Code Highlight -release = 2.3.0 +release = 2.4.0-dev copyright = 2019-2020 by Chris Müller [html_theme_options] diff --git a/composer.json b/composer.json index b7e086b..e999f4f 100644 --- a/composer.json +++ b/composer.json @@ -23,9 +23,9 @@ "typo3/cms-frontend": "^9.5.5 || ^10.4" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.16", - "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^8.5 || ^9.1", + "friendsofphp/php-cs-fixer": "^2.17", + "php-coveralls/php-coveralls": "^2.4", + "phpunit/phpunit": "^8.5 || ^9.5", "typo3/coding-standards": "^0.2" }, "suggest": { @@ -42,6 +42,9 @@ "bin-dir": ".Build/bin" }, "extra": { + "branch-alias": { + "dev-master": "2.4.x-dev" + }, "typo3/cms": { "extension-key": "codehighlight", "app-dir": ".Build", diff --git a/ext_emconf.php b/ext_emconf.php index 0dd0074..e6da37b 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -8,7 +8,7 @@ 'clearCacheOnLoad' => true, 'author' => 'Chris Müller', 'author_email' => 'typo3@krue.ml', - 'version' => '2.3.0', + 'version' => '2.4.0-dev', 'constraints' => [ 'depends' => [ 'typo3' => '9.5.5-10.4.99', From 4943553196f2f8ef8c425122f9e4beefe8895e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Sat, 12 Dec 2020 10:51:24 +0100 Subject: [PATCH 12/15] [TASK] Apply code formatting --- Resources/Private/Language/ConstantEditor.xlf | 32 +- Resources/Private/Language/ContentElement.xlf | 170 +- .../Private/Language/ProgrammingLanguages.xlf | 1450 ++++++++-------- .../Private/Language/SiteConfiguration.xlf | 50 +- .../Private/Language/da.ConstantEditor.xlf | 42 +- .../Private/Language/da.ContentElement.xlf | 64 +- .../Language/da.ProgrammingLanguages.xlf | 522 +++--- .../Private/Language/da.SiteConfiguration.xlf | 66 +- .../Private/Language/de.ConstantEditor.xlf | 42 +- .../Private/Language/de.ContentElement.xlf | 226 +-- .../Language/de.ProgrammingLanguages.xlf | 226 +-- .../Private/Language/de.SiteConfiguration.xlf | 66 +- .../Private/Language/t3.ConstantEditor.xlf | 42 +- .../Private/Language/t3.ContentElement.xlf | 226 +-- .../Language/t3.ProgrammingLanguages.xlf | 1530 ++++++++--------- .../Private/Language/t3.SiteConfiguration.xlf | 66 +- 16 files changed, 2410 insertions(+), 2410 deletions(-) diff --git a/Resources/Private/Language/ConstantEditor.xlf b/Resources/Private/Language/ConstantEditor.xlf index 329a008..df5a53a 100644 --- a/Resources/Private/Language/ConstantEditor.xlf +++ b/Resources/Private/Language/ConstantEditor.xlf @@ -1,19 +1,19 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/ContentElement.xlf b/Resources/Private/Language/ContentElement.xlf index d7ace17..d36aa15 100644 --- a/Resources/Private/Language/ContentElement.xlf +++ b/Resources/Private/Language/ContentElement.xlf @@ -1,88 +1,88 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ". If this field is set, user and host are ignored.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ". If this field is set, user and host are ignored.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/ProgrammingLanguages.xlf b/Resources/Private/Language/ProgrammingLanguages.xlf index cf9c6ec..ee2eb07 100644 --- a/Resources/Private/Language/ProgrammingLanguages.xlf +++ b/Resources/Private/Language/ProgrammingLanguages.xlf @@ -1,727 +1,727 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/SiteConfiguration.xlf b/Resources/Private/Language/SiteConfiguration.xlf index f73e75d..1d3776e 100644 --- a/Resources/Private/Language/SiteConfiguration.xlf +++ b/Resources/Private/Language/SiteConfiguration.xlf @@ -1,28 +1,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/da.ConstantEditor.xlf b/Resources/Private/Language/da.ConstantEditor.xlf index ebf9012..ebcc1a2 100644 --- a/Resources/Private/Language/da.ConstantEditor.xlf +++ b/Resources/Private/Language/da.ConstantEditor.xlf @@ -1,23 +1,23 @@ - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/da.ContentElement.xlf b/Resources/Private/Language/da.ContentElement.xlf index cc9452b..1d374af 100644 --- a/Resources/Private/Language/da.ContentElement.xlf +++ b/Resources/Private/Language/da.ContentElement.xlf @@ -1,34 +1,34 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/da.ProgrammingLanguages.xlf b/Resources/Private/Language/da.ProgrammingLanguages.xlf index 098ce2a..76ae411 100644 --- a/Resources/Private/Language/da.ProgrammingLanguages.xlf +++ b/Resources/Private/Language/da.ProgrammingLanguages.xlf @@ -1,263 +1,263 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/da.SiteConfiguration.xlf b/Resources/Private/Language/da.SiteConfiguration.xlf index 50fb6ac..d1a3644 100644 --- a/Resources/Private/Language/da.SiteConfiguration.xlf +++ b/Resources/Private/Language/da.SiteConfiguration.xlf @@ -1,35 +1,35 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/de.ConstantEditor.xlf b/Resources/Private/Language/de.ConstantEditor.xlf index 6156c83..1be9c79 100644 --- a/Resources/Private/Language/de.ConstantEditor.xlf +++ b/Resources/Private/Language/de.ConstantEditor.xlf @@ -1,23 +1,23 @@ - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/de.ContentElement.xlf b/Resources/Private/Language/de.ContentElement.xlf index 8337fdf..2ef1efa 100644 --- a/Resources/Private/Language/de.ContentElement.xlf +++ b/Resources/Private/Language/de.ContentElement.xlf @@ -1,115 +1,115 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ". If this field is set, user and host are ignored.]]> - ".Wenn dieses Feld gesetzt ist, werden Benutzer und Rechner ignoriert.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ". If this field is set, user and host are ignored.]]> + ".Wenn dieses Feld gesetzt ist, werden Benutzer und Rechner ignoriert.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/de.ProgrammingLanguages.xlf b/Resources/Private/Language/de.ProgrammingLanguages.xlf index 3ba02af..1c5dd20 100644 --- a/Resources/Private/Language/de.ProgrammingLanguages.xlf +++ b/Resources/Private/Language/de.ProgrammingLanguages.xlf @@ -1,115 +1,115 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/de.SiteConfiguration.xlf b/Resources/Private/Language/de.SiteConfiguration.xlf index 3f0d481..44d9ff0 100644 --- a/Resources/Private/Language/de.SiteConfiguration.xlf +++ b/Resources/Private/Language/de.SiteConfiguration.xlf @@ -1,35 +1,35 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/t3.ConstantEditor.xlf b/Resources/Private/Language/t3.ConstantEditor.xlf index b0c4765..29e52f1 100644 --- a/Resources/Private/Language/t3.ConstantEditor.xlf +++ b/Resources/Private/Language/t3.ConstantEditor.xlf @@ -1,23 +1,23 @@ - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/t3.ContentElement.xlf b/Resources/Private/Language/t3.ContentElement.xlf index 9933392..cd91547 100644 --- a/Resources/Private/Language/t3.ContentElement.xlf +++ b/Resources/Private/Language/t3.ContentElement.xlf @@ -1,115 +1,115 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ". If this field is set, user and host are ignored.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ". If this field is set, user and host are ignored.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/t3.ProgrammingLanguages.xlf b/Resources/Private/Language/t3.ProgrammingLanguages.xlf index d01ef71..355ca81 100644 --- a/Resources/Private/Language/t3.ProgrammingLanguages.xlf +++ b/Resources/Private/Language/t3.ProgrammingLanguages.xlf @@ -1,767 +1,767 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/Private/Language/t3.SiteConfiguration.xlf b/Resources/Private/Language/t3.SiteConfiguration.xlf index b87c522..94e8be6 100644 --- a/Resources/Private/Language/t3.SiteConfiguration.xlf +++ b/Resources/Private/Language/t3.SiteConfiguration.xlf @@ -1,35 +1,35 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From b909f917412228a24ce2adf02b6089c24af907b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Sat, 12 Dec 2020 12:19:46 +0100 Subject: [PATCH 13/15] [FEATURE] Add plugin "Inline colour" --- Build/gulpfile.js | 1 + CHANGELOG.md | 3 ++ Classes/ViewHelpers/PrismViewHelper.php | 16 +++++++ Configuration/FlexForms/Options.xml | 1 + Configuration/FlexForms/Sheets/Colours.xml | 26 +++++++++++ Documentation/Editor/Index.rst | 20 ++++++++ .../content-element-options-colours.png | Bin 0 -> 11891 bytes .../content-element-options-command-line.png | Bin 54139 -> 61712 bytes .../content-element-options-general.png | Bin 21461 -> 26114 bytes .../content-element-options-line-numbers.png | Bin 34177 -> 39938 bytes .../example-css-inline-colours.png | Bin 0 -> 14145 bytes Documentation/Introduction/Index.rst | 11 +++++ Resources/Private/Language/ContentElement.xlf | 11 ++++- .../inline-color/prism-inline-color.css | 1 + .../inline-color/prism-inline-color.min.js | 1 + .../Unit/ViewHelpers/PrismViewHelperTest.php | 44 ++++++++++++++++++ 16 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 Configuration/FlexForms/Sheets/Colours.xml create mode 100644 Documentation/Images/Editor/content-element-options-colours.png create mode 100644 Documentation/Images/Introduction/example-css-inline-colours.png create mode 100644 Resources/Public/Prism/plugins/inline-color/prism-inline-color.css create mode 100644 Resources/Public/Prism/plugins/inline-color/prism-inline-color.min.js diff --git a/Build/gulpfile.js b/Build/gulpfile.js index e8b5b44..b69725d 100644 --- a/Build/gulpfile.js +++ b/Build/gulpfile.js @@ -16,6 +16,7 @@ const options = { outputPath: '../Resources/Public/Prism/', availablePlugins: [ 'command-line', + 'inline-color', 'line-highlight', 'line-numbers', ], diff --git a/CHANGELOG.md b/CHANGELOG.md index 24ff083..d49e235 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added +- Plugin "Inline colour" to show colour preview in CSS snippets + ## [2.3.0] - 2020-10-12 ### Updated diff --git a/Classes/ViewHelpers/PrismViewHelper.php b/Classes/ViewHelpers/PrismViewHelper.php index 41846a1..2f63e40 100644 --- a/Classes/ViewHelpers/PrismViewHelper.php +++ b/Classes/ViewHelpers/PrismViewHelper.php @@ -79,6 +79,7 @@ public static function renderStatic( static::handleMainAssets(); static::handleLineNumbers(); static::handleCommandLine(); + static::handleInlineColour(); static::handleProgrammingLanguage(); return static::buildHtml(); @@ -159,6 +160,21 @@ private static function handleCommandLine(): void } } + private static function handleInlineColour(): void + { + if (!(static::$options['inlineColour'] ?? false)) { + return; + } + + if (!\in_array(static::$options['programmingLanguage'], ['css', 'html'])) { + return; + } + + static::addCssFile('plugins/inline-color/prism-inline-color.css'); + static::addJsFile('plugins/inline-color/prism-inline-color.min.js'); + static::$codeClasses[] = 'language-css-extras'; + } + private static function handleProgrammingLanguage(): void { $programmingLanguage = static::$options['programmingLanguage'] ?? ''; diff --git a/Configuration/FlexForms/Options.xml b/Configuration/FlexForms/Options.xml index 41df08c..4da9b63 100644 --- a/Configuration/FlexForms/Options.xml +++ b/Configuration/FlexForms/Options.xml @@ -6,5 +6,6 @@ EXT:codehighlight/Configuration/FlexForms/Sheets/General.xml EXT:codehighlight/Configuration/FlexForms/Sheets/LineNumbers.xml EXT:codehighlight/Configuration/FlexForms/Sheets/CommandLine.xml + EXT:codehighlight/Configuration/FlexForms/Sheets/Colours.xml diff --git a/Configuration/FlexForms/Sheets/Colours.xml b/Configuration/FlexForms/Sheets/Colours.xml new file mode 100644 index 0000000..5aa489f --- /dev/null +++ b/Configuration/FlexForms/Sheets/Colours.xml @@ -0,0 +1,26 @@ + + + + LLL:EXT:codehighlight/Resources/Private/Language/ContentElement.xlf:colours + + array + + + + + LLL:EXT:codehighlight/Resources/Private/Language/ContentElement.xlf:inlineColour.description + + check + checkboxToggle + + + + + + + + + + + + diff --git a/Documentation/Editor/Index.rst b/Documentation/Editor/Index.rst index 2bf171a..4162e84 100644 --- a/Documentation/Editor/Index.rst +++ b/Documentation/Editor/Index.rst @@ -188,6 +188,26 @@ Filter output `plugin page `__ of the Prism library. +.. _editors-content-element-options-colours: + +Colours +~~~~~~~ + +To show a preview of a colour in CSS styles you can activate the +:guilabel:`Inline colour` switch. + +.. figure:: /Images/Editor/content-element-options-colours.png + :class: with-shadow + :alt: Options for a colour preview + + Options for a colour preview + +This adds a small square before the colour definitions: + +.. figure:: /Images/Introduction/example-css-inline-colours.png + :class: with-shadow + :alt: CSS snippet with inline colours + .. _editors-content-element-access: diff --git a/Documentation/Images/Editor/content-element-options-colours.png b/Documentation/Images/Editor/content-element-options-colours.png new file mode 100644 index 0000000000000000000000000000000000000000..86d0122f8d17d4ce878e2b394ae3d4673c557b79 GIT binary patch literal 11891 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 bG04h0ke%P*Y$6AV3~KkZ?-t#8{NjHBODofD literal 0 HcmV?d00001 diff --git a/Documentation/Images/Editor/content-element-options-command-line.png b/Documentation/Images/Editor/content-element-options-command-line.png index e854169da1a83a0e1ceebe5804faca7dcd4bad89..0c378c9dd337689170e2fb1ecc570b6b094e95bc 100644 GIT binary patch literal 61712 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

89(#@?lzG<)fy-Ur9Y z-%)e8-!XQ_m7>vWb;9)#r`n4TP%fRT4w9X;t*cF&j+NpugJ!u1;-f`+%6|27g#PIY zp8(zEO3nj-UTQ3zimf`ohvL0p)V_s>2X#3);{i?a>DjBxN#MWq0dV?XUvGrx(a`(X z*8A_He=d0B(f@t~!1RC3zsJ}A@5qM?e8G2X1e^&ezAOYVJ!7bKDQIA-^*ya)wdaMM z)uxk_tgJ~CGLm0^lK<$Vm-t`S;eWpUe_`$a1NZ++;{P{<{$JPe|IPLPr3wG@TmNAd z|1yZ>sc8t{BF;0O%ma)rUPE82#vbHrJ## zh9F);2M~K?BmiJ92)9E6#LFg^=`uaQLsTJHd}OY;xVdrwUrz?OBfxh@AOqWaCMN5v zouND1z*BC+Ff&06+BFVd8xcH*J;@yKD`1KC#&Y`~NhLt%@jhve7+s(3WS7RYcLQ|@ z)Ow@0H&uG)A_2jrQCu#A9D=WR^0$Uki+=SdtvKEGXEHJ}JP#YGeeZ7p2UB?fpmQ0<9qsM-f&%5-zDnb6oK~+Z zr&PUJyXi8R2o_&l;v^3bM84=Ry!GLp-F9wfhU+CJI-JVG;j}Jko62FI_R4;;XtLY~QLG1XFIdX8GvVD)T|H; zo+wZfvCDDZ=!rH4md*{&a$_Ko#ne(d9}r{#i6Wsa(MM~sFM)~aAa=5sKbh5XtW<|X ztnZZf)XY-)H88z%8A4A3ftxMiOLt#=aqyaeV79?=4WQV3EMRkU4WZ59bc1Gh$H3Zo zz%z;Cn>+xVyNyC-J;oQ0aeYX*qX*c&xUo@D%iAzOG{!9ej8;`uRV%Ba12dg`*~F}) z5L|kk!;#GI**tIa*4It066=83Q;n9Ak_yHm9ZF<*6q6Lh@aR+vEJm|hxCppi3fy9I zX-lg63jlxgY={R=a{@$*>N?1PGZPQEG!Mpw0yvsp(Fw90BU;!pR3&V z7~a76*qWLegNN&BW~Jd~tt7xl|4E)}gifEXEQLbh7Q*XslEa+t0Zr!hsA>m<1r7JP z8cRGb^P%@*uikSiN?Qd!DiLRl^N2$rZKAz;eBMK2u>u1E7632o8V*Dy4A7$_jP}h6 zvV~f}(|{sNFiZ?uaJ)IFr*{IZgSl#83KaOS)`1jp2_fMFUv7%#kJvGbE%g8@0WAs! zVC2g2uv$&@XcPfLLVksG=8<(d^gLMLcIDQ0N!@2Hoa3-@i$q4~$=x)IeT!w$K045| zyZaNEI5KNGSUjAkF7{(o1F7YbOmZQ6Wso>j%dB?5U)?MMZd?#vr3arXH(*+$RWJFS zo|ltb4dfD?S`m#Cz(wm^SO5N;yB_3NqWN^->;iCRF7z7fX?aEjAcSy&FE$bk=04h8 zgMb_aR)X2&2ZIZ3vth?`k9oj$_R@gkF=*#FBrxigDZ+VAHw!_@9QJPN@CZ@?M&g00 zMXepcZmUO-OGgzy&LOnFi^Ck^x_3Tno_=?K(fTlG?_<0azG~42nC*avSm>)!s*Pwv zB?W|~kCc?1b$E=r?tq$R+86hw+sQ@ZSDxVa=a@AJK+w_PBqv|>x@H)<0kUt{_x==v zsd+ge7RW8gVN)>>Hvn4nyxK_cy_sJk;dTGa&8^)%RitJOs9}I4I47j+9thq_P5IC!f!wj1uzHn5i(sOHIS-{N%zA+0`Ss64A>A#i>J(#b@BH_IRs+>0vQ`@hB&wxwMz#N9{0l?OiY+&91 zuPayN@ggwDc;}y;HsIiYHrf2E0RhMV>z|J&{k#9>fAbL_4E=K&>>U^ctRw)&YGw0* z0`^fNVxiVL!S?!m-X16lF}?K0hFO`xa2Gql@G7#yR3jc8|EI&52d`Le%&Gv5_P5KGLr zLKhPkmy>rkIFGwIUT+WR#UP5~(s|jK-@iG5Ek{5fhPWL}5R}PantSlR(B&RJgLMSb zv9qxuim(V1*rv_98(=`o5D9)|S`|{J3on~Gb79#@{bIk^3{U;4Nc>1=s z@PiI@ZGnwUIsne-1bR@uH8){$iAs?r&{Ek=dR`wCM!NL5wffwth5$OSzEd$j7GM=h z5Nt0(J-xh|<8y%q&)uIP^xfqbuqkA|uPxvOc6&z$>dSXWzy5ZX0 zto@@^ZC1$cB39TQAI|4_PE%hb%T|DRpDH%1zIg#(Dt||r#i!;)oE67mGm{ajxHFGZ z;xU#qljK$?dMhEk?nfE- z#V}RbRK{$>_G;<|nJpdrp?uq6<|gM=t=JZDevu-#{4emu;eo!=Nc>opsSIUS-kD7U zfQ6K16}v|~fE-?NBRnWCDH7#QHCi{Bo2}EHsc)Z5>We9(MUbPc+x`j$6o2k3r5O&5 zkcr2gQckUD6^?7-sj550Z_j3jlf>n0vV~k+YRvaMH)l^n9P;s&2}egV`QpuO$5u4P zjETK&g3jdGGAgXbdcz>ky{=Y*NoxuL8@KPL+-X8`>>nMzZgJOEK&5|4#4cOAvaa$3 z^FtB#WLkJfnk$hYobiHCV;z7;K&j7fFM12qr1E!5_iH-!hkHFRQdYuZv?MK;V=Giw zvsMJI1U#+^nY+-H!Cc#M$_20s)$G&OzN6Q=9ca%Fa=ib#er9cY;hxn$#Ymp%_x$yR z=9Wei(jDCqC%j}4#m)dE@RC=W#~BKdW7&1G6X`C6;W!#w4mxRk*4k z%CuUhvc+%3pr?DO=IBY6t{Ja1$eRXk|H`Behvh49*XiaLYopY&PQFf>Pf>6!!lTSh zQUa+aAmpU8lgmgUi>msqDZ1{N3ite~Axt@ZW<$Q8>gZ(e1gID#AZ&uqjpvyIbv?=ZX3 zExal*6bMwJSpY#GZJ9CE9;zj0rYa7S=d~WwfV(7a)96T6nD7Y<7Q<2}c|aY7IDJ9k zOuOqX^4b2|ntKJisv&BdV9%OnoA6@Uv^g8;hZG->^?ks^dGQem27u`E+du2|qDWR3ByN zBqg(vOQ{qd1WvAgc{%>ZzMoyEThlAUhR1zqpI#$LeqP}_{ct*z<5>-!P%FZfG{Hl7 z_sK8ifu9IujH{DCTlEBWnXvbXwxFJ=$wUh?=K5+nP1%W3uwJdCuu_&X=!) zq4eIsTNo&5dTYA5Heq(6ECG{gP6Xx={fMe*Vi?&V&*|giLlVB0p$?%`^Xc5>2OEng z%UY^EuNXNmVH2)|mI|7Zt6F#GHAarFS3J)>?C&meoYyenk|l2GS1GQ)^!;f=V~Lm5J)@<{#cGw#T%u+e!JspAZcFBqjbVZ)tL~=>aS7(Vr!&WPdCPR? zG$d2g3cE`Mc@|vu`7h z1%2)`Lio#ONF;?q#9Nh4e_FR5rdgwg;hi{_jVjuq%+uA9v7%FWZkCd+=~t3k(RW*B zz&t967Kt7a#wnoQ#Gb;;3GlMSw{}0-?)tSbAx`>IJ*d+9RwgpSEuiVd(`&6CGRV8i zblvBBJg8hY&bIXnhq$KS_#WQUB@-GQmFMPuE(f{fUZK-39GCG;?s!{Ta!;Y+>{4MX zv+gfXV&_=o8ppj|*NtzVlRqXSmw49~?BXu{Z4$iCF_)+W)wa1coz{k3#2!xpWHQxa zU-5eSSkjl4hR9lmgQ%OiJjHn7sS~`?f#HNgfF3CHdW6d+udjic^}JrADa-rHFP~G zS}ha%-d^c`PCtKbLpXm|RILnCuG-EpnW8FK;Ts!ECi|#2*tJIFDNEI}(fi$59%E}= zi0P<{o2%r}scJSFsT5ZGOSW4SrFcngCDrBKL}PB~66;~@dYCK`{7-bXtI@1<=+%YuOC9Cje6tRX5$wG_D}3yO1wtJ9eP`23W2=&q&AV9!L^;v@Yyyoa&An z=xvD1y<+yMeN@q+U4M=x0Qtx?jP zm`5Svmo%K-GnO99x4kYRf(gGNTql_B@M2f}m#qlb;(Y&=lkYoP{im!|+c>8C?=9I5 z+B5y8Gy^hW-pkp}bk=W97Ts}|I=yl??u&`Fi00xvLDuoR^uWa_J3sW&l@Ah2d#}4b zGIDaA46D}asjD)YRN9@dxK_-ko>3G29OZS&5StlLT^ERFp%mKO)I}HXW^E|1^c5P; zT~cU;hZb$OLfw->#P9oP8;>jRm7`XA7-)*M-h9g@l+qc0QubMfnhzxcY zy*!NBJzIk=CTq042>#q^f3LpRVvG(|hF?25XE)#4_DZl=O=r$V?Ca_Er%7a_S>^ZtGNMG(8RaaTJMH0tx?X$cAQ?)jOwa9_Safg zXCpnWqFvDT?+4?=z5piqilPvrXIXikU$OPrZoIbR;#t!~vi8~2En13%pHkOa&(O78 z(m?i1L?44-+)$AyGhc^PSv~qr_I}C_fH0gS^-P4dI8g{>ps%mpfDSD-E{khmgjoXE zv5K+$iE`iLGL)`7i_7?6*H8Ccs|Uf8Zu~S%VLbtplf@5w=IQoi1-g>nz1${6`j(fN zhGPy+Iv?Nr_}F?`JWtaJ5S1OF*1Eb8`YJV3Rw=$X5;oJ2afhMzlf$xEZXp|Z7t@1s@5QNuFJRb63XmBX199WEOR zbZH}Euj7Qj=n9Uw7DqQ{_%Fpe_oVE$Xay|H4Q}XPqFLe*n(Pc*x8&!kkmuTo6@2pb z)O2a!>H^9`>p92O0P8Gaw_n{1R~!vH5$Rt`Vj3;vo;Q{bzfs29s17ujBn_QKg|N1m zYm`+Bi!Nr%eKVH{@fFv4u{>Tkcq2@R3(YS9y7N3zK z1&kTo4jH>`!IK@w}N)td@bt~2e4 z3Q~m(WdmJL4Q*PZFYeFEBYLIJBr#M7r#?9j3brooflf(0$6Nh{yXQyzH;`$3 z>tra2-kS1g?5`+-KKxlESjrp{(6ut=2Y-0;Gu*`Lc-~ z+!vFI9uU-YvwaupMeyM9z8Gn>IvzHQo-#E z<>W56#q&>_!VVm%rPt@rZ+OOc^u7oWL_bP_wECaKDTFhMhfubM|!KOq61|U(u5h!^dS)!;aZksF!$r0BxxZ<55T0Xhpx> zDe+T)hf(z?gF*q z>xv2=HAzF1&FqQI>|^6q$;h}~h3BlaznK<+fi4fhaTz=1Q7&`!9@ag(ezTDN+Eq1L zH?e+9th#UpTkCwGLd3Hx*Egnebgw&!H46*7M1PjgM{121RU7^&=Syc1xzc;>yi$0L zU$8D6dDEV|-tiZT?H_cwsItToB^JXoz2cS<=EV_>a zDFr%!~O+p*=n6l5$ZC^vf>=turq*zLKhj$pyWdR}1F41Q zwA|Bcbn`IZfBevULVpC05x15BM6onn*%rz9t(wFR>L9+4fO!afbHEgF`0zCI6e4jHFG z?b}P&xbe-;#)zD>anw-dF3x*cXaE~FxO8U5l=UUUNKv%yyNj4OSvEEU`>r=h<3%z7vgo{%L4a)N&b83ybVZ*xK z%gf79E|>@Gf4{nf(|+o~G$dW#J-Ip-iaKajta?et6(-G|OOOmDB_%;}O-w-{Xx4GF zhKA3fcRQNLLap$k6K)Y5dl2$bt@(*{z?o1SxTRb1(PMXGL$wyl;N5FZb6w0W$&c|-FWCMn zX49*BNDk7wjIVZgb|*zgiutWlh}1?2L{OP>qn=orp!t znykFBZ0)uDdKwQDq~0zke>}#vI_x0lsTc5wx%o+ z2yO~7ye(f@Ld~0t+xP`S+ZqnSF13x!+V#fRv}vJTOFEak^mZnGxz+U)FT^>{^dJ)V z!|Zj+x$p9#Lk2HVa7!Oduj%Qd?K_lP`o>acQ6{LS?UcwrMz-FI7`YY=bUy_Jg>XxO z;?M~;fT6zzA8Q$k4)$QrdfF78hHT|}63sAq%A@lqk@b}r)|Q44#=*XDS;h^`2UNr%@4rPeF&7$JsnbHU!W(mqG10IVC6B^kpF@ zz@}x(RRx_!didOyDtMNCeSFR*AQglWqn}NJFanPAE+i!hT|J!F&W8-2D2)VjX^9o+ z{0fCPRlGQl9}S6<8WnVxb|AV@LqN8(Moh~`bNhS&`Y5{cz_qv3N=K)R zAGR)3SOcjL4E-IH*qqx?G;RM1UUv>ad~8P`5FohLp+KY&G6~@w@d2=Ci`22<>^f6y zyP5THV8%APOen~JS;S?|E(Bs)qPXh5cJu&2R?tGbgQ(5Wk%Q}uB6z8>$&^?b^aXbk zt6)F=c^z|#n&Nr|Q29I^1?*NrQc_O^JLK_06MNC|Sb1-fgr7Sd_#PeFbrN!Q$&dFq4bM z84Q}0_S4zOfeE3(n;uaJWS;RFT$KLi&AwQZHq5pHT5!nyK4H~Ro_>udP9%D%+}PaQ zTw8kpkbFSS`u$rveP=bRUMeA=f_VHL1^y)8Gto_T^k<2iobU?~b`nYk6}SHy1E$NFbz*qyi|O zD(VTk@_Ft#yTvI|={)@jJhMEn!-I|bw2ythmhkcE4g~8F>laSs3a3R1a&og<3Infx zSG!K{8YfK&RraQxzau2{D6iPyJ6_D9dpZWn20;a^Zc{e}1qbwK zsYTpBjbtapInHMyv+&eE5p1f(el}6QJSj|IO&&AXV~yO2lhBy160jg}mqFWak~4Y} zJVMDmNlhr`e=kI_wXkyYcYplAlc-BL0+Ao+V znz$n8E>+S=$4>-_4KOm;^sTOC!nUf#dOQ~1B-taC;vu7x+VUCg#&+MEb~|`0`q`@0{2;F;j!>jNS(V&Xh$E4zz|KK2p7@&VP2MLM#@wY&MNu-5rU-{SHcr-%C0Q+Ng5 z_L|-^L%pPi&)`PUUKwUP(sh|V{Eb@?jU#Kd6}IBA`hf)!D&w8CqqWT!Kn6Ek`?trUk9~IZ{pYiB3axQP`u7q1T^{|5L<144) zeMdahI|bbD%;=WR>!NPS8jtQS&N;elH}{9USYL7&IKMbG)ZFbegQJN&$2_gXbX)7t z#;hqIw&qX@;*7Yjt_8*vCn&^nG^cNZGukH(f$W}N47kuXb51!P2xzhi65KDOLxS2RsM67X? zz&!jPzVbi3^*7h+=r;ekn{mJVul%lm%*KDGe*H@8sDvg5BTj=5E;-s8fKa%N-Gs1E9DlH-jt-AE;fC zG@e_c%urV+g-Gl2rAw))e-=}8T_FhiD7XRD3tBDEc&z%EoRtJ89=Q2Iqhf|~MRyUk1E7pR?}G7c;eZzt!iQEy!R8R%#% z?sdSs2?_iPG+#dSh4beV1O5#7z?GDS=9YjPkRBFlb~hHAfCljFS;0OZJ3DTe;HF(x zpm7D>02~}n)*ue+@xzIL)&kR)U=ZK~Z>%YVGAZBp)JT>LfZS4Oy-O7jC}Ud7IP$FF zd*M=0CqX<&EHe$KKFFrr#(Wrw`XOG2wgox*HPlDzy0-MAqjGD6kz=-7{5E$HvBp%7JnK{3h0^ASvqE?(E)ezbg}oxSl7lfJ{fE3J~Am z2KNs>#=rfEd+$HcGt>l+zKGl0|KUe~dc8OZL2LmKu0BG&TQOb)@SgIoNu_3;Q|a-Z zDvtqUgGyh3pWlUoRj|9>94*8CnZCmDbt@1=-keN?pkl2zyBsZU_!;TX>ju{;@Vqc(F<8b zteljTOe+MOPV^FROlAbDBmhQBkoFnD$iM)al0Da1)I`T-4Okj{W`X{FQODD>5iv#j z2R0mN)hS47ieoLs#cPY6HVtL!5~D++a1tt6+1zSwmldNkaH2x^H-i&BLj-t*Mr5J( zCL^Oo+EB5HA~3j2nj<+Me?E2^=oiL1z{G9`&fItR^=?hUo{zA+o_C6IYCovUKtjs<@0zg3-@T&iCLpB{~L$dmZEOu}qa@5b!7@O)SLB}lp zhi5lteu@#6UIw~dGU_SRuZtdjmo_3!?pR;ww+EIM%-9BMN=!^FH3h0fAB-Vr22RDm zA~aVRcmlLP*x?#7d{zS!tVUU>KpJ5kjBed`mm^LxS2q4A20}$idOMZ4yI$3Iu#|ZZ z<{m{g*Qn>OsgYe$F-N&Nz!chAQ5a3`0zHXobDp@+-_SUVQ;HmIT z2XOd;%lnDX8@AvYXkxo7!MQ}A#Q`N$Dx2gGIuGcp<`9oI-KtT$w?j{;qLCUF?MfUE ze3}Op+4Y>Sz~VMQ$r1TW*9 z;G;v=@Ol}osYF>Wxt?r)4g>5JT%UDCn5Wm=!0q_ep~to)+w3?ifIqN=$elZ z!F@1nuRds@P=qs!#l5ox?HZ~1A%YwEc#o>x1q@*axgx37 z6iy^=I|9NK{g$3-h25TR`^92{j9gZ_7B4OB{naQ5ApY9^{`JNCGL@Z^svz)r9OhBX z5xMTB41oawEz(#>>MeroUP3;;I?MNKuhm%weGMp?DUC$6GehOY4s~Ba{uv7d)mD0W z+mZ8*YYGO-;Ec6X>^Qo)&fDJ^uXHs@<>j#rpNV}VsGifh6x&oRUd=q;HAMqQKv6Ty zS4RTCZzlALhi~7!X>enctfn{VCRc z(+m$gSeAcNQo+!|@$wzRr#S!y45ZX@u>{#P+S=Lz1gHG?*XI`zFAN1E=*TNR0+&Sy{zo2 zW@eH%N$ko+&KY-%;F9V*k_6JzJqTnx=xjp+MNWUOt3&wAn5&48@8Y63psNG?Sgja* zzM%)mxhY8S>?P}ou&kyS5Ftl))lq&Qh153styLLNX~8qN&7r!KGR;JKa%Ll5Kmkf5 z`PK@ti5-f|B#@9-Ef11qW}E1$ed|SC6|4~%$Yvcna3WxtNW+Vl1v6LcQGx57h_l_# zTR)k!QMVCnr{xT2l$O-kOCeUbBdYmX^~^8O)5q8vz{V#gCwGBrCrM~lbV8Hoi5b)# z>_mULjH{OGG)Ia4txE~W#)r_63QqOKpJkuXGj{8(#l4v^4On&Eon9?<2?)!M;?&?{ zKD_{eF0}N&etoL^JH{azh<$wKJZ+9xjP48IeOhFd4%%~aa)QuPP&~#m(E^g|xHgP{ zy*n@~cAFUBRJN2{i;Am3-SyH16iRSs4OVO8q_evQyCddBRCy1pIf+DW>U)aIQkViEvW!XG5_;|iJc0!L~Mphm#HLF#+HRaL90&3z8R~wZ1 z!SV9Fk%OYab)dUOso}kF`w8XD%3iI~ZpDRrZx*jkOBUzdskx$ziwvG(TeReDU@apq zy?*_AZE>)-I!&Rd15$YT?2V38bk1YdG&DbRNUBut-Hn{$yoJKGBuGWld0Oa)Gs?^;m1{!I1y%BlD(o(e{m|ed<0Wf|VdpYeRx^}UU=#395#7VK z#tCP~nH3QykoL=WPl-tT;ky3xGK*Rj<$1zZgVRUH88COJ4G1#&WFhN<(`Qu^_JHO} zSh00ao^DK3e(1^ii$zQglf<4px}`}~%-){w??d+IiUi#~z@*SU?a9c!Gtbl`flVK< zS3>8W%ZYoJbzb+;qes%x?}V$*JSzcxLgYSE|D{O2UF9Oyy>-%~RIKQTTl+Ul_9(!E zknAtgEG~Hc^VWX|)BYub8@lO=oau`yaM``4C^rGKVck&!e_WgAK4<^4FGct{(5z{$uwC296MJ30>bv5*WL8+tu6)=i&tAxab{nc2OI?p*sFf4Db& zc>J^cI}SbFuecD?byMGU^X}p5-R7WUe77oI;{+`@&B_rT0dX!)umU*??$4ui1((14 z^Lx%ydvisO&kffc?qi$VIH4FZT=3+iJ^Q_$K8O_I)Qj~~ zfQDH?N0&zuuUUge1iCovjQQOHRz2bVCd5#g&|U#v6WN)ei?MX5|Mlfnc53plLM%Tg zP^+Qs!TvbS;TDjMqtcHTJvXujeB9W1%4tI%H(Ycj9;m!`HzM>sUB0|LjR$7{G@UcY zV$gVS0-(X0;Qup_wZn!nEABP`sM3QTP&#jIo#4g?~tFBzkWUT zi-#BxIyD$C1NRt6fg-kJ;y}m!@t(#eh*dMs9fSct5zn(touiPTCxYuY?SljGq0V#Kf@WcVfI1|52qAtGYAN=3B~Q_-~HU@+4I0fVY6OhDY3 z`V;P)fR(vM1c2G{;U6s$aKv#98gawL*)qI_`}4@K|LglOZMYZU-J@IuKK%FlxG#d2 znsk4%x{(i$xdKD<79jX#EKZuwF$$JV2FOBtWxRmHf4;Vs-S|LaBmk%&d)!o40l_93_6Xbhj{{@&03 z{ks2OhV~U7U2?3vmKK*Ub{M=61hOa z_6a0nkhzXH;g2}rZWxZ)G~}(S-}gKH_BP6Dc+fh~kAt^6L)j2&$Ixi8F^H}XHnZhn zdwY9iWF(|w)mvkJU`|Wj*%7p<9#Az+{0m_?aGmy^9R>+T@^74D|NWQJr}MuGis%W* z$up&`TX9I7D>8WoHQmw=ike~DIx3QKpzAO807C$pjr_Y-=SWj`v@f922nrUXGJRqN zITPSKs%NPwPeA9%BhUqqiW6wRz`&j~(C@T>5{sXI3nXa+aCrak^(t{4ZUDJ#TZ0N8 z2Xj0^6B_>TcbSSZ0rgHCY|>kgJ}Gg6#41a_<{%z~BXEDKAcaBkT1Df!i^t z04y`u_A)R2p?l!?+zO$NE^v*XCWDiSa7+Sv0T-Q9`jN%aP>14oJNTQV%FcSK%o8ReWm7yYx;tW z$v$nEx`cUkP0CdxRnmt0jT&uynHZ|Oo{wZvB}SUi%Mg-Wq`9U97ME{AO3lh#vJ=da zy)e&$+XuP^sfmE_;}~29ATi-#U+gbVhtWa-1v*qdKLHqiaW2^XOiyl%LG{iYE0u*d zu;A`S^}{&^x*F$$vAJQWn1>cQfynElQ|ULJvt{PpEId5j2W}AU6cpTEybH>Q)Xq#* z#?*W-;&Ql}f9p&(62d?lgp(!oBhA-C1LTq-U7pF{DW4~34lQgnB()xcdL?WH1Q5_t zC%4K>MKc=iUExQ{Xhiw{BmOQbQ)hqEp%a~pc| zgVP8pDa|+&?r4vVvdxNWY^A5g;x!Xn!9mKsM%Mff3Y6ic4bcV#q8AK(e`>_yR9fU) z;^LvmX_NKK+dQ6oTX49S3a)U9b1r;;GXO1U?=1Z|^Nrn*Y@9Ng>ZH(#mq9iV*6uYb zQOrM^9b14NM|EeuJ<}!@yZD{cXFA?XBo~vIH)cKz(n%2QsWlfeV4-PNqmN}W<9+Ah z5qbX-|LSwsiy}olT-g*s*7+EUL-j-}StVjBXX?de1DgYaA4J~1u|gr@zNKS>Ru?|a z>~q}@#XJJ7t+r_?Wd!j2Pe3>nYUbSvTmm08Ee1^_S^M-`E@w9~T4)3vc_f8s)1*j(1y1QAVU_XzOS0 zEA@hz_l-?B@;g!VE=u)7L2j*qgMp@IFF>FDOrXTNf(;2 zOB4H9|3o0x`WGR-G6qHCQaAJF>tiypWq&FJN!V3wZ_z@*Q?x#013>bmMu33{Sq*$t zy3dRP?=i6wcdV-qyDAVVn)2N^UtJ&@(ZNQz8#CJqPKp_oXuf zy?So!PS8d#5}#D}&CuwY19O2E2Fm!CbFU%<-c%%W)n_w2=saO$d0ietL*;$uwz4d1 z0sMXOK@C-g`F5Ifl}rx`Pq$w(GZ_P+TmVnXhtd>x5a}hW8C+R>-{ofyBE_%@9+C_A zn?HkFYKpkbWQh&|Z}USt_39#1gWFFFH&$Xc5DcMe+RB(*t>US09qR@YqRf`T2xKPh zgmkrp3+a>;$6nNcckuQ0OYXF^jg_6#n+;l$3}@_W`yunwz7~7t3iaMpjLn^wm#^_! zs_|uH0H8saVjz?k+*Apj!iW|fAqU!^1Ry4?N^TRAx+qi^ee@422c1WBfwqE9!50W# z41wd2&wUVsMW&DdbVc0^pBlFHyYq zWZ%%{8QJ4}^9ZwEI-&{4K8dWoi`0c=(vT-agH;|b-oFA-g~PI#pGw^4(BTBoI~Lhz z_{Sd3x|9K4Jh!itUYUO-PpkOtlVHv}OGEF8b3pPP!Fh|__!OKGyoM%}PT;ja$+Jfw z>*-YFSQ0&4BBuM2tHdr{S2UakJDzTfj}Mg6N)n<5T%KAJdzG`0P@aS(eT(cY4+WR; zgL4`mB{;C=+jh;MKHYz-{TX_JkLwkFdXwFELcL#E7wxCh^4vJRMw)jqF`_Qu8uIPR zmC(2nSX4XLvC+F80P$a1xvcw6OQq|RNkZS0M>sNL;*;|6QtRR9399ZC z={~)RZ=x=Yv`JM6o0ZF=Z+{zH_t&W{wHXnCqqeuQd@9;v>^}R+iOuRwVP2>xaD!7J zTY<`e-{oIKo_L~Hd((YaF7w-hjc@zi=7n<$a)=J*%d0MdU|o56d1SleWbF;DsF~@A zrdnbm()~-T#{&_;Z<$K(DPw+)!`Yr{PBiuQnzi#}nC471{7f)wPk5_1CNXyG#hD%a zV$nM!ZkHM)l5cDV{p2>Inb5VbxeMix7E%*Mq&_(f5Z6E^=x2p7aq%|&RwdSMXnX@p z+X=sGYfv!)7EmDnUgPz%Gkmd0o@ zeq2TTjN#pKe+nMopM2uq{K>g8Y_zAraXeJ@XEedLT5cCp#w1dIaG=D^d+>clwfJoI zscWqEMz4SSYUHLqh=!ezqc_#0lfZ;+e+DGLrG|xom@Y@BqwU1I4*%ZU=Fj1(H>q8-(Saf|Dd#UnuxgQRuBHI zhpoR;TWGD{V_O9mk=9+B9|w{N(zfp#0Z&I-T2%Y5;o zBDU`^@ZF=2zrH@`xLAa9b@5-j4#8*KJy?G4MN3P1gZ~zXKixGW+~^M#F`PnG(6G^q z_0JnQa3y8HE~<7L6g|htnC+HdUSNfhgd$twF1$;H?Ro>BUx*!W1E2T#fBipSYBTuLzoV^C}`vCx;a6K66 z;w^tOBEsOe8Y>Tikf5uF*f0BVP4RFI*GdD(afhY5lUsZv?yEHWKWX+yX%3!9Nu8Z8 zTD_pZ^%du5vhym;Ax%GmQpUaZ-h)J(Y-Oo(WPb_dt<^iw)L}JdWT+CEPgf@W{`wU3 z6f9SAPFx&Q#NFXa9?b-m>*epIfSQ#;3@!|XDBd{tm4#wRnn)~x`i{_B7 z6nY@Fo|E9Jx0O zISh2Po!|7tZXW#h$g7yk0!WdD|5-wE^7!4u>BBw!gC?(SP3Zdbp-?Cp3>we}SlC;wzOb+yrY@V`Xbyg} z>Tk=kHCaK!3@FN3UW87eP`+cTq3JMCwIgk0kGR;BPgPg`nh^f~7^!LV~MG4rD z$7j-HoTatqRS^dHojzI=xcQ@90Dt^3F2!bm35bJd+GmazaC9D zZeRb~-p6h8|KtyF_xiUh__OzqZVdNYUhf|d(aMr{V|nN0R~WC@ zP27LH^#7YHlEvggQaz2CCiNU8&8u2z1b!fDvGie)Q3HepCFhTP7>eCxbGPPjmv7iX zRZ6Ok@$Pm*6Gx>bV1eC+3UNaHHCD_0ZJrzXhdcTI{01L{#9O$U{+agOiizl70N{Z|LBG!n#i4pF`p3a3FtwK4J~ zPE+OG?U1`Jzh0b$wl9eQ9)CZ`azN}CXCnbR;vd9i3Nb5706~cCALx33_6>bxxNz7m zVJgMtF_1(1-#y%GJKO`R#WvsJ)QJ1mHyTd}e+ELKAyH*bC9o83dCbb$eg*`B1Lk&Q z8#UsiE{wC#$zhid$Y(%1+1mlLA=Z5K;t{ZEBo-sjxb*h-Z~G{^j~UYJ_CZcfn|ZjS ze>g8CvJ!-A;`7&>bEM^KysmOvX<%IRJhD+;!4+!&qMT}umgKKJS9#&V(cS*@p#JY0 z^UtCDf3wpNyDLk;NH}@s;-|E)5P+gDB%+!6irYk*eq8bV{c1kH=76C1EhD%@Af&J^ zl`obK#sP}8s*;664{;NDmVAFk>h9ML+yfxC?4k5VHVR?oSQ{=LrS@7Z>9wv}{^6vu z3q4-Es8uI`#4J2L^!0Jg&H z&;KfEbFTq-8^CcnFT2lhpno_RDzl;4-jEB3gT|qNWo|yqf=z1=v8QmfMNAaNbv_pi z(Rn7(8{o;F#yHi}W@yMVq3v^F%Zn*^9z*u&x!4H}V8EE2({hP)-Cysus4Jsc;{ae% z|JARkQ@9qzado%tM4Kx0N-m_wzSF2=pP+0)WJvrQ-d}!bcoqq0SZz$!u zh33|LZIb9hh?fG?SR5TJdaj0xxqj?#u8BiUMI zl*k~@s(lH?h|!9V2heoOobd8nbA|}<0I&{$oNziH4RKl(XP{~XvEc|MaSa#WH)!O3 zjBWiAi)(WZ89(^XJKmL(;X1!7psIsUx)qN~2{---Zky1AQ&h-y?37z%IOhu(=zK>G zpDTXbdwU!Yt52+75-H~R)eZY;{Id8DtFqxALD1QUDTFsmW~b|ozKlII1Sfi{AGQ4? z6nsnUou_z{mc^$Hg82Y>1`v&)6CO6vTji?xAo1Zm<%a65MlrL7pg!MWdyT#5($(-U zl~9hB`2F;2%e${BHB(pCv~ONp@k0?^yl_KW`Q}TT_jQaUxAcU74AGYsxF-PJQ?^1j zo=D3PY9;YXso)R9It8k5GAuLts15-COmZkk3;zi!D^&~8kaq90Lrvnu$20v;2p%-f zPX4~!n)Kn~vF4xPMRm^*-$|k`4Cl}OBK@1nE|G`n~P5SFp%wpAu8)M`1q)QQXgl-F{DT24@A^7Qp>KU4xr)#fL z;dAJRAn)BUTa8@AwZBqN)l)r2DdVO7iuxzwC2tG0`t@WuBCEA9lMI?U#wD5dj0SXL z?qZn*Own(a-^ftylLaMGpugQ*S-DEmmlk$=DwJ(etWi;Tok(Gr4O{PbDJvvvWc*%; z23Gscg(1drbzn)`l-UND0>!)YMnv$|m zW;2rs56euC-j9@vTY$s~JcJo9zlg)h^j{L(`U@#1leARxJIB-$3B<-aiq3L|>+ zV$s{OAuO&Ol&|#Zcnr?ci$^JY#`3BdKZIuOqVi!Omu)F&KFiLit)xmvUQTNWiqw7( zBt~Cg0tH1#Eg#i*3L`kv3U;AsSuRxd@IF5zlX!aj9fNuCX~-)B>Qo;4%8$lO>TqV zdJ9F5zgy|MSIe{WX36-qbWos5>b#GGR4ATzot$Cwxm6}@d`@d9U=}_+7y6p_1|n-n z$!_PR(__k~F~{(03~o5+pX%JL^l4J$Hg-^b74+e>UMcADXT(p)c7OG|%~Gp!R_g=L zA*tN=Glg-oqlq6G$qVKE18+;Y(E5?x>NG!Y$HhMWq@u*&gQGUOY4Ju|p{w<>rZz)s z>O}_<-ACZX0;*<6X&v7?VX$bz@vAI1Zjw%Z36FM5FMoZJcyu=9hjh<)H#&g<%XF{r zH^5=CK?P1iA3uF;uq+RIDNesIRL-R$Cy9~$r;)k-{&Ln(y*g1X<=(^%ErKU(=V~$} zvA2DyglSLhRs#&u-o^9U_@uxlQ7h%`< zPm)9lQe!&`>X^yYuS(EF9<>lc!m5pb)=>JLz@zAcq^G729rWxQ%)&zr=WN+-@`z*w zjiu)Kr_P+A`!eNIqyC;QfxAxsCm#q&CzAUKF-b z|Ml~dsK{obNnOl}OJKLXUrooI%;I-V7mrD}L~L*my3}kc`0r%Cj%-{V=3Y~B;jL#3Cvu={D+tz3GPG)j`FceI# zNZd92Y^?a8F??SF=cD?JFQ~1y zVEbAobz@4bOP)(T_;Pma%wkeilTMoJyqM>;Q^66Rg+Zck?pxv8K#z#ZR~4#aH6CrL z(@gY=qUXwz;8O8m2|PJ&#^VwZ;d_-tn1Fb+Hi=kS^y_i4%M5iJKm@DjY|c-dSd-9p z&d@$L{X@Yxi5ZDUBVm4<;LP)fS!~+QtaUdp0%PfIn&0z>Y{VyTTzf(Q)YOEcJvB$n zoU>LKQu=K4g~89#&$cyIIBd3s>a-=d^VRG8VVH*1)Nav7hmGWZmOzl2J(fG-s-hxN z>q+=xQ{|fJX?dsuRP9j@K^g1zK{wu8;WGO=f;awppEI)BND8>(7VG8n9=4dPPAk;L zvOGX1s&%_zJDj?uzrxv)a{3KCUoQE^hqui`JIa{J8+@nd-aZRzsx+v4Q}vBHt7lLa zQd)(+&YmWxj^t!Q|giD>z+S3P#eb!g`?$y0+Fu>~;e`do*H{3`um(@Ri+iz&b z&sgegokSGVjnU@@DZ&s*`j|BCuwe&mUd+{=KHYiNMKi~7HIxczko2JI-G!IwmGQS_ zvymm?X5q*#zTq$TWX$aX!i_vNP!_y2G`;xz&t=RXv}W+6KZxdLhPG9cR7=r49kW3X z(M`ECfZhBkGqd_pOh)mOdsgy?27P)^=l#b+?^Ujaoa;9msJl&~c!9SGF~u7sk;B$8 z(6U@6$p3Tq(}O}aZso=36Y2`BZlDD>*9}G9lnV-eQ+5lxLYYnEWu=Nqt@?Y-h(ZfK z!}BG$H(_fouYDrA%7mMS_fB~rU27|Fi}rOef{H4VbUJQC>u znA5+!{N!aYkt#ebl8{qSoXkLo9Xo9-g{U1on{j_=)q6PI4O>u3WV^!vi+8*^I_pUg zr0?%dUyIaN8syRiYlLXy`ZdzajZOJOQCzA1Q!>+i_V1TnBFY{VSII@F-98_v|IrlR zN}A@)a=VCw0nglI-SiJJgi^`xdmUfqI;bjJRsx@qY+^>YZR;NV^!>W1{QINJLmtY- zw4=S)ny5O){M!7{V+Wt-WW7~mF44v=b;k%dOI5o*@kg==DP&6g2Jqv%ykR6sT_?qN z75s(zm*NGir7}0O$V*?)6JgPEMPy#hG=jz?*HG$~uqy}H`M2|3Li2lsBajk^yKZR0 zWY6Z|sD8-X$-K;#P#SS$x{}ehNTT(xRp0VE^U-0*2hwDp?~f|eNwOtrus`CGx*w(@ zeGw6-oGP3R^Q~^C%}g1u!g;JyD)v72xw|d6t=iR<8~g5^?9!!Fb5+dbWa4{j5ROcl z$dQ+tEB5j>RZhKNfMUWYaHxgD_c7m{Wo-!7GTc~QB6`s`s#NuVB$x^Z0?k;Dz3TP{ zb(3>HWtTI^lZlg$1uEqjzF&IO?Y_+FXoQKhcFq;>JhFyz1eY3)3sP7L&&N`%BWsD& zTg@LkrdEQUQgUj5np+s7$?WdKbSp>TCVzAA{gFC6E6{3AkFCGJnloGwpGL9VJkDM= zM9_P{sr7@p)hcWN%4qy?)`rLA`0S>PrKS^4Mjn4=@OlLb1EUot&bFm3B-fLj8BBpt zNR;U`VvAVGduZWbvf)e=Cr0~`I+eCAEiI!@G0AID;^ZednFUBv5$r&}2g< zS;D1H-_0)9**zC&8ZbA9Uza`@3B^0mOU#~=^)%u8i7Y4n?s419)&St-ivoqixVR0U zn>u-Fi;O+X_Qkyr>M7X^H^6{i`CPY^eP9*xrtYg##ZMOXcyXp<^!_pTeN%nCYfPD( z(oEK#=~?C^CnxVrSaM*c;dz*%+io|w`F}I4&`u5`xiZ>HpDoy#)b{9Lm^=FmL z@fBUW?>yyC5#+=q3or?-(hfWWD6No-uiStqTVB_JHuMo&#zz+Q7?`Oz>Msl5Y5;U; zIVrD=hUl!kinUb7)sAFaZphE%WA>({nyP6Acq7(xJw0t!)>z1Lu{c>#6?w{S#`R6uE zktX9*m=O- z4Mm%%rLt{vAGu1TYbfX%6~X|i3INz0_ZXi*N|{@k_yYP}db0G5m7WZGGjo*p0iZ&w zUE{N+1dPmc6TOnB4^Y36rlzKe$u!_eD}1j(PrF1=#n1YGDCPVEHL5JWiCuX=gtFS% zq&js}@TrU+1tbXVYH0F4^G}7x1t~JAtBpoLJrWE76vK{9>}70FViY;!O@xy&1De2Z z4Cp)agQ`LK zAOZqiUCpaR;d=k+`o2*P848C&XX98{y$W8|2${xnAoKR6GuMP#ePEb4HkXYYlz~ z4FAf?%IsN3C_V&^zhPJ(^Ef?RnE5bnzawI9I5xd&H}CdMd>VxiR_m7Gc*4`a1?)29ViO(FVev{?e|xP zd%OuH6+Y`*j)(_QxIl-U;9Lm=%&Lj{zrL7%3P8~TFqOyHSasKcmoX<9|HEziZAJX} z0ffyjqrZNDf@HVWtY^Qf`EFr%$w!Cc8|(k3$be-1H%Ek;q$mU$f#OSk|I+^=li+m} zJM$NtiTY>%kV&Yw_!pT3ucPRn|M+IVfAX7(`rp3UKcwlu-wfUxHShmm$$x)^e?Bwn zSGuptq9iq_6jktQW?1HScU{`-g6`qyax^V-iE_(IU2v?`?JH`QH+;)mhC|HMfBuh;&3WYk0a zuVmYQ|I>fo3-#~*_g`(+BGw&d)#A#^apKvQnW^vL+}Q^CX4;$FNzyL@j;e=d{2Nu1V!7(BeNDh>tvp+SeJvYMErC{-0GLv zaj4%W(4`e4o2YUsxdBlAPX}!81t7V@za50@Zmof6F*mq-NEh|d5nuL?VQu=?AGP8) zKLU5~825uQjy+?)lideZK&EcuSDv95DEyX#4$xPvE+DPJJOM10wdKy@K+B$e%ichw zuPfNdNa`RL!VSWqpRel2Qh#bWDrr%qheQW~ME8*q;h3Xsunx2wrnb~ghcJtsEUC4C z1lVZ!vI*!}7l)={-*`xAfF8K^`cS6nZs3PtAri|x|UK(0>JZ39ntJWDTL=X-Jl6_mGE zcnBYpipc;9_HPac7##wc z!C`oAvlm&{F%@j`p$_W0pMGum1tjwuzXqtFN#cHDzh2)%D_S6=s846OY$I}=h!7jU|ezMl$@3KUzY z4gfr$-$2zVZIiFQzgBJ4ULk#;U%G=CQgpK&8}5r~cYzc;b!+Kv&=(7BP@;hDdJGD3aWw`sg993hlY9N79zwEFB_UcoJ znyf6Ss)`i_4#o196#3C-zk^$6Ps1TC{G^rrSdtmx4tlt%CfF|D+CGG=#s_dH2uue< z0N^U_V2jQ9A+VCSZ@vJ@)ToUf6fzh@JV8US#pV=2N$sp+x&jpiM~sTAWqunB_6XImF=P0e7T*LK zaK(}w!rZmf1YrAXIom%I17)5te@5l~1>h+H^=G@|e9LFQ!UO9L;t}79j`W^mHbW_% zm)7K@P7gsz0i*EZbP1@~I5}ZdDVzIBh&8~5S#p7_x~zwzc&n2E%=+q|CbEtPu1>e*k)bVEi)E`b^$Q59hnaRepu2x3S5Dc zn;Xp0*C>@1s%Q+C9Uj2`a0(3gy%{*?8NYEfDc`CG!bX69Zj3#5i)XtXTMZ?{!FQGe z2X%9Ln<@O7?}H|*zbL^SC056V)mnfUj4Q&wy-2}3L^X`~$laf2P6gW99FY-GkkRNr z-<|KGw=WnsieG?7fwH|A)kwKS@S>#YFnD^V2->qHP}(>~u7Sn>14_56W0E51dn~Y- zTm`O}&);`_ekKNv{)~o`#~;pbvvF)0Si?JOMLLrt7ba$n17B99e}OKwDpFvhSe%lM z#3A#tUnnB=oJ(?u8B~65%PC;|Y%Ah3H*}yGX7&*Fd%YbK?LIsQyuQW`Lr7`Y43yx# zpcxPeGIse=#xEGd8K3`L{!OR}_=XSi1`^oKeCKN@0+CSGtlM1s^;G&R8zC8N5pE5? zDAqv`?tjkC44LO<)5rPZ!w)zjZ<7gnY}`#Deq#ad^fyRP`)`4wTOG582CalW4XAGe zGhef|%KY8x7}I+MtWY?-E{xrK<5~sb#H{BKOUF zava3fYuk{~r+x-B9BLq;$#U3G%YM^3)>e0oP&cW{>oJ2LL!MP7Tfwgzv;hT9o!QpR*|NdAb z!bO<}ANqVik*_!d!R>vqPkkUV&=hedgcCXrF{)99ctQ?;52Hfz3^DhWbX!4pgM9O$2WlUyuqLZ*;ue#~w+q6)5PiV<;jl$Vz!HFBIl z*X{#6iUs0P21t%PT=_}Nw$F=T21vB1qmsM2Nb>5cL6zmMAYLClG+qT*V7q8=Rjjxz zLb0!0`v(}n%u%~ezH+kUDg&hT_fnBAcXRIGkP@9p3cmu~>i6DgCxQ`jj=Sf&R-kjR zJ`={zl@%Iy&E6T(qhP~WM*0}Zk{Ipq7OSS=ozq|IYNb7UU_%cR#f${z@c3XRa%c<3 z8PEe7;?hK7?;5<3l|nQX_j)f@Z?N3Z@PY=^ZXcXmRol>YCeNM${lyQW!yAg9D(su0 zz62Nx#25<%l)VpRBwNM2=xv&4r;=(^qwkxNA})v?NzsrJ#z2HHolh~gd@z4b5!WX% z|I2JZ*FdRulx(Q2wXb)xr(8RQa75OP1Fe}US6%nnqy(-s%vN+zB-Q=)CjUsHLWU% zU86Z+a9Pv`W`vL_$NFjJj{)5Jp?}(=kLv!F*JMNO)KqDjeXwYl?`!;wzVf9kuq!)# z;i6*OvdI7)v8GMMwtSUP(){}$G4bwqx-89i$R$F=i&(>n!vh|2tL`wYQ|-(+qa%47 z+wWhgBG6J0(d33l zB-7>U`QIeq^X1ZjDs3{NG?z+44C)72*X_0~4TDHD zZ7D(CPn&yK;ZZ%xl-HFnO;330f2t^HQh$Y3hZ#@sOEBP7TQRtdRHsXqW9%lTiaWNb ztEgUUaTEiQTo;Ys3v#`<7fjqD(iE!DO>Y-PW;Jfj*l$I=;-u-c-Q$RHLJyQPv3bF9 z_n3A$W`c4qDX}HVaG2KY^cD&vzJy_F(o`~%w}bol!-@?*tcye3>~EIiKC z*UDM*3N-$>dEt-!C(0254%fOnnpGVleqlz)zfh#avnXe-n#o9YX_sQA3G*WtBbz!hON z+x+*{1SD(*h_1U&m@Ga9(N+V=`r~jDyEcf1{s`vTM!o*^g#!W;f|4ZD_P%O{fXgpR zhem(sCEZ<3pgWFLE$*Wfpwmq{r_oxTL_`+zF+D4qtV4>bOFu@X#9asRLhB}(h`=;s zP1(F=toxXHN}_tJMZ~8qws+x*2iK5I z!nMIz{xToaZHNoBdHEe9LkEo+n5ZUzj7^CtUA8R7L{s&!QY2)TbfE8NPY5wET;{!z z8A*%fE;-YQo7_kfoV~lpu&#L?6R+Cz*H(n1%G1EY=t1)|y6N`n+p$6EHu%#IRFEU+ z4HIY`^-)UocqF9w5>fAKbWBjt|A@t5a$p|vUTbV`L&~2yQaP6Vk-Ec7QoVlmg`vuH zj+?g%lGDFJ9OEuJMOTzD!X#v?O!w5nj`P9@US;tXTYpJ><6qN4E~!`ugY^Adomlq{ z%R&vnUJi&%uw%2|8f(S7^SA3~f|SAUOXX)b zVJy)l;Pk({u7RWtmMwoVt*C#mGSk{j|?FU7o+~j!&e~s78{_nbe#cxaQE) z09NGOxRN)nxelrdtI8##Ylq!8{|vb^6DtvaSb~qB}1& zdqUkvlWS%A^g}}?wC8Gnjkd|F3G|y}G0f#k8px3zGiBENfc7#V7XLlem;`_;O{mGK z52rLTlSzH!#HD$6+iTov0WfsxHJv$=Qf*g@kc65mMV<8)5jq#Ggl#QoF1J$Ix`$QS z_`~ABYb*02uZ;~WE@|y zm38q9Xy(f1sAP(X9(t)Dc^lkRkaJ=gw-`QcmFY3^j3G3TyaFq<4C{;Q_YnHf-f8rm zWSP!G(PSQ5&GK2&vQ&|$rsxQ{7dHvHXh^m0f%SpGJ^P#$@Op4I2)o^JYw7zjU8%OS zrzc1^K$>NK?JZ5r-~%}%uFFb%qrK|W3*5OQA=)NQQVO|Ng#3=iD#*O0YtIP24yoE| z-OH7NBa(V}@1@HVjU#nCq;k$eDu!Bm@Y(c>fh#R&#AL3iyo8n|#CiUuHs_UD+M+V# z+-T?vdaS*Twp$BZY=q`h`vwhPn9!RU){9#!33v&rh8ht7?m;pN*c(#J^}Mq56Jh90 z6TQ1xYV9hIuPwS7+}Iq*X=F~QQ$f6#ie#oUKZHrKd_m#yZrQ`FvZRUeSa+FQ%TBuy zPNBXJO`Ae3sb&Yia%K+|4|A41;qPvMoZdWKi@+E@y>+Uty*ZPCYpHXjWZEb3c!fn} zB7cw1!r8>-ak4qm5c;+2aAmtxR71T^a4F~fOdMP=-XuL_M(C01Z&!ihgIlHNj)$_8 zLbKhnxnWy z_1!g1VvY*pOCJ8(_XKFKBf9!PRtNslv>;404f!;NPLNT6giR%1!&zh*pacJc=_dCd zhd9p_lzr7`xt}nY4tQ;oc+swhFupRbyZt6IRR#{pS`Dc*@h_NwSS&Q0;?uk7GD|j+ zRWRNBl}w2^<4#yap*9Q~-37C;bG#w(Us1uQ=8Kn&15V%`oQ+L=e?EH2^dQ9=FqR~Q z8;kOMUh5mIO`IpDIazj=*YOB+rOP?b-M!KglRFbS`fH`CA8zD=Y*JvnNE+Y%7w#ysGDsqF0!GZWb=*H*oY~^Xr3I9akL}Vb+A?o z{IO`UiaNa3LtK&!lPBZc(aAPF1!jEc73jAL}HG@Zi??-V4jaI&O^u=pfiFL9A-h;fWD58D?Dqb zZoGznld?7Q(&n**O-x8vkpQhSIrn{J=Sq|-f%}kF;ZVLx8;gK|=uPPlhuBNHKF)it zd&`(~3?1&@IqP2@PqQ-B?c<@=ajzCd;Gkj{iS&7llHdyM44@XZbLqH}ay7qsI44tz z>y~=4u)3*b4(2+sJMgk)`kryps&+A3ypJ#D#EHIa61ygCQ2W5ZbreNvaDSQNo-rhz zl=rtNQZI2e5NR`NXuFOZG~~r0%T7^DJgj!PIiRg+P;^0gY_%{2JMc@;{XtvWTC^XldmNHxw;JW=AjF zcho}4q`FY0BxQu~!6qhC`2IQOn!fg1^GdcNQX<%4Yskn;Z3tKwFKC8}vDVA3!J*B) zeoLF>GTP07joAl6bh%eJ1vT@hZFUH{iDylwvSgAuZ$FcQ1^ltn2cgH)T3kAsk#_$< z#KMc>sE2Rw7)lif49!1D+kd?J!Jt;5cu(Es`J9W$NLG3gMiK9ub6jX@5)Wm(gL?3` zS2d8h{fdDDX>`xg?!P3R{xDwsEQ9T89+|D%Dh^pFUi>YFrWp56s6zewDlC9-H+@$# zfxtIOvQ1^Le1M(LRkQG1%qI67D|#&D!O^+s=%l1?=Z5J{9LKCR6VaZ!=G}52VwbVo zekFkAlU81_mxYe7v);P>J+z)0g5wgt<#;pdRFSjFi6t?tFGE*A0$MV(nbojoCj>?_ z_wi0nkEG|mb}+B^&E|auL8Nx3nf+8tpwE%Tfv>_vu$?D~dbu^KfdJl>d(*Ra=xbsE zbVT$D?C93A-!+_3iU%YO1GWxbCnzbgX4e|-Et>TLzp%A-hK%F_hHc{Jy#*^ANT}BU z@5A^(TEy1cbH?>3YM)bvKXPA83|8-j08ebdxjC^bj3QdsVtX`5A9vw@^tt6efk+ zx#7tZY8g_FyYFh&xuJ0(APWV120@{rzKBTK)wYYJh0UBTBN=4l;8qCOIEwf6JL^8o zKG}P4*1^A2y7tzu5$#kNIcxfBS+?AU`_gVV03V=eU)N~~>*Mp9rZy3T(ox=wGXpwu zI!A3aKX9Fv0ZM)#Z{lK4zYucEFfEvOwE0=idUrB<*WrezMvF9~M0c?djUHlO3t|FB z1_lO7#uQ1E&AP=}w%Gi77l9l^dd!4_+g1Vt1V3fN6 zGGL>%0$DqW@O$dOTw>EA3f^CocwNtX=E>&jMyLrY^V%Bp$TjIBk##x%NO@RWTi3jg zc3Lqn)4!>rT`Y&tdt3%%TD#nC`axKE^SIe<&G<-lbIMev+l8WltUsg$N*FbCA+&)0N_jv zZvn(O`ob}CWgOD-052x=#dN9BD8|dT-@*XFB|hx}hbx&uBzQ2X0=7RBwY%Ps-5iTZ zNB5v1X6IKkyEV%ZB5jnnzTX7!|E8db+o)K+_D5zh-=3sO$k9BYpjiD_ci3eP)FMBC z9;z+deZq`J)jHljkz5t@&9CJqxrzsBNtA78N}8cbsN>OhTkls*6Ehv&OJd7PXj)y_ zjj7^(zKtGxkfb99mRrzs4SuEt+1CDw>sq7LY|V@P!v4_p57x zaft<;LhM!uv&MmbQx5+U#_;vacdo;Tpn2ug*;H5LG1XM4$GYPX%mgP+YtkI?G{=*L z0Raw}{LV0Vnw(^B+}RzH&$EP<-+&c{SlO%=B>&(0h zh!O+?!#PZ-ZnK)P>a4AoN*+Z~N-^-&P}Fu==g&yZj@kL=Jkn8=w9_{XdhASNrW~pm z@UmZN(zsQm-0-?fsxppNUnKqT1~Y4sMzks)Y~g~T#VPHqbYgc(>=3G$w$Ty2`qxL{bm7i~QERV|B`kYjL|u=2LqB_e@G z6l4JccQ+!~uYUXXX=yF;#=_9$zVNXZ!BG?ocr(}9t|a)=QSg~lnLB{!H`1()X21Ih;vi8mWDBLXY%KC1j;Lb0@+IYCT`*wHI);Mnt+lKa&ol>v1_}@QA8~ z>yjpcERpIxdMkVWSw(F)1E_5jw8)q4Z|x(M?`^HrbZ>*DkTi-lD}ezvP5uW zHn3W_q@(e}-!0w4PvmwU%DxGFE7_Gu_V%Nj*3lj%YGZRJrYkCjyy%e?p}SOEp4B(1 zxjaR8L>&n>g(j+!&_?B1Euy4oOk6(k>LB)qwbW$n4%kiZ_=hu|U&;-w(iSX5n(vw4 z^&g%n*5PE)o-@&3T3TZ#=ZG4raJ675(Q-<8#xz8IKr~k{hHg7Rjkv~?;<;8Za^aO> z%?(`56_(`~KU<S4`H?oW>F%y>4Mmd5e^{SZuMgCNSyX0`hYn zX9B(VWLkKnA}kzre-c}$hd|xsFW*8>kxaRk{%K^~Zg4VKaNSSr$r($Fh{hhWpik($ zViJ6HK>7gfH66MzyMxsAP=t<>e)R|G4ChUcE5deiBIsrjp9j(&Za*^qc-cO3^yM#` zy}u`22_MvzY;4*r!bBg6 z)XA6mx*J@#71KaLnpf^(;YNd-b(Q{>y%Hn0qIrZq!CoTXEWwqeQ;P^!?`8|NZ(T>= zFpCzjQWSzxKA%*fr>dsYR$*ZmI+tg(|L7J=rDB#Y;=u%O&OchV7qI7Z(@h9YWnXIWRA1N=0+2N~+jSx}sfZa|?T9V?$-QB29f; zu2?iD^;Dl!`0{0nZg6jgDw@ElHq*vGO zknoN$v-M4Dq{XDrj!qWuE9E%|@u&A1th@@pQ{!FqaQWqN#v10MCAC>D(oe(T6iUNZ z$Duze7}n(z1XS?^n3}?P%xk+orka)5YQ9gA?NZx%%H4zPam37wI99QSGcsN5v2gTFP< zA|l4oqjk~fgYZ0|ZCx~7IEz5Dd86EG4vn%tX|Io=_w4cS*_XI4=}ny`I|kL&w1r4< zEpwM{zH9>e!fbU@XEpTyW}yn% zSy|^5NWPVQniqWO_RGYnTWu=>>x~KmpFgyn@lrsxEiO4Dh1?2jxnYSf`yL%44+m1( ztHE?cR(fH-$WR{8sk-)nT^^tEQe;4DXP_nDGo6`kC()8OTV(`zASwU!jL~tTI`};= z8-=ddz0K*49r?=g(0nAzdhyoJcfY_Y!z1tOj_7U((jd^O){Jr2IqX)0%i%0nWo}5X ze^qCQtN<9I>%Io!g3ViKZL)zC>qChxphXdTRtlfjhaN ze^q2arGnMJNkQ1vVKn=Ti2Nzk}B*bCb{va!*GAYXKioT|igj%`}?&5AThm^Xln=m|3 zBzCNEo>L^EalER$6>(b@B7;mgS$KLI2uuc>)CZ`Y$kl4(wwl>eJgXY*n+1#-kkV-i zh7iN^QHnu)x3ouCHTb5YjGpeC$w*yHqovw#gfDuc!ai~iZ;To7#qx$j;GFMfx}Dij zACKM?J12Ba4}d+;4DRTT}V4WB%!Vb+S`k=VFVJ!ZDEVQQuyZ=0^=XC zEe%OwWx>RU3@-%{t+sN`1qk6}uX7Pn=pg;vp?{}qL8mV>t>Y!9Iy!Ax^=+H!Y)V~K z^N{m#hEb%e70|CN_bwQS@zgjtT|&H&oa19sDU?rci_YV!NjRh9szpxI*_AlntR4XlogqLVN1aq@V}nS@CKiba8dbeR z<>dT*@N1S;euUR{DPMk?cOdzfmoUEdl9p!M6%IohG)5fOo13U+aUnfti~_TH4s7Nw zrZTCoOfh@mh7nnyYyaHDrCAiC3&G~!<8hk4mcwhupMiIEYD%YMFiqOV=rvlhj*l~* zdrG&P((yY?zWi0P{MRX#&pEq>1j|(iltX`d;A!y?E1t~I-;k6 z+X>zcrSADZ(J`j0A^0IDZAT>oGS}%8N zCt=6+Xx!srM;(G*vIM_5)6#P{?F3i2kuVn*8x6YbRR!c=;adXf?m6Q5yD+OhE({S-htR0gxT1_iL6F^-Up8w z8%jz_4pMZLoj^qd>dH?gGANrl`apWeOsaNWBQ=?fvh|&ib;3+DO#~PO z9`PYBk1$KPK|AN{^;bYRWXsP7n?!7A?!g0*i>BVRw$R68 z#d|3)G3YLc+H$%EybnVoq9@Sz3L08E6ZFU>M$IxLsnxB9A88=-7$#PFtq*XYT74L_ z`s=}r&wQvlBAE>Rt`(#=I{+=;IFca$2cKHj#V9>X2R4wa_k^PcfeO)G$wSKZpfCY(ts7Qt zwl!gQo)mF*g+C5B_)dzwh|tBC0Mk^O1lXd_|3^#8b1ewt(C%se4Dx99l*c|CQ zxMt-~978qs!)i06L*&GJm#x1N@6*ioO8~-dcJgju4b{$+U)PM*LFdw(Ev zY&mfgVQv2P;eA?+*nxa=8kgIOJ_#2&_ZAnBHqIc#;X%XZnmAwX`y&9qxa}Rd#(!&@ z91j?qeH7xdk@}sJqpONbGNY#V!)P;3T=d}1rNzaU zJ^EikcTPN~R)P`t^atM19E)!_U29VCdeHNOS;vxu_K%A!6EEadq(){A8bUOQrVnFXG65EWJ#>t4wf*V|x+lc!n7u2=fzC|E6p z=h7$?mDFaul-eQzMohKo(iKVrb-vBZgAna4C`R*b^0Y^9{n|VZ0a|bn%#z8K zO&HL~SQ(c*b_Vaa7q8~T7Tdm#y%ejXM{hV1r17A{?)alm;}{ke<%hVwj=7l}Mw(te z*=HYBSQEyoZM8f}`30#iC0pGkTjB_O4tqeQ#ALpbLv|zclU>Uob2aI+jXVOC$`<`* zStM3#5R1n=O3I`W)9ZBSqcG=v*|?y(cIsCNH~T^~o^trBY>Pj=h#&IMLwx766eW43 zo^=1x+WL(dR#-=f7fV`94^qsN)OD1_6Wzh>Ea47-B$nIyI$fgsTTbFiZ3X=>_K&w| zrCx-uUy00PWFWh)d0FzhA6M&-wstW^`5SQw>Brh=_d2*R6>WY5p{-DQV`q(F>%GjD zul6o{loFxYai`6XKfijBuSml;BvB0gteZO0|FY&eqL#53X}1eLt`c^~(#r;YtrANYDLop1WV{ z+Pf!QMN&a1!0FivmAC(sm;RM67N68w zzNH%Fh^Nos@{eK+fPgspw1|oC6+yJ7Nib$+awL%xRW#i^dUoW^hG$Aw zNIqvMAYi+3I}T-gspE7OIBFw@oI~i8;xj%!UywqzYgiPb%}d1eAxETdr?w?zi|r6A zd9e6XW&I~IcHlFQ>*@x(3#o+i4h&eQ?Tpj%s0u&2(rc1&ZZ#HfRxQpTGoq%>SCyVEsuTIlOGOO&#yP8XIyI@^uTL5Z75sv3!?La(w z6Nu|ID_X^3Z_MsYER$YImfg2Pe98CAN^;_yNJy65b$J8CEy7giXQ`+0R;aNKW=m ziIm$NvmALKv3B&F_l6k}p(9MbZ~(i~u5T7e78Yu#fF;YB)b@Q{k$KJpyWPV3d9b9v zZ`w^u!zq2m&e*8EW$dcWPBI%{@#bi%pd+ml#2Hu@&UE=U_WNggV7A-=e1(vabUlIi6o1JTzY zfh$7}i17*zes)~#Zs75AI8`G;-F(iK+sD4_xow+Lg^3eh^;9E$un0Y>#o*1#`3Rr(t{tK4%T2dGgiz z>!Eqm`tlFnP?i1a;*-lx^=cgMHQ!;UpU#RlLI06N=%%T2yZfa2DCp-1nP?|CJl8{X zqeJAr(f(Y;M8uH&N0D1>Bh{!i`Z;4qhGcYPWF(>y46Fh}Nj#QA(>5-yZBobTEE;x1O`7fbzzv~$-BG&s{?%mnDJ~lZrp!C%>Y(=N#h|x2 z$qH`9f({Ja9|n^u(VskaVtc_EA32U-MszU}5a&N*37S+EjP7pp&Hs(g5a(;qOyl-K~9OG<&IGgF{+6 zuacA=r)H-~t$gK15JV^}C=pd!;J=tt`#Cfmt*WB>LqZ>`Wm>p~C)0Deh>yLmcE+r{ zaqC7=$7KmC3)|b15sgY3)pCdz@%dis9MAQ?OML5c=Dl*q9g}H^J)8DKk{*KXn@ACQ zE9_SHmzLc?Q^r`bG{pNTx}4smS5=cGL)|<>5Uzj|zsy3gAQ349wIA1Y zg+C#<-83En4I^kw?L#~gl7+-T>;w%|LL9T%r?;9I)>H1_Vr|AgvOp@)wj&2uo1MZ(Ue*y^8TYk=Xs?Usrh(oU5^FSlh z_j0aH@nu6rV&Jb|qs={6&dqCLX%Q`J(RR8x9CViND>jX6n)s>m^a z$`EacZ=@d8a<&V3cVngt9q=_v>w00ahYHmgR0k4Vn+~J6h^^b+6iaDQJdX*a0HnJ1GF+J))0qC3P-ncn63&o4SA_L(nKHAVaR?j zH<_Tiuz#lOLD64~yxjecFgyif6R~e6JSyXR_ool=6tg!@@?y4Nv$?rpq zc$>+~1%w&vipo`=Fp;7izzLgUC$F|7M;((U&u` ze+41VCUFph3yHgyApPmE{w0HOkM3zedvqI@oVH=781ErBBv`li{n{+KHOL%ghDuDl z;8O_<>*>+85OP{Aa1f7)r`9THhuORlhx7HxI zH5g?%Mq~Sv5B*Qn^B+GoN_+GlUCX~M!oU5w;28e5CHuGaE$)Ac?fqk*`~3<2gKhhN zc(ebTZTt5p``h3B8-DxmPHWV!%wD8k2OSLG+yPs2Y*5cAaM*z6i?f=--r3Ac0eR&NHNC(n zoE#4R%GWMnp?<*rCz!yxCK)38g}@ppmga%cLkAzud7!)D+u6ytmL(ssV0WHEUZ^-Y zY{9YncQ){(!X99IKKA(#?JL}}N!&8<0(+7@6=kE%V_(05L83pIS&sDCip>n0YwGt| zb6N3&kWZA^`D~i~bb0||oI#nNEQ$&N{sI9P$35l8irw$q!Cr=d)LB!f4&2PckJc99 z4jm!5BqElb=(Ql1`M3w6?x&C-%*09sTHk{l@{>jKGW>+yvAICRIc@Dm%Qe67mix>rPL=jtYJ%lGdN7 zXl|npAePM80BCyQn z>$u z$0=SvoHn-!lcuMNzrL#3GyGI0KfJ6UZ+-q?kmvUN{~$8 z(f8$%5}; z_n^s;s&|eBTvW#^3GHA7WjB^6A)SsvRAd4U(!xp?d|$yia4oJ67Y#vw?n;PLo=O%3 zr1sII!<)y@QVb%6O`E+D-U4tD1^4I@a0?kikL`%sV0T0v$smSg4#WkUkML;a3ZNXK z?EV5jVCJcbY+lMlktnDmX)CPMg-+BG-dc}$Pvq`yI8ZJ7y{oO=h<10ns`1LZ)L_6)sS70!;q(|Hwxr29R<)2QBNdo>;4 zIL5mQP0?D}TaE{%(Ljy5K9JJ|68N7Yen515T!ZfjLByeI@SS9-p$Xw!Ec9_g4N`Kg z8vfHaJyBd#p1*AxJ#2*? zMlRl*Wlt>HLZ->3JbDW0;7G`ZO`(4OHT-BAEMwEHO35`uCI+iI4&bXB>AdZtQMw6( z4)42X;hw0dGl}NdmEazi0Qa&OM$LLD74h zZ&ND-U7ivs{F0St+IU?1ZO>Mgow0gC35k2L{B+mjdUwDY_&yA9Zmxpnl>jth#{uM(mESX4?T~x03cE5NRTk_2Li&q*U z1|DLBXJTOk650O9eY_1pK$W3${?)iMPkNPpDSmE6C4y%*AI=kNifpB^^nW;xZGr9$ ziJMUrvf)JWY*_(GhAT+xB%UW0BC`M%4dQPZO~8f)EeE7guI@dI+%1ATyx4 z|FuMxl}h_{TX_xD>?F<;5dCmr)xUEx2e&cC%dyXz_jv zvt>HO>PXrDJZ2&9#mJfu9vmI8O$TLuW;>35-%jh4W)hkAA@YXDIQ`XAmnF0|*xXY4+rHy|Nl5s*On6^Or=7sD zwGm4&PAQ+z$s?dwI814g17W4~sQr}17E94%g+546msf^?B~(w6VkRrdH^OUo8JAL( z3M1zhsSuBw(!C!+R<5$1l0>!)ucR&m?qJ>6J~>vTJFC9zOo zfW}mi`eS|HakXv>f~P6%1g}$xL(UJiJ9>8?g(-jn;JJVUKswC_M@N;3zuP`?3FZ6g{+Q^pr;I(uF+n{;lTu^!}6z!_PiHw zsYQRSxYe~I|1l9SYsHgAv+4F>8k@jX;V4;RpF&dNqi!-4WsbgAZxf9pPng$`c@c{j zd`Mc;?TZ$}NE$RKvk!Ev>qciuM=h~ir^C_OW;*r+-*pe4dNj&J^wcOQ%kEjdD=l5r zRHLoaRhG`PED>v=y4?-XR1vzIG=eTcK8ul%&c15RhDj2m={D(osR$kNF7&YELE-u7 zkMb9IsY#wo&s=x&+3{Vz(0w_jv=)JVg2!$8IIE~HFAr%RCCx~fdiSo-?}?O@jx7)# zyD2%fLD%g>!fo;J$)(7vMGSTNu0w2?yg{6wALr-@+uuBr#2Cb}zp*MITH0J&y)v4n z!KB038I?80WM`(o-jnEFIPY3cEZ)JIoZU#>syU0bFMZCcwS7q{Vtl@nbMNN2nU*Mg zf8NA6fLr}Dr|XD=pT9Pl(5t-dLdlxjMIw#vNGAQL!fS9I~-VoIzmo?A#_reygPTUVo9;*O7h&4VG|7rX|kLGUwn+sYd)Gag=Tc> zx)_#(HRSy-=oqW8FTX0R{&-uaWnn6jPF1nB(V#q@C<{UaJ_=xy-(OGWC8Y#>I&?wP zC~JX%fF*m{g_%T=;L$s)6osq{)HNEaigTnHip`ce@eX#-sAQ>zQiy7!!W%MEJ6pgn zPN0zUf3rKiZKx%7X=rI`siF3@c0%lBVyRIyL8Z&sBM3!XQ)-FY zsg$8fbxP6_rLBEwsS+(ikXu!y+>_|c{N~QRcmBEg^UIf$Ng~4($be-%lmFNV4SvCR) z}K8L*7$^J34o{v&6HE(aSVIH>6PXIn86i>yEi_Wz~z2QCH1B6anK&NN) zSHsUhJEs+NdXZn2!=d;oT`_f>g?^*o4Yf;*vx6m69v7k7siv0U?D5yLn}w0mP??xo z5(&zAzQNKG{>n(bnNC917VlMNP(1bW$5h&R9Di5`fokN5&B`J0`#SdW=Vtwqo1R?d z0)Y35G`X^w0DT9$*He{1enfH2x?Eu^}WVUF)nMsjYNWxh{~Q=m#E4+jpx<#Q!JmjMBt+3 z;encZ8NV1GCi5RSj1aT{#uEM2+z-fbD$9ctWCgQcmlDY4X!&skhoszgthm%k?SY`g zo`QEjUtgKe$I#!YtlD01q8~jNpsIzVg$PNl=;>e8LuKIhJ+K?TM zJA;Z{gJo3LtE*GAf}B*AnnOq17t)saP&e2a&?lel!i$MpDdFt^i**|*%YHMCCs}D^ zSoq3MwoEf35~=6E^O)vAv$jNS~ES16-v@}>|7Zh;>_6? zIM$xdd&*EX0ZDHd$=U2rpmwX^wyq^`+VO%I7ipL9Efcc8+?6G6{o#>q<<1mU@!3R2 z<;E(;t!2>Mu3@^eH!HCPw~-S>|9%@L2$yi6aFF1#7#!moABG;SJy}{pE#2*;=|B5$ zarISsH*%uZ>w(Uiy8MUdSXJkKP$8S7p5mI|Qxj}-4A%|D5sLA=YT$N~#_MHhe>Yme zbXvhI8xuM^vaew<<5J#-!Lb78mHXfDutv#>&}ONaCs;Rs5r5l2EHBI|3PcEVulA0m zo|UeKNnG&~zxa|YBRl=#0FO8*Xn$!U4QS^8>GGVo``(#U)mtAyBft{nB+JY>g%~;o zgCJfLnM-QTqPBOd$tbiV&}p&K2Yp#97bF`CKMV5ds_;I3bjH)|6AN|kY1L^2SjMo` zxZZf;JEAvHjO?YV1$H00;=Ocz{81k*AsHjpJFaFeiBEn+8P=OwyHx`_qzYKGXF@u}P znhW~6sW>|>*#3jCD{ZNH`J^quwX>RudY2Bi$;eY*87|X@Bv2*}DZ|^2me6=JTRXew zk@2Fc5!4vLN&F1k4Hdoh3vcmv{1JhhEQnB+nCN_=ow)q!ks#iu?M3F46-bG=xQvyl z|4%FXDcIzAQ21qDlv4bOiJGHL7dT!gCWx=+@N60&kI z2)sM(*%M81(KxNLuYYJRK6ziiwPDJEB;w+o&d% zWGVS5Q=@djd%YiI_DGK(5ky?SM*+ch*|WCZWx#)XUrfFZ!=?0Npz5&S;QQK+`7aA2 z*BrrXaS?xPt!dXLo>~!P@~!@02D|Rw=a*qV>C(ue5xHNJu$EnLcM5pMzwUEYZJhK0 zp{2l}5Uy^aT6E?3jS>Gt){-*9S$v|};U$xPkE>zF2V3tA=<>_8owJ5Fxb@*BNO_+3 zqm)s{C;&`IbgW`Rs$lVv+8dWkib2F~4@ekJpnmfhqf7S`?aWj@HX_U4#f%lla2=yy z91JW1qRuG67dPYvL+8$Wt5zrbDd%2DUJ#3|z;zZ7wxpcLM8YQ99(>$43v|%41-@UL zLbD<+oc2tY9(&+W`C))LiJMOp_Ik#rLh`&Rt$t$q^Eji9-HV{8&7gGiIzAGwD&REw z0x;+qRO!RPHh?N7;riA=g&e4iO^G`M4qGa>8583)&jbJ^48m4TgzN_Sai6IjYIZRQ zh%};38-)A>jmxx*2^s~u!|b{QkfyDIyt#P$*ZeM)W03u?>6c; zT3H)K*Eeim;?kJvzH&0Hqk^Exd|1-_- zWnJtThhwY1qJw{2lg#5%ALs2`%XTOYSWdyk9YSM=4A~(*{zT$%X{q0V#+{pY3b(oT z1qkGSKr=bU`3=7OqZ=IOTA$1eS132?NN^{YNtt{18{5Kp`+O_gK(1ykCu$=|Z5Mc1 MnAjTE8TnlO7e()|TL1t6 literal 54139 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�dMfv-PQ3YJe_m|B-DRVTu~22B#2`e2?lov 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 diff --git a/Documentation/Images/Editor/content-element-options-general.png b/Documentation/Images/Editor/content-element-options-general.png index 88fd75c7664aa7a6d461e963b521dc46a936b992..5092f410fb623dd21ae8a89a170e118aea2ca927 100644 GIT binary patch literal 26114 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 Uv92VLDK51GNA};_ck0sr022waQUCw| literal 21461 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 diff --git a/Documentation/Images/Editor/content-element-options-line-numbers.png b/Documentation/Images/Editor/content-element-options-line-numbers.png index dee33d22311cfab7487c9bdd18f8df34efe5227f..b271a9ee106fa942a4212201293d577c169c9505 100644 GIT binary patch literal 39938 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Ξ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 r{X=u-$U+81&wW0`CQr4*AEmlrF98+!jAC#j2J diff --git a/Documentation/Images/Introduction/example-css-inline-colours.png b/Documentation/Images/Introduction/example-css-inline-colours.png new file mode 100644 index 0000000000000000000000000000000000000000..23df56a3fc70d0020c91feedf4dfe99387aaa5b4 GIT binary patch literal 14145 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 - + @@ -14,6 +14,9 @@ + + + @@ -62,6 +65,12 @@ + + + + + + diff --git a/Resources/Public/Prism/plugins/inline-color/prism-inline-color.css b/Resources/Public/Prism/plugins/inline-color/prism-inline-color.css new file mode 100644 index 0000000..c161187 --- /dev/null +++ b/Resources/Public/Prism/plugins/inline-color/prism-inline-color.css @@ -0,0 +1 @@ +span.inline-color-wrapper{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyIDIiPjxwYXRoIGZpbGw9ImdyYXkiIGQ9Ik0wIDBoMnYySDB6Ii8+PHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0wIDBoMXYxSDB6TTEgMWgxdjFIMXoiLz48L3N2Zz4=);background-position:center;background-size:110%;display:inline-block;height:1.333ch;width:1.333ch;margin:0 .333ch;box-sizing:border-box;border:1px solid #fff;outline:1px solid rgba(0,0,0,.5);overflow:hidden}span.inline-color{display:block;height:120%;width:120%} \ No newline at end of file diff --git a/Resources/Public/Prism/plugins/inline-color/prism-inline-color.min.js b/Resources/Public/Prism/plugins/inline-color/prism-inline-color.min.js new file mode 100644 index 0000000..cfb45f9 --- /dev/null +++ b/Resources/Public/Prism/plugins/inline-color/prism-inline-color.min.js @@ -0,0 +1 @@ +!function(){if("undefined"!=typeof self&&"undefined"!=typeof Prism&&"undefined"!=typeof document){var a=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/g,c=/^#?((?:[\da-f]){3,4}|(?:[\da-f]{2}){3,4})$/i,f=[function(n){var r=c.exec(n);if(r){for(var o=6<=(n=r[1]).length?2:1,e=n.length/o,s=1==o?1/15:1/255,t=[],i=0;i';n.content=i+o}})}}(); \ No newline at end of file diff --git a/Tests/Unit/ViewHelpers/PrismViewHelperTest.php b/Tests/Unit/ViewHelpers/PrismViewHelperTest.php index 276e9a2..21eb700 100644 --- a/Tests/Unit/ViewHelpers/PrismViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/PrismViewHelperTest.php @@ -319,6 +319,50 @@ public function dataProviderForArgumentsReturningResultSets(): iterable '

some code snippet
', ]; + yield 'With activated inline colour for CSS, css-extras is added' => [ + [ + 'options' => [ + 'programmingLanguage' => 'css', + 'inlineColour' => '1', + ], + 'snippet' => 'some code snippet', + ], + '
some code snippet
', + ]; + + yield 'With activated inline colour for HTML, css-extras is added' => [ + [ + 'options' => [ + 'programmingLanguage' => 'html', + 'inlineColour' => '1', + ], + 'snippet' => 'some code snippet', + ], + '
some code snippet
', + ]; + + yield 'With activated inline colour for PHP, css-extras is not added' => [ + [ + 'options' => [ + 'programmingLanguage' => 'php', + 'inlineColour' => '1', + ], + 'snippet' => 'some code snippet', + ], + '
some code snippet
', + ]; + + yield 'With deactivated inline colour for CSS, css-extras is not added' => [ + [ + 'options' => [ + 'programmingLanguage' => 'css', + 'inlineColour' => '0', + ], + 'snippet' => 'some code snippet', + ], + '
some code snippet
', + ]; + yield 'Special characters in attribute values are masked' => [ [ 'options' => [ From 538a1b1e954a6da53c3cd46f55baf272692d8a45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Mon, 14 Dec 2020 09:22:33 +0100 Subject: [PATCH 14/15] [TASK] Rename "Colours" options tab to "Styles" --- Configuration/FlexForms/Options.xml | 2 +- .../FlexForms/Sheets/{Colours.xml => Styles.xml} | 2 +- Resources/Private/Language/ContentElement.xlf | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) rename Configuration/FlexForms/Sheets/{Colours.xml => Styles.xml} (95%) diff --git a/Configuration/FlexForms/Options.xml b/Configuration/FlexForms/Options.xml index 4da9b63..5ef764b 100644 --- a/Configuration/FlexForms/Options.xml +++ b/Configuration/FlexForms/Options.xml @@ -6,6 +6,6 @@ EXT:codehighlight/Configuration/FlexForms/Sheets/General.xml EXT:codehighlight/Configuration/FlexForms/Sheets/LineNumbers.xml EXT:codehighlight/Configuration/FlexForms/Sheets/CommandLine.xml - EXT:codehighlight/Configuration/FlexForms/Sheets/Colours.xml + EXT:codehighlight/Configuration/FlexForms/Sheets/Styles.xml diff --git a/Configuration/FlexForms/Sheets/Colours.xml b/Configuration/FlexForms/Sheets/Styles.xml similarity index 95% rename from Configuration/FlexForms/Sheets/Colours.xml rename to Configuration/FlexForms/Sheets/Styles.xml index 5aa489f..e866766 100644 --- a/Configuration/FlexForms/Sheets/Colours.xml +++ b/Configuration/FlexForms/Sheets/Styles.xml @@ -1,7 +1,7 @@ - LLL:EXT:codehighlight/Resources/Private/Language/ContentElement.xlf:colours + LLL:EXT:codehighlight/Resources/Private/Language/ContentElement.xlf:styles array diff --git a/Resources/Private/Language/ContentElement.xlf b/Resources/Private/Language/ContentElement.xlf index d185bfd..0280b0a 100644 --- a/Resources/Private/Language/ContentElement.xlf +++ b/Resources/Private/Language/ContentElement.xlf @@ -1,6 +1,6 @@ - + @@ -14,9 +14,6 @@ - - - @@ -92,6 +89,9 @@ + + + From d8716512749d36ecf66ea52d3aa14e579e3a2986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20M=C3=BCller?= <2566282+brotkrueml@users.noreply.github.com> Date: Sun, 27 Dec 2020 14:29:38 +0100 Subject: [PATCH 15/15] [TASK] Compatibility with TYPO3 v11 --- .github/workflows/ci.yml | 11 ++++++++--- CHANGELOG.md | 1 + Documentation/Installation/Index.rst | 2 +- README.md | 2 +- composer.json | 10 +++++----- ext_emconf.php | 6 +++--- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 221fe41..fe755e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,8 +17,13 @@ jobs: strategy: fail-fast: false matrix: - php-versions: ['7.2', '7.3', '7.4'] - typo3-versions: ['^9', '^10'] + php-versions: ['7.4'] + typo3-versions: ['^9', '^10', '^11'] + include: + - php-versions: 7.2 + typo3-versions: ^9 + - php-versions: 7.2 + typo3-versions: ^10 steps: - name: Check out repository uses: actions/checkout@v2 @@ -51,7 +56,7 @@ jobs: - name: Setup PHP version uses: shivammathur/setup-php@v2 with: - php-version: 7.2 + php-version: 7.4 - name: Install composer dependencies run: | composer --version diff --git a/CHANGELOG.md b/CHANGELOG.md index d49e235..d5e7ad6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Plugin "Inline colour" to show colour preview in CSS snippets +- Compatibility with TYPO3 v11 ## [2.3.0] - 2020-10-12 diff --git a/Documentation/Installation/Index.rst b/Documentation/Installation/Index.rst index 8f1ba3c..91fa08c 100644 --- a/Documentation/Installation/Index.rst +++ b/Documentation/Installation/Index.rst @@ -10,7 +10,7 @@ Target group: **Administrators** .. note:: - The extension supports TYPO3 v9 LTS and v10 LTS. + The extension supports TYPO3 v9 LTS, TYPO3 v10 LTS and TYPO3 v11. Some basic configuration is available which is explained in the diff --git a/README.md b/README.md index 4a10109..7db8660 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Crowdin](https://badges.crowdin.net/typo3-extension-codehighlight/localized.svg)](https://crowdin.com/project/typo3-extension-codehighlight) [![Latest Stable Version](https://poser.pugx.org/brotkrueml/codehighlight/v/stable)](https://packagist.org/packages/brotkrueml/codehighlight) -The extension supports TYPO3 9 LTS and TYPO3 v10. +The extension supports TYPO3 v9 LTS, TYPO3 v10 LTS and TYPO3 v11. [Documentation](https://docs.typo3.org/p/brotkrueml/codehighlight/master/en-us/) | [Translation](https://crowdin.com/project/typo3-extension-codehighlight) | diff --git a/composer.json b/composer.json index e999f4f..bf9f159 100644 --- a/composer.json +++ b/composer.json @@ -16,11 +16,11 @@ "Code highlighting" ], "require": { - "typo3/cms-backend": "^9.5.5 || ^10.4", - "typo3/cms-core": "^9.5.5 || ^10.4", - "typo3/cms-fluid": "^9.5.5 || ^10.4", - "typo3/cms-fluid-styled-content": "^9.5.5 || ^10.4", - "typo3/cms-frontend": "^9.5.5 || ^10.4" + "typo3/cms-backend": "^9.5.5 || ^10.4 || ^11.0", + "typo3/cms-core": "^9.5.5 || ^10.4 || ^11.0", + "typo3/cms-fluid": "^9.5.5 || ^10.4 || ^11.0", + "typo3/cms-fluid-styled-content": "^9.5.5 || ^10.4 || ^11.0", + "typo3/cms-frontend": "^9.5.5 || ^10.4 || ^11.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^2.17", diff --git a/ext_emconf.php b/ext_emconf.php index e6da37b..e68cf90 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -11,11 +11,11 @@ 'version' => '2.4.0-dev', 'constraints' => [ 'depends' => [ - 'typo3' => '9.5.5-10.4.99', - 'fluid_styled_content' => '9.5.5-10.4.99', + 'typo3' => '9.5.5-11.5.99', + 'fluid_styled_content' => '9.5.5-11.5.99', ], 'suggests' => [ - 't3editor' => '9.5.5-10.4.99', + 't3editor' => '9.5.5-11.5.99', ], ], 'autoload' => [