Skip to content

Commit 20f84f2

Browse files
committed
docs
1 parent 3685bc3 commit 20f84f2

22 files changed

Lines changed: 710 additions & 920 deletions

.config/dotnet-tools.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
],
1010
"rollForward": false
1111
},
12-
"fsharp.formatting.commandtool": {
13-
"version": "9.0.1",
12+
"fsdocs-tool": {
13+
"version": "22.0.0-alpha.2",
1414
"commands": [
1515
"fsdocs"
1616
],

build.fsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Target.create "Meta" (fun _ ->
5454
"""<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All"/>"""
5555
"</ItemGroup>"
5656
"<PropertyGroup>"
57-
"<PackageProjectUrl>https://github.com/FsStorm/FsShelter</PackageProjectUrl>"
57+
"<PackageProjectUrl>https://FsStorm.github.io/FsShelter/</PackageProjectUrl>"
5858
"<PackageLicenseFile>LICENSE.md</PackageLicenseFile>"
5959
"<PackageIcon>logo.png</PackageIcon>"
6060
"<RepositoryUrl>https://github.com/FsStorm/FsShelter.git</RepositoryUrl>"
@@ -63,6 +63,10 @@ Target.create "Meta" (fun _ ->
6363
"<Authors>Eugene Tolmachev</Authors>"
6464
sprintf "<PackageReleaseNotes>%s</PackageReleaseNotes>" (List.head release.Notes |> System.Web.HttpUtility.HtmlEncode)
6565
sprintf "<Version>%s</Version>" (string release.SemVer)
66+
"<FsDocsLogoSource>files/img/logo.png</FsDocsLogoSource>"
67+
"<FsDocsFaviconSource>files/img/logo.png</FsDocsFaviconSource>"
68+
"<FsDocsLicenseLink>https://github.com/FsStorm/FsShelter/blob/master/LICENSE.md</FsDocsLicenseLink>"
69+
"<FsDocsReleaseNotesLink>https://github.com/FsStorm/FsShelter/blob/master/RELEASE_NOTES.md</FsDocsReleaseNotesLink>"
6670
"</PropertyGroup>"
6771
"</Project>"]
6872
|> File.write false "Directory.Build.props"
@@ -99,12 +103,6 @@ Target.create "PublishNuget" (fun _ ->
99103
// --------------------------------------------------------------------------------------
100104
// Generate the documentation
101105

102-
let fsdocParameters = [
103-
sprintf "fsdocs-release-notes-link %s/FsShelter/blob/master/RELEASE_NOTES.md" gitHome
104-
sprintf "fsdocs-license-link %s/FsShelter/blob/master/LICENSE.md" gitHome
105-
"fsdocs-navbar-position fixed-left"
106-
]
107-
108106
let fsdocProperties = [
109107
"Configuration=Release"
110108
"TargetFramework=net10.0"
@@ -114,16 +112,14 @@ Target.create "GenerateDocs" (fun _ ->
114112
Shell.cleanDir ".fsdocs"
115113
DotNet.exec id "fsdocs" ("build --strict --eval --clean"
116114
+ " --projects src/FsShelter/FsShelter.fsproj src/FsShelter.Multilang/FsShelter.Multilang.fsproj"
117-
+ " --properties " + String.Join(" ",fsdocProperties)
118-
+ " --parameters " + String.Join(" ", fsdocParameters)) |> ignore
115+
+ " --properties " + String.Join(" ",fsdocProperties)) |> ignore
119116
)
120117

121118
Target.create "WatchDocs" (fun _ ->
122119
Shell.cleanDir ".fsdocs"
123120
DotNet.exec id "fsdocs" ("watch --eval"
124121
+ " --projects src/FsShelter/FsShelter.fsproj src/FsShelter.Multilang/FsShelter.Multilang.fsproj"
125-
+ " --properties " + String.Join(" ",fsdocProperties)
126-
+ " --parameters " + String.Join(" ", fsdocParameters)) |> ignore
122+
+ " --properties " + String.Join(" ",fsdocProperties)) |> ignore
127123
)
128124

129125
Target.create "ReleaseDocs" (fun _ ->

docs/_template.html

Lines changed: 128 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,140 @@
11
<!DOCTYPE html>
2-
<html lang="en">
3-
2+
<html lang="en" data-root="{{root}}">
43
<head>
5-
<meta charset="utf-8">
6-
<title>{{fsdocs-page-title}}</title>
7-
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
8-
<meta name="author" content="{{fsdocs-authors}}">
9-
10-
<link rel="stylesheet" id="theme_link" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.3.1/materia/bootstrap.min.css">
11-
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
12-
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
13-
14-
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
15-
16-
<link type="text/css" rel="stylesheet" href="{{root}}content/navbar-{{fsdocs-navbar-position}}.css" />
17-
<link type="text/css" rel="stylesheet" href="{{root}}content/fsdocs-{{fsdocs-theme}}.css" />
18-
<link type="text/css" rel="stylesheet" href="{{root}}content/fsdocs-custom.css" />
19-
<script type="text/javascript" src="{{root}}content/fsdocs-tips.js"></script>
20-
<script type="module">
21-
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
22-
mermaid.initialize({ startOnLoad: false });
23-
document.addEventListener('DOMContentLoaded', function() {
24-
document.querySelectorAll('code[lang="mermaid"]').forEach(function(el) {
25-
var div = document.createElement('pre');
26-
div.className = 'mermaid';
27-
div.textContent = el.textContent;
28-
var container = el.closest('table.pre') || el.closest('pre');
29-
if (container) { container.parentNode.replaceChild(div, container); }
30-
});
31-
mermaid.run();
32-
});
33-
</script>
34-
<!--[if lt IE 9]>
35-
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
36-
<![endif]-->
37-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/JavaScript-autoComplete/1.0.4/auto-complete.css" />
4+
<meta charset="UTF-8">
5+
<meta content="IE=edge" http-equiv="X-UA-Compatible">
6+
<meta content="width=device-width, initial-scale=1.0" name="viewport">
7+
<meta content="{{fsdocs-authors}}" name="author">
8+
<!-- Opengraph properties (https://ogp.me/) -->
9+
<meta property="og:site_name" content="{{fsdocs-collection-name}}">
10+
<meta property="og:title" content="{{fsdocs-page-title}}" />
11+
<meta property="og:url" content="{{root}}{{fsdocs-source-basename}}.html">
12+
<meta property="og:type" content="website" />
13+
<!-- Twitter cards (https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image) -->
14+
<meta name="twitter:card" content="summary_large_image">
15+
<meta name="twitter:site" content="{{root}}">
16+
<meta name="twitter:title" content="{{fsdocs-page-title}}">
17+
{{fsdocs-meta-tags}}
18+
<title>{{fsdocs-page-title}} | {{fsdocs-collection-name}}</title>
19+
<link href="https://fonts.googleapis.com" rel="preconnect">
20+
<link crossorigin href="https://fonts.gstatic.com" rel="preconnect">
21+
<link href="https://fonts.googleapis.com/css2?family=Fira+Code&display=swap" rel="stylesheet">
22+
<script src="https://code.iconify.design/iconify-icon/1.0.7/iconify-icon.min.js"></script>
23+
<link href="{{root}}{{fsdocs-favicon-src}}" rel="icon" sizes="32x32" type="image/png"/>
24+
<script type="application/javascript" src="{{root}}content/fsdocs-theme-set-dark.js"></script>
25+
<script type="application/javascript" src="{{root}}content/fsdocs-details-set-expanded.js"></script>
26+
<link href="{{root}}content/fsdocs-default.css" rel="stylesheet" type="text/css"/>
27+
<link href="{{root}}content/fsdocs-theme.css" rel="stylesheet" type="text/css"/>
28+
{{fsdocs-head-extra}}
3829
{{fsdocs-watch-script}}
3930
</head>
40-
41-
<body>
42-
<nav class="navbar navbar-expand-md navbar-light bg-secondary {{fsdocs-navbar-position}}" id="fsdocs-menu">
43-
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
44-
<span class="navbar-toggler-icon"></span>
45-
</button>
46-
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
47-
<a href="{{fsdocs-logo-link}}"><img id="fsdocs-logo" src="{{fsdocs-logo-src}}" /></a>
48-
<div id="header">
49-
<div class="searchbox" id="fsdocs-searchbox">
50-
<label for="search-by">
51-
<i class="fas fa-search"></i>
52-
</label>
53-
<input data-search-input="" id="search-by" type="search" placeholder="Search..." />
54-
<span data-search-clear="">
55-
<i class="fas fa-times"></i>
56-
</span>
57-
</div>
58-
</div>
59-
60-
<ul class="navbar-nav">
31+
<body class="{{fsdocs-body-class}}">
32+
<header>
33+
<div class="start">
34+
<div id="menu-toggle">
35+
<iconify-icon class="icon closed" height="22" icon="eva:menu-fill" width="22"></iconify-icon>
36+
<iconify-icon class="icon open" height="22" icon="mi:close" width="22"></iconify-icon>
37+
<input type="checkbox" name="mobile-menu" />
38+
<ul class="menu">
6139
<li class="nav-header">Links</li>
62-
<li class="nav-item" id="fsdocs-license-link"><a class="nav-link" href="{{fsdocs-license-link}}">License (Apache 2.0)</a></li>
63-
<li class="nav-item" id="fsdocs-release-notes-link"><a class="nav-link" href="{{fsdocs-release-notes-link}}">Release Notes</a></li>
64-
<li class="nav-item" id="fsdocs-repository-link"><a class="nav-link" href="{{fsdocs-repository-link}}">Source Repository</a></li>
40+
<li class="license-menu-item builtin-menu-item nav-item"><a class="nav-link" href="{{fsdocs-license-link}}">License</a>
41+
</li>
42+
<li class="release-notes-menu-item builtin-menu-item nav-item"><a class="nav-link"
43+
href="{{fsdocs-release-notes-link}}">Release
44+
Notes</a></li>
45+
<li class="repository-menu-item builtin-menu-item nav-item"><a class="nav-link" href="{{fsdocs-repository-link}}">Source
46+
Repository</a></li>
6547
{{fsdocs-list-of-documents}}
6648
{{fsdocs-list-of-namespaces}}
6749
</ul>
6850
</div>
69-
</nav>
70-
<div class="container">
71-
<div class="masthead">
72-
<h3 class="muted"><a href="{{fsdocs-collection-name-link}}">{{fsdocs-collection-name}}</a></h3>
73-
</div>
74-
<hr />
75-
<div class="container" id="fsdocs-content">
76-
{{fsdocs-content}}
77-
{{fsdocs-tooltips}}
78-
</div>
79-
80-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/JavaScript-autoComplete/1.0.4/auto-complete.css" />
81-
<script type="text/javascript">var fsdocs_search_baseurl = '{{root}}';</script>
82-
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.8/lunr.min.js"></script>
83-
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/JavaScript-autoComplete/1.0.4/auto-complete.min.js"></script>
84-
<script type="text/javascript" src="{{root}}content/fsdocs-search.js"></script>
51+
<a href="{{fsdocs-logo-link}}">
52+
<img alt="{{fsdocs-logo-alt}}" src="{{root}}{{fsdocs-logo-src}}">
53+
<strong>{{fsdocs-collection-name}}</strong>
54+
</a>
8555
</div>
86-
</body>
56+
<div class="end">
57+
<a href="{{fsdocs-repository-link}}" target="_blank">
58+
<iconify-icon icon="uil:github" width="26" height="26"></iconify-icon>
59+
</a>
60+
<iconify-icon id="search-btn" icon="carbon:search" class="search" width="24" height="24"></iconify-icon>
61+
<fsdocs-theme-toggle></fsdocs-theme-toggle>
62+
</div>
63+
</header>
64+
<aside id="fsdocs-main-menu">
65+
<ul class="menu">
66+
<li class="nav-header">Links</li>
67+
<li class="license-menu-item builtin-menu-item nav-item"><a class="nav-link" href="{{fsdocs-license-link}}">License</a>
68+
</li>
69+
<li class="release-notes-menu-item builtin-menu-item nav-item"><a class="nav-link"
70+
href="{{fsdocs-release-notes-link}}">Release
71+
Notes</a></li>
72+
<li class="repository-menu-item builtin-menu-item nav-item"><a class="nav-link" href="{{fsdocs-repository-link}}">Source
73+
Repository</a></li>
74+
{{fsdocs-list-of-documents}}
75+
{{fsdocs-list-of-namespaces}}
76+
</ul>
77+
</aside>
78+
<main>
79+
<div id="content">
80+
{{fsdocs-content}}
81+
{{fsdocs-tooltips}}
82+
</div>
83+
</main>
84+
<aside id="fsdocs-page-menu">
85+
<p id="on-this-page">On this page</p>
86+
{{fsdocs-page-content-list}}
87+
</aside>
88+
<dialog>
89+
<input type="search" placeholder="Search docs" />
90+
<div class="results">
91+
<ul></ul>
92+
<p class="empty">Type something to start searching.</p>
93+
</div>
94+
</dialog>
95+
<script type="module" src="{{root}}content/fsdocs-tips.js"></script>
96+
<script type="module" src="{{root}}content/fsdocs-theme-toggle.js"></script>
97+
<script type="module" src="{{root}}content/fsdocs-details-toggle.js"></script>
98+
<script type="module" src="{{root}}content/fsdocs-theme.js"></script>
99+
<script type="module" src="{{root}}content/fsdocs-search.js"></script>
100+
<script type="module" src="{{root}}content/fsdocs-copy-button.js"></script>
101+
<script type="module">
102+
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
103+
104+
function isDark() {
105+
const explicit = document.documentElement.getAttribute('data-theme');
106+
if (explicit) return explicit === 'dark';
107+
return window.matchMedia('(prefers-color-scheme: dark)').matches;
108+
}
109+
110+
// Move code blocks into mermaid-renderable <pre> elements, stash source
111+
document.querySelectorAll('code[lang="mermaid"]').forEach(function(el) {
112+
var pre = document.createElement('pre');
113+
pre.className = 'mermaid';
114+
pre.textContent = el.textContent;
115+
pre.setAttribute('data-mermaid-src', el.textContent);
116+
var container = el.closest('table.pre') || el.closest('pre');
117+
if (container) { container.parentNode.replaceChild(pre, container); }
118+
});
87119

120+
async function renderMermaid() {
121+
mermaid.initialize({
122+
startOnLoad: false,
123+
theme: isDark() ? 'dark' : 'default'
124+
});
125+
document.querySelectorAll('pre.mermaid').forEach(el => {
126+
el.removeAttribute('data-processed');
127+
el.textContent = el.getAttribute('data-mermaid-src');
128+
});
129+
await mermaid.run();
130+
}
131+
132+
await renderMermaid();
133+
134+
// Re-render when the theme toggle fires
135+
new MutationObserver(() => renderMermaid())
136+
.observe(document.documentElement, { attributes: true, attributeFilter: ['data-theme'] });
137+
</script>
138+
{{fsdocs-body-extra}}
139+
</body>
88140
</html>

docs/content/LICENSE.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

docs/content/RELEASE_NOTES.md

Lines changed: 0 additions & 96 deletions
This file was deleted.

0 commit comments

Comments
 (0)