Open mkobayashime opened 1 year ago
issueありがとうございます。確かにその通りですね。
現状、リソースの集中のため、zenn-editor(zenn-markdown-html含む)への機能追加は、Zenn本体やエコシステムに関わるものに限定しております。また、一般利用のためのオプションを追加すると、おそらくこれ以外にもたくさんのオプションが必要になることから、慎重に判断しています。
このような事情のため、面倒ではありますが、markdownToHtmlで生成されたHTMLを再度加工するなどして回避していただければと思います。
@cm-igarashi-ryosuke ご事情理解いたしました Issue を閉じるか残すかについてはお任せしたく存じます🙏
課題
zenn-markdown-html
package のmarkdownToHtml
関数において、リンク文字列にはmdLinkAttributes
plugin によって各種属性が付与されています その1つにrel="nofollow noopener noreferrer"
があり、これは外部リンクに対して付与することが意図されているようですここで「外部」リンクか否かは現状
zenn.dev
ドメイン配下ページかどうかで判定されており、https://github.com/zenn-dev/zenn-editor/blob/a304e0a7092e4bc0d40fb2eeb866f4643617d045/packages/zenn-markdown-html/src/utils/md-link-attributes.ts#L12
zenn.dev
配下ページにはrel="nofollow..."
が付与されないという挙動となっていますが、これは Zenn 以外のサイトで利用するには不都合が生じうるものです
具体例として、
example.com
にて公開するサイトに当該パッケージを用いる場合、「内部」リンクであるはずのhttps://example.com/foobar
へのリンクにrel="nofollow"
が付与されてしまいます これは SEO 上不都合な挙動ですそこで、この「内部リンクか否か」の判定基準をユーザがカスタムできるようなオプションを提供することを提案します
解決策案
markdownToHtml
のoptions
にて内部リンクか否かを判定する正規表現(または関数(url: string) => boolean
?)を受け取るようにする