【雑談】Markdown プラグインで遊ぼう

  1. みなさん、こんにちは!

    「メリーと遊ぼう2」https://www.haijin-boys.com/discussions/6398 が 200 件を超えましたので、Markdown プラグインに関する話題を新しいスレッドに移しました。

    以下は、Markdown プラグインで楽しめる機能の一部です。ぜひチェックしてみてくださいね。
    https://x.com/haijinboys/status/1459527890513457156
    https://x.com/haijinboys/status/1683823579706826754

    目標は BOOTH https://mery.booth.pm/ での販売ですが、現在はのんびりと楽しみながら開発を進めています。

    雑談スレッドですので、ご質問やご要望などのサポートはできませんが、みなさんの面白いアイデアや新しい使い方には興味津々です。

    このスレッドの優先度は低めですので、返信が遅れたり、なかったりすることがありますが、お気軽にご参加くださいね。

     |  Kuro  |  返信
  2. スレ立て乙です(古代のネット仕草)

    最近気づいたんですが、プレビュー側の表示をWordにコピペすると、HTMLとして見出しや箇条書きが要素そのままに貼り付けできるので、簡単に再利用できることに気づいてしまいました。見出しが効くので、Wordの目次もちゃんと効いてくれたり。
    さらに、この方法を使えばコードハイライトも効くのがナイスなんですよね〜。

    本格的にスタイルを合わせたいならやはりPandocを使った方がいいんですが、チーム内共有に留まるフランクな資料であればこれでいいじゃん感がありました👌

     |  yuko  |  返信
  3. お、古代シュメール人の間で流行った、石板を立てたときの挨拶ですね👍

    > 最近気づいたんですが、プレビュー側の表示をWordにコピペ

    実は、私も前回、yuko さんに教えてもらった Microsoft Loop で遊んでいるときに気付いてしまいました。

    Markdown をコピペするより良くね?と…。でも、それを言っちゃぁおしまいですからね!

    > 本格的にスタイルを合わせたいならやはりPandocを使った方がいいんですが、チーム内共有に留まるフランクな資料であればこれでいいじゃん感がありました👌

    うんうん、フランクなチームっていいですね!古代人としては、HTML を Word にコピペって精神衛生上、😱ですがw

    そういうわけで、Markdown プレビュー プラグインに背景付きコピーを実装して来ましたので、お楽しみくださいませ。

    ---
    Markdown プレビュー プラグイン Ver 1.0.7 (64 ビット版) [2,779,254 バイト 2024/04/10]
    https://www.haijin-boys.com/download/MarkdownPreview-x64-1.0.7.zip
    ウイルスチェック: https://www.virustotal.com/#/file/60b3a2ceb26bb616b52e09fdaebf32e936b8297a1da32939b00ea7afb12a9c19

    現在、ベータ版につき動作検証にご協力いただけるかたは無料でお試しいただけますが、再配布は禁止とさせていただきます。

    ご質問、ご意見、ご要望は雑談の範囲内でということで、それ以上はサポート外とさせていただきます。
    ---

     |  Kuro  |  返信
  4. > そういうわけで、Markdown プレビュー プラグインに背景付きコピーを実装して来ましたので、お楽しみくださいませ。

    キタ━━(━(━(-( ( (゚∀゚) ) )-)━)━) ━━ !!!!!
    (古代のノリ再びw)

    無事背景色が付きました!これは職場でのMermaid布教活動にも追い風になりそうですw

    > 実は、私も前回、yuko さんに教えてもらった Microsoft Loop で遊んでいるときに気付いてしまいました。

    おお… Loop → Word のコピペも、スタイルが引き継がれるんですね。

    LoopってTeamsのチャットにも埋めて、そのまま皆で編集、ってことができて便利な一方で、「これをファイル化しようとしてテキストに貼り付けるとインデントやリストの書式が飛んじゃうんだよな~」って問題があったんですが、Word経由でなんとかなりそうな気がしてきました。

    Markdownに戻すときには Loop → Word ─[Pandoc変換]→ Markdown とかすればイケそうな予感。(そもそもLoopがMarkdownで貼り付けできるんだから、Markdownでコピーもさせてくれればよかったんですが😅)

    > うんうん、フランクなチームっていいですね!古代人としては、HTML を Word にコピペって精神衛生上、😱ですがw

    まぁ、分かりますw
    そういったやり取りは私の場合、Loop in Teams な使い方で十分そうで、言ってはみたもののあまりそういった使い方する場面はないかもっていう…w

    でも、コードブロックのコピーはシンタックスハイライトが付くのでちょいちょい使いどころありそうかな~って思いました。

     |  yuko  |  返信
  5. 開発お疲れ様です。いつもお世話になっております。
    Markdown プレビュープラグインで、意図しない表示になることがあったのでお知らせします。

    テーブルがリスト内あるとき、リスト項目をタブでインデントして整形していると、テーブル各行の先頭の文字が消えてしまいます。

    具体的には、下記のマークダウンをプレビューした場合、上のテーブルでは「セル 1」「セル 3」が「ル 1」「ル 3」になるという状態です。
    ちなみにリストをネストしてインデントが深くなると消える文字数も増えます。

    +	タブでインデント
    	| セル 1 | セル 2 |
    	| ------ | ------ |
    	| セル 3 | セル 4 |
    
    +   スペース4つでインデント
        | セル 1 | セル 2 |
        | ------ | ------ |
        | セル 3 | セル 4 |
    

    markdown-it を使っていると思われる他のソフトでも同じ状態なので markdwon-it の仕様?だと思うのですが、ご報告だけさせていただきました。
    でも https://markdown-it.github.io/ では何故か消えずに表示できるようです…?

    別件ですが、フォーラム投稿前のプレビュー表示とマークダウン有効化、とてもとても嬉しいです。ありがとうございます!

     |  noon  |  返信
  6. お久しぶりです!ご愛用いただきありがとうございます。

    Markdown プレビュー プラグイン、需要が少なすぎて開発終了しかけていたのですが、そう言っていただけて少し元気が出ました。

    > 具体的には、下記のマークダウンをプレビューした場合、上のテーブルでは「セル 1」「セル 3」が「ル 1」「ル 3」になるという状態です。

    いただいたテキストを Markdown プレビュー プラグイン Ver 1.0.7 で試してみましたが、こちらでは特に問題なく表示されているようです。

    【参考画像】https://imgur.com/a/JheasfC

    他のソフトでも同じ状況が起きているとのことなので、WebView2 や Edge 関連で、何らかのスタイルシートが適用されている可能性はありませんか?

    > 別件ですが、フォーラム投稿前のプレビュー表示とマークダウン有効化、とてもとても嬉しいです。ありがとうございます!

    そう言っていただけて、こちらもとても嬉しいです!

    フォーラムも markdown-it を使っているので、試しに同じテキストを貼り付けて [プレビュー] してみましたが、特に文字が切れることはなさそうですね。

    謎が深まりますね…。

     |  Kuro  |  返信
  7. どうもお世話になってます
    マークダウンの話が出てるようなので横から失礼します
    Markdown バー プラグインですが
    テーブルの整形は便利でよく使ってますが入力見当たらず
    テーブルの入力
    | -------- |
    を追加できないでしょうか
    |(U+007c)の入力がよくわからず
    マークダウンの一覧のテキストを作り毎回そこからコピーしてる状況で|以外はプラグインでまかなえてます
    ちょうど
    11/01からフリーランス保護の法律が出来たと言うことで
    紙書類はエクセルデータ(エクセル未経験)
    txt形式で送ってた作業メモはマークダウン
    にしてくれと言われ困り果て勉強中です
    一応入れてたMarkdown バー プラグインとMarkdown プレビュー プラグイン
    これから本格的に使わせていただきます

     |  kiyohiro  |  返信
  8. こんにちは。

    > テーブルの入力
    > | -------- |
    > を追加できないでしょうか

    スニペットプラグインを使ってみるのはいかがでしょう?

    このプラグインなら、よく使う文字列をテンプレートとして登録して、サッと呼び出して入力できます。詳しくはこちらをご覧ください:

    https://www.haijin-boys.com/wiki/プラグイン:スニペットプラグイン

    > |(U+007c)の入力がよくわからず

    通常は Shift + ¥マーク で入力できると思いますが、もしうまくいかない場合は 007C と入力してから Alt + X を押す方法でも入力できます。

    > 一応入れてたMarkdown バー プラグインとMarkdown プレビュー プラグイン
    > これから本格的に使わせていただきます

    ありがとうございます。ただ、今は検証用のベータ版を配布中なので、業務利用は控えていただき、試されるときはデータのバックアップをお忘れなく。

    このベータ版は、製品化に向けての検証を目的に配布しています。不具合を見つけたら教えていただけると助かります。

    ただ、冒頭にも書いたとおり、ご質問や新たな機能追加などのご要望にはお応えできないことをご了承ください。とはいえ、楽しい使い方やアイデアがあれば、ぜひシェアしてもらえるとうれしいです!

     |  Kuro  |  返信
  9. 回答ありがとうございます
    Shift + ¥で入力出来ました
    軽くググっても出てこなかったのて助かります

    >ただ、冒頭にも書いたとおり、ご質問や新たな機能追加などのご要望にはお応えできないことをご了承ください。
    スイマセンMarkdownBar.txtは投稿前改めて読みましたが
    冒頭は見てませんでした

    ちなみに
    MarkdownBar.txt(MarkdownBar-x64-1.0.2.zip)
    >**キーボード ショートカットキーの一覧**
    >- `Shift` + `Alt` + `F` : テーブルの整形
    >### テーブルの整形
    >- `Shift` + `Alt` + `F` キーでテーブル構文を整形できます。
    最初動作しないので悩みましたが割り当て無しみたいです
    リセットでも無しなので手動で割り当てました

     |  kiyohiro  |  返信
  10. ご報告ありがとうございます。

    > >- `Shift` + `Alt` + `F` キーでテーブル構文を整形できます。
    > 最初動作しないので悩みましたが割り当て無しみたいです
    > リセットでも無しなので手動で割り当てました

    設定漏れがあったようです。教えていただいて助かりました。

    > >ただ、冒頭にも書いたとおり、ご質問や新たな機能追加などのご要望にはお応えできないことをご了承ください。
    > スイマセンMarkdownBar.txtは投稿前改めて読みましたが
    > 冒頭は見てませんでした

    いえいえ、大丈夫ですよ。また、必要と思われる機能については検討させていただくこともあるので、安心してくださいね。

    今回の配布についてですが、以前のスレッドでもお伝えしたとおり、不具合報告にご協力いただける方に無料でお試しいただいているかたちです。

    今後、BOOTH での販売を考えており、評価版をお試しいただいた上で「この機能で十分かな」と感じていただけたらご購入を、そうでなければアンインストールしていただくよう想定しています。

    そのため、機能追加のご要望にはお応えできないのですが、現行の機能をお試しいただいて、「こんな感じなら購入しようかな?」といった判断材料にしていただければと思っています。

     |  Kuro  |  返信
  11. こんばんは。お騒がせしてすみません。原因?が分かりました。

    https://imgur.com/a/0FgrcvS

    markdown-it に MultiMarkdown のテーブル拡張プラグインを適用していると、この表示になるようです。
    いずれも該当プラグインを外すと正常に表示できることを確認いたしました。
    かなり限られた条件での発生なのでほぼ問題ないと思います。

    ソフトをまたいで(iOSアプリでも)同様の表示だったため、markdown-it が原因だと早とちりして別の要因を考慮しておりませんでした。
    Kuroさんに他の可能性を示唆していただけて助かりました。ありがとうございます。

    > Markdown プレビュー プラグイン、需要が少なすぎて開発終了しかけていたのですが、そう言っていただけて少し元気が出ました。

    とても有用なプラグインだと思いますし、個人的には需要有りまくりです。
    ただ十分完成度が高くて気持ちよく使えてしまうので、リアクション取ることがなく…。
    Meryの各機能ごとのいいね👍ボタンみたいなのがあれば、日々連打間違いなしです!

     |  noon  |  返信
  12. > とても有用なプラグインだと思いますし、個人的には需要有りまくりです。
    > ただ十分完成度が高くて気持ちよく使えてしまうので、リアクション取ることがなく…。

    これ、本当によく分かります…。このプラグインも含め、Mery、いつも安定していてなかなか声を掛ける機会が無く、という。いやまぁ、安定しているのは良いことなんですけどね😅

    いつも仕事で大活躍なMeryに感謝、感謝です。

     |  yuko  |  返信
  13. こんにちは。情報ありがとうございます。

    >> noon さん

    なるほど、markdown-it-multimd-table の影響でしたか。

    私も markdown-it-multimd-table を試してみたところ、同じ現象が再現しました。

    最初はスタイルシートでなんとかできるかな?と思ったのですが、デバッグモードで確認してみると、文字自体がすでに「ル 1」になっていて…どうやら markdown-it-multimd-table 側での修正が必要みたいです。

    本家でも「リスト内のテーブルが正しくレンダリングされない」って issue が出てましたね:

    【参考】Table inside of list is rendered incorrectly
    https://github.com/redbug312/markdown-it-multimd-table/issues/66

    今回の現象とは少し違いますが、そもそもリスト対応ができていないのが原因かもしれませんね。

    2024年8月時点で「次のリリースで対応予定」と書かれてるのを見ましたが、まだリリースは来ていないみたいです💦

    ところで、前にいただいたサンプルテキストですが、リストの「+」の直後にタブや複数のスペースが入っているようでした。(Markdown 的にアリ?)

    以下のように「+」のあとにスペース 1 つにすると、テーブル部分をタブでインデントしても表示が崩れないみたいです。

    + タブでインデント
    	| セル 1 | セル 2 |
    	| ------ | ------ |
    	| セル 3 | セル 4 |
    
    + スペース2つでインデント
      | セル 1 | セル 2 |
      | ------ | ------ |
      | セル 3 | セル 4 |

    ただ、スペースの方は本家の issue にもあるように、スペース 2 つでしか正しくレンダリングされないみたいですね。

    > Meryの各機能ごとのいいね👍ボタンみたいなのがあれば、日々連打間違いなしです!

    ありがとうございます😂 どうしても開発だと、ご要望や不具合報告が多くなるので、こういう温かいお言葉、本当に救われます!

    >> yuko さん

    > これ、本当によく分かります…。このプラグインも含め、Mery、いつも安定していてなかなか声を掛ける機会が無く、という。いやまぁ、安定しているのは良いことなんですけどね😅

    ありがとうございます!Ver 3.7.6 は私もお気に入りで、「安定版」って言えるくらいしっかりしてます😊

    ただ、次のバージョンの Ver 3.8.0 はご要望にたくさん応えたので、仕様変更も多くて、ちょっと不安定になるかも…?な予感です🤣

    今も絶賛開発中で、残るご要望もあと 2 つ!今日中に開発を仕上げたいと思ってます~

     |  Kuro  |  返信
  14. Kuro 様

    プラグインの issue まで調べていただいて…恐縮です。

    リストマーカー直後のタブや複数スペースについては本家のドキュメント(
    https://daringfireball.net/projects/markdown/syntax#list)で

    > List markers must be followed by one or more spaces or a tab.

    となっていて、CommonMark や GFM の Spec でも特に否定されていないようなので記法としては許容範囲と解釈してました。
    でも、教えていただいた方法なら変な表示にもなりませんし、今後はより安全なこちらの書き方をしようと思います。

    小遣い握りしめて正式リリースお待ちしておりますが、本体の次バージョンも楽しみです! 色々変更なさるようでわくわくです。
    寒暖差が激しくなってまいりましたし、お身体気をつけて開発頑張ってください。

    yuko 様

    同じ気持ちの方いらっしゃって嬉しいです。
    でも、yuko 様はいつもしっかり的確なフィードバックされてて、漫然と使うだけの私とは違いますね…。視野が広いというか、色んな知識もお持ちで尊敬いたします。

     |  noon  |  返信
  15. こんばんは。

    いえいえ、そんなに丁寧にされると、逆に恐縮しちゃいます。ここは雑談スレなので、気楽にいきましょう😱

    > リストマーカー直後のタブや複数スペースについては本家のドキュメント(
    > https://daringfireball.net/projects/markdown/syntax#list)で
    >
    > > List markers must be followed by one or more spaces or a tab.
    >
    > となっていて、CommonMark や GFM の Spec でも特に否定されていないようなので記法としては許容範囲と解釈してました。

    Markdown 的には正しい書き方だったんですね。失礼しました😅 メモメモ📝

    > でも、教えていただいた方法なら変な表示にもなりませんし、今後はより安全なこちらの書き方をしようと思います。

    ぜひ markdown-it-multimd-table の issue に「バグあるぞー!」って突撃お願いします😂

    > 小遣い握りしめて正式リリースお待ちしておりますが、本体の次バージョンも楽しみです! 色々変更なさるようでわくわくです。

    ありがとうございます!シンプル志向なのに、新機能はちょっと攻めてみたので、「そんな機能いらん!」って言われないか、ちょっとドキドキしています…フォローしてもらえたら助かります (笑

    > yuko 様
    >
    > 同じ気持ちの方いらっしゃって嬉しいです。
    > でも、yuko 様はいつもしっかり的確なフィードバックされてて、漫然と使うだけの私とは違いますね…。視野が広いというか、色んな知識もお持ちで尊敬いたします。

    私も yuko さんにはいつも刺激をもらっていて、サポート面でも本当に頼りにしています。感謝感謝!

    フィードバックは「グフッ!」ってなるくらい鋭いことが多くて、「そこかー!」って思わず苦笑いしてしまうような痛いところを突かれることもしばしば。

    こういうアドバイスがあるからこそ、成長できていると思っていますw

    > 小遣い握りしめて正式リリースお待ちしておりますが、本体の次バージョンも楽しみです!色々変更なさるようでわくわくです。

    ありがとうございます。

    Markdown プラグインは BOOTH で評価版と製品版 (中身は同じ) を出す予定で、サブスクではなく、ワンコイン500円の買い切りです。

    評価版でお試しいただき、気に入っていただけたら購入、そうでなければアンインストールという、ゆるい投げ銭システムです。

    機能制限もないので、そのまま評価版を使い続けても大丈夫です。いわば、田舎の無人販売所方式ですね😅

    > 寒暖差が激しくなってまいりましたし、お身体気をつけて開発頑張ってください。

    最近寒暖差もすごいですし、雨も多くてちょっと気が滅入っていたのですが、Markdown の話題になるとやっぱりやる気が出ますね〜!Markdown って楽しいですよね。

    noon さんも季節の変わり目、体調には十分にお気をつけくださいませ。

    今日は Ver 3.8.0 をようやく完成させて、紹介のためのブログ記事を書き始めたところなのですが、新機能のインパクトが弱すぎて盛り方に困っていますね。

    ヤダー。書きたくないよー。

     |  Kuro  |  返信
  16. お世話になってます質問お願いします
    MarkdownPreviewの印刷ですがWebView2側の機能ですか?
    レイアウト選択で縦と風景になります
    https://imgur.com/we4Eriy
    風景で印刷すると横
    縦と横と(自動)しか見たことがなく風景は間違いかなと
    ちなみにEdge、Firefox、GoogleChromeは縦と横でした
    WebView2 ランタイムは Evergreen 配布モードです
    WebView2側の機能っポイですがVer 3.8.0が出る前に念の為報告します

     |  kiyohiro  |  返信
  17. ご報告ありがとうございます。

    > MarkdownPreviewの印刷ですがWebView2側の機能ですか?
    > レイアウト選択で縦と風景になります

    印刷は WebView2 側の機能ですね。

    確かに「風景」となっていますね…。

    英語ではレイアウトの選択肢が「Portrait」と「Landscape」なので、これが誤訳されて「風景」になってしまったのでしょう。

    この件については、マイクロソフトのコミュニティでも同様の話題が出ていました。

    【参考】WEBページ印刷時の印刷設定画面でレイアウト「横向き」が「風景」と表示される件
    https://answers.microsoft.com/ja-jp/microsoftedge/forum/all/webページ印刷/7eaec5a0-77ca-47b7-9b59-23584ad0790f

    上記は Edge に関する内容ですが、どうやら2024年9月中旬のアップデートでそうなったようです。

    なお、解決策としてはマイクロソフトへのフィードバックが推奨されているため、修正を希望する場合はフィードバックを送信するしかなさそうですね。

     |  Kuro  |  返信
  18. > でも、yuko 様はいつもしっかり的確なフィードバックされてて、漫然と使うだけの私とは違いますね…。視野が広いというか、色んな知識もお持ちで尊敬いたします。

    いえいえ、私も「きっと難しいだろうなー、でも聞くだけ聞いてみたいなー」なんて気持ちでKuroさんに聞いてみると、目からウロコな実現方法を毎回見つけていただけているだけですので😂

    > フィードバックは「グフッ!」ってなるくらい鋭いことが多くて、「そこかー!」って思わず苦笑いしてしまうような痛いところを突かれることもしばしば。

    開発秘話みたいな話が聞けるの楽しみにしつつ、毎度、まずは伝えてみようと突撃させていただいていますwですので、ご負担にならない程度の気楽さで、捌いていただければ幸いです🙇‍♂️

    > Markdown プラグインは BOOTH で評価版と製品版 (中身は同じ) を出す予定で、サブスクではなく、ワンコイン500円の買い切りです。

    もう散々使わせていただいていますからね。500円握って、肩を回しておきますw

    > ヤダー。書きたくないよー。

    いつもの、最後の峠ですね。こちらもソワソワしながらお待ちしております。

     |  yuko  |  返信
  19. ご返信ありがとうございます。

    > 開発秘話みたいな話が聞けるの楽しみにしつつ、毎度、まずは伝えてみようと突撃させていただいていますwですので、ご負担にならない程度の気楽さで、捌いていただければ幸いです🙇‍♂️

    そう言っていただけると、ありがたいです。ご要望にお応えできないことも多いかもしれませんが、温かいお言葉に感謝です😊

    > もう散々使わせていただいていますからね。500円握って、肩を回しておきますw

    Mery の正式版リリース後になると思うので、もう少し (?) お時間をいただくことになりそうですが…😅

    > いつもの、最後の峠ですね。こちらもソワソワしながらお待ちしております。

    記事を書くのは本当に大変ですよね。でも、リリース前後はなぜかバグが出やすいので、その部分が動作検証になっていることもありますねw

    実は、今回は仕様変更が多くて不具合がいろいろ出てしまい、結構ロールバックしないといけなくなってしまいました😱

    この土日で Ver 3.8.0 をリリースする予定だったのですが、設計を見直さないといけなくなったので、今回は Ver 3.8.0 のリリースを見送って、引き続き 3.7 系の Ver 3.7.7 をリリースすることになりそうです。

    もうしばらくお時間をいただくことになってしまいますが、お待ちいただけると嬉しいです🙇‍♂️

     |  Kuro  |  返信
  20. Kuroさん、Meryの開発お疲れ様です😄

    > 実は、今回は仕様変更が多くて不具合がいろいろ出てしまい、結構ロールバックしないといけなくなってしまいました😱

    ありゃりゃ、それは大変ですね。
    仕様変更を要望した身としては申し訳ないです😥

    > この土日で Ver 3.8.0 をリリースする予定だったのですが、設計を見直さないといけなくなったので、今回は Ver 3.8.0 のリリースを見送って、引き続き 3.7 系の Ver 3.7.7 をリリースすることになりそうです。

    Ver 3.7.6は安定しているので、バグ修正やマイナーアップデートをしたVer 3.7.7がリリースされると嬉しいです。
    その上で、新機能や大きな修正をしたVer 3.8.0をリリースしてもらえると嬉しいです。

    > もうしばらくお時間をいただくことになってしまいますが、お待ちいただけると嬉しいです🙇‍♂️

    いくらでも待つので、ゆっくり開発してください😊

     |  MSY-07  |  返信
  21. >> 印刷は WebView2 側の機能ですね。
    回答ありがとうございます
    印刷はWebView2側の機能と言うことで了解しました
    Edgeで報告されてるようなので直るのを待ちます
    もう一つ質問お願いします
    印刷のその他の設定でヘッダーとフッターをオン
    ファイル名が
    data_text_html;charset=utf-8;base64,PCF...JvZHkiPg0KICA8L2JvZHk+DQo8L2h0bWw+DQo=
    とか元ファイル名と違うものになります
    内容はMarkdownPreview側がWebView2に送ってると思いますが
    これもWebView2の仕様ですか?
    出来れば印刷元が分かるようにヘッダーとフッターをオンで使いたいのですが
    よろしくお願いします

     |  kiyohiro  |  返信
  22. >> MSY-07 さん

    コメントありがとうございます。

    > ありゃりゃ、それは大変ですね。
    > 仕様変更を要望した身としては申し訳ないです😥

    いえいえ。なぜか Ver 3.7.6 にはみなさんからのご意見やご要望がたくさん寄せられ、気がついたら更新内容がざっと 30 項目くらいに…

    > Ver 3.7.6は安定しているので、バグ修正やマイナーアップデートをしたVer 3.7.7がリリースされると嬉しいです。
    > その上で、新機能や大きな修正をしたVer 3.8.0をリリースしてもらえると嬉しいです。

    そうですね。メインのアップデートである Unicode 16.0 対応は早めに終わってたので、そのタイミングで Ver 3.7.7 を出しておけばよかったと今さら思います…。

    今となっては、ロールバックするにも変更点が多すぎて一苦労です😅

    >> kiyohiro さん

    印刷ダイアログの [ヘッダーとフッター] についてですが、残念ながら現時点では WebView2 にはヘッダーを変更する機能がまだ備わっていないんですよね。

    README の [よくある質問] にも書いたつもりだったのですが、PDF に関する説明だけでした。印刷時の制限についても追記しておきますね。

    一応、PDF であればヘッダーの文字列を変更できるので、少し手間ですが、一度 PDF に保存してから印刷する方法ならヘッダーを書き換えられるかと思います。

    WebView2 の印刷機能はまだ開発が進行中といった感じですが、少しずつアップデートされているので、将来的にはヘッダーも変更できるようになるかもしれませんね。

     |  Kuro  |  返信
  23. >> Kuroさん

    > 設定漏れがあったようです。教えていただいて助かりました。

    Markdown バー プラグインのREADME.txtを見ると、テーブルの整形のキーボード ショートカットキーは「Shift + Alt + F」と記載されています。

    ですが、実際は「Shift + Alt + F」が割り当てられていないというkiyohiroさんの報告からそろそろ2か月が経過しますが、修正版のリリースはいつになりそうですか?

     |  MSY-07  |  返信
  24. > ですが、実際は「Shift + Alt + F」が割り当てられていないというkiyohiroさんの報告からそろそろ2か月が経過しますが、修正版のリリースはいつになりそうですか?

    設定変更のみの修正ですので、特にベータ検証は必要なく、この修正のみを含むベータ版のリリースは予定していません。

    また、正式版については、Mery Ver 3.5 以降が推奨されていますので、まずは Mery Ver 3 系の正式版をリリースして、その後準備を進める予定です。

     |  Kuro  |  返信
  25. > 設定変更のみの修正ですので、特にベータ検証は必要なく、この修正のみを含むベータ版のリリースは予定していません。

    承知しました。

    > また、正式版については、Mery Ver 3.5 以降が推奨されていますので、まずは Mery Ver 3 系の正式版をリリースして、その後準備を進める予定です。

    承知しました。

    Mery Ver 3 系の正式版のリリース楽しみに待っていますね😊

     |  MSY-07  |  返信
  26. ご返信ありがとうございます。

    > Mery Ver 3 系の正式版のリリース楽しみに待っていますね😊

    現在、正式版リリースに向けてドキュメント作成を進めています。

    ただ、作業量が多く、限られた余暇時間での作業となっているため、サポート対応にリソースが偏ってしまい、進捗が少しゆっくりめになっています。

    お待たせしてしまいますが、気長に見守っていただけると嬉しいです😅

     |  Kuro  |  返信
  27. いつもMery愛用しています。

    Meryを更新するついでにプラグインやマクロが更新していないか、あちこちのページを巡ってチェックしているところです。。

    現在動作検証中として公開してくださっているMarkdown プレビューとバーのプラグインですが、それぞれの最新版は以下で宜しかったでしょうか?

    プレビュー ⇒ 1.07(2024/04/10)
    バー ⇒ 1.02(2023/11/27)

    これらのプラグインも非常に便利に使用しているので、もし更新されているなら最新版に差し替えたいと考えています。(Boothで正式公開されたら購入も考えています!)
    お忙しい中大変恐縮ですが、お時間あるときにでもご回答よろしくお願いいたします。

     |  AYA  |  返信
  28. ご愛用いただきありがとうございます。

    > 現在動作検証中として公開してくださっているMarkdown プレビューとバーのプラグインですが、それぞれの最新版は以下で宜しかったでしょうか?
    >
    > プレビュー ⇒ 1.07(2024/04/10)
    > バー ⇒ 1.02(2023/11/27)

    はい、どちらもそれが最新です。(バーのほうの無料配布は終了しています)

    > これらのプラグインも非常に便利に使用しているので、もし更新されているなら最新版に差し替えたいと考えています。(Boothで正式公開されたら購入も考えています!)

    プレビューのほうは不具合も出ていないので、正式版でも大きな変更はしない予定です。ライブラリ更新などの細かい調整くらいですね。

    バーのほうは、マニュアルに書いてある [テーブルの整形] のデフォルトショートカットが割り当てられていなかったので、その修正だけ入りそうです。自分で割り当てできるので、1.0.2 のままでも大丈夫だと思います。

    あと、バーは Mery Ver 3.5.0 以降推奨なので、BOOTH でのリリースは Ver 3 系の安定版が出てからになる予定です。

    …とはいえ、Mery Ver 3.7.18 をリリースしてちょっと燃え尽きてるので ^^; モチベが戻るまで少しお待ちくださいね。

     |  Kuro  |  返信
  29. > > プレビュー ⇒ 1.07(2024/04/10)
    > > バー ⇒ 1.02(2023/11/27)
    >
    > はい、どちらもそれが最新です。(バーのほうの無料配布は終了しています)
    > プレビューのほうは不具合も出ていないので、正式版でも大きな変更はしない予定です。ライブラリ更新などの細かい調整くらいですね。
    > あと、バーは Mery Ver 3.5.0 以降推奨なので、BOOTH でのリリースは Ver 3 系の安定版が出てからになる予定です。

    どちらも次の公開は正式版になりそうな感じですね。正式公開日がとても楽しみです!

    > …とはいえ、Mery Ver 3.7.18 をリリースしてちょっと燃え尽きてるので ^^; モチベが戻るまで少しお待ちくださいね。

    もちろんです!
    Kuroさんの健康が第一ですので、お体ご自愛しながら開発続けて下さいね。
    これからも陰ながら応援しています!!!

     |  AYA  |  返信
  30. 「Mery」の開発、ありがとうございます。

    最近 Markdown を使い始めましたが、ファイルのリンク方法の記述について教えて下さい。
    ファイルはローカルのドライブを指定していて、公開されている Markdown プラグインで以下を試しました。

    ![0000.gif](C:\WIN_APL\MeryTestFile\0000.gif)
    画像は正しく表示されます。

    [0002.pdf](C:\WIN_APL\MeryTestFile\0002.pdf)
    リンクは表示されますがクリックしても無反応です。

    [0001.mp4](C:\WIN_APL\MeryTestFile\0001.mp4)
    リンクは表示されますがクリックしても無反応です。

    <video src="C:\WIN_APL\MeryTestFile\0001.mp4" controls="true"></video>
    動画の枠が表示されますが枠内は黒色です。
    再生をクリックしても無反応です。

    公開されている Markdown プラグインの仕様なのか、それとも記述が間違っているのかが判りません。

    よろしくお願いします。

     |  大石剛司  |  返信
  31. ご愛用いただきありがとうございます。

    > 公開されている Markdown プラグインの仕様なのか、それとも記述が間違っているのかが判りません。

    私も Markdown や HTML に詳しいわけではないので、間違っている部分があるかもしれませんが、参考までに Markdown プレビュー プラグインの仕様について説明してみます。(ちょっと推測も含みます)

    まず前提として、Markdown プレビュー プラグインでは markdown-it というライブラリを使っています。

    HTML では、ローカルファイルへのリンクは基本的にfile:スキームを使います。

    たとえば動画ファイルを埋め込む場合は、

    <video src="file:///C:/WIN_APL/MeryTestFile/0001.mp4" controls="true"></video>
    

    のように書きます。

    なので、Markdown ではファイルをリンクする場合、

    [0002.pdf](file:///C:/WIN_APL/MeryTestFile/0002.pdf)
    

    のように書くことになります。

    ですが、markdown-it ではセキュリティのため、XSS (クロスサイトスクリプティング) に悪用される可能性のあるリンクスキームは禁止されているようです。

    • javascript:、vbscript:
    • file:
    • data:

    【参考】https://github.com/markdown-it/markdown-it/blob/master/docs/security.md

    そのため、markdown-it ではローカルファイルへのリンクは動作しません。

    ![0000.gif](C:\WIN_APL\MeryTestFile\0000.gif)
    

    > 画像は正しく表示されます。

    では、なぜ上記のような書き方で画像が表示できるのかというと、Mery の Markdown プレビュー プラグイン側で特別な仕組みを用意しているからです。

    内部で小さなサーバーを立てて、ローカルの画像ファイルにアクセスがあった場合には、ファイルをストリームとして配信するようにしています。

    つまり、ローカルファイルへのアクセスは画像ファイルだけが特別に許可されている、ということですね。

    まとめると、安全のために、ローカルファイルへのアクセスは画像に限られている仕様、ということになります。

     |  Kuro  |  返信
  32. 【雑談】Markdown プラグインで遊ぼう

    説明ありがとうございます。

    >まず前提として、Markdown プレビュー プラグインでは markdown-it というライブラリを使っています。
    >ですが、markdown-it ではセキュリティのため、XSS (クロスサイトスクリプティング) に悪用される可能性のあるリンクスキームは禁止されているようです。
    >では、なぜ上記のような書き方で画像が表示できるのかというと、Mery の Markdown プレビュー プラグイン側で特別な仕組みを用意しているからです。

    説明を読んで納得できました。
    これで現在作成中のプラグインの方向が確定できました。

    ありがとうございました。

     |  大石剛司  |  返信
  33. いつも Mery を便利に使わせてもらっています。
    ありがとうございます。

    たいした話ではないのですが、マークダウンプレビューをここで見つけて試させてもらっています。嬉しい☺️
    AI を使うようになってからはマークダウンを開くことが頻繁になったので。

    その動作自体に言うことは特になにもないのですが、窓が分割表示されるその仕切りを摘んで幅を変えるのに、仕切り棒を掴み損ねがちです。
    上下分割のときはよけいに打率が落ちます。
    もしいつか次に手を付けることがあったらでいいので、もう2~3ドットお恵みください。

     |  みぺ  |  返信
  34. ご愛用いただきありがとうございます。

    Markdown プレビューもお試しいただき、ありがとうございます。

    AI を使うようになって Markdown を開く機会が増えたというのは、最近ならではですね。

    ご指摘いただいた仕切り部分についてもありがとうございます。

    私も個人的な話ですが、トラックボールマウスを使うようになってから、結構、打率が落ちてしまったと感じていました。

    確認してみたところ、仕切りの幅は 3 ドットに設定していました😅

    当時は解像度も低かったので、それぐらいでも良かったのだと思いますが、最近の高解像度環境では厳しそうですね。

    大きく仕様を変えるような話ではないので、次に手を入れる機会があれば、もう少し掴みやすくできるよう、幅を広げてみようと思います。

    それから、Markdown プレビュー プラグインも正式リリースに向けて調整を進めていますので、もうしばらくお待ちください。

     |  Kuro  |  返信
  35. > ご愛用いただきありがとうございます。
    >
    > Markdown プレビューもお試しいただき、ありがとうございます。
    >
    > AI を使うようになって Markdown を開く機会が増えたというのは、最近ならではですね。
    >
    > ご指摘いただいた仕切り部分についてもありがとうございます。
    >
    > 私も個人的な話ですが、トラックボールマウスを使うようになってから、結構、打率が落ちてしまったと感じていました。
    >
    > 確認してみたところ、仕切りの幅は 3 ドットに設定していました😅
    >
    > 当時は解像度も低かったので、それぐらいでも良かったのだと思いますが、最近の高解像度環境では厳しそうですね。
    >
    > 大きく仕様を変えるような話ではないので、次に手を入れる機会があれば、もう少し掴みやすくできるよう、幅を広げてみようと思います。
    >
    > それから、Markdown プレビュー プラグインも正式リリースに向けて調整を進めていますので、もうしばらくお待ちください。

    まじか、楽しみにしてます。(いちいちあっととかつけるのあれなのでわっふるで定着させます)
    値段が気になる所ではある。
    マークダウンが出来るようになったらマークダウンソフト全アンスコしてMeryに移行します。

     |  わっふる  |  返信
  36. >
    > ご質問、ご意見、ご要望は雑談の範囲内でということで、それ以上はサポート外とさせていただきます。
    > ---

    お疲れ様です。
    これ有料販売されたら買うと思う。
    便利だと思う。

     |  わっふる  |  返信
  37. > みなさん、こんにちは!
    >
    > 「メリーと遊ぼう2」https://www.haijin-boys.com/discussions/6398 が 200 件を超えましたので、Markdown プラグインに関する話題を新しいスレッドに移しました。
    >
    > 以下は、Markdown プラグインで楽しめる機能の一部です。ぜひチェックしてみてくださいね。
    > https://x.com/haijinboys/status/1459527890513457156
    > https://x.com/haijinboys/status/1683823579706826754
    >
    > 目標は BOOTH https://mery.booth.pm/ での販売ですが、現在はのんびりと楽しみながら開発を進めています。
    >
    > 雑談スレッドですので、ご質問やご要望などのサポートはできませんが、みなさんの面白いアイデアや新しい使い方には興味津々です。
    >
    > このスレッドの優先度は低めですので、返信が遅れたり、なかったりすることがありますが、お気軽にご参加くださいね。

    お疲れ様です。
    なおマークダウンのマドとか表示とかは有料ですかな?

     |  わっふる  |  返信
  38. ありがとうございます。

    > マークダウンが出来るようになったらマークダウンソフト全アンスコしてMeryに移行します。

    かなりの期待値ですね (笑)

    > なおマークダウンのマドとか表示とかは有料ですかな?

    販売価格については、まだ具体的には決めていないのですが、おそらく、BOOTH で公開している他のプラグインと同じく、無料版と支援版 (継続してご利用いただける場合は、ご支援いただけますと幸いです) というかたちになると思います。

     |  Kuro  |  返信
  39. > ありがとうございます。
    >
    > > マークダウンが出来るようになったらマークダウンソフト全アンスコしてMeryに移行します。
    >
    > かなりの期待値ですね (笑)
    >
    > > なおマークダウンのマドとか表示とかは有料ですかな?
    >
    > 販売価格については、まだ具体的には決めていないのですが、おそらく、BOOTH で公開している他のプラグインと同じく、無料版と支援版 (継続してご利用いただける場合は、ご支援いただけますと幸いです) というかたちになると思います。

    楽しみにさせていただきますm(_ _)m

     |  わっふる  |  返信
  40. 現在、「MarkDown」のリンクを表示するプラグインを作成しています。
    プラグインの動作確認を行っていますが、「MeryViewFile.dll」に同梱している「MeryViewFile.txt」を「Mery」で開いて「MarkdownPreview.dll ver1.0.7」との比較を行っています。
    以下の動作となっていますが、●の箇所は正しい動作でしょうか?確認をお願いします。

    あと、現在は画像が表示される仕様ですが、テキストの場合と同じように、リンクのみの表示で、クリックしたら画像を表示という方が良いかなと思います(同一の操作にする)。

    検証しているファイルは以下の構成です。
    C:\WIN_APL\MeryPortable\Test\MeryViewFile.txt
    C:\WIN_APL\MeryPortable\Test\Image1.jpg
    C:\WIN_APL\MeryPortable\Test\Text1.txt
    C:\WIN_APL\MeryPortable\Test\Layer\Image1.jpg
    C:\WIN_APL\MeryPortable\Test\Layer\Text1.txt

    以下は「MeryViewFile.txt」の「# 確認済みの内容」にあるリンクの箇所の結果です。

    - MarkDown
    [](www.bonworld.com)
    ●空白行で表示されます

    [](http://www.bonworld.com/)
    ●空白行で表示されます

    [](https://www.bonsfm.com/)
    ●空白行で表示されます

    [](mailto:bxa03027@nifty.com)
    ●空白行で表示されます

    [](bxa03027@nifty.com)
    ●空白行で表示されます

    - MarkDown 絶対 同一階層
    ![Image1.jpg](C:\WIN_APL\MeryPortable\Test\Image1.jpg)
    画像を表示
    [Text1.txt](C:\WIN_APL\MeryPortable\Test\Text1.txt)
    ●リンクの表示ですが、クリックしても無反応です

    - MarkDown 絶対 下階層
    ![Image1.jpg](C:\WIN_APL\MeryPortable\Test\Layer\Image1.jpg)
    画像を表示
    [Text1.txt](C:\WIN_APL\MeryPortable\Test\Layer\Text1.txt)
    ●リンクの表示ですが、クリックしても無反応です

    - MarkDown 相対 同一階層
    ![Image1.jpg](Image1.jpg)
    ●画像は非表示
    [Text1.txt](Text1.txt)
    リンクの表示で、クリックしてテキストを表示

    - MarkDown 相対 下階層
    ![Image1.jpg](Layer\Image1.jpg)
    ●画像は非表示
    [Text1.txt](Layer\Text1.txt)
    リンクの表示で、クリックしてテキストを表示

    「MeryLinkFile.dll」は以下からダウンロード可能です
    https://www.bonsfm.com/merywindows/merylinkfiledllwin

    「MeryViewFile.dll」は以下からダウンロード可能です
    https://www.bonsfm.com/merywindows/meryviewfiledllwin

    「MeryMakeHtml.dll」は以下からダウンロード可能です
    https://www.bonsfm.com/merywindows/merymakehtmldllwin

    今回のプラグインの動作確認中に、プラグインが使用するWindowsのテーマを変更して「Mery」を起動しないで、他のプラグインでテーマを変更すると、「Mery」が強制終了してしまう不具合が発見されました。
    この対策として「MeryLinkFile.dll」「MeryViewFile.dll」「MeryMakeHtml.dll」は、テーマの変更は無効にしましたので、使用している方は最新版に差し替えて下さい

    よろしくお願いします

     |  大石剛司  |  返信
  41. 開発作業、おつかれさまです。

    > 以下の動作となっていますが、●の箇所は正しい動作でしょうか?確認をお願いします。

    • MarkDown
    [](www.bonworld.com)
    ●空白行で表示されます
    

    → 正しい動作です (VSCode でも同じです)

    [](http://www.bonworld.com/)
    ●空白行で表示されます
    

    → 正しい動作です (VSCode でも同じです)

    [](https://www.bonsfm.com/)
    ●空白行で表示されます
    

    → 正しい動作です (VSCode でも同じです)

    [](mailto:bxa03027@nifty.com)
    ●空白行で表示されます
    

    → 正しい動作です (VSCode でも同じです)

    [](bxa03027@nifty.com)
    ●空白行で表示されます
    

    → 正しい動作です (VSCode でも同じです)

    • MarkDown 絶対 同一階層
    ![Image1.jpg](C:\WIN_APL\MeryPortable\Test\Image1.jpg)
    画像を表示
    [Text1.txt](C:\WIN_APL\MeryPortable\Test\Text1.txt)
    ●リンクの表示ですが、クリックしても無反応です
    

    → Mery では正しい動作です
    → テキストのリンクについては、VSCode でも反応しませんでした
    → 画像についても、VSCode では絶対パスで指定した画像は表示されないようです

    • MarkDown 絶対 下階層
    ![Image1.jpg](C:\WIN_APL\MeryPortable\Test\Layer\Image1.jpg)
    画像を表示
    [Text1.txt](C:\WIN_APL\MeryPortable\Test\Layer\Text1.txt)
    ●リンクの表示ですが、クリックしても無反応です
    

    → Mery では正しい動作です
    → テキストのリンクについては、VSCode でも反応しませんでした
    → 画像についても、VSCode では絶対パスで指定した画像は表示されないようです

    • MarkDown 相対 同一階層
    ![Image1.jpg](Image1.jpg)
    ●画像は非表示
    [Text1.txt](Text1.txt)
    リンクの表示で、クリックしてテキストを表示
    

    → Mery では、画像を相対パスで指定する場合、「.\」を先頭に付ける必要があります
    → VSCode では、画像が表示されますね

    このあたりは、VSCode と互換性を持たせられるよう、Mery 側でも検討してみます。

    • MarkDown 相対 下階層
    ![Image1.jpg](Layer\Image1.jpg)
    ●画像は非表示
    [Text1.txt](Layer\Text1.txt)
    リンクの表示で、クリックしてテキストを表示
    

    → Mery では、画像を相対パスで指定する場合、「.\」を先頭に付ける必要があります
    → VSCode では、画像が表示されますね

    こちらについても、VSCode と互換性を持たせられるよう、Mery 側でも検討してみます。

    > 今回のプラグインの動作確認中に、プラグインが使用するWindowsのテーマを変更して「Mery」を起動しないで、他のプラグインでテーマを変更すると、「Mery」が強制終了してしまう不具合が発見されました。

    Delphi の VCL テーマは、DLL から呼び出すのは結構大変ですよね…

     |  Kuro  |  返信
  42. その後、VSCode の仕様を調査しまして、Mery も以下のとおり仕様変更しようと思います。

    画像パスの仕様変更

    • 絶対パスによる指定を廃止
    ![Image1.jpg](C:\WIN_APL\MeryPortable\Test\Image1.jpg)
    

    現在、Mery では絶対パスによる指定を許可していますが、これを廃止します。

    VSCode では、Markdown ファイル (.md) の場所を基準とした相対パスによる指定が基本となっているようです。

    おそらく、セキュリティ上の理由によるものと思われます。

    • 相対パスによる指定を追加
    ![Image1.jpg](Image1.jpg)
    
    ![Image1.jpg](Layer\Image1.jpg)
    

    Mery でも、上記 2 つの形式に対応します。

    • 相対パスによる指定の仕様変更
    ![Image1.jpg](./Image1.jpg)
    
    ![Image1.jpg](./Layer/Image1.jpg)
    

    上記 2 つの形式は、従来どおり対応します。

    ただし、

    ![Image1.jpg](../Image1.jpg)
    

    このように、Markdown ファイル (.md) より上の階層にある画像の読み込みは廃止します。

    というわけで、VSCode の Markdown Preview の仕様を参考に、現在開いている Markdown ファイル (.md) と同じ階層、またはそれより下の階層にある画像のみ読み込めるよう、仕様変更を行います。

    ひとまず、現時点ではこのような仕様を考えています。

    よろしくお願いします。

     |  Kuro  |  返信
  43. 確認ありがとうございます。

    >>このように、Markdown ファイル (.md) より上の階層にある画像の読み込みは廃止します。

    以下の構成の場合は Image1.jpg の表示は可能で、Image11.jpg の表示は出来ないという認識で良いですか?

    document\
      Readme1.md
    document\Layer\
      Image1.jpg
    Readme1.md の記述は ![Image1.jpg](Layer\Image1.jpg)
    Image\
      Image11.jpg
    Readme1.md の記述は ![Image11.jpg](..\Image\Image11.jpg) 「これは出来ない」

    VScode の環境が無いので、自分では確認できていませんので確認をお願いしたいと思います。

    今回の仕様変更となる「上の階層のリンク」は、画像以外の .md .txt .pdf 等も禁止になるのでしょうか?それとも画像のみでしょうか?自分は MarkDown での一般的な運用が理解できていないので質問させていただきます。

    よろしくお願いします。

     |  大石剛司  |  返信
  44. ご確認ありがとうございます。

    > 以下の構成の場合は Image1.jpg の表示は可能で、Image11.jpg の表示は出来ないという認識で良いですか?

    はい、ご認識のとおりです。

    > 今回の仕様変更となる「上の階層のリンク」は、画像以外の .md .txt .pdf 等も禁止になるのでしょうか?それとも画像のみでしょうか?

    画像のみです。

    .md や .txt については従来どおり、「上の階層」にあるファイルを開くことができます。

    > 自分は MarkDown での一般的な運用が理解できていないので質問させていただきます。

    Markdown 自体では、../ を使った相対パスが禁止されているわけではありません。

    今回の制限は Markdown の一般的な文法上の制限ではなく、Mery の Markdown プレビューにおけるローカル画像の読み込み範囲を VS Code の挙動に合わせるためのものです。

    実際、VS Code でも .md などのファイルについては、../ を使って上の階層にあるファイルを参照できます。

    VS Code の公式ドキュメントにも、現在の Markdown ファイルより上の階層にある Markdown ファイルへのリンクとして、

    ../typescript/typescript-refactoring.md#rename
    

    という例が掲載されています。

    VS Code 公式ドキュメント「Markdown and VS Code」

    なぜ画像は制限されているのに、テキストファイルへのリンクは制限されていないのか、と思われるかもしれません。

    おそらく理由としては、画像は Markdown プレビューを表示した時点で WebView が直接読み込む必要があるためだと思います。

    たとえば、

    ![test](../test.png)
    

    と書かれていた場合、プレビューを表示するだけで WebView がそのローカル画像を読み込もうとします。

    一方、テキストファイルの場合、

    [test.md](../test.md)
    

    のようなリンクは、ユーザーがクリックしたときにファイルを開くだけです。

    Markdown をプレビューしただけで、別ファイルの内容を自動的に WebView に読み込むわけではありません。

    そのため、../ を使ったテキストファイルへのリンク自体は、比較的許容しやすいのだと思います。

    なお、.txt や .md の場合、Mery 側でファイルをテキストとして読み込んでから WebView に渡しているため、通常の PDF ファイルは開くことができません。

    ただし、純粋にテキストだけで構成された特殊な PDF の場合は、Mery 側のテキスト判定を通ってしまい、リンクを開けてしまう可能性があります。

    その場合でも、PDF ファイルとして WebView に渡しているわけではないため、PDF として正しく表示されるわけではありません。

     |  Kuro  |  返信
  45. 詳しい説明、ありがとうございます。

    自分でも調べてみたら以下の記述がありました
    https://www.markdownlang.com/ja/basic/images.html

    「画像構文」の「相対パス」

    ![ローカル画像](./images/photo.jpg)
    ![親ディレクトリの画像](../images/photo.jpg)
    ![同じディレクトリの画像](photo.jpg)

    「markdownlang」では、画像でも上階層は有効となっていると受け取りましたが、今回の件は「Mery(VS Code)」のみの仕様という事で納得しました。

    拙作の「MeryLinkFile」で「Mery」を選択した時は、ドロップされたファイルが「画像ファイル」かつ「上階層にある時」は無効とするように変更します。

    よろしくお願いします。

     |  大石剛司  |  返信
  46. ご返信ありがとうございます。

    > 「markdownlang」では、画像でも上階層は有効となっていると受け取りましたが、今回の件は「Mery(VS Code)」のみの仕様という事で納得しました。

    Mery 的には、まだ検討中の段階です😅

    VSCode だと、やはりセキュリティ上の理由から、意図的に上階層へのアクセスを禁止しているとのことでした。

    【参考】Images outside of the workspace are not being displayed in VS Code’s Markdown Preview tab
    https://stackoverflow.com/questions/77752877/images-outside-of-the-workspace-are-not-being-displayed-in-vs-codes-markdown-pr

    また、他の Markdown エディターをいくつか調べてみたところ、多くは VSCode のように、現在のフォルダーとその配下にある画像だけに制限されているものや、画像をその配下にコピーして表示できるようにするもの、といった感じでした。

    今回調べた中では、Typora だけは、絶対パスも ../ による親フォルダーへのアクセスも可能でした。

    Mery 的にはどうすべきか、非常に悩ましいところではあります。

    ただ、VSCode のフォーラムを見ても、セキュリティ上の理由があるとはいえ、「厳しすぎる」「上の階層へアクセスしたい」といった要望もいくつかありました。

    Mery としては、セキュリティを優先したいので、これは基本仕様として採用しようと思ってはいますが、

    たとえば…

    📁 docs/
    ├─ 📁 images/
    │  └─ 🖼️ common.png
    └─ 📁 manual/
       └─ 📄 README.md  --> (../images/common.png で指定)
    

    のような構成だと、どうしても親フォルダー (../) にアクセスできないと不便なケースも出てきそうなので、オプションで、ローカル画像のアクセス制限を緩和できるような項目を用意してもいいかなとも思っています。

    まだ正式な仕様としては決定ではありませんが、もう少し検討しまして、ひとまず Markdown プレビュー プラグインのベータ版として、改めてこちらに公開しますので、その時は検証にご協力いただければ嬉しいです。

     |  Kuro  |  返信
  47. 開発環境としてのVSCodeの使い方を考えると、git clone などで展開したフォルダー自体を読み込んでワークスペースとして利用することが多いでしょうから、「そもそも相対パスで使うことが大半を締める」という割り切りもあるのかもしれませんね。

    一方で、Typoraはフォルダー単位でも読み込めるんでしょうが、単一のMarkdownファイルをビューワーとしても使えるようになっているために、絶対パスも扱えるべきという設計なのかもしれません。

    MeryにはVSCode的な意味でのワークスペースの概念はないですし、立場的にはTyporaに近いような印象があり、扱いがデフォルトか設定によるものかはさておき、やはり絶対パスは扱えるのが望ましいような気がします。

    まぁ、「セキュリティ的に」と見えてしまうと、そこをあえて許容するのは腰が引けてしまう開発者ごころではありますよね……😅

     |  yuko  |  返信
  48. >> yuko さん

    ご意見ありがとうございます。

    > MeryにはVSCode的な意味でのワークスペースの概念はないですし、立場的にはTyporaに近いような印象があり、扱いがデフォルトか設定によるものかはさておき、やはり絶対パスは扱えるのが望ましいような気がします。

    おっしゃるとおり、Mery は単一のファイルをサクッと開いてサクッと編集する、という使い方が多いので、VSCode というよりは Typora に近いですよね。

    そう考えると、いちいちフォルダーを用意して、その下に画像を置かないといけない、という制限はちょっと使いづらいですし、Mery で Markdown を使うなら、絶対パスも扱えるほうが自然だと思います。

    > まぁ、「セキュリティ的に」と見えてしまうと、そこをあえて許容するのは腰が引けてしまう開発者ごころではありますよね……😅

    そうなんですよね。

    WebView を使っている以上、スクリプトを実行できる環境ではありますからね。

    もちろん、通常の <script> タグは実行できないようにはなっていますが、これも「100% 安全」と言い切れるものではありません。

    たとえば、何らかの方法でスクリプトを実行できてしまった場合、Mery が WebView から参照できるようにしているローカルファイルを、スクリプトから意図せず読み取られたり、外部へ送信されたりする可能性も考えられます。

    とはいえ、Typora も WebView を使っていますね。

    一応、Mery の Markdown プレビューでは CSP という仕組みを導入して、スクリプトの実行やリソースへのアクセスをかなり制限しています。(Typora は CSP には対応していないようでした)

    ただ、Mery は markdown-it のプラグインにも対応しているので、プラグインによって追加されるスクリプトまで含めて、その動きを完全に制限するのは難しいんですよね。

    そのあたりが脆弱性につながる可能性もあるので、なかなか悩ましいところです。

    単純に「表示できるようにすれば OK」という話でもなく、まさに腰が引けてしまっていました😱

    現時点では、デフォルトでは安全性を優先してファイル階層以下の画像だけを許可しつつ、オプションで上位階層の画像も表示できるようにして、必要な方には解放する、というあたりが落としどころかなと考えています。

     |  Kuro  |  返信
  49. Markdown プレビュー v1.0.8 ベータ版が完成したので、公開します。

    まさかの 2 年以上ぶり?

    各種ライブラリを更新し、今回話題になった画像やリンクのパスの仕様変更なども適用しました。


    Markdown プレビュー プラグイン v1.0.8 (64 ビット版) [3,263,415 バイト 2026/10/09]
    https://www.haijin-boys.com/download/MarkdownPreview-x64-1.0.8.zip
    ウイルスチェック: https://www.virustotal.com/#/file/09d0e2c81b2e387e48a81dde0478af790498e605f7f5824988d3231d39a14440


    ついでに、Markdown バー v1.0.3 ベータ版も公開します。

    [選択範囲の整形] コマンド、メニューだけ作って実装するのをすっかり忘れていたんですね。こちらも前回の更新から、もうすぐ 3 年になってしまうところでした。


    Markdown バー プラグイン v1.0.3 (64 ビット版) [907,539 バイト 2026/10/09]
    https://www.haijin-boys.com/download/MarkdownBar-x64-1.0.3.zip
    ウイルスチェック: https://www.virustotal.com/#/file/8bd7ccf4fdd36f06292044e67cfbd19db7164d45fa8702991fecf446545c616e


    現在はベータ版のため、動作検証にご協力いただける方は無料でお試しいただけます。ただし、再配布は禁止とさせていただきます。

    ご質問やご意見、ご要望などは雑談の範囲内でお願いします。それ以上のサポートについては対象外とさせていただきます。


    というわけで、「いつになったら正式版になるんだ!」と思われそうではありますが、アプリの紹介文を書いたり、記事を書いたりするのが本当にイヤで仕方がないんですよね😃

    フォーラムでこっそりベータ版を配布しているほうが、純粋にプログラミングを楽しめるんです…🫠

     |  Kuro  |  返信
  50. あと、今回話題になった画像のパスについて、検証に使用したテストデータも掲載しておきます。

    以下のデータを使って、画像やリンクのパスが想定どおりに動作することを確認しました。

    画像ファイルのアクセス制限は、プレビューを右クリックして [オプション] → [Markdown] ページを開き、[すべての画像の表示を許可する] をオンにすると解除できます。

    ただし、信頼できない Markdown ファイルを開く場合は、意図しないファイルの読み込みにご注意ください。

    # Markdown プレビューのリンク検証テスト
    
    ## 1. 画像リンク
    
    ### 1.1 同じ階層の画像
    
    ![同じ階層の PNG](image.png)
    → OK
    
    ![同じ階層の JPG](image.jpg)
    → OK
    
    ![ファイル名に空白を含む画像](<image space.png>)
    → OK
    
    ### 1.2 サブフォルダーの画像
    
    ![サブフォルダーの画像](images/image.png)
    → OK
    
    ![複数階層下の画像](images/sub/image.png)
    → OK
    
    ### 1.3 上の階層の画像
    
    ![親フォルダーの画像](../image.png)
    → NG (アクセス制限)
    → OK (すべての画像の表示を許可する時)
    
    ![2 階層上の画像](../../image.png)
    → NG (アクセス制限)
    → OK (すべての画像の表示を許可する時)
    
    ### 1.4 絶対パスの画像
    
    ![絶対パス](C:/Temp/image.png)
    → NG (アクセス制限)
    → OK (絶対パスが Markdown ファイルと同じ階層以下、またはすべての画像の表示を許可する時)
    
    ![別ドライブの絶対パス](D:/Images/image.png)
    → NG (アクセス制限)
    → OK (またはすべての画像の表示を許可する時)
    
    ### 1.5 外部 URL と Data URL
    
    ![HTTPS の画像](https://www.haijin-boys.com/weblog/assets/uploads/2026/08/mery-3-8-9.png)
    → OK
    
    ![Data URL の画像](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAkCAMAAAAO0sygAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAvRQTFRF/5OO//PW/5uVgllb///rqrek/56Y///u//3ecmlm7OvP/5eSmFte/5KNjZqM7IKA/5SP/5GM//LT///v/5yW/52X///////1/5CL/7u4//LV/4yH/5WQ/5qU/5+Z/4mE/42I/4eC/4dh4ntc//PV/46J/4lh/5aR/5qV6IB9/6Of/4uGaGZk/56Z/4eBhp2U/5OP/7Wy/7az/5iSjZqN/6Oe3ufUqruw///qOkxQr8GsNzg8/66q64KA/4qE/4qF7ffj//XX///w///t/+Df2GxO/4iD//fY/5mU6evVJSEq//zeVlhZXVlaPkFB/6yo///lrLmmj1ZXUmtl///2WldS//TW/+Lhpaag///e//HT/4lff1VY4XNW/4uFoG9tRDk7/4+J/5WR1M26/5CK/49i/6+rUz0/aVtZcE9S/+nnr72x/7+8fn58Tk5P/8zKun58b3dx+fLZalxbrLmldkBBsW9v/5+b/6Oc/5uWslpD9ZeS//zj1NvB/7Sx/4ZgfVdZpFRB/4iCfJyN3HJT/7m2/4dg1NKgkJGNfFRX/4aA/4yG///x///solRA/8K/m5FyoFNAe5uNkWJjj1VX/4B79EdGf1dZ/6We+UhHuLqS08q0/6SfVn17/9bV/7q34YeEr29uSVFS/7m1v8u0/5GN1863qbajpFVB/+vqPzM30IiEP0JJ4H5d/6Gcglhb4XpcyrSD6ZOOhYN5/P/qbF9X/6qmOUxQ//v8vnBw///oSjQ5h39r//nh//7efFdZSlpa//LU5nZY///m/+De6uvTcUFFtsOu/7Kud3Vp5+POJExSbFxc/6KeqbWr///n/6Sg53JQ0ndY/9vZtLOFcZmM4OjU/6Wh/+bmeUNLr6ucwdHFgVhaYFtWO01RHEhN/4hhVkVH/4R//6aitsOt/7Gtq3t43ujVMTo6/355kFJA/+/um45v2d7NjWxt3+nV4oiFU2tm/8fFwXFx/4+K/5KOODg812xOUScx/5SO/8C8cU9TuJxiUAAAAgdJREFUeNpiYKAN4BUQlWNDAnKiArwkGSAg8jmIBwlM2SkiQJIBogs/6pvwwYGJfnCZKEkGiGRaibEjATGr3yIkGcDEHMjCiAAHQ5ZMlyXRAFYkA4TOb7k6uWIp2QYICR/N2O2zqZKXTAOEnDxP/5hW6lutTp4BQsLPF73aenNm+jM5sgwQcjLbPjF17d1jD1czkWOAkPD7e31qG6Iv3S9gIycMhITNLFeoKSu1vHg34ycZsSAkfM2yEajfNXRuvCgZ6UDq8Nu8qgdA/da3a9czkWGAu0Wh16G2+u/W5mIld8gxICB5z6w1sRe/mYs7L2cmwwCpno43ke0Jq7LFHS1YyTHAvWbzxisTDpwTd5RiIcuAXbP9TuZGFPWGSTGSZ8DeZbdOObNzqKgwkmlAlDf7PkYVcIIk2QCN/U/EOZCA+PEG0goUtphmBy4k4DCpk40kA2Q/FOtwIgGdMws8SDJAkOmrpi0/HNhqGogIkli1yBhzIwFjGQY6AwFeQUFw+SEgmCLAK8EARCQaIGinIK1o90heWoNXQlCVQTBRlTRP6NV9+vXU9MJ8LQOtedLlR+LmuJjKk2TAVCOxG1krw/NdFne/tjESs3m8I+clSQZorzP0l5RMU798Vrf/hKFk6zZJXQXSIvFLl7yivZ7HdVXeJm1pRXsJN4UkcuJCwg3Y1qBxhAMEGADZQJAf4SK7dAAAAABJRU5ErkJggg==)
    → OK
    
    ### 1.6 同名画像のキャッシュ検証
    
    ![同名画像のキャッシュテスト](image.png)
    → OK
    
    上の画像を表示したあと、別の Markdown ファイルにある同じ `image.png` を表示し、画像が正しく切り替わることを確認。
    
    ## 2. Markdown ファイルへのリンク
    
    ### 2.1 同じ階層の Markdown ファイル
    
    [同じ階層の Markdown](linked.md)
    → OK
    
    [別の Markdown ファイル](other.markdown)
    → OK
    
    ### 2.2 サブフォルダーの Markdown ファイル
    
    [サブフォルダーの Markdown](docs/child.md)
    → OK
    
    ### 2.3 上の階層の Markdown ファイル
    
    [親フォルダーの Markdown](../parent.md)
    → OK
    
    [2 階層上の Markdown](../../parent.md)
    → OK
    
    ### 2.4 絶対パスの Markdown ファイル
    
    [絶対パスの Markdown](C:/Temp/linked.md)
    → OK
    
    ### 2.5 ファイル名に空白を含む Markdown ファイル
    
    [空白を含むファイル名](<docs/test file.md>)
    → OK
    
    ## 3. TXT ファイルへのリンク
    
    ### 3.1 同じ階層の TXT ファイル
    
    [同じ階層の TXT](linked.txt)
    → OK
    
    ### 3.2 サブフォルダーの TXT ファイル
    
    [サブフォルダーの TXT](docs/child.txt)
    → OK
    
    ### 3.3 上の階層の TXT ファイル
    
    [親フォルダーの TXT](../parent.txt)
    → OK
    
    ### 3.4 絶対パスの TXT ファイル
    
    [絶対パスの TXT](C:/Temp/linked.txt)
    → OK
    
    ### 3.5 ファイル名に空白を含む TXT ファイル
    
    [空白を含むファイル名](<docs/test file.txt>)
    → OK
    
    ## 4. 通常の Web リンク
    
    [HTTPS リンク](https://www.haijin-boys.com/)
    → OK
    
    ## 5. 検証項目
    
    - [x] 同じ階層の画像が表示される
    - [x] サブフォルダーの画像が表示される
    - [x] 上の階層の画像は、制限が有効な場合に表示されない
    - [x] [すべての画像の表示を許可する] を有効にすると、上の階層の画像が表示される
    - [x] 絶対パスの画像が、設定に応じて正しく処理される
    - [x] HTTPS の画像が表示される
    - [x] Data URL の画像が表示される
    - [x] 別の Markdown ファイルへ移動すると、同名画像が正しく切り替わる
    - [x] Markdown ファイルへのリンクをクリックすると、プレビューがリンク先の内容に切り替わる
    - [x] 上の階層にある Markdown ファイルも開ける
    - [x] Markdown ファイルへの絶対パスが使用できる
    - [x] TXT ファイルへのリンクをクリックすると、エディターで開く
    - [x] 上の階層にある TXT ファイルも開ける
    - [x] TXT ファイルへの絶対パスが使用できる
    - [x] ファイル名に空白が含まれていても正しく処理される
    - [x] 通常の Web リンクが正しく動作する
    
     |  Kuro  |  返信
  51. どうもお世話になってます
    Markdown プレビュー プラグイン v1.0.8
    Markdown バー プラグイン v1.0.3
    使わせて頂きます
    Markdown プレビューのリンク検証テスト
    試しましたが全て動作したと思います
    参考動画 https://imgur.com/a/uQPEJZc
    そして今
    プログラミング素人ですがソースを生成AI Claudeに渡してannsFM(改造版)を作ってます
    ちょうどプレビュー表示(WebView2)機能でリンクに対応してテストしてた所で
    Markdown プレビューのリンク検証テスト使わせてもらいました
    参考動画 https://imgur.com/a/kER4GRm
    こちらも全て表示
    後はセキュリティをどうするかこちらは全て許可状態
    テスト方法考えてた所だったので助かりました

     |  kiyohiro  |  返信
  52. 一部テキストなど使いまわしなので中身は気にしないで下さい
    後で気づいて直してます

     |  kiyohiro  |  返信
  53. > Markdown プレビュー v1.0.8 ベータ版が完成したので、公開します。
    > まさかの 2 年以上ぶり?

    2…2年……もうそんなに経ったのですか……🫠

    ずっと安定動作で利用させていただいていましたので、さすがに更新内容ももう安定版な感じの地盤がため的な雰囲気ですね。手元の環境に導入して使ってみたいと思います。

     |  yuko  |  返信
  54. 公開ありがとうございます。

    >Markdown プレビュー プラグイン
    >Markdown バー

    動作確認を行い、想定している操作は問題ありませんでした。

    試しに「Markdown バー」で動画のリンクを設定してみました。

    該当がリンクの表示になり、クリックするとダイアログが表示されます。
    「キャンセル」の場合は、問題ありませんが「はい」と「いいえ」は裏でロジックが走っている感じです。

    「はい」の場合は「本体」側に「テキスト」として表示されて、しばらくすると「プラグイン」側に文字列が表示されます。
    「いいえ」の場合は「本体」側に「テキスト」として表示されて、相当時間が経ってから「プラグイン」側に文字列が表示されます。
    どちらも「Markdown プレビュー プラグイン」のアイコンをクリックすると処理は中断し、「Markdown プレビュー プラグイン」は消去されます。

    上記の場合は、「本体」側の表示までで、「Markdown プレビュー プラグイン」側は処理を中止したほうが良いかなと感じました。

    特殊な操作ですが、報告しておきます。

    拙作のプラグインですが、タブレットでの動作確認で時間がかかっています(タブレットでは拡大・縮小は150%を指定)。
    タブレットでアプリを起動すると、フォームの大きさを指定しても最初は最大化で表示されてしまい、再度フォームの大きさを指定して表示する必要があります。
    また、メニュー表示で表示内容が多くなると表示が長くなり、スクロールする必要があり操作勝手が悪くなってしまい、対策中です。
    物理キーボードやマウスが無いので操作勝手が悪く、この辺の対策も行っています。

    よろしくお願いします。

     |  大石剛司  |  返信
  55. > Markdown プレビュー v1.0.8 ベータ版が完成したので、公開します。
    >
    > まさかの 2 年以上ぶり?
    >
    > 各種ライブラリを更新し、今回話題になった画像やリンクのパスの仕様変更なども適用しました。
    >
    > —
    >
    > Markdown プレビュー プラグイン v1.0.8 (64 ビット版) [3,263,415 バイト 2026/10/09]
    > https://www.haijin-boys.com/download/MarkdownPreview-x64-1.0.8.zip
    > ウイルスチェック: https://www.virustotal.com/#/file/09d0e2c81b2e387e48a81dde0478af790498e605f7f5824988d3231d39a14440
    >
    > —
    >
    > ついでに、Markdown バー v1.0.3 ベータ版も公開します。
    >
    > [選択範囲の整形] コマンド、メニューだけ作って実装するのをすっかり忘れていたんですね。こちらも前回の更新から、もうすぐ 3 年になってしまうところでした。
    >
    > —
    >
    > Markdown バー プラグイン v1.0.3 (64 ビット版) [907,539 バイト 2026/10/09]
    > https://www.haijin-boys.com/download/MarkdownBar-x64-1.0.3.zip
    > ウイルスチェック: https://www.virustotal.com/#/file/8bd7ccf4fdd36f06292044e67cfbd19db7164d45fa8702991fecf446545c616e
    >
    > —
    >
    > 現在はベータ版のため、動作検証にご協力いただける方は無料でお試しいただけます。ただし、再配布は禁止とさせていただきます。
    >
    > ご質問やご意見、ご要望などは雑談の範囲内でお願いします。それ以上のサポートについては対象外とさせていただきます。
    >
    > —
    >
    > というわけで、「いつになったら正式版になるんだ!」と思われそうではありますが、アプリの紹介文を書いたり、記事を書いたりするのが本当にイヤで仕方がないんですよね😃
    >
    > フォーラムでこっそりベータ版を配布しているほうが、純粋にプログラミングを楽しめるんです…🫠

    お疲れ様です。
    あるあるすぎる……。(;・∇・)
    なお現状Meryでまったりマークダウンみたりしているものの、こんなこっしょり記事をかいてたりしました。
    こっしょり?堂々と書きましたがある程度なのでがっつりではない。自分感覚で書いたので申し訳ない

     |  わっふる  |  返信
  56. >> kiyohiro さん

    早速お試しいただき、動作検証にもご協力いただき、ありがとうございます。

    ひとまず、問題なく動作しているようで安心しました。

    こちらでも引き続き検証していますが、1 点、気になるところがありました。

    新規作成した「未保存」の状態では、絶対パスで指定した Markdown ファイルや TXT ファイルへのリンクが開けないようです。

    こちらは修正しておきますね。

    > プログラミング素人ですがソースを生成AI Claudeに渡してannsFM(改造版)を作ってます

    おおー、開発お疲れ様です。リンク検証テストもお役に立てたようでよかったです😊

    動画も参考になりました。ありがとうございます。

    生成 AI、便利ですよね。私も今回のテスト項目は AI に作ってもらいました。

    自分でテスト項目を考えると、開発者あるあるですが、無意識のうちにバグを踏まないようなテスト項目になってしまいますからね (笑)

    >> yuko さん

    早速お試しいただき、ありがとうございます。

    > 2…2年……もうそんなに経ったのですか……🫠

    私も、何かの間違いかと思いました…😅

    > ずっと安定動作で利用させていただいていましたので、さすがに更新内容ももう安定版な感じの地盤がため的な雰囲気ですね。

    そうですね。今回は新機能の追加というより、ライブラリの更新や、これまで気になっていた部分の修正が中心ですね。

    ただ、使っているライブラリが軒並み更新されていて、それらを集めるだけでも一苦労でした。

    さらに、markdown-it などは仕様変更によって、そのままでは動かなくなっている部分もあり、なかなか焦りました。

    それでも、ひとまず必要な修正を加えながら、各種ライブラリを現時点での最新版に更新することができました。

    外部ライブラリに依存していると、こういうときに困りますね…🫠

    本件とは関係ないですが、QuickJS の v0.17.0 と、PCRE2 の v10.49 もリリースされていて…😱

    >> 大石剛司さん

    動作検証にご協力いただき、ありがとうございます。

    動画リンクの件、なるほどです。

    Markdown バーでリンクを挿入した場合、Markdown ファイルへのリンクはプレビューで表示し、それ以外のファイルは Mery (エディター側) で開く仕様になっています。

    そのため、動画ファイルもエディターで開かれ、テキストとして読み込まれた内容がプレビューに渡されます。

    ファイルサイズが大きいと、その処理がプレビューの応答に影響する可能性はありそうですね。

    大きなファイルはプレビューに渡す前に処理を中断するなど、事前にガードする仕組みがあったほうがよさそうです。

    また、ファイルの中身までは判別できませんが、拡張子から動画やバイナリと思われるファイルへのリンクは、Mery で開くのではなく、Windows の既定のアプリで開くようにしたほうがいいかもしれません。

    このあたりは、今後の改善案として検討してみたいと思います。

    それから、VS Code では画像だけでなく、動画や音声も埋め込み表示できるようです。

    ホスト側 (Mery) から WebView2 にファイルをストリーミングで渡すことで、動画や音声の埋め込みにも対応できそうな可能性が見えてきました。

    こちらも開発に挑戦してみたいと思います。

    > 拙作のプラグインですが、タブレットでの動作確認で時間がかかっています(タブレットでは拡大・縮小は150%を指定)。

    開発お疲れ様です。

    タブレット対応はなかなか大変そうですね。Mery では必要最低限の対応しかしていません。

    Delphi にはタッチ操作やジェスチャーに対応する機能もあるので、それらを使えば対応できるのかな?と思いますが、そもそもタブレットを持っていないので、手も足も出ないという…😅

    >> わっふるさん

    早速お試しいただき、ありがとうございます。

    記事でのご紹介もありがとうございます。

    こういう記事を書くのも、なかなか気合いが要りますよね😅

    Mery も活用していただいているようでうれしいです。

    かなりカスタマイズしていただいているようで、初めて見た人には Mery だと気づかれないかもしれませんね。

    それでは、ちょっと Markdown プレビュー プラグインの開発をしてきます。(Mery 本体の開発はどうした…)

     |  Kuro  |  返信
  57. テスト用のファイルを編集していて気が付いた事があります。

    ファイルの先頭に「画像リンク」を4行記述して、30行目に「# 見出し」を追加しました。
    「# 見出し」の入力完了の時点では、「プラグイン」側はスクロールしないでそのままです。
    「# 見出し」を「編集」側で中央付近より上にスクロールすると、「プラグイン」側に「見出し」が表示されるようにスクロールします。

    逆に「プラグイン」側でスクロールした時の「編集」側のスクロールは不定な感じです。
    ただ、「プラグイン」側でダブルクリックすると「編集」側は該当箇所近くにカーソルが移動します。

    画像がなければ編集箇所とスクロール箇所は連動している感じです。

    希望としては、編集したら結果が直ぐに見えて欲しいです。
    「編集」と「プラグイン」とで、相互に同じ位置を表示するのは可能でしょうか?
    もしくは、一時的に画像表示を無効・有効にする機能があればとも思います。

    よろしくお願いします。

     |  大石剛司  |  返信
  58. >> 大石剛司さん

    ご報告ありがとうございます。

    結論からお伝えしますと、画像の間に「空行 (Enter キーを 2 回押して 1 行あける)」を入れていただくことで、プレビューとのスクロール位置の同期が改善されます。

    なぜそのような動きになるのか、HTML の仕組みとあわせて説明しますね。

    プレビュー側では、エディターの行と表示位置を対応付けるために、段落などの要素に「行番号の目印」を付けて同期しています。

    しかし、Markdown では、画像リンクを空行なしで続けて書くと、すべてまとめて「1 つの段落」として扱われます。

    空行がない場合 (現在の書き方):

    ![画像 1](image.png)
    ![画像 2](image.png)
    ![画像 3](image.png)
    # 見出し
    

    この場合、3 つの画像は HTML では 1 つの段落にまとまります。

    HTML では、画像は段落の中に配置される要素 (インライン要素) です。

    横並びになったり、表示幅によって折り返されたりするため、画像ごとに行番号の目印を付けても、エディター側の行と正確に対応付けることが難しくなります。

    そのため、画像そのものではなく、画像を含む段落に目印を付けています。

    結果として、目印は画像 1 の手前にしか付かず、画像 2 や画像 3 の位置には目印がありません。

    その次の目印は「# 見出し」まで飛んでしまうため、画像の高さが大きい場合、スクロール位置がずれることがあります。

    解決方法: 画像の間に空行を入れる

    以下のように、画像の間に空行を挟んでみてください。

    ![画像 1](image.png)
    
    ![画像 2](image.png)
    
    ![画像 3](image.png)
    
    # 見出し
    

    こうすると、画像が 1 枚ずつ別の段落として扱われ、それぞれに行番号の目印が付きます。

    その結果、エディター側の行とプレビュー側の表示位置をより細かく対応付けられるようになり、スクロール位置の同期が改善されるかと思います。

    ただし、画像のサイズによっては段落の高さが大きくなり、スクロール位置にズレが生じる場合もあります。

    この点については、スクロール位置を正確に対応付けることが難しいため、仕様上の制限としてご了承ください。

     |  Kuro  |  返信
  59. 詳しい説明ありがとうございます。

    空白行を2行挿入したら改善しました。

    拙作の「MeryLinkFile」のヘルプと説明書のファイルに、今回の記述を追加しました。

    ありがとうございました。

     |  大石剛司  |  返信
  60. Mery のプラグインに付いての質問が2点ありますです。

    1:マクロ用にマウスのダブルクリックのイベントは用意していない事は過去の発言から見つけましたが、現状ではプラグインにも用意されていませんが、イベントの追加は可能でしょうか?

    現在「MeryViewFile」を公開していますが、現在行の「Ctrl+ダブルクリック」で「MeryViewFile」の画面を表示しないで現在行のファイルを表示する機能を実現したいと思っていて、今回のイベントの追加を希望します。

    2:「MeryViewFile」は、「ツール」「プラグイン」「MeryViewFile」で起動していますが、「MeryViewFile」をキーボードにも割り付けてみました。「プラグイン」から起動した時と「キーボード」から起動した時の判別の方法があれば教えて下さい。

    拙作のエディターの「BonsMemo」に「MarkDown」関係の機能を追加しました。ファイルのドロップを行うと、「ファイルを開く」または「リンクファイルの挿入」かの画面が表示されます。また、リンクのある行で「Ctrl+ダブルクリック」でリンクファイルを表示します。以下からダウンロードが可能です。

    https://www.bonsfm.com/bonsfmwindows/bonsmemowin

    よろしくお願いします。

     |  大石剛司  |  返信
  61. こんばんは、開発作業お疲れ様です。

    > 1:マクロ用にマウスのダブルクリックのイベントは用意していない事は過去の発言から見つけましたが、現状ではプラグインにも用意されていませんが、イベントの追加は可能でしょうか?

    プラグインでは、基本的に Windows API でイベントを拾えるので、Mery 側で専用のイベントを用意する必要はありません。

    ダブルクリックを拾う場合は、たとえば以下のように、PreTranslateMessage で Windows の WM_LBUTTONDBLCLK をキャッチするだけです。

    アウトライン プラグインのコードに組み込んだ例:

    function TOutlineFrame.PreTranslateMessage(hwnd: HWND; var Msg: tagMSG): Boolean;
    begin
      Result := False;
      if Msg.message = WM_LBUTTONDBLCLK then
        OutputDebugString(PChar('WM_LBUTTONDBLCLK'));
    end;
    

    ちなみに、Result := False を返すと、Mery 本体側の処理も継続されます。Result := True を返すと、プラグイン側でそのメッセージを処理済みとして扱うため、Mery 本体側でのダブルクリック処理 (単語選択など) は行われなくなります。

    > 2:「MeryViewFile」は、「ツール」「プラグイン」「MeryViewFile」で起動していますが、「MeryViewFile」をキーボードにも割り付けてみました。「プラグイン」から起動した時と「キーボード」から起動した時の判別の方法があれば教えて下さい。

    Mery 側では TActionList を使っているだけなので、メニューから呼ばれたのか、キーボードから呼ばれたのかを判定する仕組みはありません。

    そもそも Delphi の標準的なアクションの仕組みでも、呼び出し元を判別するもがありません。(できるなら私が教えていただきたいぐらいです😅)

    なので、プラグイン側で工夫していただくかたちになると思います。

    たとえば、マウスの左ボタンが押されている場合はメニューから呼ばれたものと判断する、といった方法です。

    とはいえ、キーボード操作でメニューを表示することもできるので、厳密に判別しようとすると、なかなか難しいですね。

     |  Kuro  |  返信
スポンサーリンク