Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

_misskey_content の廃止 #1838

Closed
mei23 opened this issue Nov 9, 2020 · 2 comments
Closed

_misskey_content の廃止 #1838

mei23 opened this issue Nov 9, 2020 · 2 comments
Labels
✨Feature 新機能なのだわ 🌌Federation APとかだわ

Comments

@mei23
Copy link
Owner

mei23 commented Nov 9, 2020

Summary

MisskeyのMFMの生データをそのままやり取りするフィールド
もはや互換のない内部データがやり取りされるだけで意味がない
他のAP実装と同じようにHTML版を使用したほうがマシ

@mei23 mei23 added ✨Feature 新機能なのだわ 🌌Federation APとかだわ labels Nov 9, 2020
@mei23
Copy link
Owner Author

mei23 commented Nov 9, 2020

_misskey_content を廃止して、content (ActivityPub用 HTML) をこんな感じにする
HTML5のカスタムデータ属性 を使う

<span data-mfm-name="spin" data-mfm-args="x,left,speed=1.5s">b</span> とか
<span data-mfm-name="spin" data-mfm-x="1" data-mfm-direction="left" data-mfm-speed="1.5s">b</span> とか
<!-- 将来的にMisskey MFM側の表現能力が上がったときに構文を壊さなくていいように最初から下のにしとくのがいいかも -->
  • _misskey_content と content 両方送らなくて済む
  • 未対応実装でゴミが生成されずにスッキリ無視してくれる
  • Misskeyでは表現できないタイプのネストも表現できる
  • HTML5の標準仕様なので、通常のHTML (JS, CSS) パーサーで楽に扱える

また、現行のクライアント部分ではstyle属性を文字列連結しているが、
data-*は、CSSの属性セレクタが使える ので、クライアント側でMFM→DOMにする時にdata-*を使うことにより、文字列連結をいくつか置き換えられるかも。
CSSインジェクションの危険も下がるかも。

また、APIでクライアント向けに返すものにtext (MFM)だけではなくhtmlも追加すると
MastodonではコンテンツをHTMLで返しているので、サードパーティーアプリでパーサー部分が流用できて実装が楽になるかも。

@Johann150
Copy link

I think misskey-dev#8787 will be relevant here because _misskey_content is deprecated by it.

@mei23 mei23 closed this as not planned Won't fix, can't repro, duplicate, stale Feb 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨Feature 新機能なのだわ 🌌Federation APとかだわ
Projects
None yet
Development

No branches or pull requests

2 participants