starlight-fsharp-oracle 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/Extensions/StringBuilder.js +2 -5
  2. package/dist/Extensions/TextNode.js +29 -54
  3. package/dist/FSharp.Oracle.Schema/Schema.js +113 -218
  4. package/dist/Generate.js +33 -63
  5. package/dist/Helpers.js +1 -2
  6. package/dist/Plugin.js +17 -31
  7. package/dist/Render/Documentation.js +1 -2
  8. package/dist/Render/Entries.js +29 -34
  9. package/dist/Render/Pages.js +10 -19
  10. package/dist/Render/Primitives.js +19 -32
  11. package/dist/Themes.js +3 -5
  12. package/dist/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs +57 -0
  13. package/dist/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs.js +105 -0
  14. package/dist/fable_modules/Fable.Promise.3.2.0/Fable.Promise.fableproj +20 -0
  15. package/dist/fable_modules/Fable.Promise.3.2.0/Promise.fs +766 -0
  16. package/dist/fable_modules/Fable.Promise.3.2.0/Promise.fs.js +232 -0
  17. package/dist/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs +31 -0
  18. package/dist/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs.js +20 -0
  19. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Decode.fs +1592 -0
  20. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Decode.fs.js +1417 -0
  21. package/dist/fable_modules/Thoth.Json.Core.0.9.0/DecoderCE.fs +106 -0
  22. package/dist/fable_modules/Thoth.Json.Core.0.9.0/DecoderCE.fs.js +63 -0
  23. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Encode.fs +380 -0
  24. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Encode.fs.js +289 -0
  25. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Thoth.Json.Core.fableproj +37 -0
  26. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Types.fs +76 -0
  27. package/dist/fable_modules/Thoth.Json.Core.0.9.0/Types.fs.js +37 -0
  28. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Casing.fs +113 -0
  29. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Casing.fs.js +173 -0
  30. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs +1153 -0
  31. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs.js +622 -0
  32. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs +91 -0
  33. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs.js +103 -0
  34. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Encode.fs +893 -0
  35. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Encode.fs.js +836 -0
  36. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Prelude.fs +435 -0
  37. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Prelude.fs.js +389 -0
  38. package/dist/fable_modules/Thoth.Json.Core.Auto.0.1.0/Thoth.Json.Core.Auto.fableproj +43 -0
  39. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs +88 -0
  40. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs.js +102 -0
  41. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Encode.fs +40 -0
  42. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Encode.fs.js +59 -0
  43. package/dist/fable_modules/Thoth.Json.JavaScript.0.5.0/Thoth.Json.JavaScript.fableproj +31 -0
  44. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Array.js +1347 -0
  45. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Async.js +134 -0
  46. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/AsyncBuilder.js +183 -0
  47. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/BigInt.js +306 -0
  48. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/BitConverter.js +138 -0
  49. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Boolean.js +22 -0
  50. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/CHANGELOG.md +191 -0
  51. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Char.js +202 -0
  52. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Choice.js +184 -0
  53. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/CollectionUtil.js +182 -0
  54. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/ConditionalWeakTable.js +21 -0
  55. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Date.js +755 -0
  56. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/DateOffset.js +261 -0
  57. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/DateOnly.js +124 -0
  58. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Decimal.js +236 -0
  59. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Double.js +47 -0
  60. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Encoding.js +185 -0
  61. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Event.js +93 -0
  62. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Collections.js +45 -0
  63. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Core.CompilerServices.js +27 -0
  64. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/FSharp.Core.js +156 -0
  65. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Global.js +29 -0
  66. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Guid.js +161 -0
  67. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Int32.js +135 -0
  68. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/List.js +1323 -0
  69. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Long.js +47 -0
  70. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MailboxProcessor.js +94 -0
  71. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Map.js +1396 -0
  72. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MapUtil.js +130 -0
  73. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MutableMap.js +339 -0
  74. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/MutableSet.js +233 -0
  75. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Native.js +14 -0
  76. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Numeric.js +75 -0
  77. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Observable.js +113 -0
  78. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Option.js +104 -0
  79. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/README.md +3 -0
  80. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Random.js +172 -0
  81. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Range.js +45 -0
  82. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Reflection.js +460 -0
  83. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/RegExp.js +141 -0
  84. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Result.js +165 -0
  85. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Seq.js +1409 -0
  86. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Seq2.js +111 -0
  87. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Set.js +1788 -0
  88. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/String.js +649 -0
  89. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.Collections.Generic.js +333 -0
  90. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.Text.js +168 -0
  91. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/System.js +283 -0
  92. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/TimeOnly.js +122 -0
  93. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/TimeSpan.js +180 -0
  94. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Timer.js +67 -0
  95. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Types.js +198 -0
  96. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Unicode.13.0.0.js +4 -0
  97. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Uri.js +165 -0
  98. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/Util.js +792 -0
  99. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/big.d.ts +338 -0
  100. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/lib/big.js +825 -0
  101. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/package.json +24 -0
  102. package/dist/fable_modules/fable-library-js.5.0.0-rc.7/quotation.js +618 -0
  103. package/package.json +4 -5
  104. package/packages/FSharp.Oracle/XmlDoc.fs +12 -1
  105. package/packages/FSharp.Oracle/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.fs +3 -0
  106. package/packages/FSharp.Oracle/obj/Debug/net10.0/FSharp.Oracle.AssemblyInfo.fs +17 -0
  107. package/packages/FSharp.Oracle/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.fs +3 -0
  108. package/packages/FSharp.Oracle/obj/Release/net10.0/FSharp.Oracle.AssemblyInfo.fs +17 -0
  109. package/packages/FSharp.Oracle.Schema/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.fs +3 -0
  110. package/packages/FSharp.Oracle.Schema/obj/Debug/net10.0/FSharp.Oracle.Schema.AssemblyInfo.fs +17 -0
  111. package/packages/FSharp.Oracle.Schema/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.fs +3 -0
  112. package/packages/FSharp.Oracle.Schema/obj/Release/net10.0/FSharp.Oracle.Schema.AssemblyInfo.fs +17 -0
  113. package/oracle-bin/FSharp.Compiler.Service.dll +0 -0
  114. package/oracle-bin/FSharp.Core.dll +0 -0
  115. package/oracle-bin/FSharp.DependencyManager.Nuget.dll +0 -0
  116. package/oracle-bin/FSharp.Oracle.Schema.dll +0 -0
  117. package/oracle-bin/FSharp.Oracle.Schema.pdb +0 -0
  118. package/oracle-bin/FSharp.Oracle.Schema.xml +0 -219
  119. package/oracle-bin/Fable.Core.dll +0 -0
  120. package/oracle-bin/Oracle +0 -0
  121. package/oracle-bin/Oracle.deps.json +0 -280
  122. package/oracle-bin/Oracle.dll +0 -0
  123. package/oracle-bin/Oracle.pdb +0 -0
  124. package/oracle-bin/Oracle.runtimeconfig.json +0 -13
  125. package/oracle-bin/Oracle.xml +0 -111
  126. package/oracle-bin/Thoth.Json.Core.Auto.dll +0 -0
  127. package/oracle-bin/Thoth.Json.Core.dll +0 -0
  128. package/oracle-bin/Thoth.Json.System.Text.Json.dll +0 -0
  129. package/oracle-bin/cs/FSharp.Compiler.Service.resources.dll +0 -0
  130. package/oracle-bin/cs/FSharp.Core.resources.dll +0 -0
  131. package/oracle-bin/cs/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  132. package/oracle-bin/de/FSharp.Compiler.Service.resources.dll +0 -0
  133. package/oracle-bin/de/FSharp.Core.resources.dll +0 -0
  134. package/oracle-bin/de/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  135. package/oracle-bin/es/FSharp.Compiler.Service.resources.dll +0 -0
  136. package/oracle-bin/es/FSharp.Core.resources.dll +0 -0
  137. package/oracle-bin/es/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  138. package/oracle-bin/fr/FSharp.Compiler.Service.resources.dll +0 -0
  139. package/oracle-bin/fr/FSharp.Core.resources.dll +0 -0
  140. package/oracle-bin/fr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  141. package/oracle-bin/it/FSharp.Compiler.Service.resources.dll +0 -0
  142. package/oracle-bin/it/FSharp.Core.resources.dll +0 -0
  143. package/oracle-bin/it/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  144. package/oracle-bin/ja/FSharp.Compiler.Service.resources.dll +0 -0
  145. package/oracle-bin/ja/FSharp.Core.resources.dll +0 -0
  146. package/oracle-bin/ja/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  147. package/oracle-bin/ko/FSharp.Compiler.Service.resources.dll +0 -0
  148. package/oracle-bin/ko/FSharp.Core.resources.dll +0 -0
  149. package/oracle-bin/ko/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  150. package/oracle-bin/pl/FSharp.Compiler.Service.resources.dll +0 -0
  151. package/oracle-bin/pl/FSharp.Core.resources.dll +0 -0
  152. package/oracle-bin/pl/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  153. package/oracle-bin/pt-BR/FSharp.Compiler.Service.resources.dll +0 -0
  154. package/oracle-bin/pt-BR/FSharp.Core.resources.dll +0 -0
  155. package/oracle-bin/pt-BR/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  156. package/oracle-bin/ru/FSharp.Compiler.Service.resources.dll +0 -0
  157. package/oracle-bin/ru/FSharp.Core.resources.dll +0 -0
  158. package/oracle-bin/ru/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  159. package/oracle-bin/tr/FSharp.Compiler.Service.resources.dll +0 -0
  160. package/oracle-bin/tr/FSharp.Core.resources.dll +0 -0
  161. package/oracle-bin/tr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  162. package/oracle-bin/zh-Hans/FSharp.Compiler.Service.resources.dll +0 -0
  163. package/oracle-bin/zh-Hans/FSharp.Core.resources.dll +0 -0
  164. package/oracle-bin/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  165. package/oracle-bin/zh-Hant/FSharp.Compiler.Service.resources.dll +0 -0
  166. package/oracle-bin/zh-Hant/FSharp.Core.resources.dll +0 -0
  167. package/oracle-bin/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll +0 -0
package/dist/Generate.js CHANGED
@@ -1,9 +1,9 @@
1
1
 
2
- import { join, concat, split, substring, replace } from "./fable_modules/fable-library-js.5.0.0-rc.7/String.js";
2
+ import { join, split, concat, substring, replace } from "./fable_modules/fable-library-js.5.0.0-rc.7/String.js";
3
3
  import { cons, append, toArray, exists, isEmpty, map, filter, ofArray, collect, sort } from "./fable_modules/fable-library-js.5.0.0-rc.7/List.js";
4
4
  import { List_distinct } from "./fable_modules/fable-library-js.5.0.0-rc.7/Seq2.js";
5
5
  import { scan, tail } from "./fable_modules/fable-library-js.5.0.0-rc.7/Array.js";
6
- import { curry2, comparePrimitives, stringHash } from "./fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
6
+ import { comparePrimitives, stringHash } from "./fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
7
7
  import { renderRootIndexPage, renderEntityPage, renderModulePage, renderNamespacePage } from "./Render.js";
8
8
  import { singleton, append as append_1, map as map_1, collect as collect_1, delay, toList } from "./fable_modules/fable-library-js.5.0.0-rc.7/Seq.js";
9
9
  import { Entity__get_Name, Entity__get_FullName } from "./FSharp.Oracle.Schema/Schema.js";
@@ -20,17 +20,14 @@ function toSlug(name) {
20
20
  }
21
21
 
22
22
  function expandNamespaces(namespaces) {
23
- return sort(List_distinct(collect((ns) => {
24
- const parts = split(ns, ["."], undefined, 0);
25
- return ofArray(tail(scan((acc, part) => {
26
- if (acc === "") {
27
- return part;
28
- }
29
- else {
30
- return concat(acc, ".", ...part);
31
- }
32
- }, "", parts)));
33
- }, namespaces), {
23
+ return sort(List_distinct(collect((ns) => ofArray(tail(scan((acc, part) => {
24
+ if (acc === "") {
25
+ return part;
26
+ }
27
+ else {
28
+ return concat(acc, ".", ...part);
29
+ }
30
+ }, "", split(ns, ["."], undefined, 0)))), namespaces), {
34
31
  Equals: (x, y) => (x === y),
35
32
  GetHashCode: (x) => (stringHash(x) | 0),
36
33
  }), {
@@ -50,16 +47,9 @@ function escapeYaml(s) {
50
47
  }
51
48
 
52
49
  function toMdxPage(page) {
53
- let headingsSection;
54
- if (isEmpty(page.TocEntries)) {
55
- headingsSection = "headings: []";
56
- }
57
- else {
58
- const entries = join("\n", map((e) => (` - depth: ${e.Depth}
50
+ const headingsSection = isEmpty(page.TocEntries) ? "headings: []" : ("headings:\n" + join("\n", map((e) => (` - depth: ${e.Depth}
59
51
  slug: "${escapeYaml(e.Slug)}"
60
- text: "${escapeYaml(e.Text)}"`), page.TocEntries));
61
- headingsSection = ("headings:\n" + entries);
62
- }
52
+ text: "${escapeYaml(e.Text)}"`), page.TocEntries)));
63
53
  return `---
64
54
  layout: 'starlight-fsharp-oracle/layouts/FSharpDocLayout.astro'
65
55
  title: "${escapeYaml(page.Title)}"
@@ -75,41 +65,38 @@ ${page.TemplateBody}`;
75
65
  export function namespacePages(outputBase, modules) {
76
66
  const realModules = filter((m) => !m.IsSynthetic, modules);
77
67
  const allNamespaces = namespacesOf(modules);
78
- const htmlLinkGen = (name, fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`);
79
- const directChildNamespaces = (ns) => filter((other) => {
80
- if (other.startsWith(ns + ".") && !(other.slice(ns.length + 1, other.length).indexOf(".") >= 0)) {
81
- return !exists((m_1) => (m_1.FullName === other), realModules);
82
- }
83
- else {
84
- return false;
85
- }
86
- }, allNamespaces);
87
68
  const syntheticModules = filter((m_2) => m_2.IsSynthetic, modules);
88
69
  return map((ns_1) => {
89
70
  const slug = toSlug(ns_1);
90
71
  const modulesInNs = filter((m_3) => (m_3.Namespace === ns_1), realModules);
91
- const subNamespaces = directChildNamespaces(ns_1);
72
+ let subNamespaces;
73
+ const ns = ns_1;
74
+ subNamespaces = filter((other) => {
75
+ if (other.startsWith(ns + ".") && !(other.slice(ns.length + 1, other.length).indexOf(".") >= 0)) {
76
+ return !exists((m_1) => (m_1.FullName === other), realModules);
77
+ }
78
+ else {
79
+ return false;
80
+ }
81
+ }, allNamespaces);
92
82
  const entitiesInNs = collect((m_5) => m_5.Entities, filter((m_4) => (m_4.Namespace === ns_1), syntheticModules));
93
- return [slug, toMdxPage(renderNamespacePage(curry2(htmlLinkGen))(ns_1)(subNamespaces)(entitiesInNs)(modulesInNs))];
83
+ return [slug, toMdxPage(renderNamespacePage((name) => ((fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(ns_1)(subNamespaces)(entitiesInNs)(modulesInNs))];
94
84
  }, allNamespaces);
95
85
  }
96
86
 
97
87
  export function modulePages(outputBase, modules) {
98
88
  const realModules = filter((m) => !m.IsSynthetic, modules);
99
- const htmlLinkGen = (name, fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`);
100
89
  return map((m_1) => {
101
90
  const subModules = filter((other) => (other.Namespace === m_1.FullName), realModules);
102
- return [toSlug(m_1.FullName), toMdxPage(renderModulePage(curry2(htmlLinkGen))(m_1)(subModules))];
91
+ return [toSlug(m_1.FullName), toMdxPage(renderModulePage((name) => ((fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(m_1)(subModules))];
103
92
  }, realModules);
104
93
  }
105
94
 
106
95
  export function entityPages(outputBase, modules) {
107
- const htmlLinkGen = (name, fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`);
108
- return toList(delay(() => collect_1((m) => map_1((e) => [toSlug(Entity__get_FullName(e)), toMdxPage(renderEntityPage(curry2(htmlLinkGen))(e)(m))], m.Entities), modules)));
96
+ return toList(delay(() => collect_1((m) => map_1((e) => [toSlug(Entity__get_FullName(e)), toMdxPage(renderEntityPage((name) => ((fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(e)(m))], m.Entities), modules)));
109
97
  }
110
98
 
111
99
  export function rootIndexPage(outputBase, assemblies, modules) {
112
- const htmlLinkGen = (name, fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`);
113
100
  const globalModules = filter((m) => {
114
101
  if (!m.IsSynthetic) {
115
102
  return m.Namespace === "";
@@ -118,7 +105,7 @@ export function rootIndexPage(outputBase, assemblies, modules) {
118
105
  return false;
119
106
  }
120
107
  }, modules);
121
- return ["index", toMdxPage(renderRootIndexPage(curry2(htmlLinkGen))(assemblies)(globalModules))];
108
+ return ["index", toMdxPage(renderRootIndexPage((name) => ((fullName) => (`<a href="/${outputBase}/${toSlug(fullName)}">${name}</a>`)))(assemblies)(globalModules))];
122
109
  }
123
110
 
124
111
  function sidebarLink(outputBase, label, fullName, letter, kind) {
@@ -161,8 +148,6 @@ function entityLetterAndKind(entity) {
161
148
 
162
149
  function entitySidebarItem(outputBase, entity) {
163
150
  const patternInput = entityLetterAndKind(entity);
164
- const letter = patternInput[0];
165
- const kind = patternInput[1];
166
151
  return {
167
152
  label: Entity__get_Name(entity),
168
153
  link: concat("/", outputBase, "/", ...toSlug(Entity__get_FullName(entity))),
@@ -184,16 +169,10 @@ export function sidebarTree(outputBase, label, modules) {
184
169
  });
185
170
  const moduleSidebarItem = (m_3) => {
186
171
  const subModules = filter((other) => (other.Namespace === m_3.FullName), realModules);
187
- const overviewLink = {
172
+ return sidebarGroup(m_3.Name, "M", "module", append(cons({
188
173
  label: "Overview",
189
174
  link: moduleHref(m_3),
190
- };
191
- const entityItems = map((entity) => entitySidebarItem(outputBase, entity), m_3.Entities);
192
- const functionItems = map((f) => anchorLink(f.Name, concat(moduleHref(m_3), "#", ...f.Name)), m_3.Functions);
193
- const valueItems = map((v) => anchorLink(v.Name, concat(moduleHref(m_3), "#", ...v.Name)), m_3.Values);
194
- const subModuleItems = map(moduleSidebarItem, subModules);
195
- const children = append(cons(overviewLink, entityItems), append(functionItems, append(valueItems, subModuleItems)));
196
- return sidebarGroup(m_3.Name, "M", "module", children);
175
+ }, map((entity) => entitySidebarItem(outputBase, entity), m_3.Entities)), append(map((f) => anchorLink(f.Name, concat(moduleHref(m_3), "#", ...f.Name)), m_3.Functions), append(map((v) => anchorLink(v.Name, concat(moduleHref(m_3), "#", ...v.Name)), m_3.Values), map(moduleSidebarItem, subModules)))));
197
176
  };
198
177
  const buildNsGroup = (ns) => {
199
178
  let shortName;
@@ -209,18 +188,10 @@ export function sidebarTree(outputBase, label, modules) {
209
188
  }, allNamespaces);
210
189
  const modulesInNs = filter((m_5) => (m_5.Namespace === ns), realModules);
211
190
  const syntheticInNs = filter((m_6) => (m_6.Namespace === ns), syntheticModules);
212
- const items = toList(delay(() => append_1(map(moduleSidebarItem, modulesInNs), delay(() => append_1(collect_1((sm) => {
213
- if (sm.Name === "global") {
214
- return map((entity_1) => entitySidebarItem(outputBase, entity_1), sm.Entities);
215
- }
216
- else {
217
- let smShortName;
218
- const lastDot_1 = sm.FullName.lastIndexOf(".") | 0;
219
- smShortName = ((lastDot_1 < 0) ? sm.FullName : sm.FullName.slice(lastDot_1 + 1, sm.FullName.length));
220
- return singleton(sidebarGroup(smShortName, "N", "namespace", map((entity_2) => entitySidebarItem(outputBase, entity_2), sm.Entities)));
221
- }
222
- }, syntheticInNs), delay(() => map(buildNsGroup, directChildNs)))))));
223
- return sidebarGroup(shortName, "N", "namespace", items);
191
+ return sidebarGroup(shortName, "N", "namespace", toList(delay(() => append_1(map(moduleSidebarItem, modulesInNs), delay(() => append_1(collect_1((sm) => {
192
+ let lastDot_1;
193
+ return (sm.Name === "global") ? map((entity_1) => entitySidebarItem(outputBase, entity_1), sm.Entities) : singleton(sidebarGroup((lastDot_1 = (sm.FullName.lastIndexOf(".") | 0), (lastDot_1 < 0) ? sm.FullName : sm.FullName.slice(lastDot_1 + 1, sm.FullName.length)), "N", "namespace", map((entity_2) => entitySidebarItem(outputBase, entity_2), sm.Entities)));
194
+ }, syntheticInNs), delay(() => map(buildNsGroup, directChildNs))))))));
224
195
  };
225
196
  const topLevelNs = filter((ns_1) => {
226
197
  if (!exists((other_2) => ns_1.startsWith(other_2 + "."), allNamespaces)) {
@@ -248,7 +219,6 @@ export function sidebarTree(outputBase, label, modules) {
248
219
  * needing any F#-generated JS logic.
249
220
  */
250
221
  export function sidebarLabelInitScript(sidebarLabel) {
251
- const escaped = replace(replace(sidebarLabel, "\\", "\\\\"), "\'", "\\\'");
252
- return concat("window.__fsharpSidebarLabel = \'", escaped, ..."\';");
222
+ return concat("window.__fsharpSidebarLabel = \'", replace(replace(sidebarLabel, "\\", "\\\\"), "\'", "\\\'"), ..."\';");
253
223
  }
254
224
 
package/dist/Helpers.js CHANGED
@@ -61,8 +61,7 @@ export function collectErrors(results) {
61
61
  return undefined;
62
62
  }
63
63
  else {
64
- const msg = _arg.fields[0];
65
- return msg;
64
+ return _arg.fields[0];
66
65
  }
67
66
  }, results);
68
67
  }
package/dist/Plugin.js CHANGED
@@ -6,22 +6,22 @@ import * as child_process from "child_process";
6
6
  import { map, defaultArg, some } from "./fable_modules/fable-library-js.5.0.0-rc.7/Option.js";
7
7
  import { stringHash, Exception } from "./fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
8
8
  import { join, concat, interpolate } from "./fable_modules/fable-library-js.5.0.0-rc.7/String.js";
9
+ import { unsafeFromString } from "./fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs.js";
10
+ import { generateDecoder } from "./fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs.js";
9
11
  import { Extra_empty } from "./fable_modules/Thoth.Json.Core.Auto.0.1.0/Domain.fs.js";
10
12
  import { Root_$reflection } from "./FSharp.Oracle.Schema/Schema.js";
11
- import { generateDecoder } from "./fable_modules/Thoth.Json.Core.Auto.0.1.0/Decode.fs.js";
12
- import { unsafeFromString } from "./fable_modules/Thoth.Json.JavaScript.0.5.0/Decode.fs.js";
13
13
  import { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from "./fable_modules/Fable.Promise.3.2.0/Promise.fs.js";
14
14
  import { promise } from "./fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs.js";
15
15
  import { createRenderer } from "astro-expressive-code";
16
16
  import { generateCss } from "./Themes.js";
17
17
  import { length, isEmpty, contains, filter, map as map_1, collect } from "./fable_modules/fable-library-js.5.0.0-rc.7/List.js";
18
18
  import { entityPages, rootIndexPage, namespacePages as namespacePages_1, modulePages as modulePages_1, sidebarTree, sidebarLabelInitScript } from "./Generate.js";
19
- import { collectErrors, FileOperationResult$1, writeSync, mkdirSync } from "./Helpers.js";
19
+ import { FileOperationResult$1, collectErrors, writeSync, mkdirSync } from "./Helpers.js";
20
20
 
21
21
  function runExtractor(logger, outputBase, dllPaths) {
22
22
  const maxBuffer = ((50 * 1024) * 1024) | 0;
23
- const oracleProject = path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "packages", "FSharp.Oracle");
24
- const args = toList(delay(() => append(singleton("run"), delay(() => append(singleton("--project"), delay(() => append(singleton(oracleProject), delay(() => append(singleton("--"), delay(() => append(singleton("--output-base"), delay(() => append(singleton(outputBase), delay(() => dllPaths))))))))))))));
23
+ const oracleDll = path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "oracle-bin", "Oracle.dll");
24
+ const args = toList(delay(() => append(singleton(oracleDll), delay(() => append(singleton("--output-base"), delay(() => append(singleton(outputBase), delay(() => dllPaths))))))));
25
25
  const result = child_process.spawnSync("dotnet", Array.from(args), some({
26
26
  encoding: "utf-8",
27
27
  maxBuffer: maxBuffer,
@@ -35,13 +35,7 @@ ${interpolate("%A%P()", [result.stderr])}`);
35
35
  }
36
36
  else {
37
37
  const json = result.stdout;
38
- let decoder_1;
39
- const extra_1 = Extra_empty;
40
- const losslessOption_1 = true;
41
- const ty = Root_$reflection();
42
- const decoder = generateDecoder(undefined, extra_1.DecoderOverrides, false, losslessOption_1, ty);
43
- decoder_1 = decoder;
44
- return unsafeFromString(decoder_1, json);
38
+ return unsafeFromString(generateDecoder(undefined, Extra_empty.DecoderOverrides, false, true, Root_$reflection()), json);
45
39
  }
46
40
  }
47
41
 
@@ -63,9 +57,8 @@ function starlightFSharpDoc(pluginOptions) {
63
57
  clo(arg);
64
58
  });
65
59
  return createRenderer({}).then((_arg) => {
66
- let matchValue, matchValue_1, msg_1, msg;
67
- const ecRenderer = _arg;
68
- const themesCss = generateCss(ecRenderer);
60
+ let matchValue, matchValue_1, msg;
61
+ const themesCss = generateCss(_arg);
69
62
  const outputBase = defaultArg(pluginOptions.output, "api");
70
63
  const root = runExtractor(logger, outputBase, toList(pluginOptions.assemblies));
71
64
  const modules = collect((_arg_1) => _arg_1.Modules, root.Assemblies);
@@ -82,25 +75,19 @@ function starlightFSharpDoc(pluginOptions) {
82
75
  sidebar: toArray(delay(() => append(existingSidebar, delay(() => singleton(sidebarTree(outputBase, sidebarLabel, modules)))))),
83
76
  });
84
77
  const outputDir = path.join(astroConfig.root.pathname, "src", "pages", outputBase);
85
- return ((matchValue = mkdirSync(outputDir), (matchValue.tag === 0) ? ((matchValue_1 = writeSync(path.join(outputDir, ".gitignore"), "# Autogenerated by starlight-fsharp-oracle\n**/*\n"), (matchValue_1.tag === 0) ? (Promise.resolve()) : ((msg_1 = matchValue_1.fields[0], (logger.warn(concat("Failed to write .gitignore: ", ...msg_1)), Promise.resolve()))))) : ((msg = matchValue.fields[0], (logger.error(msg), ((() => {
78
+ return ((matchValue = mkdirSync(outputDir), (matchValue.tag === 0) ? ((matchValue_1 = writeSync(path.join(outputDir, ".gitignore"), "# Autogenerated by starlight-fsharp-oracle\n**/*\n"), (matchValue_1.tag === 0) ? (Promise.resolve()) : ((logger.warn(concat("Failed to write .gitignore: ", ...matchValue_1.fields[0])), Promise.resolve())))) : ((msg = matchValue.fields[0], (logger.error(msg), ((() => {
86
79
  throw new Exception(msg);
87
80
  })(), Promise.resolve())))))).then(() => PromiseBuilder__Delay_62FBFDE1(promise, () => {
88
81
  const modulePages = modulePages_1(outputBase, modules);
89
82
  const namespacePages = namespacePages_1(outputBase, modules);
90
83
  const moduleSlugs = map_1((tuple) => tuple[0], modulePages);
91
- const dedupedNamespacePages = filter((tupledArg) => {
92
- const slug = tupledArg[0];
93
- return !contains(slug, moduleSlugs, {
94
- Equals: (x, y) => (x === y),
95
- GetHashCode: (x) => (stringHash(x) | 0),
96
- });
97
- }, namespacePages);
98
- const pages = toList(delay(() => append(singleton(rootIndexPage(outputBase, root.Assemblies, modules)), delay(() => append(dedupedNamespacePages, delay(() => append(modulePages, delay(() => entityPages(outputBase, modules)))))))));
99
- const writeResults = map_1((tupledArg_1) => {
100
- const slug_1 = tupledArg_1[0];
101
- const content = tupledArg_1[1];
102
- const filePath = path.join(outputDir, slug_1 + ".mdx");
103
- const matchValue_2 = writeSync(filePath, content);
84
+ const dedupedNamespacePages = filter((tupledArg) => !contains(tupledArg[0], moduleSlugs, {
85
+ Equals: (x, y) => (x === y),
86
+ GetHashCode: (x) => (stringHash(x) | 0),
87
+ }), namespacePages);
88
+ const errors = collectErrors(map_1((tupledArg_1) => {
89
+ const filePath = path.join(outputDir, tupledArg_1[0] + ".mdx");
90
+ const matchValue_2 = writeSync(filePath, tupledArg_1[1]);
104
91
  if (matchValue_2.tag === 0) {
105
92
  logger.info(concat(" wrote ", ...filePath));
106
93
  return new FileOperationResult$1(0, [undefined]);
@@ -110,8 +97,7 @@ function starlightFSharpDoc(pluginOptions) {
110
97
  logger.error(msg_2);
111
98
  return new FileOperationResult$1(1, [msg_2]);
112
99
  }
113
- }, pages);
114
- const errors = collectErrors(writeResults);
100
+ }, toList(delay(() => append(singleton(rootIndexPage(outputBase, root.Assemblies, modules)), delay(() => append(dedupedNamespacePages, delay(() => append(modulePages, delay(() => entityPages(outputBase, modules)))))))))));
115
101
  if (!isEmpty(errors)) {
116
102
  const errorMsg = (`Failed to write ${length(errors)} file(s):
117
103
  `) + join("\n", errors);
@@ -13,8 +13,7 @@ export function renderSummary(sb, xmlDoc) {
13
13
  if (matchValue == null) {
14
14
  }
15
15
  else {
16
- const summary = matchValue;
17
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(summary));
16
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(matchValue));
18
17
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
19
18
  }
20
19
  }
@@ -1,50 +1,46 @@
1
1
 
2
+ import { tocH3, h2, escapeMdxText, renderDocEntry } from "./Primitives.js";
3
+ import { FSharp_Oracle_Schema_TextNode__TextNode_ToHtml_Static_Z3A0E64B3, FSharp_Oracle_Schema_TextNode__TextNode_get_Html } from "../Extensions/TextNode.js";
4
+ import { MemberKind, TextNode, ObsoleteInfo } from "../FSharp.Oracle.Schema/Schema.js";
5
+ import { renderXmlDocBody, renderDocumentationBlock } from "./Documentation.js";
2
6
  import { collect, map, ofArray, isEmpty, filter } from "../fable_modules/fable-library-js.5.0.0-rc.7/List.js";
3
7
  import { System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
4
8
  import { equals, disposeSafe, getEnumerator } from "../fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
5
- import { FSharp_Oracle_Schema_TextNode__TextNode_get_Html, FSharp_Oracle_Schema_TextNode__TextNode_ToHtml_Static_Z3A0E64B3 } from "../Extensions/TextNode.js";
6
- import { MemberKind, ObsoleteInfo, TextNode } from "../FSharp.Oracle.Schema/Schema.js";
7
- import { tocH3, h2, renderDocEntry, escapeMdxText } from "./Primitives.js";
8
9
  import { value as value_1 } from "../fable_modules/fable-library-js.5.0.0-rc.7/Option.js";
9
- import { renderXmlDocBody, renderDocumentationBlock } from "./Documentation.js";
10
10
  import { join } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
11
11
  import { map as map_1, singleton, append, delay, toList } from "../fable_modules/fable-library-js.5.0.0-rc.7/Seq.js";
12
12
 
13
13
  export function renderUnionCaseEntry(sb, case$) {
14
- const renderFields = () => {
15
- const documentedFields = filter((f) => (f.XmlDoc.Summary != null), case$.Fields);
16
- if (!isEmpty(documentedFields)) {
17
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<strong>Fields</strong>");
18
- const enumerator = getEnumerator(documentedFields);
19
- try {
20
- while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
21
- const f_1 = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
22
- const fieldDeclaration = FSharp_Oracle_Schema_TextNode__TextNode_ToHtml_Static_Z3A0E64B3(ofArray([new TextNode(23, ["div", "fs-parameter__signature"]), new TextNode(20, []), new TextNode(0, [f_1.Name]), new TextNode(9, []), new TextNode(12, []), new TextNode(9, []), f_1.Type, new TextNode(20, []), new TextNode(22, ["div"]), new TextNode(20, [])]));
23
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, fieldDeclaration);
24
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\'fs-parameter__documentation\'>");
25
- System_Text_StringBuilder__StringBuilder_NewLine(sb);
26
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(value_1(f_1.XmlDoc.Summary)));
27
- System_Text_StringBuilder__StringBuilder_NewLine(sb);
28
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
14
+ renderDocEntry(sb, case$.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(case$.Declaration), new ObsoleteInfo(0, []), () => {
15
+ renderDocumentationBlock(sb, case$.XmlDoc, () => {
16
+ const documentedFields = filter((f) => (f.XmlDoc.Summary != null), case$.Fields);
17
+ if (!isEmpty(documentedFields)) {
18
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<strong>Fields</strong>");
19
+ const enumerator = getEnumerator(documentedFields);
20
+ try {
21
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
22
+ const f_1 = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
23
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, FSharp_Oracle_Schema_TextNode__TextNode_ToHtml_Static_Z3A0E64B3(ofArray([new TextNode(23, ["div", "fs-parameter__signature"]), new TextNode(20, []), new TextNode(0, [f_1.Name]), new TextNode(9, []), new TextNode(12, []), new TextNode(9, []), f_1.Type, new TextNode(20, []), new TextNode(22, ["div"]), new TextNode(20, [])])));
24
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\'fs-parameter__documentation\'>");
25
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
26
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(value_1(f_1.XmlDoc.Summary)));
27
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
28
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
29
+ }
30
+ }
31
+ finally {
32
+ disposeSafe(enumerator);
29
33
  }
30
34
  }
31
- finally {
32
- disposeSafe(enumerator);
33
- }
34
- }
35
- };
36
- const renderDocumentation = () => {
37
- renderDocumentationBlock(sb, case$.XmlDoc, renderFields);
38
- };
39
- renderDocEntry(sb, case$.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(case$.Declaration), new ObsoleteInfo(0, []), renderDocumentation);
35
+ });
36
+ });
40
37
  }
41
38
 
42
39
  export function renderRecordField(sb, field) {
43
- const renderDocumentation = () => {
40
+ renderDocEntry(sb, field.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(field.Declaration), new ObsoleteInfo(0, []), () => {
44
41
  renderDocumentationBlock(sb, field.XmlDoc, () => {
45
42
  });
46
- };
47
- renderDocEntry(sb, field.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(field.Declaration), new ObsoleteInfo(0, []), renderDocumentation);
43
+ });
48
44
  }
49
45
 
50
46
  export function renderMemberEntry(sb, m) {
@@ -139,10 +135,9 @@ export function renderFunctionEntry(sb, f) {
139
135
  }
140
136
 
141
137
  export function renderValueEntry(sb, v) {
142
- const renderDocumentation = () => {
138
+ renderDocEntry(sb, v.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(v.Declaration), v.ObsoleteInfo, () => {
143
139
  renderDocumentationBlock(sb, v.XmlDoc, () => {
144
140
  });
145
- };
146
- renderDocEntry(sb, v.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(v.Declaration), v.ObsoleteInfo, renderDocumentation);
141
+ });
147
142
  }
148
143
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { isEmpty } from "../fable_modules/fable-library-js.5.0.0-rc.7/List.js";
3
- import { tocH3, renderObsoleteBanner, escapeMdxText, obsoleteInlineHtml, h2 } from "./Primitives.js";
3
+ import { tocH3, renderObsoleteBanner, escapeMdxInline, obsoleteInlineHtml, h2 } from "./Primitives.js";
4
4
  import { System_Text_StringBuilder__StringBuilder_Write_Z721C83C5, System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
5
5
  import { disposeSafe, getEnumerator } from "../fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
6
6
  import { concat } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
@@ -26,8 +26,7 @@ export function renderDeclaredModules(sb, toc, htmlLinkGen, modules) {
26
26
  if (matchValue == null) {
27
27
  }
28
28
  else {
29
- const doc = matchValue;
30
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(doc), ..."</dd>"));
29
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxInline(matchValue), ..."</dd>"));
31
30
  }
32
31
  }
33
32
  }
@@ -55,9 +54,8 @@ export function renderEntityPage(htmlLinkGen, entity, parentModule) {
55
54
  renderXmlDocSummaryAndRemarks(sb, toc, Entity__get_XmlDoc(entity));
56
55
  switch (entity.tag) {
57
56
  case 1: {
58
- const e = entity.fields[0];
59
57
  System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
60
- const enumerator = getEnumerator(e.Cases);
58
+ const enumerator = getEnumerator(entity.fields[0].Cases);
61
59
  try {
62
60
  while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
63
61
  const c = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
@@ -95,13 +93,11 @@ export function renderEntityPage(htmlLinkGen, entity, parentModule) {
95
93
  break;
96
94
  }
97
95
  case 3: {
98
- const e_1 = entity.fields[0];
99
- renderMemberSections(sb, toc, e_1.Members);
96
+ renderMemberSections(sb, toc, entity.fields[0].Members);
100
97
  break;
101
98
  }
102
99
  case 4: {
103
- const e_2 = entity.fields[0];
104
- renderMemberSections(sb, toc, e_2.Members);
100
+ renderMemberSections(sb, toc, entity.fields[0].Members);
105
101
  break;
106
102
  }
107
103
  case 7: {
@@ -140,11 +136,9 @@ export function renderNamespacePage(htmlLinkGen, ns, subNamespaces, entities, mo
140
136
  const enumerator = getEnumerator(subNamespaces);
141
137
  try {
142
138
  while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
139
+ let lastDot;
143
140
  const subNs = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
144
- let shortName;
145
- const lastDot = subNs.lastIndexOf(".") | 0;
146
- shortName = ((lastDot < 0) ? subNs : subNs.slice(lastDot + 1, subNs.length));
147
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dt>", htmlLinkGen(shortName, subNs), ..."</dt>"));
141
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dt>", htmlLinkGen((lastDot = (subNs.lastIndexOf(".") | 0), (lastDot < 0) ? subNs : subNs.slice(lastDot + 1, subNs.length)), subNs), ..."</dt>"));
148
142
  }
149
143
  }
150
144
  finally {
@@ -165,8 +159,7 @@ export function renderNamespacePage(htmlLinkGen, ns, subNamespaces, entities, mo
165
159
  if (matchValue == null) {
166
160
  }
167
161
  else {
168
- const summary = matchValue;
169
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(summary), ..."</dd>"));
162
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxInline(matchValue), ..."</dd>"));
170
163
  }
171
164
  }
172
165
  }
@@ -197,8 +190,7 @@ export function renderModulePage(htmlLinkGen, m, subModules) {
197
190
  if (matchValue == null) {
198
191
  }
199
192
  else {
200
- const summary = matchValue;
201
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(summary), ..."</dd>"));
193
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxInline(matchValue), ..."</dd>"));
202
194
  }
203
195
  }
204
196
  }
@@ -260,8 +252,7 @@ export function renderRootIndexPage(htmlLinkGen, assemblies, globalModules) {
260
252
  if (matchValue == null) {
261
253
  }
262
254
  else {
263
- const doc = matchValue;
264
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(doc), ..."</dd>"));
255
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxInline(matchValue), ..."</dd>"));
265
256
  }
266
257
  }
267
258
  }
@@ -1,5 +1,6 @@
1
1
 
2
2
  import { concat, replace } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
3
+ import { replace as replace_1 } from "../fable_modules/fable-library-js.5.0.0-rc.7/RegExp.js";
3
4
  import { TocEntry } from "./Types.js";
4
5
  import { System_Text_StringBuilder__StringBuilder_Write_Z721C83C5, System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
5
6
  import { indexed, head, tail, isEmpty } from "../fable_modules/fable-library-js.5.0.0-rc.7/List.js";
@@ -13,6 +14,15 @@ export function escapeMdxText(text) {
13
14
  return replace(replace(replace(replace(replace(text, "&", "&amp;"), "<", "&lt;"), ">", "&gt;"), "{", "&#123;"), "}", "&#125;");
14
15
  }
15
16
 
17
+ /**
18
+ * Escape text destined for an inline element such as `<dd>`. A blank line in
19
+ * the source would be parsed by MDX as a paragraph break and close the
20
+ * element early, so all whitespace runs are collapsed to single spaces first.
21
+ */
22
+ export function escapeMdxInline(text) {
23
+ return escapeMdxText(replace_1(text, "\\s+", " ").trim());
24
+ }
25
+
16
26
  export function h2(sb, toc, slug, text) {
17
27
  void (toc.push(new TocEntry(2, slug, text)));
18
28
  System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<h2 id="${slug}">${text}</h2>`);
@@ -24,24 +34,8 @@ export function tocH3(toc, slug, text) {
24
34
  }
25
35
 
26
36
  export function renderDocEntry(sb, name, signatureHtml, obsoleteInfo, renderDocumentation) {
27
- let patternInput;
28
- switch (obsoleteInfo.tag) {
29
- case 1: {
30
- patternInput = [" obsolete", ""];
31
- break;
32
- }
33
- case 2: {
34
- const msg = obsoleteInfo.fields[0];
35
- const escaped = replace(msg, "\"", "&quot;");
36
- patternInput = [" obsolete", concat(" obsoleteMessage=\"", escaped, ..."\"")];
37
- break;
38
- }
39
- default:
40
- patternInput = ["", ""];
41
- }
42
- const obsoleteMessageAttr = patternInput[1];
43
- const obsoleteAttr = patternInput[0];
44
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<DocEntry name="${name}"${obsoleteAttr}${obsoleteMessageAttr}>`);
37
+ const patternInput = (obsoleteInfo.tag === 1) ? [" obsolete", ""] : ((obsoleteInfo.tag === 2) ? [" obsolete", concat(" obsoleteMessage=\"", replace(obsoleteInfo.fields[0], "\"", "&quot;"), ..."\"")] : ["", ""]);
38
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<DocEntry name="${name}"${patternInput[0]}${patternInput[1]}>`);
45
39
  System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, "<div class=\"fsharp-doc-sig\" slot=\"signature\">");
46
40
  System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, signatureHtml);
47
41
  System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
@@ -59,8 +53,7 @@ export function renderObsoleteBanner(sb, obsoleteInfo) {
59
53
  break;
60
54
  }
61
55
  case 2: {
62
- const msg = obsoleteInfo.fields[0];
63
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<Aside type=\"caution\" title=\"Deprecated\">", escapeMdxText(msg), ..."</Aside>"));
56
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<Aside type=\"caution\" title=\"Deprecated\">", escapeMdxText(obsoleteInfo.fields[0]), ..."</Aside>"));
64
57
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
65
58
  break;
66
59
  }
@@ -73,10 +66,8 @@ export function obsoleteInlineHtml(obsoleteInfo) {
73
66
  switch (obsoleteInfo.tag) {
74
67
  case 1:
75
68
  return " <span class=\"fsharp-doc-obsolete-inline\">Deprecated</span>";
76
- case 2: {
77
- const msg = obsoleteInfo.fields[0];
78
- return concat(" <span class=\"fsharp-doc-obsolete-inline\" title=\"", msg, ..."\">Deprecated</span>");
79
- }
69
+ case 2:
70
+ return concat(" <span class=\"fsharp-doc-obsolete-inline\" title=\"", obsoleteInfo.fields[0], ..."\">Deprecated</span>");
80
71
  default:
81
72
  return "";
82
73
  }
@@ -85,23 +76,19 @@ export function obsoleteInlineHtml(obsoleteInfo) {
85
76
  export function renderExamples(sb, examples) {
86
77
  if (!isEmpty(examples)) {
87
78
  if (isEmpty(tail(examples))) {
88
- const single = head(examples);
89
79
  System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<strong>Example</strong>");
90
80
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
91
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(single));
81
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(head(examples)));
92
82
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
93
83
  }
94
84
  else {
95
- const multiple = examples;
96
- const enumerator = getEnumerator(indexed(multiple));
85
+ const enumerator = getEnumerator(indexed(examples));
97
86
  try {
98
87
  while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
99
88
  const forLoopVar = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
100
- const i = forLoopVar[0] | 0;
101
- const example = forLoopVar[1];
102
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<strong>Example ${i + 1}</strong>`);
89
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<strong>Example ${forLoopVar[0] + 1}</strong>`);
103
90
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
104
- System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(example));
91
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(forLoopVar[1]));
105
92
  System_Text_StringBuilder__StringBuilder_NewLine(sb);
106
93
  }
107
94
  }
package/dist/Themes.js CHANGED
@@ -26,15 +26,14 @@ function colorFor(theme, targetScopes) {
26
26
  const fg = theme.fg;
27
27
  return defaultArg(tryPick((rule) => {
28
28
  const ruleScopes = scopesOf(rule);
29
- const matches = exists((target) => ruleScopes.some((rs) => {
29
+ if (!exists((target) => ruleScopes.some((rs) => {
30
30
  if (target === rs) {
31
31
  return true;
32
32
  }
33
33
  else {
34
34
  return target.startsWith(rs + ".");
35
35
  }
36
- }), targetScopes);
37
- if (!matches) {
36
+ }), targetScopes)) {
38
37
  return undefined;
39
38
  }
40
39
  else {
@@ -60,8 +59,7 @@ export function generateCss(ecRenderer) {
60
59
  const sb = StringBuilder_$ctor();
61
60
  for (let idx = 0; idx <= (themes.length - 1); idx++) {
62
61
  const theme = item(idx, themes);
63
- const themeType = theme.type;
64
- const selector = (themeType === "dark") ? ":root[data-theme=\'dark\']" : ":root";
62
+ const selector = (theme.type === "dark") ? ":root[data-theme=\'dark\']" : ":root";
65
63
  const kw = colorFor(theme, ofArray(["keyword", "storage.type", "keyword.operator"]));
66
64
  const fn_ = colorFor(theme, ofArray(["variable", "entity.name.function"]));
67
65
  const type_ = colorFor(theme, ofArray(["entity", "entity.name"]));