検索
タグ
ASP.NET
.NET
ASP.NET MVC
F#
Visual Studio
Azure
ASP.NET Core
ライトニングトーク
Plone
Selenium
C#
AJAX
jQuery
JavaScript
ADO.NET Entity Framework
SQL Server
WebMatrix
EFCore
LINQ
PowerShell
カテゴリ
最新の記事
最新のコメント
記事ランキング
最新のトラックバック
以前の記事
2025年 04月 2025年 03月 2025年 02月 2024年 12月 2024年 11月 2024年 10月 2024年 09月 2024年 08月 2024年 04月 2024年 03月 2024年 02月 2024年 01月 2023年 12月 2023年 11月 2023年 10月 2023年 09月 2023年 08月 2023年 07月 2023年 06月 2023年 05月 2023年 04月 2023年 03月 2023年 02月 2023年 01月 2022年 12月 2022年 11月 2022年 10月 2022年 09月 2022年 08月 2022年 07月 2022年 06月 2022年 05月 2022年 04月 2022年 03月 2022年 02月 2022年 01月 2021年 12月 2021年 11月 2021年 10月 2021年 09月 2021年 08月 2021年 07月 2021年 06月 2021年 05月 2021年 04月 2021年 03月 2021年 02月 2021年 01月 2020年 12月 2020年 11月 2020年 10月 2020年 09月 2020年 08月 2020年 07月 2020年 06月 2020年 05月 2020年 04月 2020年 03月 2020年 02月 2020年 01月 2019年 12月 2019年 11月 2019年 10月 2019年 09月 2019年 08月 2019年 07月 2019年 06月 2019年 05月 2019年 04月 2019年 03月 2019年 02月 2019年 01月 2018年 12月 2018年 11月 2018年 10月 2018年 09月 2018年 08月 2018年 07月 2018年 06月 2018年 05月 2018年 04月 2018年 03月 2018年 02月 2018年 01月 2017年 12月 2017年 11月 2017年 10月 2017年 09月 2017年 08月 2017年 07月 2017年 06月 2017年 05月 2017年 04月 2017年 02月 2017年 01月 2016年 12月 2016年 11月 2016年 10月 2016年 09月 2016年 08月 2016年 07月 2016年 06月 2016年 05月 2016年 04月 2016年 03月 2016年 02月 2016年 01月 2015年 12月 2015年 11月 2015年 10月 2015年 09月 2015年 08月 2015年 07月 2015年 05月 2015年 04月 2015年 03月 2015年 02月 2015年 01月 2014年 12月 2014年 11月 2014年 10月 2014年 09月 2014年 08月 2014年 06月 2014年 04月 2014年 03月 2014年 02月 2014年 01月 2013年 12月 2013年 10月 2013年 09月 2013年 08月 2013年 07月 2013年 06月 2013年 05月 2013年 04月 2013年 03月 2013年 02月 2013年 01月 2012年 12月 2012年 11月 2012年 10月 2012年 09月 2012年 08月 2012年 07月 2012年 06月 2012年 05月 2012年 04月 2012年 03月 2012年 02月 2012年 01月 2011年 12月 2011年 11月 2011年 10月 2011年 09月 2011年 08月 2011年 07月 2011年 06月 2011年 05月 2011年 04月 2011年 03月 2011年 02月 2011年 01月 2010年 12月 2010年 11月 2010年 10月 2010年 09月 2010年 08月 2010年 07月 2010年 06月 2010年 05月 2010年 04月 2010年 03月 2010年 02月 2010年 01月 2009年 12月 2009年 10月 2009年 09月 2009年 07月 2009年 06月 2009年 05月 2009年 04月 2009年 03月 2009年 02月 2009年 01月 2008年 12月 2008年 11月 2008年 10月 2008年 09月 2008年 08月 2008年 07月 2008年 06月 2008年 05月 2008年 04月 2008年 03月 2008年 02月 2008年 01月 2007年 12月 2007年 11月 2007年 04月 2007年 03月 2007年 02月 2007年 01月 2006年 11月 2006年 10月 2006年 09月 2006年 08月 2006年 07月 |
2013年 05月 17日
MrakdownPresenter最近 MarkdownPresenter なるものをいじっている。これは Wiki 記法的なマークアップ言語として GitHub 界隈を中心にか勢いを増している "マークダウン" 記法で書かれたテキストを、Web ブラウザ上でプレゼンテーション風のスライド表示に仕立て上げるもの。 マークダウンテキストをブラウザでスライド表示可能とするプロダクトとしては、 Ruby や Python 等々のスクリプト言語によってマークダウンテキストを HTML に変換、といったものを見かける。 その中でも、MarkdownPresenter は処理が HTML + ブラウザ上JavaScript だけで完結しているのが特徴らしい。 MarkdownPresenter は、元となるマークダウンのテキストファイルを編集/保存したら、ブラウザ表示上でスペースキーを押してリロードすればすぐ反映されるので、変換作業に手間取ることなく快調に作業が進む。 そのかわり、impress.js を使ったような派手なスライドは作れない。 テキスト主体のシンプルで渋いスライドを作るのに最適だ。 Webサーバ必須さてそのような MarkdownPresenter なのだが、マークダウンテキストを "presentation.md" として独立したファイルとして配置し、"Presenter.html" 中の JavaScript にて AJAX で読み込む仕掛けである。そのため、ローカル環境で作成作業中もHTTP サーバが必須なのだ。 もっとも自分の場合、Windows OS 上での作業となるのだが、Visual Studio や WebMatrix などがあるため、このことが問題とはならない。 WebMatrix がインストールされていれば、Windows エクスプローラでフォルダを右クリックすると、"このフォルダを WebMatrix で開く" というメニューがあるくらいだ。 作業中のフォルダでこのメニューをクリックすればそのフォルダが WebMatrix で開かれ、そのまま WebMatrix の "実行" をクリックすれば、内蔵の Web サーバ ( IIS Express ) が起動して Presenter.html を http 経由でお好みのブラウザによる閲覧開始となる。 そのほかにもインターネット接続が前提でよければ DropBox を簡易Webサーバとして活用する方法もあるし、実質困ることはないだろう。 ちなみに、MarkdownPresenter の GitHub リポジトリの README を読むと、"Installing" の節に、IIS や IIS Express を設定する方法のほか、Python がインストールされている環境であれば python -m SimpleHTTPServerで簡易 Web サーバが立てられる説明もあった。 Python で簡易サーバが立てられるなら...実は Python でこれほどまでに容易に簡易Webサーバを立ち上げられるのは知らなかった。そういえばと思いだしたのが、Ruby にも WEBrick なるものがあって、簡易にWebサーバが立ち上げられたはず。 ネットで検索して、以下のワンライナーを見つけた。 > ruby -rwebrick -e 'WEBrick::HTTPServer.new({:DocumentRoot => "./"}).start'と、ここまできて、F# スクリプトで簡易Webサーバを立てるとなるとどうなるか? ということを思いついた。 F# スクリプトで簡易Webサーバ結論としてはこんな感じ。ワンライナーで書けるほど抽象度を上げたコンポーネントは .NET Framework 標準にはない。 とはいえ、.NET 標準の HttpListener クラスによって結構な量の処理がカプセル化されており、上記程度のコードで記述できる。 早速にコマンドライン引数の解析処理も書き加えて httpd.fsx として仕上げ、F# scripts for command line の一員に加えた。 F# スクリプト実行のための環境設定が整備されていれば(過去投稿1、過去投稿2 参照)、最短で、 > httpdとコマンドプロンプトから実行するだけで、カレントディレクトリの内容が http://localhost:8080 経由で HTTP プロトコルにて公開されるようになる。 ポート番号の指定など、コマンドラインオプションの詳細は GitHub リポジトリに登録してある README を参照のこと。 なお、ポート80番や、* による外部コネクションの受付を行うには、「管理者として実行」として管理者権限でないと例外になるようなのでご注意を。 おまけコマンドラインオプション解析の実装は、以前に引き続き、今回もなかなか頭を捻らされた。これはこれで面白い F# ネタではあるのだが、それはまたの機会に。
by developer-adjust
| 2013-05-17 23:18
| .NET
|
ファン申請 |
||