CSS/JSコンポーネントの追加に関する問題:リンク機能を維持するためのリンクの堅牢化

TL;DR サマリー:

  • Robustify ツールチップ をハイパーリンクに適用するために、Discourse に JavaScript と CSS のリンクを組み込むのに問題があります。
  • この以前のケースと類似点がありますが、Robustify API をクエリするまでには至っていません。将来的にはこの方法が賢明かもしれませんが、当初は正しくラップされたハイパーリンクのポップアップを有効にするだけで始めようと考えていました。

詳細:
Discourse フォーラムに小さな CSS/JS アプリを実装することについて、おそらく簡単な質問をさせていただきます。Mementoweb が作成した、ページ上のハイパーリンクにポップアップボックスをアタッチする便利な小さなアプリを使用しようとしています。これにより、サイトにアクセスするか、リンクが機能しなくなった場合にサイトの以前のキャッシュバージョンを表示するかを選択できます。これは本当に便利な機能です!数年後にウェブサイトに戻ったときに、メンテナンスされていないページへのリンク切れが発生するという避けられない問題のいくつかを解決できることを願っています。当初は、Robustify サイトでコードを手動で生成するだけで機能することを確認しようと思っていました。

このアプリは数行のコードで実行されます。リンクは長い a href タグでラップされ、head タグには CSS スタイルシートと JavaScript コードへのリンクがあります。Discourse が JavaScript のカスタマイズを許可するかどうかは少し不明でしたが、初心者ガイドを読んで、変更の余地がどれだけあるかを見て、非常に励まされました。リモートテーマ(Sam’s Simple Theme)を使用しており、サイトヘッダーに新しいコンポーネントとしてコードを追加しようとしました。


まだこれを起動して実行することはできませんでしたが、昨日、プラグインについて調べ、JS のタイプ値を "text/discourse-plugin" version="0.8.13" に切り替えたときに解決したと思っていました。また、CSS の場所のわずかな変動(DOI としてではなくシートを直接リンクする、タグを CSS スペースに直接コピーする、埋め込み CSS として含めるなど)を解決しようとしましたが、うまくいきませんでした。ラップされたリンクを含む投稿には、ポップアップが表示されません。


ここでのガイダンスをいただけると幸いです。また、その間に解決策を見つけた場合は、この投稿を更新します。

ブラウザのJavaScriptコンソールとNetworkタブのスクリーンショットを共有していただけますか。これは、ページでJavaScriptコードの読み込みを妨げているコンテンツセキュリティポリシー(CSP)の問題である可能性があります。

「いいね!」 2

Faizaanさん、ありがとうございます :slight_smile: 以下にスクリーンショットを含めます。CSPの問題はすぐにはわかりませんが、役立つようであれば別のマシンを試すこともできます。

コードを確認しましたが、前の投稿でスクリーンショットに写っているJavaScriptタグが組み込まれるのを妨げている何らかの上書きがあるようです。

image

これがスクリプトタイプの値を text/javascript から text/discourse-plugin に切り替えた結果なのかどうかは100%確信がありません。元の値では機能しなかったように感じており、コンポーネントコードに示されているJS DOIへのポインタがなくなっています。

この件に関するサポート、ありがとうございます。個々のリンクの導入をさらに困難にする場合は、より完全なAPIを構成しようとする方が簡単な場合があります。