Giter Club home page Giter Club logo

fsblog's Introduction

Issue Stats Issue Stats

FsBlog NuGet Status

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
  1. 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 when fake 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)

fsblog's People

Contributors

7sharp9 avatar cdrnet avatar codybartfast avatar danielrbradley avatar davidpodhola avatar evelinag avatar forki avatar fsprojectsgit avatar kimsk avatar krzysztof-cieslak avatar mattdrivendev avatar nelak avatar robertpi avatar sergey-tihon avatar simendsjo avatar theimowski avatar tpetricek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fsblog's Issues

Wont build under oxs/mono e.g. ./fake

Error message:

/Users/dave/code/FsBlog/fsblog.fsx(12,1): error FS0078: Unable to find the file 'SharpYaml.dll' in any of
/Library/Frameworks/Mono.framework/Versions/3.4.0/lib/mono/4.5
/Users/dave/code/FsBlog/packages/FAKE/tools/
/Users/dave/code/FsBlog
/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.0/

Clone + fake build fails: Assembly reference 'bin/FsBlogLib/RazorEngine.dll' was not found

The workflow of

  1. Clone repo
  2. Build via plain fake

fails for me, with below log. Indeed, RazorEngine.dll only exists under "packages," not under "bin."

C:\Users\latkin\Source\Repos
> git clone https://github.com/fsprojects/FsBlog.git fsblog
Cloning into 'fsblog'...
remote: Counting objects: 618, done.
rRemote: Total 618 (delta 0), reused 0 (delta 0), pack-reused 617eceiving objects:  88% (544/618), 1.57 MiB | 609.00 KiB

Receiving objects: 100% (618/618), 1.77 MiB | 609.00 KiB/s, done.
Resolving deltas: 100% (288/288), done.
C:\Users\latkin\Source\Repos\fsblog

> .\fake
Paket version 0.12.2.0
xunit 1.9.2 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\xunit
NuGet.CommandLine 2.8.3 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\NuGet.CommandLine
xunit.runners 1.9.2 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\xunit.runners
Downloading FSharp.Compiler.Service 0.0.67 to C:\Users\latkin\AppData\Local\NuGet\Cache\FSharp.Compiler.Service.0.0.67.n
upkg
Downloading Microsoft.AspNet.Razor 2.0.30506.0 to C:\Users\latkin\AppData\Local\NuGet\Cache\Microsoft.AspNet.Razor.2.0.3
0506.0.nupkg
Downloading RazorEngine 3.3.0 to C:\Users\latkin\AppData\Local\NuGet\Cache\RazorEngine.3.3.0.nupkg
Downloading FSharp.Configuration 0.4.4 to C:\Users\latkin\AppData\Local\NuGet\Cache\FSharp.Configuration.0.4.4.nupkg
Downloading FAKE 3.9.0 to C:\Users\latkin\AppData\Local\NuGet\Cache\FAKE.3.9.0.nupkg
Downloading FsUnit.xUnit 1.3.0.1 to C:\Users\latkin\AppData\Local\NuGet\Cache\FsUnit.xUnit.1.3.0.1.nupkg
Downloading FSharp.Formatting 2.4.36 to C:\Users\latkin\AppData\Local\NuGet\Cache\FSharp.Formatting.2.4.36.nupkg
Microsoft.AspNet.Razor 2.0.30506.0 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\Microsoft.AspNet.Razor
FSharp.Configuration 0.4.4 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\FSharp.Configuration
FAKE 3.9.0 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\FAKE
RazorEngine 3.3.0 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\RazorEngine
FsUnit.xUnit 1.3.0.1 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\FsUnit.xUnit
FSharp.Compiler.Service 0.0.67 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\FSharp.Compiler.Service
FSharp.Formatting 2.4.36 unzipped to C:\Users\latkin\Source\Repos\fsblog\packages\FSharp.Formatting
1 minute, 15 seconds - ready.

F# Interactive for F# 3.1 (private)
Freely distributed under the Apache 2.0 Open Source License

For help type #help;;

> [Loading C:\Users\latkin\Source\Repos\fsblog\fsblog.fsx]



fsblog.fsx(10,1): error FS0084: Assembly reference 'bin/FsBlogLib/RazorEngine.dll' was not found or is invalid

Add better documentation for code samples

Related to issue #14 - we need some better documentation explaining the expected behaviours and output from generating sites that are using F# code samples... and how to interpret the errors etc.

Could probably just be done in the FSharp Formatting project/documentation instead and just add a very clear link from FsBlog to that.

Add deploy command

I'm rather hoping we can very easily run a fake deploy command and it will do all the work created to:

  • Regenerate the website.
  • Ensure that there is a ./deploy folder which is a local clone of the FsBlog/gh-pages branch, hooked up to the remote.
  • Copy the output into ./deploy folder.
  • Add changes and commit using a standard commit message.
  • Push ./deploy back to remote/gh-pages.

Build fails on mono

Building project with version: LocalBuild
Shortened DependencyGraph for Target Preview:
<== Preview
<== Generate
The resulting target order is:
 - Generate
 - Preview
Starting Target: Preview (==> Generate)
Starting Target: Generate 
Processing file: index.cshtml
Something went wrong: RazorEngine.Templating.TemplateCompilationException: Unable to compile template. An assembly with the same identity `mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' has already been imported. Consider removing one of the references
Other compilation errors may have occurred. Check the Errors property for more information.
  at RazorEngine.Compilation.DirectCompilerServiceBase.CompileType (RazorEngine.Compilation.TypeContext context) [0x00000] in <filename unknown>:0 
  at RazorEngine.Templating.TemplateService.CreateTemplateType (System.String razorTemplate, System.Type modelType) [0x00000] in <filename unknown>:0 
  at RazorEngine.Templating.TemplateService.CreateTemplate (System.String razorTemplate, System.Type templateType, System.Object model) [0x00000] in <filename unknown>:0 
  at RazorEngine.Templating.TemplateService.Parse (System.String razorTemplate, System.Object model, RazorEngine.Templating.DynamicViewBag viewBag, System.String cacheName) [0x00000] in <filename unknown>:0 
  at RazorEngine.Razor.Parse (System.String razorTemplate, System.Object model, RazorEngine.Templating.DynamicViewBag viewBag, System.String cacheName) [0x00000] in <filename unknown>:0 
  at FsBlogLib.Razor.ProcessFile (System.String source) [0x00000] in <filename unknown>:0 
Running build failed.
Error:
System.Exception: Processing the file '/Users/dave/code/FsBlog/source/index.cshtml' failed with exception:
RazorEngine.Templating.TemplateCompilationException: Unable to compile template. An assembly with the same identity `mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' has already been imported. Consider removing one of the references
Other compilation errors may have occurred. Check the Errors property for more information.
  at RazorEngine.Compilation.DirectCompilerServiceBase.CompileType (RazorEngine.Compilation.TypeContext context) [0x00000] in <filename unknown>:0 
  at RazorEngine.Templating.TemplateService.CreateTemplateType (System.String razorTemplate, System.Type modelType) [0x00000] in <filename unknown>:0 
  at RazorEngine.Templating.TemplateService.CreateTemplate (System.String razorTemplate, System.Type templateType, System.Object model) [0x00000] in <filename unknown>:0 
  at RazorEngine.Templating.TemplateService.Parse (System.String razorTemplate, System.Object model, RazorEngine.Templating.DynamicViewBag viewBag, System.String cacheName) [0x00000] in <filename unknown>:0 
  at RazorEngine.Razor.Parse (System.String razorTemplate, System.Object model, RazorEngine.Templating.DynamicViewBag viewBag, System.String cacheName) [0x00000] in <filename unknown>:0 
  at FsBlogLib.Razor.ProcessFile (System.String source) [0x00000] in <filename unknown>:0 
Source written to: '/var/folders/5v/p_5h35nd70s8x7fh8fqn7hyh0000gn/T/tmp6de5de78.tmp.cs'.
  at FsBlogLib.Razor.ProcessFile (System.String source) [0x00000] in <filename unknown>:0 
  at FsBlogLib.Blog.TransformFile (System.String template, Boolean hasHeader, FsBlogLib.Razor razor, Microsoft.FSharp.Core.FSharpOption`1 prefix, System.String current, System.String target) [0x00000] in <filename unknown>:0 
  at [email protected] (Microsoft.FSharp.Core.Unit _arg15) [0x00000] in <filename unknown>:0 
  at Fake.TargetHelper+targetFromTemplate@131[Microsoft.FSharp.Core.Unit].Invoke (Microsoft.FSharp.Core.Unit unitVar0) [0x00000] in <filename unknown>:0 
  at Fake.TargetHelper.runTarget@284 (System.String targetName) [0x00000] in <filename unknown>:0 

Post abstracts

At the moment post abstracts are require to be in related abstracts folders.

Was there much motivation behind this originally, beyond getting it working?

I rather like instead what Octopress does, using a <!-- more --> code segment (perhaps we use (*** more ***) in the .fsx posts). Abstracts are then optional as well and we should have a smaller footprint.

Any opinions?

(Error): Unexpected symbol ':' in definition

Error with a ':' symbol although it looks like it still generates.

C:\Users\Michael Blake\Documents\GitHub\FsBlog>fake preview
Building project with version: LocalBuild
Shortened DependencyGraph for Target Preview:
<== Preview
<== Generate

The resulting target order is:

  • Generate
  • Preview
    Starting Target: Preview (==> Generate)
    Starting Target: Generate
    Generating archive: 2013 November
    Processing file: index.cshtml
    Processing file: blog\index.cshtml
    Processing file: blog\2013\11-08-hello-fsblog.md
    Processing file: blog\2013\11-09-getting-started.md
    • (2:13)-(2:14) (Error): Unexpected symbol ':' in definition. Expected incomp
      lete structured construct at or before this point or other token.
    • (2:13)-(2:14) (Error): Unexpected symbol ':' in definition. Expected incomp
      lete structured construct at or before this point or other token.
    • (2:0)-(2:3) (Error): The value or constructor 'git' is not defined

build choice block is VS specific

<Choose>
    <When Condition="'$(VisualStudioVersion)' == '11.0'">
      <PropertyGroup>
        <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
      </PropertyGroup>
    </When>
    <Otherwise>
      <PropertyGroup>
        <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
      </PropertyGroup>
    </Otherwise>
  </Choose>

Doesn't account for non VS users where the target will be:

<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" />

Advertise RSS feed in <link rel="alternate">

I think the RSS feed of the blog should be advertised in the HTML head of each page of the blog by using <link rel="alternate" type="application/rss+xml">. Without this, the feed is very hard to find.

I personally use Bookmarks → Subscribe to this page in Firefox to find the RSS feed, which uses URL from the <link>.

Running "fake new fsx="post title" followed by "fake generate" fails

Description

Running "fake new fsx="post title" followed by "fake generate" fails with the following error:

Running build failed.
Error:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at FSharp.CodeFormat.CodeFormatAgent.ParseSource (System.String file, System.String source, Microsoft.FSharp.Core.FSharpOption1[T] options, Microsoft.FSharp.Core.FSharpOption1[T] defines) [0x0002d] in <5750b7f77dc004b2a7450383f7b75057>:0
at FSharp.Literate.ParseScript.parseScriptFile (System.String file, System.String content, FSharp.Literate.CompilerContext ctx) [0x00001] in <5750b7fc9515653da7450383fcb75057>:0

Repro steps

Please provide the steps required to reproduce the problem
Follow steps from:
http://fsprojects.github.io/FsBlog/blog/2013/11-09-getting-started/index.html

i.e.

  1. git clone git://github.com/fsprojects/FsBlog.git FsBlog
  2. cd FsBlog/Code
  3. sh build
  4. sh fake new fsx="post title"
  5. sh fake generate

Step 5 fails.

Expected behavior

Works

Actual behavior

It doesn't

Known workarounds

None

Related information

.NET Core SDK (reflecting any global.json):
Version: 2.1.302
Commit: 9048955601

Runtime Environment:
OS Name: Mac OS X
OS Version: 10.14
OS Platform: Darwin
RID: osx-x64
Base Path: /usr/local/share/dotnet/sdk/2.1.302/

Host (useful for support):
Version: 2.1.2
Commit: 811c3ce6c0

.NET Core SDKs installed:
2.1.4 [/usr/local/share/dotnet/sdk]
2.1.302 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Support RenderPart

Here is one more change that I did in my fork: tpetricek/TomaspNet.Website@696a345#diff-4f91242bbeae924e249858f54ae18a15R11 (In case this does not scroll down automatically, go to the end of the page and have a look at the last 2 files).

The RenderPart method in Template.fs is called when your Razor code contains:

 @RenderPart("part.cshtml", new Model(...))

This is pretty useful feature. It was previously broken, because it was ignoring the layout root set when calling the Razor engine. I do not quite know how to best pass the layout roots to the template (so my build just uses ugly global variable...)

Generated links for "preview" should be relative

If I do 'fake preview`, it "generates the site and then starts up a local web server." That's really convenient, except...

All the links are absolute to the production site.

The consequence is that I cannot navigate to my newly added content or edits, because clicking on any link takes me to the production site. It seems like it should be navigating around localhost:8080.

For previews, the links to should be relative.

whynotrelative

Choose a default template, and implement it with Razor etc

Cannot decide on a default template to be used, have thought about:

  • Octopress template (default or near-default theme).
  • Bootstrap 3 basics.
  • On of the gh-pages templates.

I think for a first milestone using one of the gh-pages templates is the quickest win.

Archive/tag pages to be reworked on http://fsprojects.github.io/FsBlog/

Description & Repro steps

When you go on http://fsprojects.github.io/FsBlog/blog/archive/november-2013/index.html, you see:

  • Not really friendly display
  • Links to posts are broken

It also seems there is no links to these pages, isn't it ?

Seems to be the same for tag pages (related, since the same template as archive, I keep it in the same issue), but no tags to showcase this feature on this site.

Expected behavior

It would be nice to showcase all features on http://fsprojects.github.io/FsBlog/:

  • Archive index page with links on every archive pages.
  • Each archive/tag page should display "nice" blog post list (with title and abstract/description for ex)
  • Fix relative URL to posts
  • Add tags to existing posts

What's the process for sponsoring the development for FsBlog?

Hi All,

Sorry if I am breaking some etiquette but if I wanted to sponsor the development for FsBlog, what would be the process for doing so (assuming that it is possible in the first place)? I see from #12 that there has been some discussion about building a v2 for FsBlog but it looks like it hasn't gone anywhere.

Support globalization of pages/posts

Description & expected behavior

Be able to do the same as https://www.sylvaindurand.org/making-jekyll-multilingual/ with Jekyll. It would allow to write some pages/posts in one language or multiple languages (depending on context).
When there are some others languages, they can be displayed in header for example.
Tags and archives pages should also depend on selected language.

Actual behavior

Multiple languages are not supported for now, or more exactly are not taken in account (you can write in any language).

Possible solutions

I would like to give a try to this feature if you are interested in (through a PR). I would like to check with some of you how you would implement it.
I thought to:

  • rely on Header metadata OR folder structure: for ex, sources/en, sources/fr, sources/blog/en, sources/blog/fr...to find Language (or Culture ?)
  • add an optional Key property to BlogPost type, then take it in account for Blog listing
  • other design desicions I will discover/you already see...

What do you think ?

Thanks
Clément

No build script on mono systems

On mono systems the build has be executed like this because the reference finder is not aware of the assemblies in the packages folder.

nuget install FAKE -OutputDirectory packages -ExcludeVersion -Prerelease
fsharpi --lib:packages/FAKE/tools/ build.fsx

Although I have a symbolic link install for nugget on my system so it may vary on other users systems ...

TypeLoadException when generating from NuGet package

After grabbing the NuGet package, I call

fake generate

but get the following exceptions:

Building project with version: LocalBuild
Shortened DependencyGraph for Target Generate:
<== Generate
<== Clean

The resulting target order is:
 - Clean
 - Generate
Starting Target: Clean
Deleting contents of C:\FsBlog\content\output/
Finished Target: Clean
Starting Target: Generate (==> Clean)
Running build failed.
Error:
System.TypeLoadException: Could not load type 'Microsoft.FSharp.Compiler.SourceCodeServices.InteractiveChecker'
 from assembly 'FSharp.Compiler.Service, Version=0.0.82.0, Culture=neutral, PublicKeyToken=null'.
   at FSharp.CodeFormat.CodeFormatAgent..ctor()
   at FSharp.Literate.Literate.parsingContext[a](FSharpOption`1 formatAgent, FSharpOption`1 evaluator, FSharpOp
tion`1 compilerOptions, FSharpOption`1 definedSymbols)
   at FSharp.Literate.Literate.ParseMarkdownFile[b](String path, FSharpOption`1 formatAgent, FSharpOption`1 com
pilerOptions, FSharpOption`1 definedSymbols, FSharpOption`1 references, FSharpOption`1 fsiEvaluator)
   at FSharp.Literate.Literate.ProcessMarkdown(String input, FSharpOption`1 templateFile, FSharpOption`1 output
, FSharpOption`1 format, FSharpOption`1 formatAgent, FSharpOption`1 prefix, FSharpOption`1 compilerOptions, FSh
arpOption`1 lineNumbers, FSharpOption`1 references, FSharpOption`1 replacements, FSharpOption`1 includeSource,
FSharpOption`1 layoutRoots)
   at FsBlogLib.BlogPosts.GetBlogHeaderAndAbstract[a,b](a transformer, b prefix, String file)
   at [email protected](Int32 i, String v)
   at [email protected](b& )
   at Microsoft.FSharp.Collections.IEnumerator.MapEnumerator`1.System-Collections-IEnumerator-MoveNext()
   at Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable`1 source)
   at [email protected](Unit unitVar0)
   at [email protected](Unit unitVar0)
   at Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable`1 source)
   at Microsoft.FSharp.Collections.ArrayModule.OfSeq[T](IEnumerable`1 source)
   at FsBlogLib.BlogPosts.LoadBlogPosts[a](IDictionary`2 tagRenames, a transformer, String blog)
   at FsBlogLib.Blog.LoadModel[a](IDictionary`2 tagRenames, a transformer, String root, String blog)
   at [email protected](Unit _arg15) in C:\FsBlog\content\fsblog.fsx:line 68
   at Fake.TargetHelper.runTarget@326(String targetName) in D:\code\fake\src\app\FakeLib\TargetHelper.fs:line 3
40

---------------------------------------------------------------------
Build Time Report
---------------------------------------------------------------------
Target     Duration
------     --------
Clean      00:00:00.0016739
Total:     00:00:00.0658933
Status:    Failure
---------------------------------------------------------------------
  1) System.TypeLoadException: Could not load type 'Microsoft.FSharp.Compiler.SourceCodeServices.InteractiveChe
cker' from assembly 'FSharp.Compiler.Service, Version=0.0.82.0, Culture=neutral, PublicKeyToken=null'.
   at FSharp.CodeFormat.CodeFormatAgent..ctor()
   at FSharp.Literate.Literate.parsingContext[a](FSharpOption`1 formatAgent, FSharpOption`1 evaluator, FSharpOp
tion`1 compilerOptions, FSharpOption`1 definedSymbols)
   at FSharp.Literate.Literate.ParseMarkdownFile[b](String path, FSharpOption`1 formatAgent, FSharpOption`1 com
pilerOptions, FSharpOption`1 definedSymbols, FSharpOption`1 references, FSharpOption`1 fsiEvaluator)
   at FSharp.Literate.Literate.ProcessMarkdown(String input, FSharpOption`1 templateFile, FSharpOption`1 output
, FSharpOption`1 format, FSharpOption`1 formatAgent, FSharpOption`1 prefix, FSharpOption`1 compilerOptions, FSh
arpOption`1 lineNumbers, FSharpOption`1 references, FSharpOption`1 replacements, FSharpOption`1 includeSource,
FSharpOption`1 layoutRoots)
   at FsBlogLib.BlogPosts.GetBlogHeaderAndAbstract[a,b](a transformer, b prefix, String file)
   at [email protected](Int32 i, String v)
   at [email protected](b& )
   at Microsoft.FSharp.Collections.IEnumerator.MapEnumerator`1.System-Collections-IEnumerator-MoveNext()
   at Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable`1 source)
   at [email protected](Unit unitVar0)
   at [email protected](Unit unitVar0)
   at Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable`1 source)
   at Microsoft.FSharp.Collections.ArrayModule.OfSeq[T](IEnumerable`1 source)
   at FsBlogLib.BlogPosts.LoadBlogPosts[a](IDictionary`2 tagRenames, a transformer, String blog)
   at FsBlogLib.Blog.LoadModel[a](IDictionary`2 tagRenames, a transformer, String root, String blog)
   at [email protected](Unit _arg15) in C:\FsBlog\content\fsblog.fsx:line 68
   at Fake.TargetHelper.runTarget@326(String targetName) in D:\code\fake\src\app\FakeLib\TargetHelper.fs:line 3
40
---------------------------------------------------------------------

I noticed that InteractiveChecker of FSharp.Compiler.Service.dll has been renamed to FSharpChecker. I think using an older version of FAKE might work. Can anyone help me track down the right version of FAKE to use?

Raw clone then build doesn't work

Description

Cannot build blog from direct clone

Repro steps

  1. clone
  2. ./build
  3. ./fake

Expected behavior

Build the default site

Actual behavior

Crash

Known workarounds

None

Related information

  • Arch Linux
  • master Branch
  • Mono 4.4.0.40/f847c4

Wrong argument order for mono FAKE exe?

Currently the script name fsblog.fsx comes as last argument:
mono --runtime=v4.0 packages/FAKE/tools/FAKE.exe $@ --fsiargs -d:MONO fsblog.fsx
however usage for FAKE specifies that scipt path comes first:

tomasz@theimowski-ubuntu:~/github/FsBlog$ mono packages/FAKE/tools/FAKE.exe --help
-------------------
 FAKE usage
-------------------

    fake.exe [<scriptPath>] [<targetName>] [options]

Package and publish to NuGet

Not sure how best this can work - not really experimented with packaging anything with NuGet that contains what is a whole bunch of file types (source files etc).

But it would be nice if somebody could basically pull FsBlog from NuGet. They wouldn't need to run the build task - as FsBlogLib will be built, and the dependencies on the other libs would be resolved etc.

But they would need fsblog.fsx and the shell scripts etc.

Generate pages

We have post generation already, we need to have page generation working too.

When we do fake new page="about fsblog" for example we expect:

  • ./source/about-fsblog/index.md to be created.

When we do fake generate or fake preview we expect:

  • ./source/about-fsblog/index.md to be processed and applied to the Razor templates - and a ./output/about-fsblog/index.html to be created.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.