WindowsのHTML Application(HTA)として動作し、MarkdownファイルをローカルPC上で閲覧・編集する個人用Wikiです。Webサーバーやデータベースは不要で、Wikiページはリポジトリ直下の.mdファイルとして保存されます。
Caution
このリポジトリはHTA/mshta.exeを使うレガシー版です。HTAは通常のWebページより強い権限でActiveXやローカルファイルを操作できます。組織のセキュリティ設定で実行を禁止されている場合があり、新規利用にはPowerShellローカルサーバー版のMarkDownPSLocalServerWikiを推奨します。
- Markdownページの表示と編集
- 新規ページ作成、名前変更、削除
- ページ一覧
- ファイル名と本文の文字列検索
- 表示履歴
- 文字サイズの拡大・縮小
- HTTP/HTTPSリンクを外部ブラウザーで開く機能
- WindowsのファイルパスやUNCパスを関連付けられたアプリで開く機能
- ページを同じフォルダーの
.mdファイルとして保存
- Windows
mshta.exe/HTAの実行が許可されている環境- リポジトリのフォルダーへ書き込めること
Edge、Chrome、Firefoxの拡張機能として動くものではありません。index.htaはWindowsのHTML Application Hostで実行されます。
- リポジトリをダウンロードまたはクローンします。
index.hta、coreフォルダー、.mdファイルを同じ構成のまま置きます。index.htaをダブルクリックします。- 「トップページ」が表示されることを確認します。
実行前にindex.htaの入手元と内容を確認してください。メールや不明なWebサイトから取得したHTAファイルは実行しないでください。
| 場所 | 内容 |
|---|---|
トップページ.md |
最初に表示するページ |
*.md |
作成したWikiページ |
index.hta |
画面、Markdown処理、ファイル操作 |
core\marked.js |
MarkdownからHTMLへの変換 |
core\github-markdown.css |
Markdown表示用CSS |
core\jquery-1.12.4.js |
同梱されている旧版jQuery |
バックアップする場合は、リポジトリ直下の.mdファイルをすべてコピーしてください。更新、名前変更、削除の前には別フォルダーへバックアップすることを推奨します。
ページ名はWindowsのファイル名として使われます。現在のコードは次を拒否します。
- 空のページ名
.または..\ / : * ? " < > |など、Windowsのファイル名に使用できない文字- 制御文字
すべてのページパスはindex.htaがあるフォルダーを基準に組み立てます。これにより、新規作成、保存、名前変更、削除でWikiフォルダー外を直接指定できないようにしています。
- HTAは現在のブラウザーのサンドボックス内では動作しません。
Scripting.FileSystemObjectでファイルを作成・変更・削除します。Shell.Applicationでローカルファイルやフォルダーを開きます。- 信頼できないMarkdownには、HTMLや不正なリンクが含まれる可能性があります。
- このWikiフォルダーへ、信頼できない
.hta、JavaScript、Markdownを追加しないでください。 - 組織で
mshta.exeが禁止されている場合、設定を回避せずPowerShellローカルサーバー版を使用してください。
mshta.exeは正規のWindows機能ですが、任意のスクリプト実行に悪用される例があるため、セキュリティ製品や組織ポリシーで制限されることがあります。参考:MITRE ATT&CK - Mshta
MarkDownPSLocalServerWikiを別フォルダーへ準備します。- HTA版を終了します。
- このリポジトリ直下の
.mdファイルを、移行先のdocフォルダーへコピーします。 トップページ.mdがdocフォルダーにあることを確認します。- 移行先の
startWiki.batまたはStartWiki.ps1を起動します。 - 表示、編集、検索、リンクを確認してから旧フォルダーを保管します。
最初は移動ではなくコピーにし、元データを残してください。
- HTA/Internet Explorer系のMSHTML実行環境に依存
- 現在のWeb標準やブラウザー機能を前提にしたコードではない
- 複数利用者、ログイン、権限管理、同時編集に非対応
- 自動バックアップ、世代管理、ごみ箱はなし
- 同梱JavaScriptライブラリは旧版であり、無条件の最新版置換は互換性を壊す可能性あり
- Markdown内の信頼できないHTMLを安全に無害化する機能はなし
組織ポリシー、EDR、ウイルス対策ソフト、ファイルの関連付けでHTAが禁止されている可能性があります。設定の回避は行わず、PowerShellローカルサーバー版への移行を検討してください。
index.htaと同じフォルダーにトップページ.mdがあるか確認してください。
Wikiフォルダーへの書き込み権限を確認してください。読み取り専用の場所、ZIPファイル内、保護されたフォルダーでは保存できません。
index.htaはShift_JISを前提としています。ソースやMarkdownの文字コードを変更する場合は、必ずコピーで試し、既存ページの表示と再保存を確認してください。
このリポジトリは、個人ブログで公開していたHTA/jQuery/marked.jsによるMarkdown WikiをGitHubへ移したものです。
Legacy Windows HTA-based personal Markdown wiki. It can read and write local files with the current user's permissions. New users should prefer the localhost-only PowerShell server successor.