WebMatrix + Markdown ...... リファクタリング。

執筆日時:

WebMatrix + Markdown で手軽に更新できる(?)Webサイトを作る のコードをリファクタリングしてみた。ついでに、

の2機能を追加した。

	@using System.IO

@functions { string ReadTextFile(string path) { path = string.Format("/Pages/{0}.txt", path); path = Server.MapPath(path);

if (!File.Exists(path)) { throw new HttpException(404, path + "is not found."); }

return File.ReadAllText(path); } }

@{
var url = UrlData.Count > 0
? string.Join("/", UrlData)
"Home"; url = url.TrimEnd('/');

var extension = Path.GetExtension(url);

var content = string.Empty;

switch (extension) { case ".markdown": case ".md": // Remove extension url = url.Replace(extension, "");

content = ReadTextFile(url); Response.ContentType = "text/plain"; Response.Write(content); return;

default: // Prepare Layout Layout = "_SiteLayout.cshtml"; Page.Title = url;

// Process by Markdown Deep var markdown = new MarkdownDeep.Markdown() { ExtraMode = true, };

content = ReadTextFile(url); content = markdown.Transform(content); // content = Daruboard.Transform(content); break; } }

@Html.Raw(content)

Daruboard.Transform(content); は、あらかじめ登録したヘルパーを利用してテキストを整形する仕組みを呼び出している。これについては、また今度。まだちょっとイケてない部分がある。