forked from dotnet/fsharp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFSharp.Compiler.Service.fsx
47 lines (39 loc) · 1.66 KB
/
FSharp.Compiler.Service.fsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
(** ---
category: Release Notes
categoryindex: 600
index: 4
title: FSharp.Compiler.Service
---
# FSharp.Compiler.Service
*)
(*** hide ***)
#load "./.aux/Common.fsx"
open System.IO
open System.Xml.XPath
open Markdig
open Common
let path = Path.Combine(__SOURCE_DIRECTORY__, ".FSharp.Compiler.Service")
let fcsMajorVersion = versionPropsDoc.XPathSelectElement("//FCSMajorVersion").Value
let nugetPackage = "FSharp.Compiler.Service"
let availableNuGetVersions = getAvailableNuGetVersions nugetPackage
processFolder path (fun file ->
let versionInFileName = Path.GetFileNameWithoutExtension(file)
// Example: 8.0.200
let versionParts = versionInFileName.Split '.'
let version = $"%s{fcsMajorVersion}.%s{versionParts.[0]}.%s{versionParts.[2]}"
// TODO: Can we determine if the current version is in code freeze based on the Version.props info?
let title =
if not (availableNuGetVersions.Contains version) then
$"%s{version} - Unreleased"
else
match tryGetReleaseDate nugetPackage version with
| None -> $"%s{version} - Unreleased"
| Some d -> $"%s{version} - %s{d}"
let nugetBadge =
if not (availableNuGetVersions.Contains version) then
System.String.Empty
else
$"<a href=\"https://www.nuget.org/packages/%s{nugetPackage}/%s{version}\" target=\"_blank\"><img alt=\"Nuget\" src=\"https://img.shields.io/badge/NuGet-%s{version}-blue\"></a>"
let content = File.ReadAllText file |> Markdown.ToHtml |> transformH3 version
$"""<h2><a name="%s{version}" class="anchor" href="#%s{version}">%s{title}</a></h2>%s{nugetBadge}%s{content}""")
(*** include-it-raw ***)