├── .github └── workflows │ └── jekyll.yml ├── .gitignore ├── CNAME ├── Gemfile ├── Gemfile.lock ├── README.md ├── _config.yml ├── _data └── menu.yml ├── _includes ├── footer.html ├── head.html └── menu.html ├── _layouts └── default.html ├── examples └── index.md ├── images ├── body-bg.png ├── highlight-bg.jpg ├── hr.png ├── octocat-icon.png ├── tar-gz-icon.png └── zip-icon.png ├── index.md ├── javascripts ├── validator.js └── vendor │ ├── codemirror-6.65.7-javascript.min.js │ ├── codemirror-6.65.7.min.js │ └── jquery-3.7.0.min.js ├── on_the_web └── index.md ├── params.json ├── stylesheets ├── print.css ├── pygment_trac.css ├── stylesheet.css └── vendor │ ├── codemirror-6.65.7-abbott.min.css │ └── codemirror-6.65.7.min.css └── validator └── index.md /.github/workflows/jekyll.yml: -------------------------------------------------------------------------------- 1 | # Sample workflow for building jekyll website 2 | name: Build With Jekyll 3 | 4 | on: 5 | # Runs on pushes targeting the default branch 6 | push: 7 | branches: ["main"] 8 | 9 | # Allows you to run this workflow manually from the Actions tab 10 | workflow_dispatch: 11 | 12 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 13 | permissions: 14 | contents: write 15 | 16 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 17 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 18 | concurrency: 19 | group: "pages" 20 | cancel-in-progress: false 21 | 22 | jobs: 23 | # Build job 24 | build: 25 | runs-on: ubuntu-latest 26 | steps: 27 | - name: Checkout 28 | uses: actions/checkout@v4 29 | - name: Setup 30 | uses: ruby/setup-ruby@v1 31 | with: 32 | ruby-version: '3.3.5' 33 | bundler-cache: true 34 | cache-version: 0 35 | - name: Build 36 | run: bundle exec jekyll build 37 | env: 38 | JEKYLL_ENV: production 39 | - name: Upload 40 | uses: actions/upload-artifact@v4 41 | with: 42 | name: site 43 | path: _site 44 | overwrite: true 45 | 46 | # Push job 47 | push: 48 | runs-on: ubuntu-latest 49 | needs: build 50 | steps: 51 | - name: Checkout 52 | uses: actions/checkout@v4 53 | with: 54 | ref: gh-pages 55 | - name: Delete 56 | run : rm -rf /tmp/site 57 | - name: Download 58 | uses: actions/download-artifact@v4 59 | with: 60 | name: site 61 | path: /tmp/site 62 | - name: Sync 63 | run: rsync -avh --delete --exclude .git /tmp/site/ . 64 | - name: Push 65 | run: | 66 | git status 67 | git add . 68 | git config --global user.name 'Deploy Bot' 69 | git config --global user.email 'deploy-bot@jsonlines.org' 70 | git commit --allow-empty -m 'Automated Deployment' 71 | git push 72 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Bundle generated folders 2 | .bundle 3 | vendor/bundle 4 | 5 | # Jekyll generated folders 6 | _site 7 | .sass-cache/ 8 | .jekyll-cache/ 9 | .jekyll-metadata 10 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | jsonlines.org -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "jekyll", "~> 4.3.3" 4 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.8.7) 5 | public_suffix (>= 2.0.2, < 7.0) 6 | bigdecimal (3.1.9) 7 | colorator (1.1.0) 8 | concurrent-ruby (1.3.5) 9 | em-websocket (0.5.3) 10 | eventmachine (>= 0.12.9) 11 | http_parser.rb (~> 0) 12 | eventmachine (1.2.7) 13 | ffi (1.17.2-arm64-darwin) 14 | ffi (1.17.2-x86_64-darwin) 15 | ffi (1.17.2-x86_64-linux-gnu) 16 | forwardable-extended (2.6.0) 17 | google-protobuf (4.31.0-arm64-darwin) 18 | bigdecimal 19 | rake (>= 13) 20 | google-protobuf (4.31.0-x86_64-darwin) 21 | bigdecimal 22 | rake (>= 13) 23 | google-protobuf (4.31.0-x86_64-linux-gnu) 24 | bigdecimal 25 | rake (>= 13) 26 | http_parser.rb (0.8.0) 27 | i18n (1.14.7) 28 | concurrent-ruby (~> 1.0) 29 | jekyll (4.3.4) 30 | addressable (~> 2.4) 31 | colorator (~> 1.0) 32 | em-websocket (~> 0.5) 33 | i18n (~> 1.0) 34 | jekyll-sass-converter (>= 2.0, < 4.0) 35 | jekyll-watch (~> 2.0) 36 | kramdown (~> 2.3, >= 2.3.1) 37 | kramdown-parser-gfm (~> 1.0) 38 | liquid (~> 4.0) 39 | mercenary (>= 0.3.6, < 0.5) 40 | pathutil (~> 0.9) 41 | rouge (>= 3.0, < 5.0) 42 | safe_yaml (~> 1.0) 43 | terminal-table (>= 1.8, < 4.0) 44 | webrick (~> 1.7) 45 | jekyll-sass-converter (3.1.0) 46 | sass-embedded (~> 1.75) 47 | jekyll-watch (2.2.1) 48 | listen (~> 3.0) 49 | kramdown (2.5.1) 50 | rexml (>= 3.3.9) 51 | kramdown-parser-gfm (1.1.0) 52 | kramdown (~> 2.0) 53 | liquid (4.0.4) 54 | listen (3.9.0) 55 | rb-fsevent (~> 0.10, >= 0.10.3) 56 | rb-inotify (~> 0.9, >= 0.9.10) 57 | mercenary (0.4.0) 58 | pathutil (0.16.2) 59 | forwardable-extended (~> 2.6) 60 | public_suffix (6.0.2) 61 | rake (13.2.1) 62 | rb-fsevent (0.11.2) 63 | rb-inotify (0.11.1) 64 | ffi (~> 1.0) 65 | rexml (3.4.1) 66 | rouge (4.5.2) 67 | safe_yaml (1.0.5) 68 | sass-embedded (1.89.0-arm64-darwin) 69 | google-protobuf (~> 4.31) 70 | sass-embedded (1.89.0-x86_64-darwin) 71 | google-protobuf (~> 4.31) 72 | sass-embedded (1.89.0-x86_64-linux-gnu) 73 | google-protobuf (~> 4.31) 74 | terminal-table (3.0.2) 75 | unicode-display_width (>= 1.1.1, < 3) 76 | unicode-display_width (2.6.0) 77 | webrick (1.9.1) 78 | 79 | PLATFORMS 80 | arm64-darwin-23 81 | x86_64-darwin-22 82 | x86_64-linux 83 | 84 | DEPENDENCIES 85 | jekyll (~> 4.3.3) 86 | 87 | BUNDLED WITH 88 | 2.3.26 89 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # jsonlines 2 | Documentation for the JSON Lines text file format 3 | 4 | Visit https://jsonlines.org 5 | 6 | ## Development 7 | 8 | ### Jekyll installation 9 | 10 | Follow steps: 11 | - https://jekyllrb.com/docs/installation/ 12 | - https://jekyllrb.com/docs 13 | 14 | ### Bundle installation 15 | 16 | ```shell 17 | bundle config set --local path 'vendor/bundle' 18 | bundle install 19 | ``` 20 | 21 | ### Build and serve the site 22 | 23 | ```shell 24 | # just build the website 25 | bundle exec jekyll build 26 | 27 | # build and serve the website on default port 28 | bundle exec jekyll serve 29 | ``` -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # Site settings 2 | # These are used to personalize your new site. If you look in the HTML files, 3 | # you will see them accessed via {{ site.title }}, {{ site.description }}, and so on. 4 | # 5 | # You can create any custom variable you would like, and they will be accessible 6 | # in the templates via {{ site.myvariable }}. 7 | 8 | title: JSON Lines 9 | description: >- 10 | This page describes the JSON Lines text format, also called newline-delimited JSON. 11 | JSON Lines is a convenient format for storing structured data that may be processed 12 | one record at a time. It works well with unix-style text processing tools and shell 13 | pipelines. It's a great format for log files. It's also a flexible format for passing 14 | messages between cooperating processes. 15 | baseurl: "" # the subpath of your site, e.g. /blog 16 | url: "https://jsonlines.org" # the base hostname & protocol for your site, e.g. http://example.com 17 | 18 | # Build settings 19 | 20 | # Disable warning related to https://sass-lang.com/d/slash-div 21 | sass: 22 | quiet_deps: true 23 | 24 | # Exclude from processing. 25 | # The following items will not be processed, by default. 26 | # Any item listed under the `exclude:` key here will be automatically added to 27 | # the internal "default list". 28 | # 29 | # Excluded items can be processed by explicitly listing the directories or 30 | # their entries' file path in the `include:` list. 31 | # 32 | exclude: 33 | - README.md 34 | # - .sass-cache/ 35 | # - .jekyll-cache/ 36 | # - gemfiles/ 37 | # - Gemfile 38 | # - Gemfile.lock 39 | # - node_modules/ 40 | # - vendor/bundle/ 41 | # - vendor/cache/ 42 | # - vendor/gems/ 43 | # - vendor/ruby/ 44 | -------------------------------------------------------------------------------- /_data/menu.yml: -------------------------------------------------------------------------------- 1 | items: 2 | - label: Home 3 | url: '/' 4 | - label: Examples 5 | url: '/examples/' 6 | - label: 'Validator' 7 | url: '/validator/' 8 | - label: 'On the web' 9 | url: '/on_the_web/' 10 | - label: 'json.org' 11 | url: 'https://json.org' 12 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /_includes/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | {%- for css in page.custom-css-list -%} 9 | 10 | {% endfor %} 11 | 14 | {%- for javascript in page.custom-javascript-list -%} 15 | 16 | {% endfor %} 17 | {%- if page.title != 'JSON Lines' -%}JSON Lines | {%- endif -%}{{ page.title }} 18 | 19 | -------------------------------------------------------------------------------- /_includes/menu.html: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% include head.html %} 4 | 5 |
6 |
7 |
8 |

JSON Lines

9 |

{% if page.subtitle %}{{ page.subtitle }}{% else %}{{ page.title }}{% endif %}

10 |
11 | {% include menu.html %} 12 |
13 |
14 | {{ content -}} 15 |
16 | {% include footer.html %} 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /examples/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Examples 4 | --- 5 | 6 |

7 | Better than CSV

8 | 9 |
["Name", "Session", "Score", "Completed"]
10 | ["Gilbert", "2013", 24, true]
11 | ["Alexa", "2013", 29, true]
12 | ["May", "2012B", 14, false]
13 | ["Deloise", "2012A", 19, true] 
14 | 
15 | 16 |

CSV seems so easy that many programmers have written code to generate it themselves, and almost every implementation is different. Handling broken CSV files is a common and frustrating task. CSV has no standard encoding, no standard column separator and multiple character escaping standards. String is the only type supported for cell values, so some programs attempt to guess the correct types.

17 | 18 |

JSON Lines handles tabular data cleanly and without ambiguity. Cells may use the standard JSON types.

19 | 20 |

The biggest missing piece is an import/export filter for popular spreadsheet programs so that non-programmers can use this format.

21 | 22 |

23 | Self-describing data

24 | 25 |
{"name": "Gilbert", "session": "2013", "score": 24, "completed": true}
26 | {"name": "Alexa", "session": "2013", "score": 29, "completed": true}
27 | {"name": "May", "session": "2012B", "score": 14, "completed": false}
28 | {"name": "Deloise", "session": "2012A", "score": 19, "completed": true} 
29 | 
30 | 31 |

JSON Lines enables applications to read objects line-by-line, with each line fully describing a JSON object. The example above contains the same data as the tabular example above, but allows applications to split files on newline boundaries for parallel loading, and eliminates any ambiguity if fields are omitted or re-ordered.

32 | 33 |

34 | Easy Nested Data

35 | 36 |
{"name": "Gilbert", "wins": [["straight", "7♣"], ["one pair", "10♥"]]}
37 | {"name": "Alexa", "wins": [["two pair", "4♠"], ["two pair", "9♠"]]}
38 | {"name": "May", "wins": []}
39 | {"name": "Deloise", "wins": [["three of a kind", "5♣"]]}
40 | 
41 | 42 | 43 |

JSON Lines' biggest strength is in handling lots of similar nested data structures. One .jsonl file is easier to work with than a directory full of XML files.

44 | 45 |

If you have large nested structures then reading the JSON Lines text directly isn't recommended. Use the "jq" tool to make viewing large structures easier:

46 | 47 |
grep pair winning_hands.jsonl | jq .
48 | 
49 | 50 |
{
51 |   "name": "Gilbert", 
52 |   "wins": [
53 |     [
54 |       "straight", 
55 |       "7♣"
56 |     ], 
57 |     [
58 |       "one pair", 
59 |       "10♥"
60 |     ]
61 |   ]
62 | }
63 | {
64 |   "name": "Alexa", 
65 |   "wins": [
66 |     [
67 |       "two pair", 
68 |       "4♠"
69 |     ], 
70 |     [
71 |       "two pair", 
72 |       "9♠"
73 |     ]
74 |   ]
75 | }
76 | 
77 |
78 | -------------------------------------------------------------------------------- /images/body-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wardi/jsonlines/8fa38e5881ed4ace16c7bdb048427e8710cf0405/images/body-bg.png -------------------------------------------------------------------------------- /images/highlight-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wardi/jsonlines/8fa38e5881ed4ace16c7bdb048427e8710cf0405/images/highlight-bg.jpg -------------------------------------------------------------------------------- /images/hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wardi/jsonlines/8fa38e5881ed4ace16c7bdb048427e8710cf0405/images/hr.png -------------------------------------------------------------------------------- /images/octocat-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wardi/jsonlines/8fa38e5881ed4ace16c7bdb048427e8710cf0405/images/octocat-icon.png -------------------------------------------------------------------------------- /images/tar-gz-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wardi/jsonlines/8fa38e5881ed4ace16c7bdb048427e8710cf0405/images/tar-gz-icon.png -------------------------------------------------------------------------------- /images/zip-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wardi/jsonlines/8fa38e5881ed4ace16c7bdb048427e8710cf0405/images/zip-icon.png -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: JSON Lines 4 | subtitle: Documentation for the JSON Lines text file format 5 | --- 6 | 7 |

8 | This page describes the JSON Lines text format, also called newline-delimited JSON. 9 | JSON Lines is a convenient format for storing structured data that may be processed 10 | one record at a time. It works well with unix-style text processing tools and shell 11 | pipelines. It's a great format for log files. It's also a flexible format for passing 12 | messages between cooperating processes. 13 |

14 |

15 | The JSON Lines format has three requirements: 16 |

17 |

18 | 19 | 1. UTF-8 Encoding 20 |

21 |

22 | JSON allows encoding Unicode strings with only ASCII escape sequences, however those 23 | escapes will be hard to read when viewed in a text editor. The author of the JSON Lines 24 | file may choose to escape characters to work with plain ASCII files. 25 |

26 |

27 | Encodings other than UTF-8 are very unlikely to be valid when decoded as UTF-8 so the chance 28 | of accidentally misinterpreting characters 29 | in JSON Lines files is low. 30 |

31 |

32 | Like the JSON standard 33 | a byte order mark (U+FEFF) must NOT be included. 34 |

35 |

36 | 37 | 2. Each Line is a Valid JSON Value 38 |

39 |

40 | The most common values will be objects or arrays, but any JSON value is permitted. 41 | e.g. null is a valid value but a blank line is not. 42 |

43 |

44 | See json.org for a definition of JSON values. 45 |

46 |

47 | 48 | 3. Line Separator is '\n' 49 |

50 |

51 | This means '\r\n' is also supported because surrounding white space is 52 | implicitly ignored when parsing JSON values. 53 |

54 |

55 | The last character in a file following the last JSON value may be a line separator. 56 | In this case the line separator does not indicate the start of another JSON value. 57 |

58 |

59 | 60 | Conventions 61 |

62 |

63 | JSON Lines files may be saved with the file extension .jsonl. 64 |

65 |

66 | Stream compressors like gzip or bzip2 are recommended for 67 | saving space, resulting in .jsonl.gz or .jsonl.bz2 files. 68 |

69 |

70 | MIME type may be application/jsonl, but this is not yet standardized; any help 71 | writing the RFC would be greatly appreciated (see issue). 72 |

73 |

74 | Text editing programs call the first line of a text file "line 1". The first value in a 75 | JSON Lines file should also be called "value 1". 76 |

77 | -------------------------------------------------------------------------------- /javascripts/validator.js: -------------------------------------------------------------------------------- 1 | /* VALIDATOR */ 2 | 3 | $(document).ready(() => { 4 | // CodeMirror editor 5 | let editor = CodeMirror.fromTextArea(jQuery('.validator textarea')[0], { 6 | lineNumbers: true, 7 | theme: 'abbott', 8 | mode: 'javascript', 9 | }); 10 | 11 | // clear button 12 | jQuery('.validator input[type="button"][value="clear"]').click(() => { 13 | editor.setValue(''); 14 | }); 15 | 16 | // validate button 17 | jQuery('.validator input[type="button"][value="validate"]').click(() => { 18 | let jsonl = editor.getValue(); 19 | let lines = jsonl.split('\n'); 20 | let errors = []; 21 | for (let i = 0; i < lines.length; i++) { 22 | let line = lines[i] 23 | if (i !== lines.length - 1 || lines[i] !== '') { 24 | try { 25 | JSON.parse(line); 26 | } catch (e) { 27 | if (e instanceof SyntaxError) { 28 | errors.push(`line ${i + 1}: error ${e}\n`); 29 | } else { 30 | throw e; 31 | } 32 | } 33 | } 34 | } 35 | 36 | let result = jQuery('.validator div.result ul'); 37 | result.empty(); 38 | if (0 < errors.length) { 39 | errors.forEach((error) => { 40 | result.append(`
  • ${error}
  • `); 41 | }); 42 | } else { 43 | result.append('valid jsonl') 44 | } 45 | }); 46 | }); 47 | -------------------------------------------------------------------------------- /javascripts/vendor/codemirror-6.65.7-javascript.min.js: -------------------------------------------------------------------------------- 1 | !function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(rt){"use strict";rt.defineMode("javascript",function(e,l){var t,r,O,P,f=e.indentUnit,N=l.statementIndent,U=l.jsonld,o=l.json||U,W=!1!==l.trackScope,u=l.typescript,B=l.wordCharacters||/[\w$\xa1-\uffff]/,F=(e=n("keyword a"),t=n("keyword b"),r=n("keyword c"),O=n("keyword d"),P=n("operator"),{if:n("if"),while:e,with:e,else:t,do:t,try:t,finally:t,return:O,break:O,continue:O,new:n("new"),delete:r,void:r,throw:r,debugger:n("debugger"),var:n("var"),const:n("var"),let:n("var"),function:n("function"),catch:n("catch"),for:n("for"),switch:n("switch"),case:n("case"),default:n("default"),in:P,typeof:P,instanceof:P,true:e={type:"atom",style:"atom"},false:e,null:e,undefined:e,NaN:e,Infinity:e,this:n("this"),class:n("class"),super:n("atom"),yield:r,export:n("export"),import:n("import"),extends:r,await:r});function n(e){return{type:e,style:"keyword"}}var H,D,G=/[+\-*&%=<>!?|~^@]/,J=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function i(e,t,r){return H=e,D=r,t}function d(e,t){var a,r=e.next();if('"'==r||"'"==r)return t.tokenize=(a=r,function(e,t){var r,n=!1;if(U&&"@"==e.peek()&&e.match(J))return t.tokenize=d,i("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=a||n);)n=!n&&"\\"==r;return n||(t.tokenize=d),i("string","string")}),t.tokenize(e,t);if("."==r&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return i("number","number");if("."==r&&e.match(".."))return i("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return i(r);if("="==r&&e.eat(">"))return i("=>","operator");if("0"==r&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return i("number","number");if(/\d/.test(r))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),i("number","number");if("/"==r)return e.eat("*")?(t.tokenize=K)(e,t):e.eat("/")?(e.skipToEnd(),i("comment","comment")):tt(e,t,1)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),i("regexp","string-2")):(e.eat("="),i("operator","operator",e.current()));if("`"==r)return(t.tokenize=L)(e,t);if("#"==r&&"!"==e.peek())return e.skipToEnd(),i("meta","meta");if("#"==r&&e.eatWhile(B))return i("variable","property");if("<"==r&&e.match("!--")||"-"==r&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),i("comment","comment");if(G.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-|&?]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),"?"==r&&e.eat(".")?i("."):i("operator","operator",e.current());if(B.test(r)){e.eatWhile(B);r=e.current();if("."!=t.lastType){if(F.propertyIsEnumerable(r))return i((t=F[r]).type,t.style,r);if("async"==r&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return i("async","keyword",r)}return i("variable","variable",r)}}function K(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=d;break}n="*"==r}return i("comment","comment")}function L(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=d;break}n=!n&&"\\"==r}return i("quasi","string-2",e.current())}function Q(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){!u||(n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r)))&&(r=n.index);for(var n,a=0,i=!1,o=r-1;0<=o;--o){var c=e.string.charAt(o),s="([{}])".indexOf(c);if(0<=s&&s<3){if(!a){++o;break}if(0==--a){"("==c&&(i=!0);break}}else if(3<=s&&s<6)++a;else if(B.test(c))i=!0;else if(/["'\/`]/.test(c))for(;;--o){if(0==o)return;if(e.string.charAt(o-1)==c&&"\\"!=e.string.charAt(o-2)){o--;break}}else if(i&&!a){++o;break}}i&&!a&&(t.fatArrowAt=o)}}var R={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function X(e,t,r,n,a,i){this.indented=e,this.column=t,this.type=r,this.prev=a,this.info=i,null!=n&&(this.align=n)}function Y(e,t,r,n,a){var i=e.cc;for(c.state=e,c.stream=a,c.marked=null,c.cc=i,c.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((i.length?i.pop():o?x:b)(r,n)){for(;i.length&&i[i.length-1].lex;)i.pop()();return c.marked?c.marked:"variable"==r&&function(e,t){if(W){for(var r=e.localVars;r;r=r.next)if(r.name==t)return 1;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return 1}}(e,n)?"variable-2":t}}var c={state:null,column:null,marked:null,cc:null};function s(){for(var e=arguments.length-1;0<=e;e--)c.cc.push(arguments[e])}function p(){return s.apply(null,arguments),!0}function Z(e,t){for(var r=t;r;r=r.next)if(r.name==e)return 1}function a(e){var t=c.state;if(c.marked="def",W){if(t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var r=function e(t,r){{var n;return r?r.block?(n=e(t,r.prev))?n==r.prev?r:new te(n,r.vars,!0):null:Z(t,r.vars)?r:new te(r.prev,new re(t,r.vars),!1):null}}(e,t.context);if(null!=r)return void(t.context=r)}else if(!Z(e,t.localVars))return void(t.localVars=new re(e,t.localVars));l.globalVars&&!Z(e,t.globalVars)&&(t.globalVars=new re(e,t.globalVars))}}function ee(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function te(e,t,r){this.prev=e,this.vars=t,this.block=r}function re(e,t){this.name=e,this.next=t}var ne=new re("this",new re("arguments",null));function m(){c.state.context=new te(c.state.context,c.state.localVars,!1),c.state.localVars=ne}function ae(){c.state.context=new te(c.state.context,c.state.localVars,!0),c.state.localVars=null}function k(){c.state.localVars=c.state.context.vars,c.state.context=c.state.context.prev}function v(n,a){function e(){var e=c.state,t=e.indented;if("stat"==e.lexical.type)t=e.lexical.indented;else for(var r=e.lexical;r&&")"==r.type&&r.align;r=r.prev)t=r.indented;e.lexical=new X(t,c.stream.column(),n,null,e.lexical,a)}return e.lex=!0,e}function y(){var e=c.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function w(r){return function e(t){return t==r?p():";"==r||"}"==t||")"==t||"]"==t?s():p(e)}}function b(e,t){return"var"==e?p(v("vardef",t),qe,w(";"),y):"keyword a"==e?p(v("form"),oe,b,y):"keyword b"==e?p(v("form"),b,y):"keyword d"==e?c.stream.match(/^\s*$/,!1)?p():p(v("stat"),g,w(";"),y):"debugger"==e?p(w(";")):"{"==e?p(v("}"),ae,be,y,k):";"==e?p():"if"==e?("else"==c.state.lexical.info&&c.state.cc[c.state.cc.length-1]==y&&c.state.cc.pop()(),p(v("form"),oe,b,y,Oe)):"function"==e?p(q):"for"==e?p(v("form"),ae,Pe,b,k,y):"class"==e||u&&"interface"==t?(c.marked="keyword",p(v("form","class"==e?e:t),Fe,y)):"variable"==e?u&&"declare"==t?(c.marked="keyword",p(b)):u&&("module"==t||"enum"==t||"type"==t)&&c.stream.match(/^\s*\w/,!1)?(c.marked="keyword","enum"==t?p(Ze):"type"==t?p(We,w("operator"),z,w(";")):p(v("form"),T,w("{"),v("}"),be,y,y)):u&&"namespace"==t?(c.marked="keyword",p(v("form"),x,b,y)):u&&"abstract"==t?(c.marked="keyword",p(b)):p(v("stat"),me):"switch"==e?p(v("form"),oe,w("{"),v("}","switch"),ae,be,y,y,k):"case"==e?p(x,w(":")):"default"==e?p(w(":")):"catch"==e?p(v("form"),m,ie,b,y,k):"export"==e?p(v("stat"),Ge,y):"import"==e?p(v("stat"),Ke,y):"async"==e?p(b):"@"==t?p(x,b):s(v("stat"),x,w(";"),y)}function ie(e){if("("==e)return p(S,w(")"))}function x(e,t){return ce(e,t,!1)}function h(e,t){return ce(e,t,!0)}function oe(e){return"("!=e?s():p(v(")"),g,w(")"),y)}function ce(e,t,r){if(c.state.fatArrowAt==c.stream.start){var n=r?fe:le;if("("==e)return p(m,v(")"),V(S,")"),y,w("=>"),n,k);if("variable"==e)return s(m,T,w("=>"),n,k)}var a,n=r?M:j;return R.hasOwnProperty(e)?p(n):"function"==e?p(q,n):"class"==e||u&&"interface"==t?(c.marked="keyword",p(v("form"),Be,y)):"keyword c"==e||"async"==e?p(r?h:x):"("==e?p(v(")"),g,w(")"),y,n):"operator"==e||"spread"==e?p(r?h:x):"["==e?p(v("]"),Ye,y,n):"{"==e?we(ve,"}",null,n):"quasi"==e?s(se,n):"new"==e?p((a=r,function(e){return"."==e?p(a?pe:de):"variable"==e&&u?p(Ie,a?M:j):s(a?h:x)})):p()}function g(e){return e.match(/[;\}\)\],]/)?s():s(x)}function j(e,t){return","==e?p(g):M(e,t,!1)}function M(e,t,r){var n=0==r?j:M,a=0==r?x:h;return"=>"==e?p(m,r?fe:le,k):"operator"==e?/\+\+|--/.test(t)||u&&"!"==t?p(n):u&&"<"==t&&c.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?p(v(">"),V(z,">"),y,n):"?"==t?p(x,w(":"),a):p(a):"quasi"==e?s(se,n):";"!=e?"("==e?we(h,")","call",n):"."==e?p(ke,n):"["==e?p(v("]"),g,w("]"),y,n):u&&"as"==t?(c.marked="keyword",p(z,n)):"regexp"==e?(c.state.lastType=c.marked="operator",c.stream.backUp(c.stream.pos-c.stream.start-1),p(a)):void 0:void 0}function se(e,t){return"quasi"!=e?s():"${"!=t.slice(t.length-2)?p(se):p(g,ue)}function ue(e){if("}"==e)return c.marked="string-2",c.state.tokenize=L,p(se)}function le(e){return Q(c.stream,c.state),s("{"==e?b:x)}function fe(e){return Q(c.stream,c.state),s("{"==e?b:h)}function de(e,t){if("target"==t)return c.marked="keyword",p(j)}function pe(e,t){if("target"==t)return c.marked="keyword",p(M)}function me(e){return":"==e?p(y,b):s(j,w(";"),y)}function ke(e){if("variable"==e)return c.marked="property",p()}function ve(e,t){return"async"==e?(c.marked="property",p(ve)):"variable"!=e&&"keyword"!=c.style?"number"==e||"string"==e?(c.marked=U?"property":c.style+" property",p(A)):"jsonld-keyword"==e?p(A):u&&ee(t)?(c.marked="keyword",p(ve)):"["==e?p(x,E,w("]"),A):"spread"==e?p(h,A):"*"==t?(c.marked="keyword",p(ve)):":"==e?s(A):void 0:(c.marked="property","get"==t||"set"==t?p(ye):(u&&c.state.fatArrowAt==c.stream.start&&(e=c.stream.match(/^\s*:\s*/,!1))&&(c.state.fatArrowAt=c.stream.pos+e[0].length),p(A)))}function ye(e){return"variable"!=e?s(A):(c.marked="property",p(q))}function A(e){return":"==e?p(h):"("==e?s(q):void 0}function V(n,a,i){function o(e,t){var r;return(i?-1"),z):"quasi"==e?s(Ve,I):void 0}function je(e){if("=>"==e)return p(z)}function Me(e){return e.match(/[\}\)\]]/)?p():","==e||";"==e?p(Me):s(Ae,Me)}function Ae(e,t){return"variable"==e||"keyword"==c.style?(c.marked="property",p(Ae)):"?"==t||"number"==e||"string"==e?p(Ae):":"==e?p(z):"["==e?p(w("variable"),xe,w("]"),Ae):"("==e?s(C,Ae):e.match(/[;\}\)\],]/)?void 0:p()}function Ve(e,t){return"quasi"!=e?s():"${"!=t.slice(t.length-2)?p(Ve):p(z,Ee)}function Ee(e){if("}"==e)return c.marked="string-2",c.state.tokenize=L,p(Ve)}function ze(e,t){return"variable"==e&&c.stream.match(/^\s*[?:]/,!1)||"?"==t?p(ze):":"==e?p(z):"spread"==e?p(ze):s(z)}function I(e,t){return"<"==t?p(v(">"),V(z,">"),y,I):"|"==t||"."==e||"&"==t?p(z):"["==e?p(z,w("]"),I):"extends"==t||"implements"==t?(c.marked="keyword",p(z)):"?"==t?p(z,w(":"),z):void 0}function Ie(e,t){if("<"==t)return p(v(">"),V(z,">"),y,I)}function Te(){return s(z,$e)}function $e(e,t){if("="==t)return p(z)}function qe(e,t){return"enum"==t?(c.marked="keyword",p(Ze)):s(T,E,$,_e)}function T(e,t){return u&&ee(t)?(c.marked="keyword",p(T)):"variable"==e?(a(t),p()):"spread"==e?p(T):"["==e?we(Se,"]"):"{"==e?we(Ce,"}"):void 0}function Ce(e,t){return"variable"!=e||c.stream.match(/^\s*:/,!1)?("variable"==e&&(c.marked="property"),"spread"==e?p(T):"}"==e?s():"["==e?p(x,w("]"),w(":"),Ce):p(w(":"),T,$)):(a(t),p($))}function Se(){return s(T,$)}function $(e,t){if("="==t)return p(h)}function _e(e){if(","==e)return p(qe)}function Oe(e,t){if("keyword b"==e&&"else"==t)return p(v("form","else"),b,y)}function Pe(e,t){return"await"==t?p(Pe):"("==e?p(v(")"),Ne,y):void 0}function Ne(e){return"var"==e?p(qe,Ue):("variable"==e?p:s)(Ue)}function Ue(e,t){return")"==e?p():";"==e?p(Ue):"in"==t||"of"==t?(c.marked="keyword",p(x,Ue)):s(x,Ue)}function q(e,t){return"*"==t?(c.marked="keyword",p(q)):"variable"==e?(a(t),p(q)):"("==e?p(m,v(")"),V(S,")"),y,he,b,k):u&&"<"==t?p(v(">"),V(Te,">"),y,q):void 0}function C(e,t){return"*"==t?(c.marked="keyword",p(C)):"variable"==e?(a(t),p(C)):"("==e?p(m,v(")"),V(S,")"),y,he,k):u&&"<"==t?p(v(">"),V(Te,">"),y,C):void 0}function We(e,t){return"keyword"==e||"variable"==e?(c.marked="type",p(We)):"<"==t?p(v(">"),V(Te,">"),y):void 0}function S(e,t){return"@"==t&&p(x,S),"spread"==e?p(S):u&&ee(t)?(c.marked="keyword",p(S)):u&&"this"==e?p(E,$):s(T,E,$)}function Be(e,t){return("variable"==e?Fe:He)(e,t)}function Fe(e,t){if("variable"==e)return a(t),p(He)}function He(e,t){return"<"==t?p(v(">"),V(Te,">"),y,He):"extends"==t||"implements"==t||u&&","==e?("implements"==t&&(c.marked="keyword"),p(u?z:x,He)):"{"==e?p(v("}"),_,y):void 0}function _(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||u&&ee(t))&&c.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(c.marked="keyword",p(_)):"variable"==e||"keyword"==c.style?(c.marked="property",p(De,_)):"number"==e||"string"==e?p(De,_):"["==e?p(x,E,w("]"),De,_):"*"==t?(c.marked="keyword",p(_)):u&&"("==e?s(C,_):";"==e||","==e?p(_):"}"==e?p():"@"==t?p(x,_):void 0}function De(e,t){if("!"==t)return p(De);if("?"==t)return p(De);if(":"==e)return p(z,$);if("="==t)return p(h);e=c.state.lexical.prev;return s(e&&"interface"==e.info?C:q)}function Ge(e,t){return"*"==t?(c.marked="keyword",p(Xe,w(";"))):"default"==t?(c.marked="keyword",p(x,w(";"))):"{"==e?p(V(Je,"}"),Xe,w(";")):s(b)}function Je(e,t){return"as"==t?(c.marked="keyword",p(w("variable"))):"variable"==e?s(h,Je):void 0}function Ke(e){return"string"==e?p():"("==e?s(x):"."==e?s(j):s(Le,Qe,Xe)}function Le(e,t){return"{"==e?we(Le,"}"):("variable"==e&&a(t),"*"==t&&(c.marked="keyword"),p(Re))}function Qe(e){if(","==e)return p(Le,Qe)}function Re(e,t){if("as"==t)return c.marked="keyword",p(Le)}function Xe(e,t){if("from"==t)return c.marked="keyword",p(x)}function Ye(e){return"]"==e?p():s(V(h,"]"))}function Ze(){return s(v("form"),T,w("{"),v("}"),V(et,"}"),y,y)}function et(){return s(T,$)}function tt(e,t,r){return t.tokenize==d&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}return m.lex=ae.lex=!0,y.lex=k.lex=!0,{startState:function(e){e={tokenize:d,lastType:"sof",cc:[],lexical:new X((e||0)-f,0,"block",!1),localVars:l.localVars,context:l.localVars&&new te(null,null,!1),indented:e||0};return l.globalVars&&"object"==typeof l.globalVars&&(e.globalVars=l.globalVars),e},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),Q(e,t)),t.tokenize!=K&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==H?r:(t.lastType="operator"!=H||"++"!=D&&"--"!=D?H:"incdec",Y(t,r,H,D,e))},indent:function(e,t){if(e.tokenize==K||e.tokenize==L)return rt.Pass;if(e.tokenize!=d)return 0;var r,n=t&&t.charAt(0),a=e.lexical;if(!/^\s*else\b/.test(t))for(var i=e.cc.length-1;0<=i;--i){var o=e.cc[i];if(o==y)a=a.prev;else if(o!=Oe&&o!=k)break}for(;("stat"==a.type||"form"==a.type)&&("}"==n||(r=e.cc[e.cc.length-1])&&(r==j||r==M)&&!/^[,\.=+\-*:?[\(]/.test(t));)a=a.prev;var c,s=(a=N&&")"==a.type&&"stat"==a.prev.type?a.prev:a).type,u=n==s;return"vardef"==s?a.indented+("operator"==e.lastType||","==e.lastType?a.info.length+1:0):"form"==s&&"{"==n?a.indented:"form"==s?a.indented+f:"stat"==s?a.indented+(s=t,"operator"==(c=e).lastType||","==c.lastType||G.test(s.charAt(0))||/[,.]/.test(s.charAt(0))?N||f:0):"switch"!=a.info||u||0==l.doubleIndentSwitch?a.align?a.column+(u?0:1):a.indented+(u?0:f):a.indented+(/^(?:case|default)\b/.test(t)?f:2*f)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:o?null:"/*",blockCommentEnd:o?null:"*/",blockCommentContinue:o?null:" * ",lineComment:o?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:o?"json":"javascript",jsonldMode:U,jsonMode:o,expressionAllowed:tt,skipExpression:function(e){Y(e,"atom","atom","true",new rt.StringStream("",2,null))}}}),rt.registerHelper("wordChars","javascript",/[\w$]/),rt.defineMIME("text/javascript","javascript"),rt.defineMIME("text/ecmascript","javascript"),rt.defineMIME("application/javascript","javascript"),rt.defineMIME("application/x-javascript","javascript"),rt.defineMIME("application/ecmascript","javascript"),rt.defineMIME("application/json",{name:"javascript",json:!0}),rt.defineMIME("application/x-json",{name:"javascript",json:!0}),rt.defineMIME("application/manifest+json",{name:"javascript",json:!0}),rt.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),rt.defineMIME("text/typescript",{name:"javascript",typescript:!0}),rt.defineMIME("application/typescript",{name:"javascript",typescript:!0})}); -------------------------------------------------------------------------------- /javascripts/vendor/jquery-3.7.0.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery v3.7.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.0",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0pytest-reportlog is a pytest plugin which writes testing report data in JSON lines format

    7 | 8 |

    NDJSON is a similar format that also allows blank lines

    9 | 10 |

    Bubbles supports JSON Lines datastores

    11 | 12 |

    Logstash supports JSON Lines via the json_lines codec

    13 | 14 |

    plot.ly uses JSON Lines for its streaming data API

    15 | 16 |

    Graylog GELF is format for log messages, their stream is de-facto JSON lines.

    17 | 18 |

    Scrapy is a framework for web scraping & crawling, it supports and recommends JSON lines since long -- it might've even coined the term.

    19 | 20 |

    ClickHouse is an open source column-oriented DBMS. It supports JSON lines as JSONEachRow format for input and output.

    21 | 22 |

    Dataflow kit is a web scraping open source framework written in Go. JSON Lines is one of the supported formats for storing results.

    23 | 24 |

    dart uses JSON Lines as one of the possible reporters when running tests.

    25 | 26 |

    Apache Spark uses JSONL for reading and writing JSON data.

    27 | 28 |

    ArangoDB is an open source multi-model database. The JSON lines format allows to import huge amounts of documents sequentially (via arangoimport).

    29 | 30 |

    Rumble is a JSONiq engine that runs on top of Spark. It can process datasets in the JSON lines format that have billions of objects and more.

    31 | 32 |

    Neo4j the open-source graph database supports JSONL export and import via its standard library procedures apoc.export/import.json to allow stream processing of nodes and relationships.

    33 | 34 |

    petl is a general purpose Python package for extracting, transforming and loading tables of data. It allows importing and exporting documents/records between many databases and file formats, including JSON lines, in local and remote filesystems and clouds.

    35 | 36 |

    BigQuery uses JSON Lines as one of the supported formats to load data into the database.

    37 | 38 |

    Airbyte is an open-source data integration tool that uses JSON Lines to communicate between containerized source applications that pull data from files/APIs/databses and containerized destination applications that write data to warehouses.

    39 | 40 |

    Shopify GraphQL Bulk Operations API, designed for very large data exports from Shopify stores, returns results in the form of a JSONL file.

    41 | 42 |

    CSS HTML Validator for Windows v22.0211+ now supports JSON Lines syntax checking.

    43 | 44 |

    Go Standard library's json.Encoder will produce JSON lines by default. The decoder parses Concatenated JSON, which is compatible with, though less strict than, JSON lines

    45 | 46 |

    Golang JSONL library

    47 | 48 |

    Miller supports JSON Lines format as input.

    49 | 50 |

    Mattermost is an open-source, self-hostable online chat service. It uses JSON Lines as the format for bulk data migration on self-hosted instances.

    51 | 52 |

    Mattermost is a collaboration tool and uses the JSON Lines format for bulk data import.

    53 | 54 |

    serde-jsonlines is a Rust library for reading & writing JSON Lines documents.

    55 | 56 |

    php-jsonl is a PHP library for reading & writing JSON Lines documents, taking advantage of the streaming benefits.

    57 | 58 |

    BKL is a layered templating configuration tool that supports JSON Lines input and output.

    59 | 60 | -------------------------------------------------------------------------------- /params.json: -------------------------------------------------------------------------------- 1 | {"name":"Jsonlines","tagline":"Documentation for the JSON Lines text file format","body":"### JSON Lines: Simple. Like JSON.\r\n\r\nThis page describes the JSON Lines text format. JSON Lines is a convenient format for storing\r\nstructured data that may be processed one record at a time. It works well with unix-style\r\ntext processing tools and shell pipelines.\r\n\r\nJSON Lines files may be saved with the file extension `.jsonl`.\r\n\r\nStream compressors like `gzip` or `bzip2`\r\nare recommended for saving space, resulting in `.jsonl.gz` or `.jsonl.bz2` files.\r\n\r\n### UTF-8 Encoding\r\n\r\nUTF-8 is backwards compatible with ASCII. JSON allows encoding Unicode strings with only ASCII escape sequences, however those escapes are ugly in a text editor.\r\n\r\nChoosing UTF-8 as the standard lets the JSON Lines\r\nauthor choose to escape characters or not. Also, if a file is saved with a different encoding it is very\r\nunlikely to be valid UTF-8, making the mistake quickly obvious.\r\n\r\n### Each Line is a Valid JSON Value\r\n\r\nThe most common values will be objects or arrays, but any of the following is valid:\r\n\r\n* string\r\n* number\r\n* object\r\n* array\r\n* `true`\r\n* `false`\r\n* `null`\r\n\r\nSee for more information.\r\n\r\n### Line Separator is `'\\n'`\r\n\r\nThis means `'\\r\\n'` is also supported because white space within lines is ignored, as dictated\r\nby the JSON spec.\r\n\r\nThe last character in the file *may* be a line separator, and it will be treated the same as\r\nif there was no line separator.\r\n\r\n### Count Lines From 1\r\n\r\nText editing programs call the first line of a text file \"line 1\". We also call the first JSON value in a JSON Lines file value 1.\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} -------------------------------------------------------------------------------- /stylesheets/print.css: -------------------------------------------------------------------------------- 1 | html, body, div, span, applet, object, iframe, 2 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 3 | a, abbr, acronym, address, big, cite, code, 4 | del, dfn, em, img, ins, kbd, q, s, samp, 5 | small, strike, strong, sub, sup, tt, var, 6 | b, u, i, center, 7 | dl, dt, dd, ol, ul, li, 8 | fieldset, form, label, legend, 9 | table, caption, tbody, tfoot, thead, tr, th, td, 10 | article, aside, canvas, details, embed, 11 | figure, figcaption, footer, header, hgroup, 12 | menu, nav, output, ruby, section, summary, 13 | time, mark, audio, video { 14 | margin: 0; 15 | padding: 0; 16 | border: 0; 17 | font-size: 100%; 18 | font: inherit; 19 | vertical-align: baseline; 20 | } 21 | /* HTML5 display-role reset for older browsers */ 22 | article, aside, details, figcaption, figure, 23 | footer, header, hgroup, menu, nav, section { 24 | display: block; 25 | } 26 | body { 27 | line-height: 1; 28 | } 29 | ol, ul { 30 | list-style: none; 31 | } 32 | blockquote, q { 33 | quotes: none; 34 | } 35 | blockquote:before, blockquote:after, 36 | q:before, q:after { 37 | content: ''; 38 | content: none; 39 | } 40 | table { 41 | border-collapse: collapse; 42 | border-spacing: 0; 43 | } 44 | body { 45 | font-size: 13px; 46 | line-height: 1.5; 47 | font-family: 'Helvetica Neue', Helvetica, Arial, serif; 48 | color: #000; 49 | } 50 | 51 | a { 52 | color: #d5000d; 53 | font-weight: bold; 54 | } 55 | 56 | header { 57 | padding-top: 35px; 58 | padding-bottom: 10px; 59 | } 60 | 61 | header h1 { 62 | font-weight: bold; 63 | letter-spacing: -1px; 64 | font-size: 48px; 65 | color: #303030; 66 | line-height: 1.2; 67 | } 68 | 69 | header h2 { 70 | letter-spacing: -1px; 71 | font-size: 24px; 72 | color: #aaa; 73 | font-weight: normal; 74 | line-height: 1.3; 75 | } 76 | #downloads { 77 | display: none; 78 | } 79 | #main_content { 80 | padding-top: 20px; 81 | } 82 | 83 | code, pre { 84 | font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal; 85 | color: #222; 86 | margin-bottom: 30px; 87 | font-size: 12px; 88 | } 89 | 90 | code { 91 | padding: 0 3px; 92 | } 93 | 94 | pre { 95 | border: solid 1px #ddd; 96 | padding: 20px; 97 | overflow: auto; 98 | } 99 | pre code { 100 | padding: 0; 101 | } 102 | 103 | ul, ol, dl { 104 | margin-bottom: 20px; 105 | } 106 | 107 | 108 | /* COMMON STYLES */ 109 | 110 | table { 111 | width: 100%; 112 | border: 1px solid #ebebeb; 113 | } 114 | 115 | th { 116 | font-weight: 500; 117 | } 118 | 119 | td { 120 | border: 1px solid #ebebeb; 121 | text-align: center; 122 | font-weight: 300; 123 | } 124 | 125 | form { 126 | background: #f2f2f2; 127 | padding: 20px; 128 | 129 | } 130 | 131 | 132 | /* GENERAL ELEMENT TYPE STYLES */ 133 | 134 | h1 { 135 | font-size: 2.8em; 136 | } 137 | 138 | h2 { 139 | font-size: 22px; 140 | font-weight: bold; 141 | color: #303030; 142 | margin-bottom: 8px; 143 | } 144 | 145 | h3 { 146 | color: #d5000d; 147 | font-size: 18px; 148 | font-weight: bold; 149 | margin-bottom: 8px; 150 | } 151 | 152 | h4 { 153 | font-size: 16px; 154 | color: #303030; 155 | font-weight: bold; 156 | } 157 | 158 | h5 { 159 | font-size: 1em; 160 | color: #303030; 161 | } 162 | 163 | h6 { 164 | font-size: .8em; 165 | color: #303030; 166 | } 167 | 168 | p { 169 | font-weight: 300; 170 | margin-bottom: 20px; 171 | } 172 | 173 | a { 174 | text-decoration: none; 175 | } 176 | 177 | p a { 178 | font-weight: 400; 179 | } 180 | 181 | blockquote { 182 | font-size: 1.6em; 183 | border-left: 10px solid #e9e9e9; 184 | margin-bottom: 20px; 185 | padding: 0 0 0 30px; 186 | } 187 | 188 | ul li { 189 | list-style: disc inside; 190 | padding-left: 20px; 191 | } 192 | 193 | ol li { 194 | list-style: decimal inside; 195 | padding-left: 3px; 196 | } 197 | 198 | dl dd { 199 | font-style: italic; 200 | font-weight: 100; 201 | } 202 | 203 | footer { 204 | margin-top: 40px; 205 | padding-top: 20px; 206 | padding-bottom: 30px; 207 | font-size: 13px; 208 | color: #aaa; 209 | } 210 | 211 | footer a { 212 | color: #666; 213 | } 214 | 215 | /* MISC */ 216 | .clearfix:after { 217 | clear: both; 218 | content: '.'; 219 | display: block; 220 | visibility: hidden; 221 | height: 0; 222 | } 223 | 224 | .clearfix {display: inline-block;} 225 | * html .clearfix {height: 1%;} 226 | .clearfix {display: block;} -------------------------------------------------------------------------------- /stylesheets/pygment_trac.css: -------------------------------------------------------------------------------- 1 | .highlight { background: #ffffff; } 2 | .highlight .c { color: #999988; font-style: italic } /* Comment */ 3 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 4 | .highlight .k { font-weight: bold } /* Keyword */ 5 | .highlight .o { font-weight: bold } /* Operator */ 6 | .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ 7 | .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ 8 | .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ 9 | .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ 10 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ 11 | .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 14 | .highlight .gh { color: #999999 } /* Generic.Heading */ 15 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ 16 | .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ 17 | .highlight .go { color: #888888 } /* Generic.Output */ 18 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 19 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 20 | .highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */ 21 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 22 | .highlight .kc { font-weight: bold } /* Keyword.Constant */ 23 | .highlight .kd { font-weight: bold } /* Keyword.Declaration */ 24 | .highlight .kn { font-weight: bold } /* Keyword.Namespace */ 25 | .highlight .kp { font-weight: bold } /* Keyword.Pseudo */ 26 | .highlight .kr { font-weight: bold } /* Keyword.Reserved */ 27 | .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ 28 | .highlight .m { color: #009999 } /* Literal.Number */ 29 | .highlight .s { color: #d14 } /* Literal.String */ 30 | .highlight .na { color: #008080 } /* Name.Attribute */ 31 | .highlight .nb { color: #0086B3 } /* Name.Builtin */ 32 | .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ 33 | .highlight .no { color: #008080 } /* Name.Constant */ 34 | .highlight .ni { color: #800080 } /* Name.Entity */ 35 | .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ 36 | .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ 37 | .highlight .nn { color: #555555 } /* Name.Namespace */ 38 | .highlight .nt { color: #f995a7 } /* Name.Tag */ 39 | .highlight .nv { color: #008080 } /* Name.Variable */ 40 | .highlight .ow { font-weight: bold } /* Operator.Word */ 41 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 42 | .highlight .mf { color: #009999 } /* Literal.Number.Float */ 43 | .highlight .mh { color: #009999 } /* Literal.Number.Hex */ 44 | .highlight .mi { color: #00c7c7 } /* Literal.Number.Integer */ 45 | .highlight .mo { color: #009999 } /* Literal.Number.Oct */ 46 | .highlight .sb { color: #d14 } /* Literal.String.Backtick */ 47 | .highlight .sc { color: #d14 } /* Literal.String.Char */ 48 | .highlight .sd { color: #d14 } /* Literal.String.Doc */ 49 | .highlight .s2 { color: #f995a7 } /* Literal.String.Double */ 50 | .highlight .se { color: #d14 } /* Literal.String.Escape */ 51 | .highlight .sh { color: #d14 } /* Literal.String.Heredoc */ 52 | .highlight .si { color: #d14 } /* Literal.String.Interpol */ 53 | .highlight .sx { color: #d14 } /* Literal.String.Other */ 54 | .highlight .sr { color: #009926 } /* Literal.String.Regex */ 55 | .highlight .s1 { color: #d14 } /* Literal.String.Single */ 56 | .highlight .ss { color: #990073 } /* Literal.String.Symbol */ 57 | .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ 58 | .highlight .vc { color: #008080 } /* Name.Variable.Class */ 59 | .highlight .vg { color: #008080 } /* Name.Variable.Global */ 60 | .highlight .vi { color: #008080 } /* Name.Variable.Instance */ 61 | .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ 62 | 63 | .type-csharp .highlight .k { color: #0000FF } 64 | .type-csharp .highlight .kt { color: #0000FF } 65 | .type-csharp .highlight .nf { color: #000000; font-weight: normal } 66 | .type-csharp .highlight .nc { color: #2B91AF } 67 | .type-csharp .highlight .nn { color: #000000 } 68 | .type-csharp .highlight .s { color: #A31515 } 69 | .type-csharp .highlight .sc { color: #A31515 } 70 | -------------------------------------------------------------------------------- /stylesheets/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v2.0 | 20110126 3 | License: none (public domain) 4 | */ 5 | html, body, div, span, applet, object, iframe, 6 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 7 | a, abbr, acronym, address, big, cite, code, 8 | del, dfn, em, img, ins, kbd, q, s, samp, 9 | small, strike, strong, sub, sup, tt, var, 10 | b, u, i, center, 11 | dl, dt, dd, ol, ul, li, 12 | fieldset, form, label, legend, 13 | table, caption, tbody, tfoot, thead, tr, th, td, 14 | article, aside, canvas, details, embed, 15 | figure, figcaption, footer, header, hgroup, 16 | menu, nav, output, ruby, section, summary, 17 | time, mark, audio, video { 18 | margin: 0; 19 | padding: 0; 20 | border: 0; 21 | font-size: 100%; 22 | font: inherit; 23 | vertical-align: baseline; 24 | } 25 | /* HTML5 display-role reset for older browsers */ 26 | article, aside, details, figcaption, figure, 27 | footer, header, hgroup, menu, nav, section { 28 | display: block; 29 | } 30 | body { 31 | line-height: 1; 32 | } 33 | ol, ul { 34 | list-style: none; 35 | } 36 | blockquote, q { 37 | quotes: none; 38 | } 39 | blockquote:before, blockquote:after, 40 | q:before, q:after { 41 | content: ''; 42 | content: none; 43 | } 44 | table { 45 | border-collapse: collapse; 46 | border-spacing: 0; 47 | } 48 | 49 | /* LAYOUT STYLES */ 50 | body { 51 | font-size: 1em; 52 | line-height: 1.5; 53 | background: #e7e7e7 url(../images/body-bg.png) 0 0 repeat; 54 | font-family: 'Helvetica Neue', Helvetica, Arial, serif; 55 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); 56 | color: #494955; 57 | } 58 | 59 | a { 60 | color: #d5000d; 61 | } 62 | a:hover { 63 | color: #c5000c; 64 | } 65 | 66 | header { 67 | padding-top: 35px; 68 | padding-bottom: 25px; 69 | } 70 | 71 | header h1 { 72 | font-family: 'Chivo', 'Helvetica Neue', Helvetica, Arial, serif; font-weight: 900; 73 | letter-spacing: -1px; 74 | font-size: 48px; 75 | color: #303030; 76 | line-height: 1.2; 77 | } 78 | 79 | header h2 { 80 | letter-spacing: -1px; 81 | font-size: 24px; 82 | color: #474747; 83 | font-weight: normal; 84 | line-height: 1.3; 85 | } 86 | 87 | #container { 88 | background: transparent url(../images/highlight-bg.jpg) 50% 0 no-repeat; 89 | min-height: 595px; 90 | } 91 | 92 | .inner { 93 | width: 700px; 94 | margin: 0 auto; 95 | } 96 | 97 | #container .inner img { 98 | max-width: 100%; 99 | } 100 | 101 | #downloads { 102 | margin-bottom: 40px; 103 | } 104 | 105 | a.button { 106 | -moz-border-radius: 30px; 107 | -webkit-border-radius: 30px; 108 | border-radius: 30px; 109 | border-top: solid 1px #cbcbcb; 110 | border-left: solid 1px #b7b7b7; 111 | border-right: solid 1px #b7b7b7; 112 | border-bottom: solid 1px #b3b3b3; 113 | color: #303030; 114 | line-height: 25px; 115 | font-weight: bold; 116 | font-size: 15px; 117 | padding: 12px 8px 12px 8px; 118 | display: block; 119 | float: left; 120 | width: 179px; 121 | margin-right: 14px; 122 | background: #fdfdfd; /* Old browsers */ 123 | background: -moz-linear-gradient(top, #fdfdfd 0%, #f2f2f2 100%); /* FF3.6+ */ 124 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#f2f2f2)); /* Chrome,Safari4+ */ 125 | background: -webkit-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* Chrome10+,Safari5.1+ */ 126 | background: -o-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* Opera 11.10+ */ 127 | background: -ms-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* IE10+ */ 128 | background: linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* W3C */ 129 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f2f2f2',GradientType=0 ); /* IE6-9 */ 130 | -webkit-box-shadow: 10px 10px 5px #888; 131 | -moz-box-shadow: 10px 10px 5px #888; 132 | box-shadow: 0px 1px 5px #e8e8e8; 133 | } 134 | a.button:hover { 135 | border-top: solid 1px #b7b7b7; 136 | border-left: solid 1px #b3b3b3; 137 | border-right: solid 1px #b3b3b3; 138 | border-bottom: solid 1px #b3b3b3; 139 | background: #fafafa; /* Old browsers */ 140 | background: -moz-linear-gradient(top, #fdfdfd 0%, #f6f6f6 100%); /* FF3.6+ */ 141 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#f6f6f6)); /* Chrome,Safari4+ */ 142 | background: -webkit-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* Chrome10+,Safari5.1+ */ 143 | background: -o-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* Opera 11.10+ */ 144 | background: -ms-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* IE10+ */ 145 | background: linear-gradient(top, #fdfdfd 0%,#f6f6f6, 100%); /* W3C */ 146 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f6f6f6',GradientType=0 ); /* IE6-9 */ 147 | } 148 | 149 | a.button span { 150 | padding-left: 50px; 151 | display: block; 152 | height: 23px; 153 | } 154 | 155 | #download-zip span { 156 | background: transparent url(../images/zip-icon.png) 12px 50% no-repeat; 157 | } 158 | #download-tar-gz span { 159 | background: transparent url(../images/tar-gz-icon.png) 12px 50% no-repeat; 160 | } 161 | #view-on-github span { 162 | background: transparent url(../images/octocat-icon.png) 12px 50% no-repeat; 163 | } 164 | #view-on-github { 165 | margin-right: 0; 166 | } 167 | 168 | code, pre { 169 | font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; 170 | color: #222; 171 | margin-bottom: 30px; 172 | font-size: 14px; 173 | } 174 | 175 | code { 176 | background-color: #f2f2f2; 177 | border: solid 1px #ddd; 178 | padding: 0 3px; 179 | } 180 | 181 | pre { 182 | padding: 20px; 183 | background: #262626; 184 | color: #f2f2f2; 185 | text-shadow: none; 186 | overflow: auto; 187 | } 188 | pre code { 189 | color: #f2f2f2; 190 | background-color: #303030; 191 | border: none; 192 | padding: 0; 193 | } 194 | 195 | ul, ol, dl { 196 | margin-bottom: 20px; 197 | } 198 | 199 | 200 | /* COMMON STYLES */ 201 | 202 | hr { 203 | height: 1px; 204 | line-height: 1px; 205 | margin-top: 1em; 206 | padding-bottom: 1em; 207 | border: none; 208 | background: transparent url('../images/hr.png') 50% 0 no-repeat; 209 | } 210 | 211 | strong { 212 | font-weight: bold; 213 | } 214 | 215 | em { 216 | font-style: italic; 217 | } 218 | 219 | table { 220 | width: 100%; 221 | border: 1px solid #ebebeb; 222 | } 223 | 224 | th { 225 | font-weight: 500; 226 | } 227 | 228 | td { 229 | border: 1px solid #ebebeb; 230 | text-align: center; 231 | font-weight: 300; 232 | } 233 | 234 | form { 235 | background: #f2f2f2; 236 | padding: 20px; 237 | 238 | } 239 | 240 | 241 | /* GENERAL ELEMENT TYPE STYLES */ 242 | 243 | h1 { 244 | font-size: 32px; 245 | } 246 | 247 | h2 { 248 | font-size: 22px; 249 | font-weight: bold; 250 | color: #303030; 251 | margin-bottom: 8px; 252 | } 253 | 254 | h3 { 255 | color: #d5000d; 256 | font-size: 18px; 257 | font-weight: bold; 258 | margin-bottom: 8px; 259 | } 260 | 261 | h4 { 262 | font-size: 16px; 263 | color: #303030; 264 | font-weight: bold; 265 | } 266 | 267 | h5 { 268 | font-size: 1em; 269 | color: #303030; 270 | } 271 | 272 | h6 { 273 | font-size: .8em; 274 | color: #303030; 275 | } 276 | 277 | p { 278 | font-weight: 300; 279 | margin-bottom: 20px; 280 | } 281 | 282 | a { 283 | text-decoration: none; 284 | } 285 | 286 | p a { 287 | font-weight: 400; 288 | } 289 | 290 | blockquote { 291 | font-size: 1.6em; 292 | border-left: 10px solid #e9e9e9; 293 | margin-bottom: 20px; 294 | padding: 0 0 0 30px; 295 | } 296 | 297 | ul li { 298 | list-style: disc inside; 299 | padding-left: 20px; 300 | } 301 | 302 | ol li { 303 | list-style: decimal inside; 304 | padding-left: 3px; 305 | } 306 | 307 | dl dt { 308 | color: #303030; 309 | } 310 | 311 | footer { 312 | background: transparent url('../images/hr.png') 0 0 no-repeat; 313 | margin-top: 40px; 314 | padding-top: 20px; 315 | padding-bottom: 30px; 316 | font-size: 13px; 317 | color: #aaa; 318 | } 319 | 320 | footer a { 321 | color: #666; 322 | } 323 | footer a:hover { 324 | color: #444; 325 | } 326 | 327 | nav li { 328 | display: inline; 329 | list-style-type: none; 330 | padding-right: 20px; 331 | padding-left: 0; 332 | } 333 | 334 | /* MISC */ 335 | .clearfix:after { 336 | clear: both; 337 | content: '.'; 338 | display: block; 339 | visibility: hidden; 340 | height: 0; 341 | } 342 | 343 | .clearfix {display: inline-block;} 344 | * html .clearfix {height: 1%;} 345 | .clearfix {display: block;} 346 | 347 | 348 | /* VALIDATOR */ 349 | 350 | .validator .result { 351 | padding: 20px 0 0 0; 352 | } 353 | 354 | /* #Media Queries 355 | ================================================== */ 356 | 357 | /* Smaller than standard 960 (devices and browsers) */ 358 | @media only screen and (max-width: 959px) {} 359 | 360 | /* Tablet Portrait size to standard 960 (devices and browsers) */ 361 | @media only screen and (min-width: 768px) and (max-width: 959px) {} 362 | 363 | /* All Mobile Sizes (devices and browser) */ 364 | @media only screen and (max-width: 767px) { 365 | header { 366 | padding-top: 10px; 367 | padding-bottom: 10px; 368 | } 369 | #downloads { 370 | margin-bottom: 25px; 371 | } 372 | #download-zip, #download-tar-gz { 373 | display: none; 374 | } 375 | .inner { 376 | width: 94%; 377 | margin: 0 auto; 378 | } 379 | } 380 | 381 | /* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ 382 | @media only screen and (min-width: 480px) and (max-width: 767px) {} 383 | 384 | /* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ 385 | @media only screen and (max-width: 479px) {} 386 | -------------------------------------------------------------------------------- /stylesheets/vendor/codemirror-6.65.7-abbott.min.css: -------------------------------------------------------------------------------- 1 | .cm-s-abbott.CodeMirror{background:#231c14;color:#d8ff84}.cm-s-abbott .CodeMirror-gutters{background:#231c14;border:none}.cm-s-abbott .CodeMirror-linenumber{color:#fbec5d}.cm-s-abbott .CodeMirror-guttermarker{color:#f63f05}.cm-s-abbott .CodeMirror-guttermarker-subtle{color:#fbb32f}.cm-s-abbott .CodeMirror-ruler{border-color:#745d42}.cm-s-abbott .CodeMirror-cursor{border-color:#a0ea00}.cm-s-abbott .cm-animate-fat-cursor,.cm-s-abbott.cm-fat-cursor .CodeMirror-cursor{background:rgba(160,234,0,.5)}.cm-s-abbott.cm-fat-cursor .CodeMirror-cursors{z-index:3}.cm-s-abbott .CodeMirror-overwrite .CodeMirror-cursor{border-bottom:1px solid #a0ea00;border-left:none;width:auto}.cm-s-abbott .CodeMirror-secondarycursor{border-color:#00ff7f}.cm-s-abbott .CodeMirror-selected,.cm-s-abbott.CodeMirror-focused .CodeMirror-selected{background:#273900}.cm-s-abbott .CodeMirror-line::selection,.cm-s-abbott .CodeMirror-line>span::selection,.cm-s-abbott .CodeMirror-line>span>span::selection{background:#273900}.cm-s-abbott .CodeMirror-line::-moz-selection,.cm-s-abbott .CodeMirror-line>span::-moz-selection,.cm-s-abbott .CodeMirror-line>span>span::-moz-selection{background:#273900}.cm-s-abbott .cm-tab{color:#00ff7f}.cm-s-abbott .cm-searching{background:#fef3b4!important;color:#231c14!important}.cm-s-abbott span.cm-comment{color:#fbb32f;font-style:italic}.cm-s-abbott span.cm-string,.cm-s-abbott span.cm-string-2{color:#e6a2f3}.cm-s-abbott span.cm-number,.cm-s-abbott span.cm-string.cm-url{color:#f63f05}.cm-s-abbott span.cm-invalidchar{color:#00ff7f}.cm-s-abbott span.cm-atom{color:#fef3b4}.cm-s-abbott span.cm-bracket,.cm-s-abbott span.cm-punctuation{color:#fef3b4}.cm-s-abbott span.cm-operator{font-weight:700}.cm-s-abbott span.cm-def,.cm-s-abbott span.cm-variable,.cm-s-abbott span.cm-variable-2,.cm-s-abbott span.cm-variable-3{color:#8ccdf0}.cm-s-abbott span.cm-builtin,.cm-s-abbott span.cm-property,.cm-s-abbott span.cm-qualifier{color:#3f91f1}.cm-s-abbott span.cm-type{color:#24a507}.cm-s-abbott span.cm-keyword{color:#d80450;font-weight:700}.cm-s-abbott span.cm-meta{color:#ec6c99}.cm-s-abbott span.cm-tag{color:#d80450;font-weight:700}.cm-s-abbott span.cm-attribute{color:#24a507}.cm-s-abbott span.cm-header{color:#d80450;font-weight:700}.cm-s-abbott span.cm-hr{color:#ec6c99}.cm-s-abbott span.cm-link{color:#e6a2f3}.cm-s-abbott span.cm-negative{background:#d80450;color:#231c14}.cm-s-abbott span.cm-positive{background:#a0ea00;color:#231c14;font-weight:700}.cm-s-abbott span.cm-error{background:#d80450;color:#231c14}.cm-s-abbott span.CodeMirror-matchingbracket{background:#745d42!important;color:#231c14!important;font-weight:700}.cm-s-abbott span.CodeMirror-nonmatchingbracket{background:#d80450!important;color:#231c14!important}.cm-s-abbott .CodeMirror-matchingtag,.cm-s-abbott .cm-matchhighlight{outline:1px solid #39a78d}.cm-s-abbott .CodeMirror-activeline-background,.cm-s-abbott .CodeMirror-activeline-gutter{background:#3c3022}.cm-s-abbott .CodeMirror-activeline-gutter .CodeMirror-linenumber{color:#d8ff84;font-weight:700}.cm-s-abbott .CodeMirror-foldmarker{color:#f63f05;text-shadow:none} -------------------------------------------------------------------------------- /stylesheets/vendor/codemirror-6.65.7.min.css: -------------------------------------------------------------------------------- 1 | .CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:transparent}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:0;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:0}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0} -------------------------------------------------------------------------------- /validator/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Validator 4 | custom-javascript-list: 5 | - /javascripts/vendor/jquery-3.7.0.min.js 6 | - /javascripts/vendor/codemirror-6.65.7.min.js 7 | - /javascripts/vendor/codemirror-6.65.7-javascript.min.js 8 | - /javascripts/validator.js 9 | 10 | custom-css-list: 11 | - /stylesheets/vendor/codemirror-6.65.7.min.css 12 | - /stylesheets/vendor/codemirror-6.65.7-abbott.min.css 13 | --- 14 | 15 |
    16 | 17 | 18 | 19 |
      20 |
      21 | --------------------------------------------------------------------------------