jazzy 0.13.1 → 0.13.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +6 -3
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +135 -1
  5. data/CONTRIBUTING.md +1 -1
  6. data/Gemfile.lock +62 -52
  7. data/README.md +86 -3
  8. data/Rakefile +30 -0
  9. data/bin/sourcekitten +0 -0
  10. data/images/math.png +0 -0
  11. data/jazzy.gemspec +1 -1
  12. data/js/package-lock.json +39 -0
  13. data/js/package.json +17 -0
  14. data/lib/jazzy/config.rb +33 -7
  15. data/lib/jazzy/doc.rb +4 -0
  16. data/lib/jazzy/doc_builder.rb +25 -2
  17. data/lib/jazzy/docset_builder.rb +2 -0
  18. data/lib/jazzy/docset_builder/info_plist.mustache +8 -0
  19. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_AMS-Regular.ttf +0 -0
  20. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_AMS-Regular.woff +0 -0
  21. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  22. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  23. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  24. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  25. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  26. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  27. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  28. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  29. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  30. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  31. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  32. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  33. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  34. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Bold.ttf +0 -0
  35. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Bold.woff +0 -0
  36. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Bold.woff2 +0 -0
  37. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  38. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  39. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  40. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Italic.ttf +0 -0
  41. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Italic.woff +0 -0
  42. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Italic.woff2 +0 -0
  43. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Regular.ttf +0 -0
  44. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Regular.woff +0 -0
  45. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Regular.woff2 +0 -0
  46. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  47. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  48. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  49. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-Italic.ttf +0 -0
  50. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-Italic.woff +0 -0
  51. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-Italic.woff2 +0 -0
  52. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  53. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  54. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  55. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  56. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  57. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  58. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  59. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  60. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  61. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Script-Regular.ttf +0 -0
  62. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Script-Regular.woff +0 -0
  63. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Script-Regular.woff2 +0 -0
  64. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size1-Regular.ttf +0 -0
  65. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size1-Regular.woff +0 -0
  66. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  67. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size2-Regular.ttf +0 -0
  68. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size2-Regular.woff +0 -0
  69. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  70. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size3-Regular.ttf +0 -0
  71. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size3-Regular.woff +0 -0
  72. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  73. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size4-Regular.ttf +0 -0
  74. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size4-Regular.woff +0 -0
  75. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  76. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  77. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  78. data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  79. data/lib/jazzy/extensions/katex/css/katex.min.css +1 -0
  80. data/lib/jazzy/extensions/katex/js/katex.min.js +1 -0
  81. data/lib/jazzy/gem_version.rb +1 -1
  82. data/lib/jazzy/jazzy_markdown.rb +17 -0
  83. data/lib/jazzy/podspec_documenter.rb +15 -3
  84. data/lib/jazzy/source_declaration.rb +15 -2
  85. data/lib/jazzy/source_declaration/access_control_level.rb +1 -1
  86. data/lib/jazzy/source_declaration/type.rb +34 -0
  87. data/lib/jazzy/source_module.rb +2 -1
  88. data/lib/jazzy/sourcekitten.rb +55 -28
  89. data/lib/jazzy/symbol_graph.rb +95 -0
  90. data/lib/jazzy/symbol_graph/constraint.rb +94 -0
  91. data/lib/jazzy/symbol_graph/ext_node.rb +114 -0
  92. data/lib/jazzy/symbol_graph/graph.rb +193 -0
  93. data/lib/jazzy/symbol_graph/relationship.rb +39 -0
  94. data/lib/jazzy/symbol_graph/sym_node.rb +154 -0
  95. data/lib/jazzy/symbol_graph/symbol.rb +208 -0
  96. data/lib/jazzy/themes/apple/assets/css/jazzy.css.scss +79 -4
  97. data/lib/jazzy/themes/apple/assets/img/spinner.gif +0 -0
  98. data/lib/jazzy/themes/apple/assets/js/jazzy.js +12 -1
  99. data/lib/jazzy/themes/apple/assets/js/jazzy.search.js +70 -0
  100. data/lib/jazzy/themes/apple/assets/js/jquery.min.js +2 -2
  101. data/lib/jazzy/themes/apple/assets/js/lunr.min.js +6 -0
  102. data/lib/jazzy/themes/apple/assets/js/typeahead.jquery.js +1694 -0
  103. data/lib/jazzy/themes/apple/templates/doc.mustache +41 -0
  104. data/lib/jazzy/themes/apple/templates/header.mustache +7 -0
  105. data/lib/jazzy/themes/apple/templates/task.mustache +3 -3
  106. data/lib/jazzy/themes/fullwidth/assets/css/jazzy.css.scss +3 -1
  107. data/lib/jazzy/themes/fullwidth/assets/js/jazzy.js +12 -1
  108. data/lib/jazzy/themes/fullwidth/assets/js/jquery.min.js +2 -2
  109. data/lib/jazzy/themes/fullwidth/assets/js/lunr.min.js +6 -1
  110. data/lib/jazzy/themes/fullwidth/assets/js/typeahead.jquery.js +34 -14
  111. data/lib/jazzy/themes/fullwidth/templates/doc.mustache +36 -0
  112. data/lib/jazzy/themes/fullwidth/templates/task.mustache +3 -3
  113. data/lib/jazzy/themes/jony/assets/css/jazzy.css.scss +12 -2
  114. data/lib/jazzy/themes/jony/assets/js/jazzy.js +12 -1
  115. data/lib/jazzy/themes/jony/assets/js/jquery.min.js +2 -2
  116. data/lib/jazzy/themes/jony/templates/doc.mustache +36 -0
  117. data/lib/jazzy/themes/jony/templates/task.mustache +3 -3
  118. data/spec/integration_spec.rb +17 -8
  119. metadata +84 -8
data/Rakefile CHANGED
@@ -109,6 +109,36 @@ begin
109
109
  FileUtils.cp_r "#{sk_dir}/.build/release/sourcekitten", 'bin'
110
110
  end
111
111
 
112
+ #-- Theme Dependencies -----------------------------------------------------#
113
+
114
+ THEME_FILES = {
115
+ 'jquery/dist/jquery.min.js' => [
116
+ 'themes/apple/assets/js',
117
+ 'themes/fullwidth/assets/js',
118
+ 'themes/jony/assets/js'
119
+ ],
120
+ 'lunr/lunr.min.js' => [
121
+ 'themes/apple/assets/js',
122
+ 'themes/fullwidth/assets/js'
123
+ ],
124
+ 'corejs-typeahead/dist/typeahead.jquery.js' => [
125
+ 'themes/apple/assets/js',
126
+ 'themes/fullwidth/assets/js'
127
+ ],
128
+ 'katex/dist/katex.min.css' => ['extensions/katex/css'],
129
+ 'katex/dist/fonts' => ['extensions/katex/css'],
130
+ 'katex/dist/katex.min.js' => ['extensions/katex/js']
131
+ }
132
+
133
+ desc 'Copies theme dependencies (`npm update/install` by hand first)'
134
+ task :theme_deps do
135
+ THEME_FILES.each_pair do |src, dsts|
136
+ dsts.each do |dst|
137
+ FileUtils.cp_r "js/node_modules/#{src}", "lib/jazzy/#{dst}"
138
+ end
139
+ end
140
+ end
141
+
112
142
  rescue LoadError, NameError => e
113
143
  $stderr.puts "\033[0;31m" \
114
144
  '[!] Some Rake tasks haven been disabled because the environment' \
Binary file
Binary file
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_runtime_dependency 'xcinvoke', '~> 0.3.0'
28
28
 
29
29
  spec.add_development_dependency 'bundler', '~> 1.7'
30
- spec.add_development_dependency 'rake', '~> 10.3'
30
+ spec.add_development_dependency 'rake', '~> 13.0'
31
31
 
32
32
  spec.required_ruby_version = '>= 2.0.0'
33
33
  end
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "jazzy-js",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "commander": {
8
+ "version": "2.20.3",
9
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
10
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
11
+ },
12
+ "corejs-typeahead": {
13
+ "version": "1.3.1",
14
+ "resolved": "https://registry.npmjs.org/corejs-typeahead/-/corejs-typeahead-1.3.1.tgz",
15
+ "integrity": "sha512-fyNlBNWJNL6EQUnJyAunEzBzRcwR2cEHtZXBi2pndHPOJ/wpOf3wbS+/Oh+kYYS5sKowQcs0LFwMSl6Y2Xeqkw==",
16
+ "requires": {
17
+ "jquery": ">=1.11"
18
+ }
19
+ },
20
+ "jquery": {
21
+ "version": "3.5.1",
22
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz",
23
+ "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg=="
24
+ },
25
+ "katex": {
26
+ "version": "0.11.1",
27
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.11.1.tgz",
28
+ "integrity": "sha512-5oANDICCTX0NqYIyAiFCCwjQ7ERu3DQG2JFHLbYOf+fXaMoH8eg/zOq5WSYJsKMi/QebW+Eh3gSM+oss1H/bww==",
29
+ "requires": {
30
+ "commander": "^2.19.0"
31
+ }
32
+ },
33
+ "lunr": {
34
+ "version": "2.3.8",
35
+ "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz",
36
+ "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg=="
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "jazzy-js",
3
+ "version": "1.0.0",
4
+ "description": "Jazzy theme dependencies",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "author": "",
10
+ "license": "MIT",
11
+ "dependencies": {
12
+ "corejs-typeahead": "^1.3.1",
13
+ "jquery": "^3.5.1",
14
+ "katex": "^0.11.1",
15
+ "lunr": "^2.3.8"
16
+ }
17
+ }
@@ -59,7 +59,7 @@ module Jazzy
59
59
 
60
60
  def full_command_line_name
61
61
  long_option_names = command_line.map do |opt|
62
- Regexp.last_match(1) if opt =~ %r{
62
+ Regexp.last_match(1) if opt.to_s =~ %r{
63
63
  ^-- # starts with double dash
64
64
  (?:\[no-\])? # optional prefix for booleans
65
65
  ([^\s]+) # long option name
@@ -156,6 +156,11 @@ module Jazzy
156
156
  'projects.',
157
157
  default: ''
158
158
 
159
+ config_attr :keep_property_attributes,
160
+ command_line: '--[no-]keep-property-attributes',
161
+ description: 'Include the default Objective-C property attributes.',
162
+ default: false
163
+
159
164
  config_attr :config_file,
160
165
  command_line: '--config PATH',
161
166
  description: ['Configuration file (.yaml or .json)',
@@ -214,14 +219,14 @@ module Jazzy
214
219
  end
215
220
  end
216
221
 
217
- SWIFT_BUILD_TOOLS = %w[spm xcodebuild].freeze
222
+ SWIFT_BUILD_TOOLS = %w[spm xcodebuild symbolgraph].freeze
218
223
 
219
224
  config_attr :swift_build_tool,
220
225
  command_line: "--swift-build-tool #{SWIFT_BUILD_TOOLS.join(' | ')}",
221
- description: 'Control whether Jazzy uses Swift Package Manager or '\
222
- 'xcodebuild to build the module to be documented. By '\
223
- 'default it uses xcodebuild if there is a .xcodeproj '\
224
- 'file in the source directory.',
226
+ description: 'Control whether Jazzy uses Swift Package Manager, '\
227
+ 'xcodebuild, or swift-symbolgraph to build the module '\
228
+ 'to be documented. By default it uses xcodebuild if '\
229
+ 'there is a .xcodeproj file in the source directory.',
225
230
  parse: ->(tool) do
226
231
  return tool.to_sym if SWIFT_BUILD_TOOLS.include?(tool)
227
232
  raise "Unsupported swift_build_tool #{tool}, "\
@@ -284,6 +289,14 @@ module Jazzy
284
289
  parse: ->(ps) { PodspecDocumenter.create_podspec(Pathname(ps)) if ps },
285
290
  default: Dir['*.podspec{,.json}'].first
286
291
 
292
+ config_attr :pod_sources,
293
+ command_line: ['--pod-sources url1,url2,…urlN', Array],
294
+ description: 'A list of sources to find pod dependencies. Used only '\
295
+ 'with --podspec when the podspec contains references to '\
296
+ 'privately hosted pods. You must include the default pod '\
297
+ 'source if public pods are also used.',
298
+ default: []
299
+
287
300
  config_attr :docset_icon,
288
301
  command_line: '--docset-icon FILEPATH',
289
302
  parse: ->(di) { expand_path(di) }
@@ -297,7 +310,8 @@ module Jazzy
297
310
  config_attr :root_url,
298
311
  command_line: ['-r', '--root-url URL'],
299
312
  description: 'Absolute URL root where these docs will be stored',
300
- parse: ->(r) { URI(r) }
313
+ # ensure trailing slash for correct URI.join()
314
+ parse: ->(r) { URI(r.sub(%r{/?$}, '/')) }
301
315
 
302
316
  config_attr :dash_url,
303
317
  command_line: ['-d', '--dash_url URL'],
@@ -316,6 +330,11 @@ module Jazzy
316
330
  description: 'GitHub URL file prefix of this project (e.g. '\
317
331
  'https://github.com/realm/realm-cocoa/tree/v0.87.1)'
318
332
 
333
+ config_attr :docset_playground_url,
334
+ command_line: '--docset-playground-url URL',
335
+ description: 'URL of an interactive playground to demonstrate the '\
336
+ 'framework, linked to from the docset.'
337
+
319
338
  # ──────── Doc generation options ────────
320
339
  config_attr :disable_search,
321
340
  command_line: '--disable-search',
@@ -418,6 +437,13 @@ module Jazzy
418
437
  'is "Undocumented", put "" if no text is required',
419
438
  default: 'Undocumented'
420
439
 
440
+ config_attr :separate_global_declarations,
441
+ command_line: '--[no-]separate-global-declarations',
442
+ description: 'Create separate pages for all global declarations '\
443
+ "(classes, structures, enums etc.) even if they don't "\
444
+ 'have children.',
445
+ default: false
446
+
421
447
  # rubocop:enable Style/AlignParameter
422
448
 
423
449
  def initialize
@@ -51,5 +51,9 @@ module Jazzy
51
51
  "#{config.module_name} Docs"
52
52
  end
53
53
  end
54
+
55
+ def enable_katex
56
+ Markdown.has_math
57
+ end
54
58
  end
55
59
  end
@@ -14,6 +14,7 @@ require 'jazzy/source_declaration'
14
14
  require 'jazzy/source_document'
15
15
  require 'jazzy/source_module'
16
16
  require 'jazzy/sourcekitten'
17
+ require 'jazzy/symbol_graph'
17
18
 
18
19
  module Jazzy
19
20
  # This module handles HTML generation, file writing, asset copying,
@@ -72,6 +73,8 @@ module Jazzy
72
73
  elsif options.podspec_configured
73
74
  pod_documenter = PodspecDocumenter.new(options.podspec)
74
75
  stdout = pod_documenter.sourcekitten_output(options)
76
+ elsif options.swift_build_tool == :symbolgraph
77
+ stdout = SymbolGraph.build(options)
75
78
  else
76
79
  stdout = Dir.chdir(options.source_directory) do
77
80
  arguments = SourceKitten.arguments_from_options(options)
@@ -130,6 +133,7 @@ module Jazzy
130
133
  end
131
134
 
132
135
  copy_assets(output_dir)
136
+ copy_extensions(output_dir)
133
137
 
134
138
  DocsetBuilder.new(output_dir, source_module).build!
135
139
 
@@ -191,7 +195,10 @@ module Jazzy
191
195
 
192
196
  lint_report = {
193
197
  warnings: warnings.sort_by do |w|
194
- [w[:file], w[:line] || 0, w[:symbol], w[:symbol_kind]]
198
+ [w[:file] || Pathname(''),
199
+ w[:line] || 0,
200
+ w[:symbol],
201
+ w[:symbol_kind]]
195
202
  end,
196
203
  source_directory: options.source_directory,
197
204
  }
@@ -210,6 +217,15 @@ module Jazzy
210
217
  end
211
218
  end
212
219
 
220
+ def self.copy_extensions(destination)
221
+ copy_extension('katex', destination) if Markdown.has_math
222
+ end
223
+
224
+ def self.copy_extension(name, destination)
225
+ ext_directory = Pathname(__FILE__).parent + 'extensions/' + name
226
+ FileUtils.cp_r(ext_directory.children, destination)
227
+ end
228
+
213
229
  def self.render(doc_model, markdown)
214
230
  html = Markdown.render(markdown)
215
231
  SourceKitten.autolink_document(html, doc_model)
@@ -341,6 +357,7 @@ module Jazzy
341
357
  abstract = (item.abstract || '') + (item.discussion || '')
342
358
  {
343
359
  name: item.name,
360
+ name_html: item.name.gsub(':', ':<wbr>'),
344
361
  abstract: abstract,
345
362
  declaration: item.display_declaration,
346
363
  language: item.display_language,
@@ -367,7 +384,7 @@ module Jazzy
367
384
  {
368
385
  name: mark.name,
369
386
  name_html: (render(doc_model, mark.name) if mark.name),
370
- uid: URI.encode(uid),
387
+ uid: ERB::Util.url_encode(uid),
371
388
  items: items,
372
389
  pre_separator: mark.has_start_dash,
373
390
  post_separator: mark.has_end_dash,
@@ -421,12 +438,18 @@ module Jazzy
421
438
  doc[:kind] = doc_model.type.name
422
439
  doc[:dash_type] = doc_model.type.dash_type
423
440
  doc[:declaration] = doc_model.display_declaration
441
+ doc[:language] = doc_model.display_language
442
+ doc[:other_language_declaration] =
443
+ doc_model.display_other_language_declaration
424
444
  doc[:overview] = overview
445
+ doc[:parameters] = doc_model.parameters
446
+ doc[:return] = doc_model.return
425
447
  doc[:structure] = source_module.doc_structure
426
448
  doc[:tasks] = render_tasks(source_module, doc_model.children)
427
449
  doc[:module_name] = source_module.name
428
450
  doc[:author_name] = source_module.author_name
429
451
  doc[:github_url] = source_module.github_url
452
+ doc[:github_token_url] = gh_token_url(doc_model, source_module)
430
453
  doc[:dash_url] = source_module.dash_url
431
454
  doc[:path_to_root] = path_to_root
432
455
  doc[:deprecation_message] = doc_model.deprecation_message
@@ -43,6 +43,8 @@ module Jazzy
43
43
  template.read,
44
44
  lowercase_name: source_module.name.downcase,
45
45
  name: source_module.name,
46
+ root_url: config.root_url,
47
+ playground_url: config.docset_playground_url,
46
48
  )
47
49
  end
48
50
  end
@@ -16,5 +16,13 @@
16
16
  <true/>
17
17
  <key>DashDocSetFamily</key>
18
18
  <string>dashtoc</string>
19
+ {{#root_url}}
20
+ <key>DashDocSetFallbackURL</key>
21
+ <string>{{{.}}}</string>
22
+ {{/root_url}}
23
+ {{#playground_url}}
24
+ <key>DashDocSetPlayURL</key>
25
+ <string>{{{.}}}</string>
26
+ {{/playground_url}}
19
27
  </dict>
20
28
  </plist>
@@ -0,0 +1 @@
1
+ @font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"KaTeX_SansSerif";src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype");font-weight:400;font-style:normal}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.11.1"}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathdefault{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px;min-width:2px}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline{display:inline-block;width:100%;border-bottom-style:dashed}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .op-limits>.vlist-t{text-align:center}.katex .accent>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;height:inherit;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex img{border-style:none;min-width:0;min-height:0;max-width:none;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left}