単語の自動リンク化

Linkify がほぼ希望通りに動作しています:

/TBI\s*\W?(\d*)/,https://tbi.example.com/tbi/$1/

これにより、ユーザーが入力する「TBI 番号」のさまざまな形式に対応できます:

  • TBI 17
  • TBI-17
  • TBI17
  • TBI -17
  • TBI*17
  • など

この柔軟性は気に入っています。

しかし、残念ながら、これらの番号を入力する「標準的な」形式には対応できていません:

  • TBI #17

どうやら、#(ハッシュタグ、ハッシュ、ナンバーサイン、オクトトロップ、ハッシュマーク、ポンド記号、三目並べの記号)を適切にマッチさせる方法がないようです。もちろん、以下を試してみましたが、うまくいきません:

/TBI\s*#?(\d*)/,https://tbi.example.com/tbi/$1/
/TBI\s*\#?(\d*)/,https://tbi.example.com/tbi/$1/

さらに、完全なワイルドカードでも動作しません:

/TBI\s*.?(\d*)/,https://tbi.example.com/tbi/$1/

私の推測では、カテゴリのポップアップ機能がこれを上書きしており、ユーザーが提示されたカテゴリのいずれかを選択しなくても、Linkify がマッチング処理を行えないようです。

これは予期される動作でしょうか、それともバグでしょうか?回避策をご存知の方がいらっしゃいましたら、教えてください。

はい、HTML ソースコードを確認すると、Discourse はハッシュタグで始まるものを別の span 要素に配置しているようです。これにより、リンク化テーマの流れが壊れてしまいます。これに対する簡単な解決策はないと思います。申し訳ありません。:frowning: 誰かがより良いアイデアを持っている限り、このケースに特化してテーマをフォークしてカスタマイズする必要があると思います。

このプラグンはよく機能しますが、abrify と組み合わせて使うと動作しません。
このプラグインが追加する クラスを含んだリンクも動作するようにすることは可能でしょうか?

問題の原因は、abbrify プラグインがデフォルトでリンクタグをスキップしていることだと思います。head_tag.html の 16 行目を削除してコードを変更することで修正できるかもしれません。

'a': 1,

うまくいったか、またはさらにサポートが必要かどうか教えてください。:slightly_smiling_face:

「いいね!」 2

動作しているようです。ありがとうございます。

ところで、GitHub から直接編集するのではなく、CSS/HTML テンプレートのみを編集する場合は、何か違いがありますか?

はい、GitHub からテーマコンポーネントを更新する際は注意が必要です。ローカルで変更した CSS や HTML が上書きされてしまいます。

「いいね!」 3

ありがとうございます。abriffy 属性の代わりに、dfn data-info や span aria-label など、別のクラスを追加することは可能でしょうか?

例えば、content: attr() を使ってコンテンツを操作したいと考えています。

はい、その通りです。createAbbr 関数(または linkify テーマの対応する関数)で試してみることができます。

「いいね!」 1

とても素晴らしいですね。少し試してみたいと思います。ここには多くの可能性がありそうですね。JSON と API を何かしら活用する方法について、ご存知でしょうか?

例えば、WordPress 上で API を通じて「abriffy」などの単語やその他のデータを表示できるようにするといったことです。

意味がわかりません。具体的に何を達成しようとしているのか、もう少し詳しく教えていただけますか?テーマコンポーネントはDiscourse上で動作するもので、それらを外部で使用するためのAPIは存在しません。ただし、Discourse固有の部分を修正すれば、JSコードを基本的にそのままコピーして他の場所で使用できるはずです。

onebox 内のコンテンツをリンク化しないようにする方法はありますか?

「いいね!」 1

スキップタグ設定で<aside>タグを追加してみてください。ただし、すべてのワンボックスが<aside>内に配置されているとは限りません。クラス名に基づいたフィルタが必要になるかもしれません。

@sam これについてどう思いますか?:arrow_double_up: これは(ワンボックス内で自動リンクしないという)妥当なデフォルト動作のように思われます。

「いいね!」 4

クラスベースのフィルター設定は完璧に聞こえます。デフォルトでは、1 つのボックスを除外する必要があります。

「いいね!」 7

わかりました、来週にプルリクエストを送信してみます。

「いいね!」 2

こんにちは。今日、デフォルトの「Light」テーマ用にこのテーマコンポーネントを正常にインストールしました。しかし、動作しません。

正規表現と、デフォルトのリンク化単語(discourse および meta)の両方を試しましたが、どちらも成功しませんでした。

v2.3.0.beta2 +256 をインストールしています。デバッグのためのヒントはありますか?よろしくお願いいたします :slight_smile:

「いいね!」 1

最近、コードのリファクタリングを行いました。そのため、Discourseの更新が必要になる可能性があります(2.4がリリースされたばかりなので、更新するのはむしろ便利です :slightly_smiling_face:

「いいね!」 6

onebox 内のリンクify は、デフォルトで無効化されるようになりました。@jrgong さん、テーマを更新して試していただけますか?

「いいね!」 1

これはまだ解決していないのでしょうか?管理画面からコンポーネントをエクスポートしてバックアップを作成できると思っていたのですが、カスタム設定はエクスポートに含まれていませんでした。

アイデア:すべての行を含む設定を、ダブルクリックで編集可能なテキストエリアに変えてはいかがでしょうか?Edit CSS/HTML エディタのようにです。そうすれば、バックアップやエクスポートが容易になり、1 行に 1 つのアイテムとしてリストをインポートすることも簡単になります。

変更前:

ダブルクリック時:

別の話題ですが:そこには奇妙な正規表現が見えるかもしれませんが、これらの設定フィールドでは | を使用できません。上記の提案でこれも解決できるかもしれません。

「いいね!」 3

また会えて嬉しいよ!linkify/abrify プラグインを使って、単語やリンクを画像に変換する方法はどう思う?

現在のプラグインではおそらく不可能ですが、プラグインを修正して<a>タグの代わりに<img>タグを生成するのはそれほど難しくありません。

「いいね!」 1