# lightmark reader (Markdown / AsciiDoc ビューアー)
2018/06/16 lightmark reader 1.0 をアップしました。
**lightmark reader** は、軽量マークアップ言語 Markdown もしくは
AsciiDoc で書かれたドキュメントファイル
(.md ファイル、.adoc ファイル) を閲覧するための Windows 用 ビューアー アプリです。
ローカル PC 上のドキュメントファイルを開くことができます。
軽量マークアップ言語とは、論理的に意味づけされた文書を、テキストエディタで楽に書くための方式です。
## ダウンロード
lightmark reader 1.0 2018/06/16 (japanese version only. windows version only.)
[
lmread100.zip (0.4MB)](up/lmread100.zip)
## つかいかた
ダウンロードしたアーカイブ内の
lmread.exe を使用して、
Markdown (.md)
もしくは
AsciiDoc (.adoc)
ファイルを開いてください。
lmread.exe へドキュメントファイルをドラッグアンドドロップしたり、
lmread.exe を、.md .adoc 拡張子のファイルを開く既定のアプリケーションとして設定することも可能です。
## リリースノート
1.0 2018/06/16 初公開版
## 動作環境
このプログラムは、IE 11 がインストールされた Windows 10 環境で動作確認されています。
IE 9 などの古い環境では動作しないと思われます。
## 表示できる Markdown 書式
Markdown は、各サイトで書式そのものに拡張が加えられ使用されていて、
汎用ビューアーでは正確に再現することがなかなか難しいものです。
このプログラムは、外部ライブラリ [Marked.js](https://marked.js.org/) を使用して
Markdown ドキュメントを解釈しており、表示結果もそのライブラリに準じます。
Markdown の基本書式に加えて、GitHub Flavored Markdown (GFM) がサポートされています。
Supported Markdown specifications
|Flavor |Version |
|--------------------------|-------:|
|The original markdown.pl | -- |
|CommonMark | 0.28|
|GitHub Flavored Markdown | 0.28|
table の align は効かないようです。
## 表示できる AsciiDoc 書式
このプログラムは、外部ライブラリ [Asciidoctor.js](https://asciidoctor.org/docs/asciidoctor.js/)
を使用してAsciiDoc ドキュメントを解釈します。
include:: 機能と、PlantUML など図の作成機能は働きません。また、目次がリンクになりません。
## セキュリティ
このプログラムは、ドキュメント ファイルに含まれた悪意ある (かもしれない)
スクリプトが読み込まれることを防ぐため、ホワイトリストによって HTML
要素・属性をフィルタリングしています。
この機能により、ドキュメントにインライン HTML で書かれた script 要素や on*** 属性などは、表示前に除去されます。
(副作用として、安全なドキュメントの表示結果にも一部影響がある可能性があります。)
DOM のフィルタリングには、[RickDOM](https://github.com/hasegawayosuke/rickdom) ライブラリ
(少し改) を使用しています。
## 文字エンコード
lightmark reader は、UTF-8 もしくは Shift_JIS で書かれたファイルを読むことができます。
## 表示のサンプル
この Web ページ自体が、lightmark reader と同じライブラリを使用して、Markdown から HTML に変換されて表示されています。
コードの色分け
```javascript
function unhtmlesc(inp){
return inp.replace(/</g,'<').replace(/>/g,'>')
.replace(/"/g,'"').replace(/&/g,'&')
}
var elm = document.getElementById('mdHere');
elm.outerHTML = (new RickDOM()).build(
"" + marked( unhtmlesc( elm.innerHTML ) ) + "
"
)[0].outerHTML;
```
## LICENSE ライセンス
MIT License にしてみました。同梱の外部ライブラリはそれぞれのライセンスに従います。
ni sitemimasita MIT License.