メディアサポート
VMark は標準的な HTML5 タグを使って、Markdown ドキュメントにビデオ、オーディオ、YouTube の埋め込みをサポートします。
サポートされるフォーマット
ビデオ
| フォーマット | 拡張子 |
|---|---|
| MP4 | .mp4 |
| WebM | .webm |
| MOV | .mov |
| AVI | .avi |
| MKV | .mkv |
| M4V | .m4v |
| OGV | .ogv |
オーディオ
| フォーマット | 拡張子 |
|---|---|
| MP3 | .mp3 |
| M4A | .m4a |
| OGG | .ogg |
| WAV | .wav |
| FLAC | .flac |
| AAC | .aac |
| Opus | .opus |
構文
ビデオ
標準的な HTML5 の video タグを使います。
<video src="path/to/video.mp4" controls></video>オプション属性付き:
<video src="video.mp4" title="Demo" poster="thumbnail.jpg" controls></video>オーディオ
標準的な HTML5 の audio タグを使います。
<audio src="path/to/audio.mp3" controls></audio>YouTube 埋め込み
プライバシー強化された YouTube の iframe を使います。
<iframe src="https://www.youtube-nocookie.com/embed/VIDEO_ID" width="560" height="315" frameborder="0" allowfullscreen></iframe>Vimeo 埋め込み
Vimeo プレーヤーの iframe を使います。
<iframe src="https://player.vimeo.com/video/VIDEO_ID" width="560" height="315" frameborder="0" allowfullscreen></iframe>Vimeo の URL を直接貼り付ける(例:https://vimeo.com/123456789)と、VMark が自動的に埋め込みに変換します。
限定公開の Vimeo 動画にも対応しています。限定公開の共有リンク(https://vimeo.com/123456789/abcdef1234 または ?h=… 付きの URL)を貼り付けると、VMark は埋め込みの再生に必要なプライバシーハッシュを保持します。
Bilibili 埋め込み
BV ID を使って Bilibili プレーヤーの iframe を使います。
<iframe src="https://player.bilibili.com/player.html?bvid=BV1xxxxxxxxx" width="560" height="350" frameborder="0" allowfullscreen></iframe>Bilibili の動画 URL(例:https://bilibili.com/video/BV1xxxxxxxxx)を貼り付けると、VMark が自動的に埋め込みに変換します。短縮 URL(b23.tv)はリダイレクト解決が必要なためサポートされていません。
画像構文へのフォールバック
メディアファイルの拡張子を持つ画像構文も使えます——VMark が自動的に適切なメディアタイプに変換します。

メディアの挿入
ツールバー
ツールバーの「挿入」メニューを使います。
- ビデオ——ビデオファイルのファイルピッカーを開き、
.assets/にコピーし、<video>タグを挿入 - オーディオ——オーディオファイルのファイルピッカーを開き、
.assets/にコピーし、<audio>タグを挿入 - YouTube——クリップボードから YouTube URL を読み取り、プライバシー強化された埋め込みを挿入
- Vimeo と Bilibili——エディタに動画 URL を直接貼り付けると、VMark がプロバイダーを自動検出します
ドラッグ&ドロップ
ファイルシステムからビデオまたはオーディオファイルをエディタに直接ドラッグします。VMark は次の処理を行います。
- ドキュメントの
.assets/フォルダーにファイルをコピー - 相対パスを持つ適切なメディアノードを挿入
ソースモード
ソースモードでは、HTML タグを直接入力します。メディアタグは色付きの左ボーダーでハイライトされます。
- ビデオ——ティールのボーダー
- オーディオ——インディゴのボーダー
- YouTube——赤のボーダー
- Vimeo——青のボーダー
- Bilibili——ピンクのボーダー
ソースモードでのスマート貼り付け
ソースモードへの貼り付けは、生のテキストをそのまま流し込むのではなく、Markdown として正しい処理を行います。
- 画像パス——Finder やエクスプローラーで複数ファイルをコピーした場合は複数——は検証され、ドキュメントのアセットフォルダにコピーされて
として挿入されます。貼り付けの意図があいまいな場合は、小さな確認トーストで先に確認します - スクリーンショットやコピーした画像(クリップボード上のバイナリ画像データ)は、アセットフォルダに保存され、同じように挿入されます
- 選択テキストの上に貼り付けた URL はリンクになります:
[selected text](https://…) - 他のアプリからコピーした HTML や Markdown は、挿入前に変換・整形されます——ただし、フェンスコードブロックの中では、貼り付けたテキストはそのまま保持されます
- Finder やエクスプローラーからソースエディタにドラッグした画像ファイル も、コピーされて挿入されます
変換は 設定 → Markdown → クリップボード貼り付けの処理 に従います(デフォルトは Smart で、他のモードではこの処理を行いません)。また、設定 → ファイルと画像 → アセットフォルダにコピー がオン(デフォルト)の間は、ファイルがアセットフォルダにコピーされます。
メディアの編集
WYSIWYG モードでメディア要素をダブルクリックすると、メディアポップアップが開きます。
- ソースパス——ファイルパスまたは URL を編集
- タイトル——オプションの title 属性
- ポスター(ビデオのみ)——サムネイル画像のパス
- 削除——メディア要素を削除
Escape を押してポップアップを閉じ、エディタに戻ります。
パスの解決
VMark は 3 種類のメディアパスをサポートします。
| パスの種類 | 例 | 動作 |
|---|---|---|
| 相対パス | ./assets/video.mp4 | ドキュメントのディレクトリを基準に解決 |
| 親ディレクトリ基準の相対パス | ../images/photo.png | ドキュメントのディレクトリを基準に、パスが指定するだけ上の階層へたどって解決 |
| 絶対パス | /Users/me/video.mp4 | Tauri アセットプロトコルを通じて直接使用 |
| 外部 URL | https://example.com/video.mp4 | ウェブから直接読み込み |
相対パスを推奨します——マシン間でドキュメントを移植しやすくなります。
ノートの隣にある共有アセットフォルダも、書いたとおりに機能します——notes/report.md から ../images/photo.png を参照できます。(0.9.79 より前は、壊れた プレースホルダーとして表示されていました。)
セキュリティ
- メディアパスに URI スキーム(
javascript:、file:、または独自のスキーム)を含めることはできません。そのようなソースは読み込まれず、拒否されます - ディレクトリを指す相対パス(
.、..、assets/)は読み込まれません。動画/音声ブロックはそれを即座に拒否します。インライン画像はパスをそのまま返し、webview がアプリのオリジンを基準に解決するので、ディスクに届くことはありません。ホーム相対パス(~/…)も同じように扱われます - 絶対パスはパスのルールでは制限されません。アセットスコープ内の絶対パスはすべて表示されます:ホームフォルダー、
/Volumes、/mnt、/media(Windows ではドライブC:〜F:も)、および実行時に許可されたフォルダーです。そのため、ドキュメントはフルパスを書くだけで、これらの場所にある読み取り可能な画像を何でも表示できます。アセットフォルダにコピー をオフにして画像を貼り付けると、こうした絶対パスが書き込まれます。相対パスで..を使えるのもこのためです:絶対パスですでに届かない場所には何も届きません - 動画の埋め込みは 3 つのホストからのみ読み込まれます:
www.youtube-nocookie.com(YouTube のプライバシー強化プレーヤー)、player.vimeo.com、player.bilibili.com。YouTube のリンクやyoutube.comで書かれた iframe は、プライバシー強化ホスト経由で埋め込まれます。VMark のコンテンツセキュリティポリシーは、これらのホストからのフレームのみを許可し、それ以外のサイトからは読み込みません - 他の iframe ソースはサニタイザーによって除去されます