Header menu logo FSharp.Formatting

Example: Using Markdown Content

This file demonstrates how to write Markdown document with embedded F# snippets that can be transformed into nice HTML using the literate.fsx script from the F# Formatting package.

In this case, the document itself is a valid Markdown and you can use standard Markdown features to format the text:

For more information, see the Markdown reference.

Writing F# code

In standard Markdown, you can include code snippets by writing a block indented by four spaces and the code snippet will be turned into a <pre> element. If you do the same using the Literate F# tool, the code is turned into a nicely formatted F# snippet:

/// The Hello World of functional languages!
let rec factorial x = 
  if x = 0 then 1 
  else x * (factorial (x - 1))

let f10 = factorial 10

Hiding code

If you want to include some code in the source code, but omit it from the output, you can use the hide command. You can also use module=... to specify that the snippet should be placed in a separate module (e.g. to avoid duplicate definitions).

The value will be defined in the F# code that is processed and so you can use it from other (visible) code and get correct tooltips:

let answer = Hidden.answer

Including other snippets

When writing literate programs as Markdown documents, you can also include snippets in other languages. These will not be colorized and processed as F# code samples:

Console.WriteLine("Hello world!");

This snippet is turned into a pre element with the lang attribute set to csharp.

val factorial: x: int -> int
 The Hello World of functional languages!
val x: int
val f10: int
val answer: int
module Hidden from sidemarkdown
val answer: int
 This is a hidden answer

Type something to start searching.