starlight-fsharp-oracle 0.1.0

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 (89) hide show
  1. package/Directory.Build.props +25 -0
  2. package/Directory.Packages.props +18 -0
  3. package/README.md +80 -0
  4. package/dist/Extensions/StringBuilder.js +28 -0
  5. package/dist/Extensions/TextNode.js +115 -0
  6. package/dist/FSharp.Oracle.Schema/Schema.js +674 -0
  7. package/dist/Generate.js +254 -0
  8. package/dist/Helpers.js +69 -0
  9. package/dist/Plugin.js +139 -0
  10. package/dist/Render/Documentation.js +87 -0
  11. package/dist/Render/Entries.js +148 -0
  12. package/dist/Render/Pages.js +292 -0
  13. package/dist/Render/Primitives.js +114 -0
  14. package/dist/Render/Types.js +30 -0
  15. package/dist/Render.js +12 -0
  16. package/dist/Themes.js +78 -0
  17. package/oracle-bin/FSharp.Compiler.Service.dll +0 -0
  18. package/oracle-bin/FSharp.Core.dll +0 -0
  19. package/oracle-bin/FSharp.DependencyManager.Nuget.dll +0 -0
  20. package/oracle-bin/FSharp.Oracle.Schema.dll +0 -0
  21. package/oracle-bin/FSharp.Oracle.Schema.pdb +0 -0
  22. package/oracle-bin/FSharp.Oracle.Schema.xml +219 -0
  23. package/oracle-bin/Fable.Core.dll +0 -0
  24. package/oracle-bin/Oracle +0 -0
  25. package/oracle-bin/Oracle.deps.json +280 -0
  26. package/oracle-bin/Oracle.dll +0 -0
  27. package/oracle-bin/Oracle.pdb +0 -0
  28. package/oracle-bin/Oracle.runtimeconfig.json +13 -0
  29. package/oracle-bin/Oracle.xml +111 -0
  30. package/oracle-bin/Thoth.Json.Core.Auto.dll +0 -0
  31. package/oracle-bin/Thoth.Json.Core.dll +0 -0
  32. package/oracle-bin/Thoth.Json.System.Text.Json.dll +0 -0
  33. package/oracle-bin/cs/FSharp.Compiler.Service.resources.dll +0 -0
  34. package/oracle-bin/cs/FSharp.Core.resources.dll +0 -0
  35. package/oracle-bin/cs/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  36. package/oracle-bin/de/FSharp.Compiler.Service.resources.dll +0 -0
  37. package/oracle-bin/de/FSharp.Core.resources.dll +0 -0
  38. package/oracle-bin/de/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  39. package/oracle-bin/es/FSharp.Compiler.Service.resources.dll +0 -0
  40. package/oracle-bin/es/FSharp.Core.resources.dll +0 -0
  41. package/oracle-bin/es/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  42. package/oracle-bin/fr/FSharp.Compiler.Service.resources.dll +0 -0
  43. package/oracle-bin/fr/FSharp.Core.resources.dll +0 -0
  44. package/oracle-bin/fr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  45. package/oracle-bin/it/FSharp.Compiler.Service.resources.dll +0 -0
  46. package/oracle-bin/it/FSharp.Core.resources.dll +0 -0
  47. package/oracle-bin/it/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  48. package/oracle-bin/ja/FSharp.Compiler.Service.resources.dll +0 -0
  49. package/oracle-bin/ja/FSharp.Core.resources.dll +0 -0
  50. package/oracle-bin/ja/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  51. package/oracle-bin/ko/FSharp.Compiler.Service.resources.dll +0 -0
  52. package/oracle-bin/ko/FSharp.Core.resources.dll +0 -0
  53. package/oracle-bin/ko/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  54. package/oracle-bin/pl/FSharp.Compiler.Service.resources.dll +0 -0
  55. package/oracle-bin/pl/FSharp.Core.resources.dll +0 -0
  56. package/oracle-bin/pl/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  57. package/oracle-bin/pt-BR/FSharp.Compiler.Service.resources.dll +0 -0
  58. package/oracle-bin/pt-BR/FSharp.Core.resources.dll +0 -0
  59. package/oracle-bin/pt-BR/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  60. package/oracle-bin/ru/FSharp.Compiler.Service.resources.dll +0 -0
  61. package/oracle-bin/ru/FSharp.Core.resources.dll +0 -0
  62. package/oracle-bin/ru/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  63. package/oracle-bin/tr/FSharp.Compiler.Service.resources.dll +0 -0
  64. package/oracle-bin/tr/FSharp.Core.resources.dll +0 -0
  65. package/oracle-bin/tr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  66. package/oracle-bin/zh-Hans/FSharp.Compiler.Service.resources.dll +0 -0
  67. package/oracle-bin/zh-Hans/FSharp.Core.resources.dll +0 -0
  68. package/oracle-bin/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  69. package/oracle-bin/zh-Hant/FSharp.Compiler.Service.resources.dll +0 -0
  70. package/oracle-bin/zh-Hant/FSharp.Core.resources.dll +0 -0
  71. package/oracle-bin/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll +0 -0
  72. package/package.json +38 -0
  73. package/packages/FSharp.Oracle/Extractor/Assembly.fs +160 -0
  74. package/packages/FSharp.Oracle/Extractor/EntityExtractor.fs +608 -0
  75. package/packages/FSharp.Oracle/Extractor/Helpers.fs +150 -0
  76. package/packages/FSharp.Oracle/Extractor/MemberExtractor.fs +172 -0
  77. package/packages/FSharp.Oracle/Extractor/ModuleExtractor.fs +45 -0
  78. package/packages/FSharp.Oracle/Extractor/ParameterExtractor.fs +47 -0
  79. package/packages/FSharp.Oracle/Extractor/SignatureRendering.fs +464 -0
  80. package/packages/FSharp.Oracle/Extractor/ValueExtractor.fs +171 -0
  81. package/packages/FSharp.Oracle/FSharp.Oracle.fsproj +36 -0
  82. package/packages/FSharp.Oracle/Program.fs +66 -0
  83. package/packages/FSharp.Oracle/XmlDoc.fs +463 -0
  84. package/packages/FSharp.Oracle.Schema/FSharp.Oracle.Schema.fsproj +16 -0
  85. package/packages/FSharp.Oracle.Schema/Schema.fs +454 -0
  86. package/packages/Starlight.FSharp.Oracle/components/DocEntry.astro +256 -0
  87. package/packages/Starlight.FSharp.Oracle/components/FSharpDocPage.astro +121 -0
  88. package/packages/Starlight.FSharp.Oracle/components/fsharp-doc.css +58 -0
  89. package/packages/Starlight.FSharp.Oracle/layouts/FSharpDocLayout.astro +27 -0
@@ -0,0 +1,148 @@
1
+
2
+ import { collect, map, ofArray, isEmpty, filter } from "../fable_modules/fable-library-js.5.0.0-rc.7/List.js";
3
+ import { System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
4
+ 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
+ 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
+ import { join } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
11
+ import { map as map_1, singleton, append, delay, toList } from "../fable_modules/fable-library-js.5.0.0-rc.7/Seq.js";
12
+
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>");
29
+ }
30
+ }
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);
40
+ }
41
+
42
+ export function renderRecordField(sb, field) {
43
+ const renderDocumentation = () => {
44
+ renderDocumentationBlock(sb, field.XmlDoc, () => {
45
+ });
46
+ };
47
+ renderDocEntry(sb, field.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(field.Declaration), new ObsoleteInfo(0, []), renderDocumentation);
48
+ }
49
+
50
+ export function renderMemberEntry(sb, m) {
51
+ renderDocEntry(sb, m.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(m.Declaration), m.ObsoleteInfo, () => {
52
+ renderXmlDocBody(sb, m.Parameters, m.XmlDoc);
53
+ });
54
+ }
55
+
56
+ export function renderMemberSections(sb, toc, members) {
57
+ const constructors = filter((m) => equals(m.Kind, new MemberKind(2, [])), members);
58
+ const properties = filter((m_1) => equals(m_1.Kind, new MemberKind(1, [])), members);
59
+ const methods = filter((m_2) => equals(m_2.Kind, new MemberKind(0, [])), members);
60
+ const operators = filter((m_3) => equals(m_3.Kind, new MemberKind(3, [])), members);
61
+ if (!isEmpty(constructors)) {
62
+ h2(sb, toc, "constructors", "Constructors");
63
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
64
+ const enumerator = getEnumerator(constructors);
65
+ try {
66
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
67
+ const m_4 = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
68
+ tocH3(toc, m_4.Name, m_4.Name);
69
+ renderMemberEntry(sb, m_4);
70
+ }
71
+ }
72
+ finally {
73
+ disposeSafe(enumerator);
74
+ }
75
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
76
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
77
+ }
78
+ if (!isEmpty(properties)) {
79
+ h2(sb, toc, "properties", "Properties");
80
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
81
+ const enumerator_1 = getEnumerator(properties);
82
+ try {
83
+ while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
84
+ const m_5 = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
85
+ tocH3(toc, m_5.Name, m_5.Name);
86
+ renderMemberEntry(sb, m_5);
87
+ }
88
+ }
89
+ finally {
90
+ disposeSafe(enumerator_1);
91
+ }
92
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
93
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
94
+ }
95
+ if (!isEmpty(methods)) {
96
+ h2(sb, toc, "methods", "Methods");
97
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
98
+ const enumerator_2 = getEnumerator(methods);
99
+ try {
100
+ while (enumerator_2["System.Collections.IEnumerator.MoveNext"]()) {
101
+ const m_6 = enumerator_2["System.Collections.Generic.IEnumerator`1.get_Current"]();
102
+ tocH3(toc, m_6.Name, m_6.Name);
103
+ renderMemberEntry(sb, m_6);
104
+ }
105
+ }
106
+ finally {
107
+ disposeSafe(enumerator_2);
108
+ }
109
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
110
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
111
+ }
112
+ if (!isEmpty(operators)) {
113
+ h2(sb, toc, "operators", "Operators");
114
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
115
+ const enumerator_3 = getEnumerator(operators);
116
+ try {
117
+ while (enumerator_3["System.Collections.IEnumerator.MoveNext"]()) {
118
+ const m_7 = enumerator_3["System.Collections.Generic.IEnumerator`1.get_Current"]();
119
+ tocH3(toc, m_7.Name, m_7.Name);
120
+ renderMemberEntry(sb, m_7);
121
+ }
122
+ }
123
+ finally {
124
+ disposeSafe(enumerator_3);
125
+ }
126
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
127
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
128
+ }
129
+ }
130
+
131
+ export function functionSignatureHtml(f) {
132
+ return join("", map(FSharp_Oracle_Schema_TextNode__TextNode_get_Html, toList(delay(() => append(singleton(f.AlignedDeclaration), delay(() => append(map_1((p) => p.AlignedDeclaration, collect((x) => x, f.Parameters)), delay(() => singleton(f.ReturnType)))))))));
133
+ }
134
+
135
+ export function renderFunctionEntry(sb, f) {
136
+ renderDocEntry(sb, f.Name, functionSignatureHtml(f), f.ObsoleteInfo, () => {
137
+ renderXmlDocBody(sb, f.Parameters, f.XmlDoc);
138
+ });
139
+ }
140
+
141
+ export function renderValueEntry(sb, v) {
142
+ const renderDocumentation = () => {
143
+ renderDocumentationBlock(sb, v.XmlDoc, () => {
144
+ });
145
+ };
146
+ renderDocEntry(sb, v.Name, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(v.Declaration), v.ObsoleteInfo, renderDocumentation);
147
+ }
148
+
@@ -0,0 +1,292 @@
1
+
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";
4
+ import { System_Text_StringBuilder__StringBuilder_Write_Z721C83C5, System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
5
+ import { disposeSafe, getEnumerator } from "../fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
6
+ import { concat } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
7
+ import { StringBuilder_$ctor } from "../fable_modules/fable-library-js.5.0.0-rc.7/System.Text.js";
8
+ import { Entity__get_FullName, Entity__get_Name, Entity__get_XmlDoc, Entity__get_Declaration, Entity__get_ObsoleteInfo } from "../FSharp.Oracle.Schema/Schema.js";
9
+ import { FSharp_Oracle_Schema_TextNode__TextNode_get_Html } from "../Extensions/TextNode.js";
10
+ import { renderXmlDocSummaryAndRemarks } from "./Documentation.js";
11
+ import { renderValueEntry, renderFunctionEntry, renderMemberSections, renderRecordField, renderUnionCaseEntry } from "./Entries.js";
12
+ import { toString } from "../fable_modules/fable-library-js.5.0.0-rc.7/Types.js";
13
+ import { toList } from "../fable_modules/fable-library-js.5.0.0-rc.7/Seq.js";
14
+ import { RenderedPage } from "./Types.js";
15
+
16
+ export function renderDeclaredModules(sb, toc, htmlLinkGen, modules) {
17
+ if (!isEmpty(modules)) {
18
+ h2(sb, toc, "declared-modules", "Declared Modules");
19
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<dl>");
20
+ const enumerator = getEnumerator(modules);
21
+ try {
22
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
23
+ const m = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
24
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dt>", htmlLinkGen(m.Name, m.FullName), obsoleteInlineHtml(m.ObsoleteInfo), ..."</dt>"));
25
+ const matchValue = m.XmlDoc;
26
+ if (matchValue == null) {
27
+ }
28
+ else {
29
+ const doc = matchValue;
30
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(doc), ..."</dd>"));
31
+ }
32
+ }
33
+ }
34
+ finally {
35
+ disposeSafe(enumerator);
36
+ }
37
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</dl>");
38
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
39
+ }
40
+ }
41
+
42
+ export function renderEntityPage(htmlLinkGen, entity, parentModule) {
43
+ const sb = StringBuilder_$ctor();
44
+ const toc = [];
45
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<p><strong>Namespace:</strong> ", ...htmlLinkGen(parentModule.Namespace, parentModule.Namespace)) + concat("&nbsp;&nbsp;<strong>Parent:</strong> ", htmlLinkGen(parentModule.FullName, parentModule.FullName), ..."</p>"));
46
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
47
+ renderObsoleteBanner(sb, Entity__get_ObsoleteInfo(entity));
48
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"not-content\">");
49
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"fsharp-doc-sig\">");
50
+ System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, FSharp_Oracle_Schema_TextNode__TextNode_get_Html(Entity__get_Declaration(entity)));
51
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
52
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
53
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
54
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
55
+ renderXmlDocSummaryAndRemarks(sb, toc, Entity__get_XmlDoc(entity));
56
+ switch (entity.tag) {
57
+ case 1: {
58
+ const e = entity.fields[0];
59
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
60
+ const enumerator = getEnumerator(e.Cases);
61
+ try {
62
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
63
+ const c = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
64
+ tocH3(toc, c.Name, c.Name);
65
+ renderUnionCaseEntry(sb, c);
66
+ }
67
+ }
68
+ finally {
69
+ disposeSafe(enumerator);
70
+ }
71
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
72
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
73
+ break;
74
+ }
75
+ case 0: {
76
+ const r = entity.fields[0];
77
+ if (!isEmpty(r.Fields)) {
78
+ h2(sb, toc, "fields", "Fields");
79
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
80
+ const enumerator_1 = getEnumerator(r.Fields);
81
+ try {
82
+ while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
83
+ const field = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
84
+ tocH3(toc, field.Name, field.Name);
85
+ renderRecordField(sb, field);
86
+ }
87
+ }
88
+ finally {
89
+ disposeSafe(enumerator_1);
90
+ }
91
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
92
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
93
+ }
94
+ renderMemberSections(sb, toc, r.Members);
95
+ break;
96
+ }
97
+ case 3: {
98
+ const e_1 = entity.fields[0];
99
+ renderMemberSections(sb, toc, e_1.Members);
100
+ break;
101
+ }
102
+ case 4: {
103
+ const e_2 = entity.fields[0];
104
+ renderMemberSections(sb, toc, e_2.Members);
105
+ break;
106
+ }
107
+ case 7: {
108
+ const e_3 = entity.fields[0];
109
+ if (!isEmpty(e_3.Fields)) {
110
+ h2(sb, toc, "fields", "Fields");
111
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
112
+ const enumerator_2 = getEnumerator(e_3.Fields);
113
+ try {
114
+ while (enumerator_2["System.Collections.IEnumerator.MoveNext"]()) {
115
+ const field_1 = enumerator_2["System.Collections.Generic.IEnumerator`1.get_Current"]();
116
+ tocH3(toc, field_1.Name, field_1.Name);
117
+ renderRecordField(sb, field_1);
118
+ }
119
+ }
120
+ finally {
121
+ disposeSafe(enumerator_2);
122
+ }
123
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
124
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
125
+ }
126
+ break;
127
+ }
128
+ default:
129
+ undefined;
130
+ }
131
+ return new RenderedPage(Entity__get_Name(entity), toString(sb), toList(toc));
132
+ }
133
+
134
+ export function renderNamespacePage(htmlLinkGen, ns, subNamespaces, entities, modules) {
135
+ const sb = StringBuilder_$ctor();
136
+ const toc = [];
137
+ if (!isEmpty(subNamespaces)) {
138
+ h2(sb, toc, "namespaces", "Namespaces");
139
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<dl>");
140
+ const enumerator = getEnumerator(subNamespaces);
141
+ try {
142
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
143
+ 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>"));
148
+ }
149
+ }
150
+ finally {
151
+ disposeSafe(enumerator);
152
+ }
153
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</dl>");
154
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
155
+ }
156
+ if (!isEmpty(entities)) {
157
+ h2(sb, toc, "types", "Types");
158
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<dl>");
159
+ const enumerator_1 = getEnumerator(entities);
160
+ try {
161
+ while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
162
+ const e = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
163
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dt>", htmlLinkGen(Entity__get_Name(e), Entity__get_FullName(e)), obsoleteInlineHtml(Entity__get_ObsoleteInfo(e)), ..."</dt>"));
164
+ const matchValue = Entity__get_XmlDoc(e).Summary;
165
+ if (matchValue == null) {
166
+ }
167
+ else {
168
+ const summary = matchValue;
169
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(summary), ..."</dd>"));
170
+ }
171
+ }
172
+ }
173
+ finally {
174
+ disposeSafe(enumerator_1);
175
+ }
176
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</dl>");
177
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
178
+ }
179
+ renderDeclaredModules(sb, toc, htmlLinkGen, modules);
180
+ return new RenderedPage(ns, toString(sb), toList(toc));
181
+ }
182
+
183
+ export function renderModulePage(htmlLinkGen, m, subModules) {
184
+ const sb = StringBuilder_$ctor();
185
+ const toc = [];
186
+ renderObsoleteBanner(sb, m.ObsoleteInfo);
187
+ renderDeclaredModules(sb, toc, htmlLinkGen, subModules);
188
+ if (!isEmpty(m.Entities)) {
189
+ h2(sb, toc, "types", "Types");
190
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<dl>");
191
+ const enumerator = getEnumerator(m.Entities);
192
+ try {
193
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
194
+ const e = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
195
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dt>", htmlLinkGen(Entity__get_Name(e), Entity__get_FullName(e)), obsoleteInlineHtml(Entity__get_ObsoleteInfo(e)), ..."</dt>"));
196
+ const matchValue = Entity__get_XmlDoc(e).Summary;
197
+ if (matchValue == null) {
198
+ }
199
+ else {
200
+ const summary = matchValue;
201
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(summary), ..."</dd>"));
202
+ }
203
+ }
204
+ }
205
+ finally {
206
+ disposeSafe(enumerator);
207
+ }
208
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</dl>");
209
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
210
+ }
211
+ if (!isEmpty(m.Functions)) {
212
+ h2(sb, toc, "functions", "Functions");
213
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
214
+ const enumerator_1 = getEnumerator(m.Functions);
215
+ try {
216
+ while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
217
+ const f = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
218
+ tocH3(toc, f.Name, f.Name);
219
+ renderFunctionEntry(sb, f);
220
+ }
221
+ }
222
+ finally {
223
+ disposeSafe(enumerator_1);
224
+ }
225
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
226
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
227
+ }
228
+ if (!isEmpty(m.Values)) {
229
+ h2(sb, toc, "values", "Values");
230
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<div class=\"collapsible-group\">");
231
+ const enumerator_2 = getEnumerator(m.Values);
232
+ try {
233
+ while (enumerator_2["System.Collections.IEnumerator.MoveNext"]()) {
234
+ const v = enumerator_2["System.Collections.Generic.IEnumerator`1.get_Current"]();
235
+ tocH3(toc, v.Name, v.Name);
236
+ renderValueEntry(sb, v);
237
+ }
238
+ }
239
+ finally {
240
+ disposeSafe(enumerator_2);
241
+ }
242
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
243
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
244
+ }
245
+ return new RenderedPage(m.FullName, toString(sb), toList(toc));
246
+ }
247
+
248
+ export function renderRootIndexPage(htmlLinkGen, assemblies, globalModules) {
249
+ const sb = StringBuilder_$ctor();
250
+ const toc = [];
251
+ if (!isEmpty(globalModules)) {
252
+ h2(sb, toc, "modules", "Modules");
253
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<dl>");
254
+ const enumerator = getEnumerator(globalModules);
255
+ try {
256
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
257
+ const m = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
258
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dt>", htmlLinkGen(m.Name, m.FullName), obsoleteInlineHtml(m.ObsoleteInfo), ..."</dt>"));
259
+ const matchValue = m.XmlDoc;
260
+ if (matchValue == null) {
261
+ }
262
+ else {
263
+ const doc = matchValue;
264
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dd>", escapeMdxText(doc), ..."</dd>"));
265
+ }
266
+ }
267
+ }
268
+ finally {
269
+ disposeSafe(enumerator);
270
+ }
271
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</dl>");
272
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
273
+ }
274
+ if (!isEmpty(assemblies)) {
275
+ h2(sb, toc, "assemblies", "Assemblies");
276
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<dl>");
277
+ const enumerator_1 = getEnumerator(assemblies);
278
+ try {
279
+ while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
280
+ const a = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
281
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, concat("<dt>", htmlLinkGen(a.Name, a.Name), ..."</dt>"));
282
+ }
283
+ }
284
+ finally {
285
+ disposeSafe(enumerator_1);
286
+ }
287
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</dl>");
288
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
289
+ }
290
+ return new RenderedPage("API Reference", toString(sb), toList(toc));
291
+ }
292
+
@@ -0,0 +1,114 @@
1
+
2
+ import { concat, replace } from "../fable_modules/fable-library-js.5.0.0-rc.7/String.js";
3
+ import { TocEntry } from "./Types.js";
4
+ import { System_Text_StringBuilder__StringBuilder_Write_Z721C83C5, System_Text_StringBuilder__StringBuilder_NewLine, System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5 } from "../Extensions/StringBuilder.js";
5
+ import { indexed, head, tail, isEmpty } from "../fable_modules/fable-library-js.5.0.0-rc.7/List.js";
6
+ import { disposeSafe, getEnumerator } from "../fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
7
+
8
+ /**
9
+ * Escape characters that MDX interprets as JSX syntax so plain
10
+ * documentation text can be emitted safely into an .mdx file.
11
+ */
12
+ export function escapeMdxText(text) {
13
+ return replace(replace(replace(replace(replace(text, "&", "&amp;"), "<", "&lt;"), ">", "&gt;"), "{", "&#123;"), "}", "&#125;");
14
+ }
15
+
16
+ export function h2(sb, toc, slug, text) {
17
+ void (toc.push(new TocEntry(2, slug, text)));
18
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, `<h2 id="${slug}">${text}</h2>`);
19
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
20
+ }
21
+
22
+ export function tocH3(toc, slug, text) {
23
+ void (toc.push(new TocEntry(3, slug, text)));
24
+ }
25
+
26
+ 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}>`);
45
+ System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, "<div class=\"fsharp-doc-sig\" slot=\"signature\">");
46
+ System_Text_StringBuilder__StringBuilder_Write_Z721C83C5(sb, signatureHtml);
47
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</div>");
48
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
49
+ renderDocumentation();
50
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "</DocEntry>");
51
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
52
+ }
53
+
54
+ export function renderObsoleteBanner(sb, obsoleteInfo) {
55
+ switch (obsoleteInfo.tag) {
56
+ case 1: {
57
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<Aside type=\"caution\" title=\"Deprecated\">This type or module is obsolete.</Aside>");
58
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
59
+ break;
60
+ }
61
+ 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>"));
64
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
65
+ break;
66
+ }
67
+ default:
68
+ undefined;
69
+ }
70
+ }
71
+
72
+ export function obsoleteInlineHtml(obsoleteInfo) {
73
+ switch (obsoleteInfo.tag) {
74
+ case 1:
75
+ 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
+ }
80
+ default:
81
+ return "";
82
+ }
83
+ }
84
+
85
+ export function renderExamples(sb, examples) {
86
+ if (!isEmpty(examples)) {
87
+ if (isEmpty(tail(examples))) {
88
+ const single = head(examples);
89
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, "<strong>Example</strong>");
90
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
91
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(single));
92
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
93
+ }
94
+ else {
95
+ const multiple = examples;
96
+ const enumerator = getEnumerator(indexed(multiple));
97
+ try {
98
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
99
+ 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>`);
103
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
104
+ System_Text_StringBuilder__StringBuilder_WriteLine_Z721C83C5(sb, escapeMdxText(example));
105
+ System_Text_StringBuilder__StringBuilder_NewLine(sb);
106
+ }
107
+ }
108
+ finally {
109
+ disposeSafe(enumerator);
110
+ }
111
+ }
112
+ }
113
+ }
114
+
@@ -0,0 +1,30 @@
1
+
2
+ import { Record } from "../fable_modules/fable-library-js.5.0.0-rc.7/Types.js";
3
+ import { list_type, record_type, string_type, int32_type } from "../fable_modules/fable-library-js.5.0.0-rc.7/Reflection.js";
4
+
5
+ export class TocEntry extends Record {
6
+ constructor(Depth, Slug, Text$) {
7
+ super();
8
+ this.Depth = (Depth | 0);
9
+ this.Slug = Slug;
10
+ this.Text = Text$;
11
+ }
12
+ }
13
+
14
+ export function TocEntry_$reflection() {
15
+ return record_type("Starlight.FSharp.RenderImpl.TocEntry", [], TocEntry, () => [["Depth", int32_type], ["Slug", string_type], ["Text", string_type]]);
16
+ }
17
+
18
+ export class RenderedPage extends Record {
19
+ constructor(Title, TemplateBody, TocEntries) {
20
+ super();
21
+ this.Title = Title;
22
+ this.TemplateBody = TemplateBody;
23
+ this.TocEntries = TocEntries;
24
+ }
25
+ }
26
+
27
+ export function RenderedPage_$reflection() {
28
+ return record_type("Starlight.FSharp.RenderImpl.RenderedPage", [], RenderedPage, () => [["Title", string_type], ["TemplateBody", string_type], ["TocEntries", list_type(TocEntry_$reflection())]]);
29
+ }
30
+
package/dist/Render.js ADDED
@@ -0,0 +1,12 @@
1
+
2
+ import { renderRootIndexPage as renderRootIndexPage_1, renderModulePage as renderModulePage_1, renderNamespacePage as renderNamespacePage_1, renderEntityPage as renderEntityPage_1 } from "./Render/Pages.js";
3
+ import { uncurry2 } from "./fable_modules/fable-library-js.5.0.0-rc.7/Util.js";
4
+
5
+ export const renderEntityPage = (htmlLinkGen) => ((entity) => ((parentModule) => renderEntityPage_1(uncurry2(htmlLinkGen), entity, parentModule)));
6
+
7
+ export const renderNamespacePage = (htmlLinkGen) => ((ns) => ((subNamespaces) => ((entities) => ((modules) => renderNamespacePage_1(uncurry2(htmlLinkGen), ns, subNamespaces, entities, modules)))));
8
+
9
+ export const renderModulePage = (htmlLinkGen) => ((m) => ((subModules) => renderModulePage_1(uncurry2(htmlLinkGen), m, subModules)));
10
+
11
+ export const renderRootIndexPage = (htmlLinkGen) => ((assemblies) => ((globalModules) => renderRootIndexPage_1(uncurry2(htmlLinkGen), assemblies, globalModules)));
12
+