WebMatrix + Markdown ...... リファクタリング。
執筆日時:
WebMatrix + Markdown で手軽に更新できる(?)Webサイトを作る のコードをリファクタリングしてみた。ついでに、
- .md/.markdown という拡張子だったらプレーンテキストを表示する機能
- フォルダ階層への対応
の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);
は、あらかじめ登録したヘルパーを利用してテキストを整形する仕組みを呼び出している。これについては、また今度。まだちょっとイケてない部分がある。