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.
- package/Directory.Build.props +25 -0
- package/Directory.Packages.props +18 -0
- package/README.md +80 -0
- package/dist/Extensions/StringBuilder.js +28 -0
- package/dist/Extensions/TextNode.js +115 -0
- package/dist/FSharp.Oracle.Schema/Schema.js +674 -0
- package/dist/Generate.js +254 -0
- package/dist/Helpers.js +69 -0
- package/dist/Plugin.js +139 -0
- package/dist/Render/Documentation.js +87 -0
- package/dist/Render/Entries.js +148 -0
- package/dist/Render/Pages.js +292 -0
- package/dist/Render/Primitives.js +114 -0
- package/dist/Render/Types.js +30 -0
- package/dist/Render.js +12 -0
- package/dist/Themes.js +78 -0
- package/oracle-bin/FSharp.Compiler.Service.dll +0 -0
- package/oracle-bin/FSharp.Core.dll +0 -0
- package/oracle-bin/FSharp.DependencyManager.Nuget.dll +0 -0
- package/oracle-bin/FSharp.Oracle.Schema.dll +0 -0
- package/oracle-bin/FSharp.Oracle.Schema.pdb +0 -0
- package/oracle-bin/FSharp.Oracle.Schema.xml +219 -0
- package/oracle-bin/Fable.Core.dll +0 -0
- package/oracle-bin/Oracle +0 -0
- package/oracle-bin/Oracle.deps.json +280 -0
- package/oracle-bin/Oracle.dll +0 -0
- package/oracle-bin/Oracle.pdb +0 -0
- package/oracle-bin/Oracle.runtimeconfig.json +13 -0
- package/oracle-bin/Oracle.xml +111 -0
- package/oracle-bin/Thoth.Json.Core.Auto.dll +0 -0
- package/oracle-bin/Thoth.Json.Core.dll +0 -0
- package/oracle-bin/Thoth.Json.System.Text.Json.dll +0 -0
- package/oracle-bin/cs/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/cs/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/cs/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/de/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/de/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/de/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/es/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/es/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/es/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/fr/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/fr/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/fr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/it/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/it/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/it/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/ja/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/ja/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/ja/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/ko/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/ko/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/ko/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/pl/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/pl/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/pl/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/pt-BR/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/pt-BR/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/pt-BR/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/ru/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/ru/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/ru/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/tr/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/tr/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/tr/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/zh-Hans/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/zh-Hans/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/oracle-bin/zh-Hant/FSharp.Compiler.Service.resources.dll +0 -0
- package/oracle-bin/zh-Hant/FSharp.Core.resources.dll +0 -0
- package/oracle-bin/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll +0 -0
- package/package.json +38 -0
- package/packages/FSharp.Oracle/Extractor/Assembly.fs +160 -0
- package/packages/FSharp.Oracle/Extractor/EntityExtractor.fs +608 -0
- package/packages/FSharp.Oracle/Extractor/Helpers.fs +150 -0
- package/packages/FSharp.Oracle/Extractor/MemberExtractor.fs +172 -0
- package/packages/FSharp.Oracle/Extractor/ModuleExtractor.fs +45 -0
- package/packages/FSharp.Oracle/Extractor/ParameterExtractor.fs +47 -0
- package/packages/FSharp.Oracle/Extractor/SignatureRendering.fs +464 -0
- package/packages/FSharp.Oracle/Extractor/ValueExtractor.fs +171 -0
- package/packages/FSharp.Oracle/FSharp.Oracle.fsproj +36 -0
- package/packages/FSharp.Oracle/Program.fs +66 -0
- package/packages/FSharp.Oracle/XmlDoc.fs +463 -0
- package/packages/FSharp.Oracle.Schema/FSharp.Oracle.Schema.fsproj +16 -0
- package/packages/FSharp.Oracle.Schema/Schema.fs +454 -0
- package/packages/Starlight.FSharp.Oracle/components/DocEntry.astro +256 -0
- package/packages/Starlight.FSharp.Oracle/components/FSharpDocPage.astro +121 -0
- package/packages/Starlight.FSharp.Oracle/components/fsharp-doc.css +58 -0
- package/packages/Starlight.FSharp.Oracle/layouts/FSharpDocLayout.astro +27 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
import StarlightPage from "@astrojs/starlight/components/StarlightPage.astro";
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
import "./fsharp-doc.css";
|
|
5
|
+
|
|
6
|
+
interface TocEntry {
|
|
7
|
+
depth: number;
|
|
8
|
+
slug: string;
|
|
9
|
+
text: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface Props {
|
|
13
|
+
title: string;
|
|
14
|
+
headings: TocEntry[];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const { title, headings } = Astro.props;
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
<StarlightPage frontmatter={{ title }} headings={headings}>
|
|
21
|
+
<slot />
|
|
22
|
+
</StarlightPage>
|
|
23
|
+
|
|
24
|
+
<script>
|
|
25
|
+
declare global {
|
|
26
|
+
interface Window {
|
|
27
|
+
__fsharpSidebarLabel?: string;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Create a button that expands or collapses all details elements within a given sidebar section.
|
|
33
|
+
* @param label The button label
|
|
34
|
+
* @param sidebarTarget The details element that is the root of the sidebar section to control
|
|
35
|
+
* @param stateOnClick The state to set on the details elements when the button is clicked
|
|
36
|
+
*/
|
|
37
|
+
const expansionButton = (
|
|
38
|
+
label: string,
|
|
39
|
+
sidebarTarget: HTMLDetailsElement,
|
|
40
|
+
stateOnClick: boolean,
|
|
41
|
+
) => {
|
|
42
|
+
const btn = document.createElement("button");
|
|
43
|
+
btn.className = "fsharp-collapse-btn";
|
|
44
|
+
btn.textContent = label;
|
|
45
|
+
btn.addEventListener("click", () => {
|
|
46
|
+
sidebarTarget!
|
|
47
|
+
.querySelectorAll<HTMLDetailsElement>("details")
|
|
48
|
+
.forEach((d) => {
|
|
49
|
+
d.open = stateOnClick;
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
return btn;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Register "Collapse all" and "Expand all" buttons in the sidebar section
|
|
57
|
+
* matching the label in `window.__fsharpSidebarLabel`.
|
|
58
|
+
*
|
|
59
|
+
* We register the buttons by injection at runtime, rather than overriding the Astro components
|
|
60
|
+
* to avoid conflicts in case the user already overrides the sidebar component
|
|
61
|
+
*/
|
|
62
|
+
function initFSharpSidebarControls(): void {
|
|
63
|
+
const label = window.__fsharpSidebarLabel;
|
|
64
|
+
if (!label) return;
|
|
65
|
+
|
|
66
|
+
let target: HTMLDetailsElement | null = null;
|
|
67
|
+
for (const d of document.querySelectorAll<HTMLDetailsElement>(
|
|
68
|
+
".sidebar-content details",
|
|
69
|
+
)) {
|
|
70
|
+
const summary = d.querySelector(":scope > summary");
|
|
71
|
+
if (summary?.textContent?.trim() === label) {
|
|
72
|
+
target = d;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (!target || target.querySelector(".fsharp-sidebar-controls")) return;
|
|
78
|
+
|
|
79
|
+
const ul = target.querySelector<HTMLUListElement>(":scope > ul");
|
|
80
|
+
if (!ul) return;
|
|
81
|
+
|
|
82
|
+
const wrap = document.createElement("div");
|
|
83
|
+
wrap.className = "fsharp-sidebar-controls";
|
|
84
|
+
|
|
85
|
+
const collapseButton = expansionButton("Collapse all", target, false);
|
|
86
|
+
const expandButton = expansionButton("Expand all", target, true);
|
|
87
|
+
|
|
88
|
+
wrap.appendChild(collapseButton);
|
|
89
|
+
wrap.appendChild(expandButton);
|
|
90
|
+
target.insertBefore(wrap, ul);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Module scripts run after the DOM is parsed, so init can run immediately.
|
|
94
|
+
// astro:page-load handles subsequent client-side navigations.
|
|
95
|
+
initFSharpSidebarControls();
|
|
96
|
+
document.addEventListener("astro:page-load", initFSharpSidebarControls);
|
|
97
|
+
</script>
|
|
98
|
+
|
|
99
|
+
<style>
|
|
100
|
+
:global(.fsharp-sidebar-controls) {
|
|
101
|
+
display: flex;
|
|
102
|
+
justify-content: space-between;
|
|
103
|
+
padding: 0.125rem var(--sl-sidebar-item-padding-inline, 0.5rem) 0.375rem;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
:global(.fsharp-collapse-btn) {
|
|
107
|
+
font-size: var(--sl-text-xs, 0.75rem);
|
|
108
|
+
color: var(--sl-color-gray-3);
|
|
109
|
+
background: none;
|
|
110
|
+
border: none;
|
|
111
|
+
cursor: pointer;
|
|
112
|
+
padding: 0;
|
|
113
|
+
font-family: inherit;
|
|
114
|
+
text-decoration: underline;
|
|
115
|
+
text-underline-offset: 2px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
:global(.fsharp-collapse-btn):hover {
|
|
119
|
+
color: var(--sl-color-text);
|
|
120
|
+
}
|
|
121
|
+
</style>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
.fsharp-doc-kw { color: var(--fsharp-doc-kw); }
|
|
2
|
+
.fsharp-doc-fn { color: var(--fsharp-doc-fn); }
|
|
3
|
+
.fsharp-doc-type { color: var(--fsharp-doc-type); }
|
|
4
|
+
.fsharp-doc-typevar { color: var(--fsharp-doc-typevar); }
|
|
5
|
+
.fsharp-doc-property { color: #0a86ff }
|
|
6
|
+
|
|
7
|
+
.fsharp-doc-sig {
|
|
8
|
+
font-family: var(--sl-font-mono, monospace);
|
|
9
|
+
font-size: var(--sl-text-code, 0.875em);
|
|
10
|
+
white-space: pre-wrap;
|
|
11
|
+
overflow-wrap: break-word;
|
|
12
|
+
display: block;
|
|
13
|
+
|
|
14
|
+
> div {
|
|
15
|
+
margin-top: unset;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
a {
|
|
19
|
+
color: unset;
|
|
20
|
+
text-decoration: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
a:hover {
|
|
24
|
+
text-decoration: underline;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
.fs-parameter__signature {
|
|
30
|
+
margin-left: 0.75rem;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.fs-parameter__documentation {
|
|
34
|
+
margin-left: 1.5rem;
|
|
35
|
+
margin-top: 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.fsharp-doc-indent {
|
|
39
|
+
display: inline;
|
|
40
|
+
white-space: pre;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.fsharp-doc-obsolete-inline {
|
|
44
|
+
background-color: var(--sl-color-orange-low);
|
|
45
|
+
color: var(--sl-color-orange-high);
|
|
46
|
+
font-size: 0.75em;
|
|
47
|
+
padding: 0.15em 0.5em;
|
|
48
|
+
border-radius: 4px;
|
|
49
|
+
font-weight: 600;
|
|
50
|
+
margin-left: 0.5em;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.fsharp-doc-attr {
|
|
54
|
+
color: var(--sl-color-gray-3);
|
|
55
|
+
font-size: var(--sl-text-sm);
|
|
56
|
+
display: block;
|
|
57
|
+
margin-bottom: 0.25rem;
|
|
58
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
// Layout adapter for generated .mdx pages.
|
|
3
|
+
// Bridges the markdown layout prop shape ({ frontmatter, headings }) to
|
|
4
|
+
// FSharpDocPage which expects ({ title, headings }).
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
import FSharpDocPage from '../components/FSharpDocPage.astro';
|
|
7
|
+
|
|
8
|
+
interface TocEntry {
|
|
9
|
+
depth: number;
|
|
10
|
+
slug: string;
|
|
11
|
+
text: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
interface Props {
|
|
15
|
+
frontmatter: {
|
|
16
|
+
title: string;
|
|
17
|
+
headings: TocEntry[];
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
const { frontmatter } = Astro.props;
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
<FSharpDocPage title={frontmatter.title} headings={frontmatter.headings ?? []}>
|
|
26
|
+
<slot />
|
|
27
|
+
</FSharpDocPage>
|