From dc3e3896d77d9fe917e55a5302f6c2fe789227cc Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 20 Oct 2021 13:00:43 -0700 Subject: [PATCH] Removed doc directory. --- doc/api/__404error.html | 103 --- doc/api/categories.json | 1 - doc/api/dcat/CatResult-class.html | 302 ------- doc/api/dcat/CatResult/CatResult.html | 139 --- doc/api/dcat/CatResult/addMessage.html | 156 ---- doc/api/dcat/CatResult/exitCode.html | 145 ---- doc/api/dcat/CatResult/isFailure.html | 150 ---- doc/api/dcat/CatResult/isSuccess.html | 150 ---- doc/api/dcat/CatResult/messages.html | 145 ---- doc/api/dcat/cat.html | 184 ---- doc/api/dcat/dcat-library.html | 201 ----- doc/api/dcat/exitFailure-constant.html | 132 --- doc/api/dcat/exitSuccess-constant.html | 132 --- doc/api/index.html | 176 ---- doc/api/index.json | 1 - doc/api/static-assets/favicon.png | Bin 1767 -> 0 bytes doc/api/static-assets/github.css | 99 --- doc/api/static-assets/highlight.pack.js | 775 ----------------- doc/api/static-assets/play_button.svg | 1 - doc/api/static-assets/readme.md | 22 - doc/api/static-assets/script.js | 501 ----------- doc/api/static-assets/styles.css | 1022 ----------------------- lib/dcat.dart | 4 +- pubspec.yaml | 4 +- 24 files changed, 5 insertions(+), 4540 deletions(-) delete mode 100644 doc/api/__404error.html delete mode 100644 doc/api/categories.json delete mode 100644 doc/api/dcat/CatResult-class.html delete mode 100644 doc/api/dcat/CatResult/CatResult.html delete mode 100644 doc/api/dcat/CatResult/addMessage.html delete mode 100644 doc/api/dcat/CatResult/exitCode.html delete mode 100644 doc/api/dcat/CatResult/isFailure.html delete mode 100644 doc/api/dcat/CatResult/isSuccess.html delete mode 100644 doc/api/dcat/CatResult/messages.html delete mode 100644 doc/api/dcat/cat.html delete mode 100644 doc/api/dcat/dcat-library.html delete mode 100644 doc/api/dcat/exitFailure-constant.html delete mode 100644 doc/api/dcat/exitSuccess-constant.html delete mode 100644 doc/api/index.html delete mode 100644 doc/api/index.json delete mode 100644 doc/api/static-assets/favicon.png delete mode 100644 doc/api/static-assets/github.css delete mode 100644 doc/api/static-assets/highlight.pack.js delete mode 100644 doc/api/static-assets/play_button.svg delete mode 100644 doc/api/static-assets/readme.md delete mode 100644 doc/api/static-assets/script.js delete mode 100644 doc/api/static-assets/styles.css diff --git a/doc/api/__404error.html b/doc/api/__404error.html deleted file mode 100644 index 8b4d127..0000000 --- a/doc/api/__404error.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - dcat - Dart API docs - - - - - - - - - - - - - - - - - -
- -
- - -
dcat
- -
- -
- - -
-

404: Something's gone wrong :-(

- -
-

You've tried to visit a page that doesn't exist. Luckily this site - has other pages.

-

If you were looking for something specific, try searching: -

-

- -
-
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/categories.json b/doc/api/categories.json deleted file mode 100644 index fe51488..0000000 --- a/doc/api/categories.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/doc/api/dcat/CatResult-class.html b/doc/api/dcat/CatResult-class.html deleted file mode 100644 index 95cafd2..0000000 --- a/doc/api/dcat/CatResult-class.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - - CatResult class - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
CatResult
- -
- -
- - -
-
-

CatResult class - Null safety - -

- - -
-

Holds the cat result exitCode and error messages.

-
- - - -
-

Constructors

- -
-
- CatResult() -
-
- -
-
-
- -
-

Properties

- -
-
- exitCode - int - -
-
- The exit code. -
read / write
- -
- -
- hashCode - int - -
-
- The hash code for this object. [...] -
read-only, inherited
- -
- -
- isFailure - bool - -
-
- Returns true if the exitCode is exitFailure. -
read-only
- -
- -
- isSuccess - bool - -
-
- Returns true if the exitCode is exitSuccess. -
read-only
- -
- -
- messages - List<String> - -
-
- The error messages. -
final
- -
- -
- runtimeType - Type - -
-
- A representation of the runtime type of the object. -
read-only, inherited
- -
- -
-
- -
-

Methods

-
-
- addMessage(String message, {String? path}) - → void - - - -
-
- Add a message with an optional path. - - -
- -
- noSuchMethod(Invocation invocation) - → dynamic - - - -
-
- Invoked when a non-existent method or property is accessed. [...] -
inherited
- -
- -
- toString() - String - - - -
-
- A string representation of this object. [...] -
inherited
- -
- -
-
- -
-

Operators

-
-
- operator ==(Object other) - bool - - - -
-
- The equality operator. [...] -
inherited
- -
- -
-
- - - - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/CatResult/CatResult.html b/doc/api/dcat/CatResult/CatResult.html deleted file mode 100644 index 30b1bcc..0000000 --- a/doc/api/dcat/CatResult/CatResult.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - CatResult constructor - CatResult class - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
CatResult
- -
- -
- - -
-
-

CatResult constructor - Null safety -

- -
- CatResult() -
- - - - - -
-

Implementation

-
CatResult();
-
- - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/CatResult/addMessage.html b/doc/api/dcat/CatResult/addMessage.html deleted file mode 100644 index 3298d43..0000000 --- a/doc/api/dcat/CatResult/addMessage.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - addMessage method - CatResult class - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
addMessage
- -
- -
- - -
-
-

addMessage method - Null safety -

- -
- - -void -addMessage(
  1. String message,
  2. -
  3. {String? path}
  4. -
) - - - -
- -
-

Add a message with an optional path.

-
- - - -
-

Implementation

-
void addMessage(String message, {String? path}) {
-  exitCode = exitFailure;
-  if (path != null && path.isNotEmpty) {
-    messages.add('$path: $message');
-  } else {
-    messages.add(message);
-  }
-}
-
- - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/CatResult/exitCode.html b/doc/api/dcat/CatResult/exitCode.html deleted file mode 100644 index 5fcbb8e..0000000 --- a/doc/api/dcat/CatResult/exitCode.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - exitCode property - CatResult class - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
exitCode
- -
- -
- - -
-
-

exitCode property - Null safety -

- -
- int - exitCode -
read / write
- -
- -
-

The exit code.

-
- - -
-

Implementation

-
int exitCode = exitSuccess;
-
-
-
- - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/CatResult/isFailure.html b/doc/api/dcat/CatResult/isFailure.html deleted file mode 100644 index 125425f..0000000 --- a/doc/api/dcat/CatResult/isFailure.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - isFailure property - CatResult class - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
isFailure
- -
- -
- - -
-
-

isFailure property - Null safety -

- - - -
- -
- bool - isFailure - - -
- - -
-

Returns true if the exitCode is exitFailure.

-
- - -
-

Implementation

-
bool get isFailure => exitCode == exitFailure;
-
- -
- - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/CatResult/isSuccess.html b/doc/api/dcat/CatResult/isSuccess.html deleted file mode 100644 index 3d8e6b8..0000000 --- a/doc/api/dcat/CatResult/isSuccess.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - isSuccess property - CatResult class - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
isSuccess
- -
- -
- - -
-
-

isSuccess property - Null safety -

- - - -
- -
- bool - isSuccess - - -
- - -
-

Returns true if the exitCode is exitSuccess.

-
- - -
-

Implementation

-
bool get isSuccess => exitCode == exitSuccess;
-
- -
- - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/CatResult/messages.html b/doc/api/dcat/CatResult/messages.html deleted file mode 100644 index 91ad77e..0000000 --- a/doc/api/dcat/CatResult/messages.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - messages property - CatResult class - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
messages
- -
- -
- - -
-
-

messages property - Null safety -

- -
- List<String> - messages -
final
- -
- -
-

The error messages.

-
- - -
-

Implementation

-
final List<String> messages = [];
-
-
-
- - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/cat.html b/doc/api/dcat/cat.html deleted file mode 100644 index f912708..0000000 --- a/doc/api/dcat/cat.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - cat function - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
cat
- -
- -
- - -
-
-

cat function - Null safety - -

- -
- - -Future<CatResult> -cat(
  1. List<String> paths,
  2. -
  3. IOSink output,
  4. -
  5. {Stream<List<int>>? input,
  6. -
  7. bool numberNonBlank = false,
  8. -
  9. bool showEnds = false,
  10. -
  11. bool showLineNumbers = false,
  12. -
  13. bool showNonPrinting = false,
  14. -
  15. bool showTabs = false,
  16. -
  17. bool squeezeBlank = false}
  18. -
) - -
- -
-

Concatenates files in paths to the standard output or a file.

- -

The remaining optional parameters are similar to the GNU cat utility.

-
- - - -
-

Implementation

-
Future<CatResult> cat(List<String> paths, IOSink output,
-    {Stream<List<int>>? input,
-    bool numberNonBlank = false,
-    bool showEnds = false,
-    bool showLineNumbers = false,
-    bool showNonPrinting = false,
-    bool showTabs = false,
-    bool squeezeBlank = false}) async {
-  final result = CatResult();
-  final lastLine = _LastLine();
-
-  if (paths.isEmpty) {
-    if (input != null) {
-      try {
-        await _copyStream(input, lastLine, output, numberNonBlank, showEnds,
-            showLineNumbers, showNonPrinting, showTabs, squeezeBlank);
-      } catch (e) {
-        result.addMessage(_getErrorMessage(e));
-      }
-    }
-  } else {
-    for (final path in paths) {
-      try {
-        final Stream<List<int>> stream;
-        if (path == '-' && input != null) {
-          stream = input;
-        } else {
-          stream = File(path).openRead();
-        }
-        await _copyStream(stream, lastLine, output, numberNonBlank, showEnds,
-            showLineNumbers, showNonPrinting, showTabs, squeezeBlank);
-      } catch (e) {
-        result.addMessage(_getErrorMessage(e), path: path);
-      }
-    }
-  }
-  return result;
-}
-
- - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/dcat-library.html b/doc/api/dcat/dcat-library.html deleted file mode 100644 index 29b9172..0000000 --- a/doc/api/dcat/dcat-library.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
dcat
- -
- -
- - -
-
-

dcat library - Null safety - -

- - -
-

A library to concatenate files to standard output or file.

-
- - -
-

Classes

- -
-
- CatResult - -
-
- Holds the cat result exitCode and error messages. -
- -
-
- - - -
-

Constants

- -
-
- exitFailure - → const int - - -
-
- Failure exit code. - - -
- 1 -
-
- -
- exitSuccess - → const int - - -
-
- Success exit code. - - -
- 0 -
-
- -
-
- - -
-

Functions

- -
-
- cat(List<String> paths, IOSink output, {Stream<List<int>>? input, bool numberNonBlank = false, bool showEnds = false, bool showLineNumbers = false, bool showNonPrinting = false, bool showTabs = false, bool squeezeBlank = false}) - Future<CatResult> - - - -
-
- Concatenates files in paths to the standard output or a file. [...] - - -
- -
-
- - - - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/exitFailure-constant.html b/doc/api/dcat/exitFailure-constant.html deleted file mode 100644 index bd27d23..0000000 --- a/doc/api/dcat/exitFailure-constant.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - exitFailure constant - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
exitFailure
- -
- -
- - -
-
-

exitFailure top-level constant - Null safety - -

- -
- int - const exitFailure - - -
- -
-

Failure exit code.

-
- - -
-

Implementation

-
const exitFailure = 1;
-
- - - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/dcat/exitSuccess-constant.html b/doc/api/dcat/exitSuccess-constant.html deleted file mode 100644 index 9e8c765..0000000 --- a/doc/api/dcat/exitSuccess-constant.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - exitSuccess constant - dcat library - Dart API - - - - - - - - - - - - - - - - - -
- -
- - -
exitSuccess
- -
- -
- - -
-
-

exitSuccess top-level constant - Null safety - -

- -
- int - const exitSuccess - - -
- -
-

Success exit code.

-
- - -
-

Implementation

-
const exitSuccess = 0;
-
- - - -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/index.html b/doc/api/index.html deleted file mode 100644 index 4fc17d0..0000000 --- a/doc/api/index.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - dcat - Dart API docs - - - - - - - - - - - - - - - - - -
- -
- - -
dcat
- -
- -
- - -
- -
-

License (3-Clause BSD) -GitHub CI -codecov

-

dcat: Concatenate File(s) to Standard Output or File

-

A cat command-line and library implementation in Dart, inspired by the Write command-line apps sample code.

-

Synopsis

-

dcat copies each file, or standard input if none are given, to standard output or file.

-

Command-Line Usage

-
dcat --help
-
-
Usage: dcat [OPTION]... [FILE]...
-Concatenate FILE(s) to standard output.
-
-With no FILE, or when FILE is -, read standard input.
-
-  -A, --show-all                 equivalent to -vET
-  -b, --number-nonblank          number nonempty output lines, overrides -n
-  -e, --show-nonprinting-ends    equivalent to -vE
-  -E, --show-ends                display $ at end of each line
-  -h, --help                     display this help and exit
-  -n, --number                   number all output lines
-  -t, --show-nonprinting-tabs    equivalent to -vT
-  -T, --show-tabs                display TAB characters as ^I
-  -s, --squeeze-blank            suppress repeated empty output lines
-      --version                  output version information and exit
-  -v, --show-nonprinting         use ^ and M- notation, except for LFD and TAB
-
-Examples:
-  dcat f - g  Output f's contents, then standard input, then g's contents.
-  dcat        Copy standard input to standard output.
-
-

Compile Standalone Application

-

*nix

-
dart compile exe -o bin/dcat bin/dcat.dart
-
-

Windows

-
dart compile exe bin/dcat.dart
-
-

Library Usage

-
import 'package:dcat/dcat.dart';
-
-final result = await cat(['path/to/file', 'path/to/otherfile]'],
-    File('path/to/outfile').openWrite());
-if (result.isFailure) {
-  for (final message in result.messages) {
-    print("Error: $message");
-  }
-}
-
-

The cat function supports the following parameters:

-
ParameterDescriptionType
pathsThe file paths.String[]
outputThe standard output or file.IOSink
inputThe standard input.Stream
showEndsSame as -ebool
numberNonBlankSame as -bbool
showLineNumbersSame as -nbool
showTabsSame as -Tbool
squeezeBlankSame as -sbool
showNonPrintingSame as -vbool
-
    -
  • paths and output are required.
  • -
  • output should be an IOSink such as stdout or a File stream.
  • -
  • input can be stdin.
  • -
-

The remaining optional parameters are similar to the GNU cat utility.

-

A CatResult object is returned which contains the exitCode (exitSuccess or exitFailure) and error messages if any:

-
final result = await cat(['path/to/file'], stdout);
-if (result.exitCode == exitSuccess) {
-  ...
-} else {
-  for (final message in result.messages) {
-    stderr.writeln("Error: $message");
-  }
-}
-
-
- - -
-

Libraries

-
-
- dcat - -
-
A library to concatenate files to standard output or file. -
- -
-
- -
- - - - - -
- - - - - - - - - - - - - - diff --git a/doc/api/index.json b/doc/api/index.json deleted file mode 100644 index 846fa27..0000000 --- a/doc/api/index.json +++ /dev/null @@ -1 +0,0 @@ -[{"name":"dcat","qualifiedName":"dcat","href":"dcat/dcat-library.html","type":"library","overriddenDepth":0,"packageName":"dcat"},{"name":"CatResult","qualifiedName":"dcat.CatResult","href":"dcat/CatResult-class.html","type":"class","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"dcat","type":"library"}},{"name":"CatResult","qualifiedName":"dcat.CatResult.CatResult","href":"dcat/CatResult/CatResult.html","type":"constructor","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"CatResult","type":"class"}},{"name":"addMessage","qualifiedName":"dcat.CatResult.addMessage","href":"dcat/CatResult/addMessage.html","type":"method","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"CatResult","type":"class"}},{"name":"exitCode","qualifiedName":"dcat.CatResult.exitCode","href":"dcat/CatResult/exitCode.html","type":"property","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"CatResult","type":"class"}},{"name":"isFailure","qualifiedName":"dcat.CatResult.isFailure","href":"dcat/CatResult/isFailure.html","type":"property","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"CatResult","type":"class"}},{"name":"isSuccess","qualifiedName":"dcat.CatResult.isSuccess","href":"dcat/CatResult/isSuccess.html","type":"property","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"CatResult","type":"class"}},{"name":"messages","qualifiedName":"dcat.CatResult.messages","href":"dcat/CatResult/messages.html","type":"property","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"CatResult","type":"class"}},{"name":"cat","qualifiedName":"dcat.cat","href":"dcat/cat.html","type":"function","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"dcat","type":"library"}},{"name":"exitFailure","qualifiedName":"dcat.exitFailure","href":"dcat/exitFailure-constant.html","type":"top-level constant","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"dcat","type":"library"}},{"name":"exitSuccess","qualifiedName":"dcat.exitSuccess","href":"dcat/exitSuccess-constant.html","type":"top-level constant","overriddenDepth":0,"packageName":"dcat","enclosedBy":{"name":"dcat","type":"library"}}] diff --git a/doc/api/static-assets/favicon.png b/doc/api/static-assets/favicon.png deleted file mode 100644 index 43d2ffa079ca147a221437817dbc694d66a2a302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1767 zcmVr1gM)#AhSs$=eK0WK)CF2vH5m*T78Vv7 zOqGGvxA(cvvG46mUuvh$T1!8DmE**HzxO9;TsuQliJN|J!pK@zgpAc6W;K`ZbSrnoP`wF$fl7_5*8Ivypwf=W;~ z;08%MQORYPC_tGHZSh$O#Av43|^d-UX&HM!T~7!)g1(@JfEf{VV=B< z1V2h$vz|_)(42Iv;nMQ6gnaC=x-iE)V9>bg95MTIge3HB2W~Qqm*!+BpztvG$qKPZI96W} zvtB&GrNG5*kOai6|CR7-+*88m$TiE!O#Aqvg{$I60STah90fcj;bJTAHe50;DvqB` zEg>!%3Dgd1>303*qUn95wS&WE(*hLuC37)V?aQjQ(>?on4V>`^}$4&P2qUwF63p3!p z6R>6i5YrB(Dm-K?OMsE#XJVfc&SVMlTc3)@NKU0J3269ELe@xN0Za64hocS>SoY(& zL%m;r$g#En;{)>X$|7Ng63+K0K^DLzXfDCDx@#YPVSI{DxIP(XJHy#-j`B3b#X_yixgMa&bn3s?yPcssC4`0@Pr z>UDqkrA2oMvH(^Il;ArzoKINx_2)YKwKcf{c=joHgRLFHM+xq^ZVMp3+9h+pM_8DNoMAB-dVobWmYAS9rt1as~o-UgNSX!>_*0eKDx64<-L zsr_Sf&ksWK5X_wO=HsvVW@R@4avN{~b`kO)Q2hp=EFi=-pa;L0N~k1s7QiKN5q3y| z{H02#@|Qmd>8SNrVChicf`ASZgo+R(>{|f;A|&P#WC45@h!O<2gp5n*5WLs|%h5Io z&-zA4k|2tpV}-BR_;rW=0{Hbbr8g2rC_$(INdgxkz-9uI;7AhAx(eXe)2I^YTj5fu z07-%@V%uQ+#@-^?#TPmIvVf-~Xcr}rfKnDf$id05c9_^NzK{etcv%3Kz^)CFfYM7u z0sTc>5&YuI)(f)z1qhX(H3Ggi0-)qG;MpQ%*z;uxJkb6E_~m7Pp-})}1w7y{P|87X zMF?8JdR00$fprxiY?Jv$f)^#)PoTa$P7;P^(nEroXQBYUjX$q968u%Jy_6(e-Iwpz z`wQ&juE(vPtb`I*EA&`h0mZHYjw%V!O;ZVLl+daK6k%2i_w{N+cwBf+b515f%gmO% z0;CNdCA9us9ZyP?@Hi6?I4mR~j0z_-S>8&HnB#ImfGojJKnEEBu4V8D90ETn>T?(4 zMG`tr=$)vA?}qayISJ<{js z)mqSPcf)OyC94E3VQ2vf2>>`6^tPFngqTYhz5-+c150@O0%QqqUjRvn1qp9gfGmM1 zUw{G;1RSy*Qj(CpFloi)@B(OKcajFkv|3YK_es*=t)6!)-Mumr002ov JPDHLkV1ksy9Tflo diff --git a/doc/api/static-assets/github.css b/doc/api/static-assets/github.css deleted file mode 100644 index 791932b..0000000 --- a/doc/api/static-assets/github.css +++ /dev/null @@ -1,99 +0,0 @@ -/* - -github.com style (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #333; - background: #f8f8f8; -} - -.hljs-comment, -.hljs-quote { - color: #998; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-subst { - color: #333; - font-weight: bold; -} - -.hljs-number, -.hljs-literal, -.hljs-variable, -.hljs-template-variable, -.hljs-tag .hljs-attr { - color: #008080; -} - -.hljs-string, -.hljs-doctag { - color: #d14; -} - -.hljs-title, -.hljs-section, -.hljs-selector-id { - color: #900; - font-weight: bold; -} - -.hljs-subst { - font-weight: normal; -} - -.hljs-type, -.hljs-class .hljs-title { - color: #458; - font-weight: bold; -} - -.hljs-tag, -.hljs-name, -.hljs-attribute { - color: #000080; - font-weight: normal; -} - -.hljs-regexp, -.hljs-link { - color: #009926; -} - -.hljs-symbol, -.hljs-bullet { - color: #990073; -} - -.hljs-built_in, -.hljs-builtin-name { - color: #0086b3; -} - -.hljs-meta { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - background: #fdd; -} - -.hljs-addition { - background: #dfd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/doc/api/static-assets/highlight.pack.js b/doc/api/static-assets/highlight.pack.js deleted file mode 100644 index dabdd3c..0000000 --- a/doc/api/static-assets/highlight.pack.js +++ /dev/null @@ -1,775 +0,0 @@ -/*! - Highlight.js v11.0.1 (git: 1cf31f015d) - (c) 2006-2021 Ivan Sagalaev and other contributors - License: BSD-3-Clause - */ -var hljs=function(){"use strict";var e={exports:{}};function t(e){ -return e instanceof Map?e.clear=e.delete=e.set=()=>{ -throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{ -throw Error("set is read-only") -}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{var i=e[n] -;"object"!=typeof i||Object.isFrozen(i)||t(i)})),e} -e.exports=t,e.exports.default=t;var n=e.exports;class i{constructor(e){ -void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} -ignoreMatch(){this.isMatchIgnored=!0}}function r(e){ -return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") -}function s(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] -;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const o=e=>!!e.kind -;class a{constructor(e,t){ -this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ -this.buffer+=r(e)}openNode(e){if(!o(e))return;let t=e.kind -;t=e.sublanguage?"language-"+t:((e,{prefix:t})=>{if(e.includes(".")){ -const n=e.split(".") -;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ") -}return`${t}${e}`})(t,{prefix:this.classPrefix}),this.span(t)}closeNode(e){ -o(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ -this.buffer+=``}}class l{constructor(){this.rootNode={ -children:[]},this.stack=[this.rootNode]}get top(){ -return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ -this.top.children.push(e)}openNode(e){const t={kind:e,children:[]} -;this.add(t),this.stack.push(t)}closeNode(){ -if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ -for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} -walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ -return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), -t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ -"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ -l._collapse(e)})))}}class c extends l{constructor(e){super(),this.options=e} -addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())} -addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root -;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){ -return new a(this,this.options).value()}finalize(){return!0}}function g(e){ -return e?"string"==typeof e?e:e.source:null}function d(...e){ -return e.map((e=>g(e))).join("")}function u(...e){return"("+((e=>{ -const t=e[e.length-1] -;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{} -})(e).capture?"":"?:")+e.map((e=>g(e))).join("|")+")"}function h(e){ -return RegExp(e.toString()+"|").exec("").length-1} -const f=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ -;function p(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n -;let i=g(e),r="";for(;i.length>0;){const e=f.exec(i);if(!e){r+=i;break} -r+=i.substring(0,e.index), -i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+(Number(e[1])+t):(r+=e[0], -"("===e[0]&&n++)}return r})).map((e=>`(${e})`)).join(t)} -const b="[a-zA-Z]\\w*",m="[a-zA-Z_]\\w*",E="\\b\\d+(\\.\\d+)?",x="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",y="\\b(0b[01]+)",w={ -begin:"\\\\[\\s\\S]",relevance:0},_={scope:"string",begin:"'",end:"'", -illegal:"\\n",contains:[w]},v={scope:"string",begin:'"',end:'"',illegal:"\\n", -contains:[w]},O=(e,t,n={})=>{const i=s({scope:"comment",begin:e,end:t, -contains:[]},n);i.contains.push({scope:"doctag", -begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", -end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) -;const r=u("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) -;return i.contains.push({begin:d(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i -},k=O("//","$"),N=O("/\\*","\\*/"),S=O("#","$");var M=Object.freeze({ -__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:b,UNDERSCORE_IDENT_RE:m, -NUMBER_RE:E,C_NUMBER_RE:x,BINARY_NUMBER_RE:y, -RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", -SHEBANG:(e={})=>{const t=/^#![ ]*\// -;return e.binary&&(e.begin=d(t,/.*\b/,e.binary,/\b.*/)),s({scope:"meta",begin:t, -end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)}, -BACKSLASH_ESCAPE:w,APOS_STRING_MODE:_,QUOTE_STRING_MODE:v,PHRASAL_WORDS_MODE:{ -begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ -},COMMENT:O,C_LINE_COMMENT_MODE:k,C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:S, -NUMBER_MODE:{scope:"number",begin:E,relevance:0},C_NUMBER_MODE:{scope:"number", -begin:x,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:y,relevance:0}, -REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//, -end:/\/[gimuy]*/,illegal:/\n/,contains:[w,{begin:/\[/,end:/\]/,relevance:0, -contains:[w]}]}]},TITLE_MODE:{scope:"title",begin:b,relevance:0}, -UNDERSCORE_TITLE_MODE:{scope:"title",begin:m,relevance:0},METHOD_GUARD:{ -begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{ -"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ -t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function R(e,t){ -"."===e.input[e.index-1]&&t.ignoreMatch()}function j(e,t){ -void 0!==e.className&&(e.scope=e.className,delete e.className)}function A(e,t){ -t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", -e.__beforeBegin=R,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, -void 0===e.relevance&&(e.relevance=0))}function I(e,t){ -Array.isArray(e.illegal)&&(e.illegal=u(...e.illegal))}function B(e,t){ -if(e.match){ -if(e.begin||e.end)throw Error("begin & end are not supported with match") -;e.begin=e.match,delete e.match}}function T(e,t){ -void 0===e.relevance&&(e.relevance=1)}const L=(e,t)=>{if(!e.beforeMatch)return -;if(e.starts)throw Error("beforeMatch cannot be used with starts") -;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t] -})),e.keywords=n.keywords, -e.begin=d(n.beforeMatch,d("(?=",n.begin,")")),e.starts={relevance:0, -contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch -},D=["of","and","for","in","not","or","if","then","parent","list","value"] -;function P(e,t,n="keyword"){const i=Object.create(null) -;return"string"==typeof e?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((n=>{ -Object.assign(i,P(e[n],t,n))})),i;function r(e,n){ -t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") -;i[n[0]]=[e,C(n[0],n[1])]}))}}function C(e,t){ -return t?Number(t):(e=>D.includes(e.toLowerCase()))(e)?0:1}const H={},$=e=>{ -console.error(e)},U=(e,...t)=>{console.log("WARN: "+e,...t)},z=(e,t)=>{ -H[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),H[`${e}/${t}`]=!0) -},K=Error();function W(e,t,{key:n}){let i=0;const r=e[n],s={},o={} -;for(let e=1;e<=t.length;e++)o[e+i]=r[e],s[e+i]=!0,i+=h(t[e-1]) -;e[n]=o,e[n]._emit=s,e[n]._multi=!0}function X(e){(e=>{ -e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, -delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ -_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope -}),(e=>{if(Array.isArray(e.begin)){ -if(e.skip||e.excludeBegin||e.returnBegin)throw $("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), -K -;if("object"!=typeof e.beginScope||null===e.beginScope)throw $("beginScope must be object"), -K;W(e,e.begin,{key:"beginScope"}),e.begin=p(e.begin,{joinWith:""})}})(e),(e=>{ -if(Array.isArray(e.end)){ -if(e.skip||e.excludeEnd||e.returnEnd)throw $("skip, excludeEnd, returnEnd not compatible with endScope: {}"), -K -;if("object"!=typeof e.endScope||null===e.endScope)throw $("endScope must be object"), -K;W(e,e.end,{key:"endScope"}),e.end=p(e.end,{joinWith:""})}})(e)}function G(e){ -function t(t,n){return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))} -class n{constructor(){ -this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} -addRule(e,t){ -t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), -this.matchAt+=h(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) -;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(p(e,{joinWith:"|" -}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex -;const t=this.matcherRe.exec(e);if(!t)return null -;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] -;return t.splice(0,n),Object.assign(t,i)}}class i{constructor(){ -this.rules=[],this.multiRegexes=[], -this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ -if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n -;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), -t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ -return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ -this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ -const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex -;let n=t.exec(e) -;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ -const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} -return n&&(this.regexIndex+=n.position+1, -this.regexIndex===this.count&&this.considerAll()),n}} -if(e.compilerExtensions||(e.compilerExtensions=[]), -e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") -;return e.classNameAliases=s(e.classNameAliases||{}),function n(r,o){const a=r -;if(r.isCompiled)return a -;[j,B,X,L].forEach((e=>e(r,o))),e.compilerExtensions.forEach((e=>e(r,o))), -r.__beforeBegin=null,[A,I,T].forEach((e=>e(r,o))),r.isCompiled=!0;let l=null -;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords), -l=r.keywords.$pattern, -delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=P(r.keywords,e.case_insensitive)), -a.keywordPatternRe=t(l,!0), -o&&(r.begin||(r.begin=/\B|\b/),a.beginRe=t(r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/), -r.end&&(a.endRe=t(r.end)), -a.terminatorEnd=g(r.end)||"",r.endsWithParent&&o.terminatorEnd&&(a.terminatorEnd+=(r.end?"|":"")+o.terminatorEnd)), -r.illegal&&(a.illegalRe=t(r.illegal)), -r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>s(e,{ -variants:null},t)))),e.cachedVariants?e.cachedVariants:Z(e)?s(e,{ -starts:e.starts?s(e.starts):null -}):Object.isFrozen(e)?s(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{n(e,a) -})),r.starts&&n(r.starts,o),a.matcher=(e=>{const t=new i -;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" -}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" -}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function Z(e){ -return!!e&&(e.endsWithParent||Z(e.starts))}const F=r,V=s,q=Symbol("nomatch") -;var J=(e=>{const t=Object.create(null),r=Object.create(null),s=[];let o=!0 -;const a="Could not find the language '{}', did you forget to load/include a language module?",l={ -disableAutodetect:!0,name:"Plain text",contains:[]};let g={ -ignoreUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, -languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", -cssSelector:"pre code",languages:null,__emitter:c};function d(e){ -return g.noHighlightRe.test(e)}function u(e,t,n,i){let r="",s="" -;"object"==typeof t?(r=e, -n=t.ignoreIllegals,s=t.language,i=void 0):(z("10.7.0","highlight(lang, code, ...args) has been deprecated."), -z("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), -s=e,r=t),void 0===n&&(n=!0);const o={code:r,language:s};w("before:highlight",o) -;const a=o.result?o.result:h(o.language,o.code,n,i) -;return a.code=o.code,w("after:highlight",a),a}function h(e,n,r,s){ -const l=Object.create(null);function c(){if(!k.keywords)return void S.addText(M) -;let e=0;k.keywordPatternRe.lastIndex=0;let t=k.keywordPatternRe.exec(M),n="" -;for(;t;){n+=M.substring(e,t.index) -;const r=_.case_insensitive?t[0].toLowerCase():t[0],s=(i=r,k.keywords[i]);if(s){ -const[e,i]=s -;if(S.addText(n),n="",l[r]=(l[r]||0)+1,l[r]<=7&&(R+=i),e.startsWith("_"))n+=t[0];else{ -const n=_.classNameAliases[e]||e;S.addKeyword(t[0],n)}}else n+=t[0] -;e=k.keywordPatternRe.lastIndex,t=k.keywordPatternRe.exec(M)}var i -;n+=M.substr(e),S.addText(n)}function d(){null!=k.subLanguage?(()=>{ -if(""===M)return;let e=null;if("string"==typeof k.subLanguage){ -if(!t[k.subLanguage])return void S.addText(M) -;e=h(k.subLanguage,M,!0,N[k.subLanguage]),N[k.subLanguage]=e._top -}else e=f(M,k.subLanguage.length?k.subLanguage:null) -;k.relevance>0&&(R+=e.relevance),S.addSublanguage(e._emitter,e.language) -})():c(),M=""}function u(e,t){let n=1;for(;void 0!==t[n];){if(!e._emit[n]){n++ -;continue}const i=_.classNameAliases[e[n]]||e[n],r=t[n] -;i?S.addKeyword(r,i):(M=r,c(),M=""),n++}}function p(e,t){ -return e.scope&&"string"==typeof e.scope&&S.openNode(_.classNameAliases[e.scope]||e.scope), -e.beginScope&&(e.beginScope._wrap?(S.addKeyword(M,_.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), -M=""):e.beginScope._multi&&(u(e.beginScope,t),M="")),k=Object.create(e,{parent:{ -value:k}}),k}function b(e,t,n){let r=((e,t)=>{const n=e&&e.exec(t) -;return n&&0===n.index})(e.endRe,n);if(r){if(e["on:end"]){const n=new i(e) -;e["on:end"](t,n),n.isMatchIgnored&&(r=!1)}if(r){ -for(;e.endsParent&&e.parent;)e=e.parent;return e}} -if(e.endsWithParent)return b(e.parent,t,n)}function m(e){ -return 0===k.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function x(e){ -const t=e[0],i=n.substr(e.index),r=b(k,e,i);if(!r)return q;const s=k -;k.endScope&&k.endScope._wrap?(d(), -S.addKeyword(t,k.endScope._wrap)):k.endScope&&k.endScope._multi?(d(), -u(k.endScope,e)):s.skip?M+=t:(s.returnEnd||s.excludeEnd||(M+=t), -d(),s.excludeEnd&&(M=t));do{ -k.scope&&!k.isMultiClass&&S.closeNode(),k.skip||k.subLanguage||(R+=k.relevance), -k=k.parent}while(k!==r.parent) -;return r.starts&&p(r.starts,e),s.returnEnd?0:t.length}let y={};function w(t,s){ -const a=s&&s[0];if(M+=t,null==a)return d(),0 -;if("begin"===y.type&&"end"===s.type&&y.index===s.index&&""===a){ -if(M+=n.slice(s.index,s.index+1),!o){const t=Error(`0 width match regex (${e})`) -;throw t.languageName=e,t.badRule=y.rule,t}return 1} -if(y=s,"begin"===s.type)return(e=>{ -const t=e[0],n=e.rule,r=new i(n),s=[n.__beforeBegin,n["on:begin"]] -;for(const n of s)if(n&&(n(e,r),r.isMatchIgnored))return m(t) -;return n.skip?M+=t:(n.excludeBegin&&(M+=t), -d(),n.returnBegin||n.excludeBegin||(M=t)),p(n,e),n.returnBegin?0:t.length})(s) -;if("illegal"===s.type&&!r){ -const e=Error('Illegal lexeme "'+a+'" for mode "'+(k.scope||"")+'"') -;throw e.mode=k,e}if("end"===s.type){const e=x(s);if(e!==q)return e} -if("illegal"===s.type&&""===a)return 1 -;if(A>1e5&&A>3*s.index)throw Error("potential infinite loop, way more iterations than matches") -;return M+=a,a.length}const _=E(e) -;if(!_)throw $(a.replace("{}",e)),Error('Unknown language: "'+e+'"') -;const v=G(_);let O="",k=s||v;const N={},S=new g.__emitter(g);(()=>{const e=[] -;for(let t=k;t!==_;t=t.parent)t.scope&&e.unshift(t.scope) -;e.forEach((e=>S.openNode(e)))})();let M="",R=0,j=0,A=0,I=!1;try{ -for(k.matcher.considerAll();;){ -A++,I?I=!1:k.matcher.considerAll(),k.matcher.lastIndex=j -;const e=k.matcher.exec(n);if(!e)break;const t=w(n.substring(j,e.index),e) -;j=e.index+t}return w(n.substr(j)),S.closeAllNodes(),S.finalize(),O=S.toHTML(),{ -language:e,value:O,relevance:R,illegal:!1,_emitter:S,_top:k}}catch(t){ -if(t.message&&t.message.includes("Illegal"))return{language:e,value:F(n), -illegal:!0,relevance:0,_illegalBy:{message:t.message,index:j, -context:n.slice(j-100,j+100),mode:t.mode,resultSoFar:O},_emitter:S};if(o)return{ -language:e,value:F(n),illegal:!1,relevance:0,errorRaised:t,_emitter:S,_top:k} -;throw t}}function f(e,n){n=n||g.languages||Object.keys(t);const i=(e=>{ -const t={value:F(e),illegal:!1,relevance:0,_top:l,_emitter:new g.__emitter(g)} -;return t._emitter.addText(e),t})(e),r=n.filter(E).filter(y).map((t=>h(t,e,!1))) -;r.unshift(i);const s=r.sort(((e,t)=>{ -if(e.relevance!==t.relevance)return t.relevance-e.relevance -;if(e.language&&t.language){if(E(e.language).supersetOf===t.language)return 1 -;if(E(t.language).supersetOf===e.language)return-1}return 0})),[o,a]=s,c=o -;return c.secondBest=a,c}function p(e){let t=null;const n=(e=>{ -let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"" -;const n=g.languageDetectRe.exec(t);if(n){const t=E(n[1]) -;return t||(U(a.replace("{}",n[1])), -U("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"} -return t.split(/\s+/).find((e=>d(e)||E(e)))})(e);if(d(n))return -;w("before:highlightElement",{el:e,language:n -}),!g.ignoreUnescapedHTML&&e.children.length>0&&(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), -console.warn("https://github.com/highlightjs/highlight.js/issues/2886"), -console.warn(e)),t=e;const i=t.textContent,s=n?u(i,{language:n,ignoreIllegals:!0 -}):f(i);e.innerHTML=s.value,((e,t,n)=>{const i=t&&r[t]||n -;e.classList.add("hljs"),e.classList.add("language-"+i) -})(e,n,s.language),e.result={language:s.language,re:s.relevance, -relevance:s.relevance},s.secondBest&&(e.secondBest={ -language:s.secondBest.language,relevance:s.secondBest.relevance -}),w("after:highlightElement",{el:e,result:s,text:i})}let b=!1;function m(){ -"loading"!==document.readyState?document.querySelectorAll(g.cssSelector).forEach(p):b=!0 -}function E(e){return e=(e||"").toLowerCase(),t[e]||t[r[e]]} -function x(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ -r[e.toLowerCase()]=t}))}function y(e){const t=E(e) -;return t&&!t.disableAutodetect}function w(e,t){const n=e;s.forEach((e=>{ -e[n]&&e[n](t)}))} -"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ -b&&m()}),!1),Object.assign(e,{highlight:u,highlightAuto:f,highlightAll:m, -highlightElement:p, -highlightBlock:e=>(z("10.7.0","highlightBlock will be removed entirely in v12.0"), -z("10.7.0","Please use highlightElement now."),p(e)),configure:e=>{g=V(g,e)}, -initHighlighting:()=>{ -m(),z("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, -initHighlightingOnLoad:()=>{ -m(),z("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") -},registerLanguage:(n,i)=>{let r=null;try{r=i(e)}catch(e){ -if($("Language definition for '{}' could not be registered.".replace("{}",n)), -!o)throw e;$(e),r=l} -r.name||(r.name=n),t[n]=r,r.rawDefinition=i.bind(null,e),r.aliases&&x(r.aliases,{ -languageName:n})},unregisterLanguage:e=>{delete t[e] -;for(const t of Object.keys(r))r[t]===e&&delete r[t]}, -listLanguages:()=>Object.keys(t),getLanguage:E,registerAliases:x, -autoDetection:y,inherit:V,addPlugin:e=>{(e=>{ -e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ -e["before:highlightBlock"](Object.assign({block:t.el},t)) -}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ -e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),s.push(e)} -}),e.debugMode=()=>{o=!1},e.safeMode=()=>{o=!0},e.versionString="11.0.1" -;for(const e in M)"object"==typeof M[e]&&n(M[e]);return Object.assign(e,M),e -})({}),Y=Object.freeze({__proto__:null});const Q=J -;for(const e of Object.keys(Y)){const t=e.replace("grmr_","") -;Q.registerLanguage(t,Y[e])}return Q}() -;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);hljs.registerLanguage("xml",(()=>{"use strict";function e(e){ -return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")} -function a(...n){return n.map((n=>e(n))).join("")}function s(...n){ -return"("+((e=>{const n=e[e.length-1] -;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} -})(n).capture?"":"?:")+n.map((n=>e(n))).join("|")+")"}return e=>{ -const t=a(/[A-Z_]/,a("(?:",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={ -className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},c={begin:/\s/, -contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] -},r=e.inherit(c,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{ -className:"string"}),g=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),m={ -endsWithParent:!0,illegal:/`]+/}]}]}]};return{ -name:"HTML, XML", -aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], -case_insensitive:!0,contains:[{className:"meta",begin://, -relevance:10,contains:[c,g,l,r,{begin:/\[/,end:/\]/,contains:[{className:"meta", -begin://,contains:[c,r,g,l]}]}]},e.COMMENT(//,{ -relevance:10}),{begin://,relevance:10},i,{ -className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag", -begin:/)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{ -end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", -begin:/)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{ -end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ -className:"tag",begin:/<>|<\/>/},{className:"tag", -begin:a(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name", -begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))), -contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0, -endsParent:!0}]}]}}})());hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){ -return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e -})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">", -subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0 -},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, -relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), -relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ -begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{ -className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, -returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", -excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", -end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[], -variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={ -className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{ -begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s) -;let t=[a,i] -;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t), -t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ -className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{ -begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", -contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", -end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t, -end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ -begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ -begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", -contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ -begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ -className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ -className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})());hljs.registerLanguage("css",(()=>{"use strict" -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse() -;return n=>{const a=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},HEXCOLOR:{ -scope:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, -ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", -contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ -scope:"number", -begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", -relevance:0}}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS", -case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"}, -classNameAliases:{keyframePosition:"selector-tag"}, -contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ -},a.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 -},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 -},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ -begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{ -className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]", -contains:[a.HEXCOLOR,a.IMPORTANT,a.CSS_NUMBER_MODE,...l,{ -begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" -},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}] -},{className:"built_in",begin:/[\w-]+(?=\()/}]},{ -begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")), -end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword", -begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0, -relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only", -attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute" -},...l,a.CSS_NUMBER_MODE]}]},{className:"selector-tag", -begin:"\\b("+e.join("|")+")\\b"}]};var s}})());hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({ -name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})());hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){ -return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s -})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{ -begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{ -begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={ -className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={ -begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/, -end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/, -contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/, -end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n] -},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 -}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, -contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ -name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z._-]+\b/, -keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"], -literal:["true","false"], -built_in:"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 autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp" -},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/ -},{className:"string",begin:/'/,end:/'/},n]}}})());hljs.registerLanguage("kotlin",(()=>{"use strict" -;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ -className:"number",variants:[{ -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ -begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], -relevance:0};return e=>{const n={ -keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", -built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", -literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" -},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={ -className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", -variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'", -illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, -contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={ -className:"meta", -begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" -},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, -end:/\)/,contains:[e.inherit(r,{className:"string"})]}] -},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={ -variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, -contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d], -{name:"Kotlin",aliases:["kt","kts"],keywords:n, -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", -begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword", -begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", -begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$", -returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, -keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, -endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, -endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0 -},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class", -beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, -illegal:"extends implements",contains:[{ -beginKeywords:"public protected internal private constructor" -},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, -excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/, -excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env", -end:"$",illegal:"\n"},o]}}})());hljs.registerLanguage("diff",(()=>{"use strict";function e(...e){ -return"("+((e=>{const n=e[e.length-1] -;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} -})(e).capture?"":"?:")+e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null -;var n})).join("|")+")"}return n=>({name:"Diff",aliases:["patch"],contains:[{ -className:"meta",relevance:10, -match:e(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) -},{className:"comment",variants:[{ -begin:e(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), -end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ -className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, -end:/$/}]})})());hljs.registerLanguage("shell",(()=>{"use strict";return s=>({ -name:"Shell Session",aliases:["console","shellsession"],contains:[{ -className:"meta",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{ -end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]})})());hljs.registerLanguage("json",(()=>{"use strict";return e=>({name:"JSON", -contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01 -},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,{ -beginKeywords:"true false null" -},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}) -})());hljs.registerLanguage("java",(()=>{"use strict" -;var e="\\.([0-9](_*[0-9])*)",a="[0-9a-fA-F](_*[0-9a-fA-F])*",n={ -className:"number",variants:[{ -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ -begin:`\\b0[xX]((${a})\\.?|(${a})?\\.(${a}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${a})[lL]?\\b`},{ -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], -relevance:0};function s(e,a,n){return-1===n?"":e.replace(a,(t=>s(e,a,n-1)))} -return e=>{ -const a="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",t=a+s("(?:<"+a+"~~~(?:\\s*,\\s*"+a+"~~~)*>)?",/~~~/g,2),i={ -keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do"], -literal:["false","true","null"], -type:["char","boolean","long","float","int","byte","short","double"], -built_in:["super","this"]},r={className:"meta",begin:"@"+a,contains:[{ -begin:/\(/,end:/\)/,contains:["self"]}]},l={className:"params",begin:/\(/, -end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} -;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/, -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, -relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ -begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ -match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,a],className:{ -1:"keyword",3:"title.class"}},{begin:[a,/\s+/,a,/\s+/,/=/],className:{1:"type", -3:"variable",5:"operator"}},{begin:[/record/,/\s+/,a],className:{1:"keyword", -3:"title.class"},contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ -beginKeywords:"new throw return else",relevance:0},{ -begin:["(?:"+t+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ -2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/, -end:/\)/,keywords:i,relevance:0, -contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE] -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,r]}}})());hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{ -const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n, -keyword:["@interface","@class","@protocol","@implementation"]};return{ -name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], -keywords:{$pattern:n, -keyword:["int","float","while","char","export","sizeof","typedef","const","struct","for","union","unsigned","long","volatile","static","bool","mutable","if","do","return","goto","void","enum","else","break","extern","asm","case","short","default","double","register","explicit","signed","typename","this","switch","continue","wchar_t","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","super","unichar","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], -literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], -built_in:["BOOL","dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"] -},illegal:"/,end:/$/,illegal:"\\n" -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", -begin:"("+_.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:_, -contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, -relevance:0}]}}})());hljs.registerLanguage("dart",(()=>{"use strict";return e=>{const n={ -className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"}]},a={className:"subst", -variants:[{begin:/\$\{/,end:/\}/}],keywords:"true false null this is new super" -},t={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""', -end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n" -},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"""', -end:'"""',contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:"'",end:"'",illegal:"\\n", -contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"',end:'"',illegal:"\\n", -contains:[e.BACKSLASH_ESCAPE,n,a]}]};a.contains=[e.C_NUMBER_MODE,t] -;const i=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],r=i.map((e=>e+"?")) -;return{name:"Dart",keywords:{ -keyword:["abstract","as","assert","async","await","break","case","catch","class","const","continue","covariant","default","deferred","do","dynamic","else","enum","export","extends","extension","external","factory","false","final","finally","for","Function","get","hide","if","implements","import","in","inferface","is","late","library","mixin","new","null","on","operator","part","required","rethrow","return","set","show","static","super","switch","sync","this","throw","true","try","typedef","var","void","while","with","yield"], -built_in:i.concat(r).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]), -$pattern:/[A-Za-z][A-Za-z0-9_]*\??/}, -contains:[t,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0 -}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".", -end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ -className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0, -contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE] -},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}})());hljs.registerLanguage("ruby",(()=>{"use strict";function e(e){ -return n("(?=",e,")")}function n(...e){return e.map((e=>{ -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return a=>{ -const i="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s={ -keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__", -built_in:"proc lambda",literal:"true false nil"},r={className:"doctag", -begin:"@[A-Za-z]+"},b={begin:"#<",end:">"},c=[a.COMMENT("#","$",{contains:[r] -}),a.COMMENT("^=begin","^=end",{contains:[r],relevance:10 -}),a.COMMENT("^__END__","\\n$")],t={className:"subst",begin:/#\{/,end:/\}/, -keywords:s},g={className:"string",contains:[a.BACKSLASH_ESCAPE,t],variants:[{ -begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/, -end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{ -begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/, -end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{ -begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{ -begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ -begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ -begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ -begin:n(/<<[-~]?'?/,e(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), -contains:[a.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, -contains:[a.BACKSLASH_ESCAPE,t]})]}]},d="[0-9](_?[0-9])*",l={className:"number", -relevance:0,variants:[{ -begin:`\\b([1-9](_?[0-9])*|0)(\\.(${d}))?([eE][+-]?(${d})|r)?i?\\b`},{ -begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" -},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ -begin:"\\b0(_?[0-7])+r?i?\\b"}]},o={className:"params",begin:"\\(",end:"\\)", -endsParent:!0,keywords:s},_=[g,{className:"class",beginKeywords:"class module", -end:"$|;",illegal:/=/,contains:[a.inherit(a.TITLE_MODE,{ -begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{ -begin:"("+a.IDENT_RE+"::)?"+a.IDENT_RE,relevance:0}]}].concat(c)},{ -className:"function",begin:n(/def\s+/,e(i+"\\s*(\\(|;|$)")),relevance:0, -keywords:"def",end:"$|;",contains:[a.inherit(a.TITLE_MODE,{begin:i -}),o].concat(c)},{begin:a.IDENT_RE+"::"},{className:"symbol", -begin:a.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", -begin:":(?!\\s)",contains:[g,{begin:i}],relevance:0},l,{className:"variable", -begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ -className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:s},{ -begin:"("+a.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{ -className:"regexp",contains:[a.BACKSLASH_ESCAPE,t],illegal:/\n/,variants:[{ -begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(", -end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}] -}].concat(b,c),relevance:0}].concat(b,c);t.contains=_,o.contains=_;const E=[{ -begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta", -begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", -starts:{end:"$",contains:_}}];return c.unshift(b),{name:"Ruby", -aliases:["rb","gemspec","podspec","thor","irb"],keywords:s,illegal:/\/\*/, -contains:[a.SHEBANG({binary:"ruby"})].concat(E).concat(c).concat(_)}}})());hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{ -const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ -className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ -},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", -variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{ -variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={ -end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/, -end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]", -contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{ -begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ -begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", -relevance:10},{className:"string", -begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ -begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, -relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type", -begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a -},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", -begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", -relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ -className:"number", -begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" -},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],c=[...b] -;return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0, -aliases:["yml"],contains:b}}})());hljs.registerLanguage("javascript",(()=>{"use strict" -;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],s=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],i=["arguments","this","super","console","window","document","localStorage","module","global"],c=[].concat(r,t,s) -;function o(e){return l("(?=",e,")")}function l(...e){return e.map((e=>{ -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return b=>{ -const g=e,d={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/, -isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,t=e.input[a] -;"<"!==t?">"===t&&(((e,{after:n})=>{const a="",B={ -match:[/const|var|let/,/\s+/,g,/\s*/,/=\s*/,o(C)],className:{1:"keyword", -3:"title.function"},contains:[w]};return{name:"Javascript", -aliases:["js","jsx","mjs","cjs"],keywords:u,exports:{PARAMS_CONTAINS:S}, -illegal:/#(?![$_A-z])/,contains:[b.SHEBANG({label:"shebang",binary:"node", -relevance:5}),{label:"use_strict",className:"meta",relevance:10, -begin:/^\s*['"]use (strict|asm)['"]/ -},b.APOS_STRING_MODE,b.QUOTE_STRING_MODE,N,f,A,v,y,O,{className:"attr", -begin:g+o(":"),relevance:0},B,{ -begin:"("+b.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", -keywords:"return throw case",relevance:0,contains:[v,b.REGEXP_MODE,{ -className:"function",begin:C,returnBegin:!0,end:"\\s*=>",contains:[{ -className:"params",variants:[{begin:b.UNDERSCORE_IDENT_RE,relevance:0},{ -className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, -excludeEnd:!0,keywords:u,contains:S}]}]},{begin:/,/,relevance:0},{match:/\s+/, -relevance:0},{variants:[{begin:"<>",end:""},{begin:d.begin, -"on:begin":d.isTrulyOpeningTag,end:d.end}],subLanguage:"xml",contains:[{ -begin:d.begin,end:d.end,skip:!0,contains:["self"]}]}]},I,{ -beginKeywords:"while if switch catch for"},{ -begin:"\\b(?!function)"+b.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", -returnBegin:!0,label:"func.def",contains:[w,b.inherit(b.TITLE_MODE,{begin:g, -className:"title.function"})]},{match:/\.\.\./,relevance:0},M,{match:"\\$"+g, -relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, -contains:[w]},T,{relevance:0,match:/\b[A-Z][A-Z_]+\b/, -className:"variable.constant"},R,k,{match:/\$[(.]/}]}}})());hljs.registerLanguage("c",(()=>{"use strict";function e(e){ -return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?:",e,")?") -}return n=>{const t=n.COMMENT("//","$",{contains:[{begin:/\\\n/}] -}),s="[a-zA-Z_]\\w*::",r="(decltype\\(auto\\)|"+e(s)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",a={ -className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ -match:/\batomic_[a-z]{3,6}\b/}]},i={className:"string",variants:[{ -begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[n.BACKSLASH_ESCAPE]},{ -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", -end:"'",illegal:"."},n.END_SAME_AS_BEGIN({ -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ -className:"number",variants:[{begin:"\\b(0b[01']+)"},{ -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" -},{ -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" -}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ -keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" -},contains:[{begin:/\\\n/,relevance:0},n.inherit(i,{className:"string"}),{ -className:"string",begin:/<.*?>/},t,n.C_BLOCK_COMMENT_MODE]},o={ -className:"title",begin:e(s)+n.IDENT_RE,relevance:0 -},d=e(s)+n.IDENT_RE+"\\s*\\(",u={ -keyword:["asm","auto","break","case","const","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","static","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], -type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","complex","bool","imaginary"], -literal:"true false NULL", -built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" -},g=[c,a,t,n.C_BLOCK_COMMENT_MODE,l,i],m={variants:[{begin:/=/,end:/;/},{ -begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], -keywords:u,contains:g.concat([{begin:/\(/,end:/\)/,keywords:u, -contains:g.concat(["self"]),relevance:0}]),relevance:0},_={ -begin:"("+r+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, -keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", -keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[n.inherit(o,{ -className:"title.function"})],relevance:0},{relevance:0,match:/,/},{ -className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, -contains:[t,n.C_BLOCK_COMMENT_MODE,i,l,a,{begin:/\(/,end:/\)/,keywords:u, -relevance:0,contains:["self",t,n.C_BLOCK_COMMENT_MODE,i,l,a]}] -},a,t,n.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u, -disableAutodetect:!0,illegal:"=]/,contains:[{ -beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{preprocessor:c, -strings:i,keywords:u}}}})());hljs.registerLanguage("swift",(()=>{"use strict";function e(e){ -return e?"string"==typeof e?e:e.source:null}function a(e){return t("(?=",e,")")} -function t(...a){return a.map((a=>e(a))).join("")}function n(...a){ -return"("+((e=>{const a=e[e.length-1] -;return"object"==typeof a&&a.constructor===Object?(e.splice(e.length-1,1),a):{} -})(a).capture?"":"?:")+a.map((a=>e(a))).join("|")+")"} -const i=e=>t(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["actor","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],p=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],F=n(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),d=n(F,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=t(F,d,"*"),h=n(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=n(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=t(h,f,"*"),y=t(/[A-Z]/,f,"*"),g=["autoclosure",t(/convention\(/,n("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",t(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] -;return e=>{const F={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{ -contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],A={match:[/\./,n(...s,...u)], -className:{2:"keyword"}},N={match:t(/\./,n(...r)),relevance:0 -},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),D={variants:[{ -className:"keyword", -match:n(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},k={ -$pattern:n(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[A,N,D],_=[{ -match:t(/\./,n(...p)),relevance:0},{className:"built_in", -match:t(/\b/,n(...p),/(?=\()/)}],S={match:/->/,relevance:0},M=[S,{ -className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${d})+`}] -}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{ -match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ -match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ -match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},L=(e="")=>({ -className:"subst",variants:[{match:t(/\\/,e,/[0\\tnr"']/)},{ -match:t(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),O=(e="")=>({className:"subst", -match:t(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),T=(e="")=>({className:"subst", -label:"interpol",begin:t(/\\/,e,/\(/),end:/\)/}),$=(e="")=>({begin:t(e,/"""/), -end:t(/"""/,e),contains:[L(e),O(e),T(e)]}),j=(e="")=>({begin:t(e,/"/), -end:t(/"/,e),contains:[L(e),T(e)]}),P={className:"string", -variants:[$(),$("#"),$("##"),$("###"),j(),j("#"),j("##"),j("###")]},K={ -match:t(/`/,w,/`/)},z=[K,{className:"variable",match:/\$\d+/},{ -className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/, -className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E, -contains:[...M,I,P]}]}},{className:"keyword",match:t(/@/,n(...g))},{ -className:"meta",match:t(/@/,w)}],U={match:a(/\b[A-Z]/),relevance:0,contains:[{ -className:"type", -match:t(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+") -},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{ -match:/\.\.\./,relevance:0},{match:t(/\s+&\s+/,a(y)),relevance:0}]},Z={ -begin://,keywords:k,contains:[...v,...B,...q,S,U]};U.contains.push(Z) -;const V={begin:/\(/,end:/\)/,relevance:0,keywords:k,contains:["self",{ -match:t(w,/\s*:/),keywords:"_|0",relevance:0 -},...v,...B,..._,...M,I,P,...z,...q,U]},W={begin://,contains:[...v,U] -},G={begin:/\(/,end:/\)/,keywords:k,contains:[{ -begin:n(a(t(w,/\s*:/)),a(t(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,contains:[{ -className:"keyword",match:/\b_\b/},{className:"params",match:w}] -},...v,...B,...M,I,P,...q,U,V],endsParent:!0,illegal:/["']/},R={ -match:[/func/,/\s+/,n(K.match,w,b)],className:{1:"keyword",3:"title.function"}, -contains:[W,G,F],illegal:[/\[/,/%/]},X={ -match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, -contains:[W,G,F],illegal:/\[|%/},H={match:[/operator/,/\s+/,b],className:{ -1:"keyword",3:"title"}},J={begin:[/precedencegroup/,/\s+/,y],className:{ -1:"keyword",3:"title"},contains:[U],keywords:[...l,...o],end:/}/} -;for(const e of P.variants){const a=e.contains.find((e=>"interpol"===e.label)) -;a.keywords=k;const t=[...B,..._,...M,I,P,...z];a.contains=[...t,{begin:/\(/, -end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:k, -contains:[...v,R,X,{beginKeywords:"struct protocol class extension enum actor", -end:"\\{",excludeEnd:!0,keywords:k,contains:[e.inherit(e.TITLE_MODE,{ -className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B] -},H,J,{beginKeywords:"import",end:/$/,contains:[...v],relevance:0 -},...B,..._,...M,I,P,...z,...q,U,V]}}})()); \ No newline at end of file diff --git a/doc/api/static-assets/play_button.svg b/doc/api/static-assets/play_button.svg deleted file mode 100644 index c39a2f4..0000000 --- a/doc/api/static-assets/play_button.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/doc/api/static-assets/readme.md b/doc/api/static-assets/readme.md deleted file mode 100644 index 357c11c..0000000 --- a/doc/api/static-assets/readme.md +++ /dev/null @@ -1,22 +0,0 @@ -# highlight.js - -Generated from https://highlightjs.org/download/ on 2021-07-13 - -**Included languages:** - -* bash -* c -* css -* dart -* diff -* html, xml -* java -* javascript -* json -* kotlin -* markdown -* objective-c -* plaintext -* shell -* swift -* yaml diff --git a/doc/api/static-assets/script.js b/doc/api/static-assets/script.js deleted file mode 100644 index e88f030..0000000 --- a/doc/api/static-assets/script.js +++ /dev/null @@ -1,501 +0,0 @@ -/* - * - * Update script.js versions in all lib/templates when modifying this file! - * - */ -function initSideNav() { - const leftNavToggle = document.getElementById('sidenav-left-toggle'); - const leftDrawer = document.querySelector('.sidebar-offcanvas-left'); - const overlay = document.getElementById('overlay-under-drawer'); - - function toggleBoth() { - if (leftDrawer) { - leftDrawer.classList.toggle('active'); - } - - if (overlay) { - overlay.classList.toggle('active'); - } - } - - if (overlay) { - overlay.addEventListener('click', toggleBoth); - } - - if (leftNavToggle) { - leftNavToggle.addEventListener('click', toggleBoth); - } -} - -function saveLeftScroll() { - const leftSidebar = document.getElementById('dartdoc-sidebar-left'); - sessionStorage.setItem('dartdoc-sidebar-left-scrollt' + window.location.pathname, leftSidebar.scrollTop.toString()); - sessionStorage.setItem('dartdoc-sidebar-left-scrolll' + window.location.pathname, leftSidebar.scrollLeft.toString()); -} - -function saveMainContentScroll() { - const mainContent = document.getElementById('dartdoc-main-content'); - sessionStorage.setItem('dartdoc-main-content-scrollt' + window.location.pathname, mainContent.scrollTop.toString()); - sessionStorage.setItem('dartdoc-main-content-scrolll' + window.location.pathname, mainContent.scrollLeft.toString()); -} - -function saveRightScroll() { - const rightSidebar = document.getElementById('dartdoc-sidebar-right'); - sessionStorage.setItem('dartdoc-sidebar-right-scrollt' + window.location.pathname, rightSidebar.scrollTop.toString()); - sessionStorage.setItem('dartdoc-sidebar-right-scrolll' + window.location.pathname, rightSidebar.scrollLeft.toString()); -} - -function restoreScrolls() { - const leftSidebar = document.getElementById('dartdoc-sidebar-left'); - const mainContent = document.getElementById('dartdoc-main-content'); - const rightSidebar = document.getElementById('dartdoc-sidebar-right'); - - try { - const leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll' + window.location.pathname); - const leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt' + window.location.pathname); - - const mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll' + window.location.pathname); - const mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt' + window.location.pathname); - - const rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll' + window.location.pathname); - const rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt' + window.location.pathname); - - leftSidebar.scrollTo(parseFloat(leftSidebarX), parseFloat(leftSidebarY)); - mainContent.scrollTo(parseFloat(mainContentX), parseFloat(mainContentY)); - rightSidebar.scrollTo(parseFloat(rightSidebarX), parseFloat(rightSidebarY)); - } finally { - // Set visibility to visible after scroll to prevent the brief appearance of the - // panel in the wrong position. - leftSidebar.style.visibility = 'visible'; - mainContent.style.visibility = 'visible'; - rightSidebar.style.visibility = 'visible'; - } -} - -function initScrollSave() { - const leftSidebar = document.getElementById('dartdoc-sidebar-left'); - const mainContent = document.getElementById('dartdoc-main-content'); - const rightSidebar = document.getElementById('dartdoc-sidebar-right'); - - leftSidebar.addEventListener("scroll", saveLeftScroll, true); - mainContent.addEventListener("scroll", saveMainContentScroll, true); - rightSidebar.addEventListener("scroll", saveRightScroll, true); -} - -const weights = { - 'library' : 2, - 'class' : 2, - 'mixin' : 3, - 'extension' : 3, - 'typedef' : 3, - 'method' : 4, - 'accessor' : 4, - 'operator' : 4, - 'constant' : 4, - 'property' : 4, - 'constructor' : 4 -}; - -function findMatches(index, query) { - if (query === '') { - return []; - } - - const allMatches = []; - - index.forEach(element => { - function score(value) { - value -= element.overriddenDepth * 10; - const weightFactor = weights[element.type] || 4; - allMatches.push({element: element, score: (value / weightFactor) >> 0}); - } - - const name = element.name; - const qualifiedName = element.qualifiedName; - const lowerName = name.toLowerCase(); - const lowerQualifiedName = qualifiedName.toLowerCase(); - const lowerQuery = query.toLowerCase(); - - if (name === query || qualifiedName === query || name === `dart:${query}`) { - score(2000); - } else if (lowerName === `dart:${lowerQuery}`) { - score(1800); - } else if (lowerName === lowerQuery || lowerQualifiedName === lowerQuery) { - score(1700); - } else if (query.length > 1) { - if (name.startsWith(query) || qualifiedName.startsWith(query)) { - score(750); - } else if (lowerName.startsWith(lowerQuery) || lowerQualifiedName.startsWith(lowerQuery)) { - score(650); - } else if (name.includes(query) || qualifiedName.includes(query)) { - score(500); - } else if (lowerName.includes(lowerQuery) || lowerQualifiedName.includes(query)) { - score(400); - } - } - }); - - allMatches.sort((a, b) => { - const x = b.score - a.score; - if (x === 0) { - return a.element.name.length - b.element.name.length; - } - return x; - }); - - const justElements = []; - - for (let i = 0; i < allMatches.length; i++) { - justElements.push(allMatches[i].element); - } - - return justElements; -} - -let baseHref = ''; - -const minLength = 1; -const suggestionLimit = 10; - -function initializeSearch(input, index) { - input.disabled = false; - input.setAttribute('placeholder', 'Search API Docs'); - - // Handle grabbing focus when the users types / outside of the input - document.addEventListener('keypress', (event) => { - if (event.code === 'Slash' && !(document.activeElement instanceof HTMLInputElement)) { - event.preventDefault(); - input.focus(); - } - }); - - // Prepare elements - - const parentForm = input.parentNode; - const wrapper = document.createElement('div'); - wrapper.classList.add('tt-wrapper'); - - parentForm.replaceChild(wrapper, input); - - const inputHint = document.createElement('input'); - inputHint.setAttribute('type', 'text'); - inputHint.setAttribute('autocomplete', 'off'); - inputHint.setAttribute('readonly', 'true'); - inputHint.setAttribute('spellcheck', 'false'); - inputHint.setAttribute('tabindex', '-1'); - inputHint.classList.add('typeahead', 'tt-hint'); - - wrapper.appendChild(inputHint); - - input.setAttribute('autocomplete', 'off'); - input.setAttribute('spellcheck', 'false'); - input.classList.add('tt-input'); - - wrapper.appendChild(input); - - const listBox = document.createElement('div'); - listBox.setAttribute('role', 'listbox'); - listBox.setAttribute('aria-expanded', 'false'); - listBox.style.display = 'none'; - listBox.classList.add('tt-menu'); - - const presentation = document.createElement('div'); - presentation.classList.add('tt-elements'); - - listBox.appendChild(presentation); - - wrapper.appendChild(listBox); - - // Set up various search functionality - - function highlight(text, query) { - query = query.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); - return text.replace(new RegExp(query, 'gi'), (matched) => { - return `${matched}`; - }); - } - - function createSuggestion(query, match) { - const suggestion = document.createElement('div'); - suggestion.setAttribute('data-href', match.href); - suggestion.classList.add('tt-suggestion'); - - const suggestionTitle = document.createElement('span'); - suggestionTitle.classList.add('tt-suggestion-title'); - suggestionTitle.innerHTML = highlight(`${match.name} ${match.type.toLowerCase()}`, query); - - suggestion.appendChild(suggestionTitle); - - if (match.enclosedBy) { - const fromLib = document.createElement('div'); - fromLib.classList.add('search-from-lib'); - fromLib.innerHTML = `from ${highlight(match.enclosedBy.name, query)}`; - - suggestion.appendChild(fromLib); - } - - suggestion.addEventListener('mousedown', event => { - event.preventDefault(); - }); - - suggestion.addEventListener('click', event => { - if (match.href) { - window.location = baseHref + match.href; - event.preventDefault(); - } - }); - - return suggestion; - } - - let storedValue = null; - let actualValue = ''; - let hint = null; - - let suggestionElements = []; - let suggestionsInfo = []; - let selectedElement = null; - - function setHint(value) { - hint = value; - inputHint.value = value || ''; - } - - function updateSuggestions(query, suggestions) { - suggestionsInfo = []; - suggestionElements = []; - presentation.textContent = ''; - - if (suggestions.length < minLength) { - setHint(null) - hideSuggestions(); - return; - } - - for (let i = 0; i < suggestions.length; i++) { - const element = createSuggestion(query, suggestions[i]); - suggestionElements.push(element); - presentation.appendChild(element); - } - - suggestionsInfo = suggestions; - - setHint(query + suggestions[0].name.slice(query.length)); - selectedElement = null; - - showSuggestions(); - } - - function handle(newValue, forceUpdate) { - if (actualValue === newValue && !forceUpdate) { - return; - } - - if (newValue === null || newValue.length === 0) { - updateSuggestions('', []); - return; - } - - const suggestions = findMatches(index, newValue).slice(0, suggestionLimit); - actualValue = newValue; - - updateSuggestions(newValue, suggestions); - } - - function showSuggestions() { - if (presentation.hasChildNodes()) { - listBox.style.display = 'block'; - listBox.setAttribute('aria-expanded', 'true'); - } - } - - function hideSuggestions() { - listBox.style.display = 'none'; - listBox.setAttribute('aria-expanded', 'false'); - } - - // Hook up events - - input.addEventListener('focus', () => { - handle(input.value, true); - }); - - input.addEventListener('blur', () => { - selectedElement = null; - if (storedValue !== null) { - input.value = storedValue; - storedValue = null; - } - hideSuggestions(); - setHint(null); - }); - - input.addEventListener('input', event => { - handle(event.target.value); - }); - - input.addEventListener('keydown', event => { - if (suggestionElements.length === 0) { - return; - } - - if (event.code === 'Enter') { - const selectingElement = selectedElement || 0; - const href = suggestionElements[selectingElement].dataset.href; - if (href) { - window.location = baseHref + href; - } - return; - } - - if (event.code === 'Tab') { - if (selectedElement === null) { - // The user wants to fill the field with the hint - if (hint !== null) { - input.value = hint; - handle(hint); - event.preventDefault(); - } - } else { - // The user wants to fill the input field with their currently selected suggestion - handle(suggestionsInfo[selectedElement].name); - storedValue = null; - selectedElement = null; - event.preventDefault(); - } - return; - } - - const lastIndex = suggestionElements.length - 1; - const previousSelectedElement = selectedElement; - - if (event.code === 'ArrowUp') { - if (selectedElement === null) { - selectedElement = lastIndex; - } else if (selectedElement === 0) { - selectedElement = null; - } else { - selectedElement--; - } - } else if (event.code === 'ArrowDown') { - if (selectedElement === null) { - selectedElement = 0; - } else if (selectedElement === lastIndex) { - selectedElement = null; - } else { - selectedElement++; - } - } else { - if (storedValue !== null) { - storedValue = null; - handle(input.value); - } - return; - } - - if (previousSelectedElement !== null) { - suggestionElements[previousSelectedElement].classList.remove('tt-cursor'); - } - - if (selectedElement !== null) { - const selected = suggestionElements[selectedElement]; - selected.classList.add('tt-cursor'); - - // Guarantee the selected element is visible - if (selectedElement === 0) { - listBox.scrollTop = 0; - } else if (selectedElement === lastIndex) { - listBox.scrollTop = listBox.scrollHeight; - } else { - const offsetTop = selected.offsetTop; - const parentOffsetHeight = listBox.offsetHeight; - if (offsetTop < parentOffsetHeight || parentOffsetHeight < (offsetTop + selected.offsetHeight)) { - selected.scrollIntoView({behavior: 'auto', block: 'nearest'}); - } - } - - if (storedValue === null) { - // Store the actual input value to display their currently selected item - storedValue = input.value; - } - input.value = suggestionsInfo[selectedElement].name; - setHint(''); - } else if (storedValue !== null && previousSelectedElement !== null) { - // They are moving back to the input field, so return the stored value - input.value = storedValue; - setHint(storedValue + suggestionsInfo[0].name.slice(storedValue.length)); - storedValue = null; - } - - event.preventDefault(); - }); -} - -document.addEventListener('DOMContentLoaded', () => { - // Place this first so that unexpected exceptions in other JavaScript do not block page visibility. - restoreScrolls(); - hljs.highlightAll(); - initSideNav(); - initScrollSave(); - - const searchBox = document.getElementById('search-box'); - const searchBody = document.getElementById('search-body'); - const searchSidebar = document.getElementById('search-sidebar'); - - if (document.body.getAttribute('data-using-base-href') === 'false') { - // If dartdoc did not add a base-href tag, we will need to add the relative - // path ourselves. - baseHref = document.body.getAttribute('data-base-href'); - } - - function disableSearch() { - console.log('Could not activate search functionality.'); - if (searchBox) { - searchBox.placeholder = 'Failed to initialize search'; - } - - if (searchBody) { - searchBody.placeholder = 'Failed to initialize search'; - } - - if (searchSidebar) { - searchSidebar.placeholder = 'Failed to initialize search'; - } - } - - if ('fetch' in window) { - fetch(baseHref + 'index.json', {method: 'GET'}) - .then(response => response.json()) - .then(index => { - // Handle if the user specified a `search` parameter in the URL - if ('URLSearchParams' in window) { - const search = new URLSearchParams(window.location.search).get('search'); - if (search) { - const matches = findMatches(search); - if (matches.length !== 0) { - window.location = baseHref + matches[0].href; - return; - } - } - } - - // Initialize all three search fields - if (searchBox) { - initializeSearch(searchBox, index); - } - - if (searchBody) { - initializeSearch(searchBody, index); - } - - if (searchSidebar) { - initializeSearch(searchSidebar, index); - } - }) - .catch(() => { - disableSearch(); - }); - } else { - disableSearch(); - } -}); diff --git a/doc/api/static-assets/styles.css b/doc/api/static-assets/styles.css deleted file mode 100644 index 7ea04df..0000000 --- a/doc/api/static-assets/styles.css +++ /dev/null @@ -1,1022 +0,0 @@ -/* - * - * Update styles.css versions in all lib/templates when modifying this file! - * - */ - -/* Palette generated by Material Palette - materialpalette.com/blue/cyan */ - -.dark-primary-color { background: #1976D2; } -.default-primary-color { background: #2196F3; } -.light-primary-color { background: #BBDEFB; } -.text-primary-color { color: #FFFFFF; } -.accent-color { background: #00BCD4; } -.primary-text-color { color: #212121; } -.secondary-text-color { color: #727272; } -.divider-color { border-color: #B6B6B6; } - -/* for layout */ -html, -body { - margin: 0; - padding: 0; - height: 100%; - width: 100%; - overflow: hidden; - box-sizing: border-box; -} - -*, *:before, *:after { - box-sizing: inherit; -} - -body { - display: flex; - flex-direction: column; - -webkit-overflow-scrolling: touch; -} - -header { - flex: 0 0 50px; - display: flex; - flex-direction: row; - align-items: center; - padding-left: 30px; -} - -header ol { - list-style: none; - margin: 0; - padding: 0; -} - -header ol li { - display: inline; -} - -header form { - display: flex; - flex: 1; - justify-content: flex-end; - padding-right: 30px; -} - -header#header-search-sidebar { - height: 50px; - margin-bottom: 25px; -} - -footer { - flex: 0 0 16px; - text-align: center; - padding: 16px 20px; -} - -main { - flex: 1; - display: flex; - flex-direction: row; - padding: 20px; - min-height: 0; -} - -.sidebar-offcanvas-left { - flex: 0 1 230px; - order: 1; - overflow-y: scroll; - padding: 20px 0 15px 30px; - margin: 5px 20px 0 0; - visibility: hidden; /* shown by Javascript after scroll position restore */ -} - -::-webkit-scrollbar-button{ display: none; height: 13px; border-radius: 0px; background-color: #AAA; } -::-webkit-scrollbar-button:hover{ background-color: #AAA; } -::-webkit-scrollbar-thumb{ background-color: #CCC; } -::-webkit-scrollbar-thumb:hover{ background-color: #CCC; } -::-webkit-scrollbar{ width: 4px; } - -.main-content::-webkit-scrollbar{ width: 8px; } - -.main-content { - flex: 1; - order: 2; - overflow-y: scroll; - padding: 10px 20px 0 20px; - visibility: hidden; /* shown by Javascript after scroll position restore */ -} - -.sidebar-offcanvas-right { - flex: 0 1 12em; - order: 3; - overflow-y: scroll; - padding: 20px 15px 15px 15px; - margin-top: 5px; - margin-right: 20px; - visibility: hidden; /* shown by Javascript after scroll position restore */ -} -/* end for layout */ - -body { - -webkit-text-size-adjust: 100%; - overflow-x: hidden; - font-family: Roboto, sans-serif; - font-size: 16px; - line-height: 1.42857143; - color: #111111; - background-color: #fff; -} - -/* some of this is to reset bootstrap */ -nav.navbar { - background-color: inherit; - min-height: 50px; - border: 0; -} - -@media (max-width: 768px) { - .hidden-xs { - display: none !important; - } -} - -@media (min-width: 769px) { - .hidden-l { - display: none !important; - } -} - -nav.navbar .row { - padding-top: 8px; -} - -nav .container { - white-space: nowrap; -} - -header { - background-color: #eeeeee; - box-shadow: 0 3px 5px rgba(0,0,0,0.1); -} - -header.header-fixed nav.navbar-fixed-top { - box-shadow: 0 3px 5px rgba(0,0,0,0.1); -} - -header.container-fluid { - padding: 0; -} - -header .masthead { - padding-top: 64px; -} - -header .contents { - padding: 0; -} - -@media screen and (max-width:768px) { - header .contents { - padding-left: 15px; - padding-right: 15px; - } -} - -a { - text-decoration: none; -} - -.body { - margin-top: 90px; -} - -section { - margin-bottom: 36px; -} - -dl { - margin: 0; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: Roboto, sans-serif; - font-weight: 400; - margin-top: 1.5em; - color: #111111; -} - -h1.title { - overflow: hidden; - text-overflow: ellipsis; -} - -h1 { - font-size: 37px; - margin-top: 0; - margin-bottom: 0.67em; -} - -h2 { - font-size: 28px; -} - -h5 { - font-size: 16px; -} - -.subtitle { - font-size: 17px; - min-height: 1.4em; -} - -.title-description .subtitle { - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; -} - -p { - margin-bottom: 1em; - margin-top: 0; -} - -a { - color: #0175C2; -} - -a:hover { - color: #13B9FD; -} - -pre.prettyprint { - font-family: 'Roboto Mono', Menlo, monospace; - color: black; - border-radius: 0; - font-size: 15px; - word-wrap: normal; - line-height: 1.4; - border: 0; - margin: 16px 0 16px 0; - padding: 8px; -} - -pre code { - white-space: pre; - word-wrap: initial; - font-size: 100% -} - -.fixed { - white-space: pre; -} - -pre { - border: 1px solid #ddd; - background-color: #eee; - font-size: 14px; -} - -code { - font-family: 'Roboto Mono', Menlo, monospace; - /* overriding bootstrap */ - color: inherit; - padding: 0.2em 0.4em; - font-size: 85%; - background-color: rgba(27,31,35,0.05); - border-radius: 3px; -} - -@media(max-width: 768px) { - nav .container { - width: 100% - } - - h1 { - font-size: 24px; - } - - pre { - margin: 16px 0; - } -} - -@media (min-width: 768px) { - ul.subnav li { - font-size: 17px; - } -} - -header h1 { - font-weight: 400; - margin-bottom: 16px; -} - -header a, -header p, -header li { - color: #111111; -} - -header a:hover { - color: #0175C2; -} - -header h1 .kind { - color: #555; -} - -dt { - font-weight: normal; -} - -dd { - color: #212121; - margin-bottom: 1em; - margin-left: 0; -} - -dd.callable, dd.constant, dd.property { - margin-bottom: 24px; -} - -dd p { - overflow-x: hidden; - text-overflow: ellipsis; - margin-bottom: 0; -} - -/* Enum values do not have their own pages; their full docs are presented on the - * enum class's page. */ -dt.constant + dd p { - margin-bottom: 1em; -} - -/* indents wrapped lines */ -section.summary dt { - margin-left: 24px; - text-indent: -24px; -} - -.dl-horizontal dd { - margin-left: initial; -} - -dl.dl-horizontal dt { - font-style: normal; - text-align: left; - color: #727272; - margin-right: 20px; - width: initial; -} - -dt .name { - font-weight: 500; -} - -dl dt.callable .name { - float: none; - width: auto; -} - -.parameter { - white-space: nowrap; -} - -.type-parameter { - white-space: nowrap; -} - -.multi-line-signature .type-parameter .parameter { - margin-left: 0px; - display: unset; -} - -.parameter-list { - display: table-cell; - margin-left: 10px; - list-style-type: none; -} - -.signature { - color: #727272; -} - -.signature a { - /* 50% mix of default-primary-color and primary-text-color. */ - color: #4674a2; -} - -.optional { - font-style: italic; -} - -.undocumented { - font-style: italic; -} - -.is-const { - font-style: italic; -} - -.deprecated { - text-decoration: line-through; -} - -.category.linked { - font-weight: bold; - opacity: 1; -} - -/* Colors for category based on categoryOrder in dartdoc_options.config. */ -.category.cp-0 { - background-color: #54b7c4 -} - -.category.cp-1 { - background-color: #54c47f -} - -.category.cp-2 { - background-color: #c4c254 -} - -.category.cp-3 { - background-color: #c49f54 -} - -.category.cp-4 { - background-color: #c45465 -} - -.category.cp-5 { - background-color: #c454c4 -} - -.category a { - color: white; -} - -.category { - padding: 2px 4px; - font-size: 12px; - border-radius: 4px; - background-color: #999; - text-transform: uppercase; - color: white; - opacity: .5; -} - -h1 .category { - vertical-align: middle; -} - -.feature { - display: inline-block; - background: white; - border: 1px solid #0175c2; - border-radius: 20px; - color: #0175c2; - - font-size: 12px; - padding: 1px 6px; - margin: 0 8px 0 0; -} - -a.feature:hover { - border-color: #13B9FD; -} - -h1 .feature { - vertical-align: middle; -} - -.source-link { - padding: 18px 4px; - vertical-align: middle; -} - -.source-link .material-icons { - font-size: 18px; -} - -@media (max-width: 768px) { - .source-link { - padding: 7px 2px; - font-size: 10px; - } -} - -#external-links { - float: right; -} - -.btn-group { - position: relative; - display: inline-flex; - vertical-align: middle; -} - -p.firstline { - font-weight: bold; -} - -footer { - color: #fff; - background-color: #111111; - width: 100%; -} - -footer p { - margin: 0; -} - -footer .no-break { - white-space: nowrap; -} - -footer .container, -footer .container-fluid { - padding-left: 0; - padding-right: 0; -} - -footer a, footer a:hover { - color: #fff; -} - -.markdown.desc { - max-width: 700px; -} - -.markdown h1 { - font-size: 24px; - margin-bottom: 8px; -} - -.markdown h2 { - font-size: 20px; - margin-top: 24px; - margin-bottom: 8px; -} - -.markdown h3 { - font-size: 18px; - margin-bottom: 8px; -} - -.markdown h4 { - font-size: 16px; - margin-bottom: 0; -} - -.markdown li p { - margin: 0; -} - -.gt-separated { - list-style: none; - padding: 0; - margin: 0; -} - -.gt-separated li { - display: inline-block; -} - -.gt-separated li:before { - background-image: url("data:image/svg+xml;utf8,"); - background-position: center; - content: "\00a0"; - margin: 0 6px 0 4px; - padding: 0 3px 0 0; -} - -.gt-separated.dark li:before { - background-image: url("data:image/svg+xml;utf8,"); -} - -.gt-separated li:first-child:before { - background-image: none; - content: ""; - margin: 0; - padding: 0; -} - -/* The slug line under a declaration for things like "const", "read-only", etc. */ -.features { - font-style: italic; - color: #727272; -} - -.multi-line-signature { - font-size: 17px; - color: #727272; -} - -.multi-line-signature .parameter { - margin-left: 24px; - display: block; -} - -.breadcrumbs { - padding: 0; - margin: 8px 0 8px 0; - white-space: nowrap; - line-height: 1; -} - -@media screen and (min-width: 768px) { - nav ol.breadcrumbs { - float: left; - } -} - -@media screen and (max-width: 768px) { - .breadcrumbs { - margin: 0 0 24px 0; - overflow-x: hidden; - } -} - -.self-crumb { - color: #555; -} - -.self-name { - color: #555; - display: none; -} - -.annotation-list { - list-style: none; - padding: 0; - display: inline; -} - -.comma-separated { - list-style: none; - padding: 0; - display: inline; -} - -.comma-separated li { - display: inline; -} - -.comma-separated li:after { - content: ", "; -} - -.comma-separated li:last-child:after { - content: ""; -} - -.end-with-period li:last-child:after { - content: "."; -} - -.container > section:first-child { - border: 0; -} - -.constructor-modifier { - font-style: italic; -} - -section.multi-line-signature div.parameters { - margin-left: 24px; -} - -/* subnav styles */ - -ul.subnav { - overflow: auto; - white-space: nowrap; - padding-left: 0; - min-height: 25px; -} - -ul.subnav::-webkit-scrollbar { - display: none; -} - -ul.subnav li { - display: inline-block; - text-transform: uppercase; -} - -ul.subnav li a { - color: #111; -} - -ul.subnav li { - margin-right: 24px; -} - -ul.subnav li:last-of-type { - margin-right: 0; -} - -@media(max-width: 768px) { - ul.subnav li { - margin-right: 16px; - } -} - -/* sidebar styles */ - -.sidebar ol { - list-style: none; - line-height: 22px; - margin-top: 0; - margin-bottom: 0; - padding: 0 0 15px 0; -} - -.sidebar h5 a, -.sidebar h5 a:hover { - color: #727272; -} - -.sidebar h5, -.sidebar ol li { - text-overflow: ellipsis; - overflow: hidden; - padding: 3px 0 3px 3px; -} - -.sidebar h5 { - color: #727272; - font-size: 18px; - margin: 0 0 22px 0; - padding-top: 0; -} - -.sidebar ol li.section-title { - font-size: 18px; - font-weight: normal; - text-transform: uppercase; - padding-top: 25px; -} - -.sidebar ol li.section-subtitle a { - color: inherit; -} - -.sidebar ol li.section-subtitle { - font-weight: 400; - text-transform: uppercase; -} - -.sidebar ol li.section-subitem { - margin-left: 12px; -} - -.sidebar ol li:first-child { - padding-top: 3px; - margin-top: 0; -} - -button { - padding: 0; -} - -#sidenav-left-toggle { - display: none; - vertical-align: text-bottom; - padding: 0; -} - -/* left-nav disappears, and can transition in from the left */ -@media screen and (max-width:768px) { - #sidenav-left-toggle { - display: inline; - background: no-repeat url("data:image/svg+xml;utf8,"); - background-position: center; - width: 24px; - height: 24px; - border: none; - margin-right: 24px; - } - - #overlay-under-drawer.active { - opacity: 0.4; - height: 100%; - z-index: 1999; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: black; - display: block; - } - - .sidebar-offcanvas-left { - left: -100%; - position: fixed; - -webkit-transition:all .25s ease-out; - -o-transition:all .25s ease-out; - transition:all .25s ease-out; - z-index: 2000; - top: 0; - width: 280px; /* works all the way down to an iphone 4 */ - height: 90%; - background-color: white; - overflow-y: scroll; /* TODO: how to hide scroll bars? */ - padding: 10px; - margin: 10px 10px; - box-shadow: 5px 5px 5px 5px #444444; - visibility: hidden; /* shown by Javascript after scroll position restore */ - } - - ol#sidebar-nav { - font-size: 18px; - white-space: pre-line; - } - - .sidebar-offcanvas-left.active { - left: 0; /* this animates our drawer into the page */ - } - - .self-name { - display: inline-block; - } -} - -.sidebar-offcanvas-left h5 { - margin-bottom: 10px; -} - -.sidebar-offcanvas-left h5:last-of-type { - border: 0; - margin-bottom: 25px; -} - -/* the right nav disappears out of view when the window shrinks */ -@media screen and (max-width: 992px) { - .sidebar-offcanvas-right { - display: none; - } -} - -#overlay-under-drawer { - display: none; -} - -/* find-as-you-type search box */ - -/* override bootstrap defaults */ -.form-control { - border-radius: 0; - border: 0; -} - -@media screen and (max-width: 768px) { - form.search { - display: none; - } -} - -.typeahead, -.tt-query, -.tt-hint { - width: 200px; - height: 20px; - padding: 2px 7px 1px 7px; - line-height: 20px; - outline: none; -} - -.typeahead { - background-color: #fff; - border-radius: 2px; -} - -.tt-wrapper { - position: relative; - display: inline-block; -} - -.tt-input { - position: relative; - vertical-align: top; - background-color: transparent; -} - -.tt-query { - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.tt-hint { - position: absolute; - top: 0; - left: 0; - box-shadow: none; - background: none 0 0 / auto repeat scroll padding-box border-box rgb(255, 255, 255); - border-color: transparent; - color: #999; - border-width: 0; -} - -.navbar-right .tt-menu { - right:0; - left: inherit !important; - width: 422px; - max-height: 250px; - overflow-y: scroll; -} - -.tt-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 100; - font-size: 14px; - margin: 0; - padding: 8px 0; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2); - -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2); - box-shadow: 0 5px 10px rgba(0,0,0,.2); -} - -.tt-suggestion { - padding: 3px 20px; - color: #212121; -} - -.tt-suggestion:hover { - cursor: pointer; - color: #fff; - background-color: #0097cf; -} - -.tt-suggestion:hover .search-from-lib { - color: #ddd; -} - -.tt-suggestion.tt-cursor { - color: #fff; - background-color: #0097cf; -} - -.tt-suggestion.tt-cursor .search-from-lib { - color: #ddd; -} - -.tt-suggestion p { - margin: 0; -} - -.search-from-lib { - font-style: italic; - color: gray; -} - -.search-body { - border: 1px solid #7f7f7f; - max-width: 400px; - box-shadow: 3px 3px 5px rgba(0,0,0,0.1); -} - -section#setter { - border-top: 1px solid #ddd; - padding-top: 36px; -} - -li.inherited a { - opacity: 0.65; - font-style: italic; -} - -#instance-methods dt.inherited .name, -#instance-properties dt.inherited .name, -#operators dt.inherited .name { - font-weight: 300; - font-style: italic; -} - -#instance-methods dt.inherited .signature, -#instance-properties dt.inherited .signature, -#operators dt.inherited .signature { - font-weight: 300; -} - -@media print { - .subnav, .sidebar { - display:none; - } - - a[href]:after { - content:"" !important; - } -} diff --git a/lib/dcat.dart b/lib/dcat.dart index 7fc9d7e..68ab9ee 100644 --- a/lib/dcat.dart +++ b/lib/dcat.dart @@ -202,7 +202,7 @@ Future _copyStream( } } -// Returns the message (platform specific, if available) for an exception. +// Returns the message describing an error. String _getErrorMessage(Object e) { final String message; if (e is FileSystemException) { @@ -216,4 +216,4 @@ String _getErrorMessage(Object e) { message = '$e'; } return message; -} \ No newline at end of file +} diff --git a/pubspec.yaml b/pubspec.yaml index fa5e159..ccecf4f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,6 +2,8 @@ name: dcat description: Concatenate file(s) to standard output or file version: 1.0.0 homepage: https://github.com/ethauvin/dcat +repository: https://github.com/ethauvin/dcat +issue_tracker: https://github.com/ethauvin/dcat/issues environment: sdk: '>=2.14.3 <3.0.0' @@ -11,4 +13,4 @@ dev_dependencies: test: ^1.18.2 dependencies: args: ^2.3.0 - indent: ^2.0.0 \ No newline at end of file + indent: ^2.0.0