0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitBucket Markdown Enhanced Plugin でリンクの解決を見直しました

Posted at

概要

GitBucket用のプラグイン GitBucket Markdown Enhanced Pluginを開発しています。

GitBucket Markdown Enhanced Plugin は、GitBucket 標準のマークダウンレンダリングエンジンを置き換えるプラグインです。

目標は、Visual Studio CodeMarkdown Preview Enhanced 向けの markdown ファイルを軽易に Web で共有できる環境です。

これまで相対リンクによる画像の埋め込みやリンクの処理がイマイチだったのですが、全般的に見直しました。(ただし、ディレクトリへのリンクが解決出来ていません…)

前回の記事

リンクを解決する MarkdownEnhancedLinkResolver の修正履歴

History for src/main/scala/io/github/yasumichi/gme/MarkdownEnhancedLinkResolver.scala - yasumichi/gitbucket-markdown-enhanced

かなり迷走しています。

AI がそれっぽいコードをサジェストしてきたのを検証なく入れてた

fix link on preview and image url · yasumichi/gitbucket-markdown-enhanced@5e80992

上記コミットには、一部、AI によりサジェストされたコードが入っています。なんとなくそれっぽく見えたのであまり修正せず、コミットしてしまいました。

全般的な見直しを行ったコミット

Overall review of relative URL handling · yasumichi/gitbucket-markdown-enhanced@d5198b1

AI によるコードを排除し、java.net.URI クラスの resolve メソッドで相対リンクを解決するように修正しました。

ユーザーは想定しないパスを入力するもの

java.net.URI クラスを導入したことで java.net.URI が正しいと認識しないパスが入力されると例外が発生してしまいます。

職場であったのは、Windows の共有フォルダのパスをリンク記法で埋め込むというものでした。さらに、円マーク(バックスラッシュ)がエスケープシーケンスで食われてしまうことを嫌って [アンカー]("共有フォルダのパス") のようにダブルクォーテーションで囲まれていました。

ちゃんと例外処理しないとダメですね…

バックスラッシュがあったら、相対リンクとして処理しないように修正

Changed to ignore URLs that start with a backslash · yasumichi/gitbucket-markdown-enhanced@803b42c

例外処理を行ったコミット

Handled java.net.URI exceptions. · yasumichi/gitbucket-markdown-enhanced@65677bb

まだまだ問題はありそう

最近、新たな GitBucket プラグインである GitBucket Flexible Gantt Plugin を開発して、GitBucket のコアサービスから、情報を取得する方法を覚えたのでフィードバックできればと考えています。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?