TSBSoftware.TextBlock
1.0.3
dotnet add package TSBSoftware.TextBlock --version 1.0.3
NuGet\Install-Package TSBSoftware.TextBlock -Version 1.0.3
<PackageReference Include="TSBSoftware.TextBlock" Version="1.0.3" />
paket add TSBSoftware.TextBlock --version 1.0.3
#r "nuget: TSBSoftware.TextBlock, 1.0.3"
// Install TSBSoftware.TextBlock as a Cake Addin #addin nuget:?package=TSBSoftware.TextBlock&version=1.0.3 // Install TSBSoftware.TextBlock as a Cake Tool #tool nuget:?package=TSBSoftware.TextBlock&version=1.0.3
TextBlock
Makes F# multiline strings work like C# Raw string literal, or Java text blocks.
Who is it for?
F# developers who would like to utilize multiline strings to format content, such as: html, xml, sql, templates, etc.
Getting Started
To start using TextBlock, install the nuget package into your project file.
dotnet add package TSBSoftware.TextBlock
Then, open the namespace to expose the extension.
open TextBlock
let myText =
"""
<div>
<p>Hello</p>
</div>
"""
.TextBlock()
This will produce the following string:
<div>
<p>Hello</p>
</div>
Without using TextBlock, there would be an extra level of indentation because of how F# processes multiline strings:
<div>
<p>Hello</p>
</div>
Extra Examples
Strings can contain embedded newline characters.
let embeddedNewlines =
let nl = System.Environment.NewLine
$"""
This content has {nl}several lines
in {nl}the text.
"""
.TextBlock()
This will produce
This content has
several lines
in
the text.
Newlines can be escaped with a backslash.
let myText =
"""
Hello \
World!
"""
.TextBlock()
This will escape the newline character and combine the text into a single line:
Hello World!
Spaces at the end of each line can be preserved.
let blockedLines =
"""
Blocked |
Text |
"""
.TextBlock()
This will produce the following. Spaces represented by periods.
Blocked...
Text......
Additional indentation can be applied. An indentation character can optionally be applied, which is a space by default. We will use a period to show what is applied.
let someHtml =
"""
<div>
<p>Hello</p>
</div>
"""
.TextBlock(indent = 4, indentChar = '.')
This will produce the following:
....<div>
.... <p>Hello</p>
....</div>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.