FsBlog
Progress: See the Issues and Milestones pages of this repo.
FsBlog aims to be a blog-aware static site generator, mostly built in F#
. But don't worry, you won't even need to know any F# to get up and running. So long as you are comfortable using a command line or terminal, and have a degree of familiarity with Markdown and Razor syntax - you're good to go!
Inspired by the likes of Jekyll and Octopress - and greatly helped along the way by the scripts behind @tomaspetricek's personal website; FsBlog gives the average F# and .NET hacker the tools they need to get a statically built website up and running quickly and hosted somewhere like GitHub Pages.
This set of tools have been pulled together using some of the following community projects:
- FAKE for the automation and scripting of the different tasks.
- F# Formatting which deals with the Markdown and F# processing/colorization.
- RazorEngine which is used for the templating and embedded C# code.
- Some of the code that calls RazorEngine from F# is based on Tilde.
- Bootstrap 3.
Getting started
You can just grab the NuGet package and jump straight on to Usage below.
Alternatively you can fork or clone the FsBlog repo, then run:
build
- On Windows, use the 32-bit Visual Studio Command Prompt, the 64-bit solution is not defined.
This will build the tools required for usage below.
Usage
fake generate
Regenerates the entire static website from source files (Markdown and .fsx
files).
fake preview
Generates the site and then starts up a local web server and launches the output content from the last time it was generated.
fake
But preview
is also the default behaviour when you run the fake
command without any arguments - so that makes it even easier.
fake new page="about fsblog"
Will create a new blank Markdown file in your blog's source files ready for you to author a non-post page of content.
fake new post="hello markdown"
Will create a new blank Markdown file in your blog's source files ready for you to hack away at your next blog post.
fake new fsx="hello fsharp"
Will create a new blank .fsx
file in your blog's source files ready for you to hack away at your next code-heavy blog post. To find out more about using .fsx
files as the source of your posts, check out F# Formatting: Literate programming.
fake clean
Will remove all files from the output folder
Theming
FsBlog supports theming. New theme can be installed by running:
fake install theme="theme-name"
Once the new theme is installed, FsBlog will use the theme to generate the entire site. Themes are located in themes
folder. Please see the default
theme for the sample.
Config.yml
The config.yml
is a YAML file that contains configuration settings used by FsBlog. You can specify the following settings:
source
: a root folder that contains main razor (index.cshtml) and Markdown (*.md) files to be processed whenfake generate
is run.blog
: a folder that contains razor (.cshtml) and Markdown (.md) files to be processed as blog posts.content
: a folder contains files for an active theme.output
: a folder contains generated static website.themes
: a folder contains FsBlog themes.
Remarks
Note: the documentation above is currently little more than a specification for the command line tooling. It is currently subject to change.
This project is at a very early stage - so bare with me.
Maintainer(s)
The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)