← すべてのドキュメント

インラインコード

文中の getHTMLCode() などの名前をコードとして示すために、単語や選択範囲をマークします。テキストを単純な <code> 要素で囲み、もう一度ボタンを押すと解除します。

「Call editor.getHTMLCode() to read the content」という文を表示したエディター。editor.getHTMLCode() は灰色の背景に等幅フォントで表示され、インラインコードボタンが強調されています
editor.getHTMLCode() 内にカーソルを置き、</> ボタンを 1 回クリックすると、単語全体がコードになりました。カーソルがコード内にある間は、ボタンが有効状態で表示されます。

有効にする

この機能は inlinecode.js プラグインで提供されます(plugins/all_plugins.js にも含まれます)。コマンドとツールバー項目は inlinecode(ツールチップは「Inline code」)です。ボタンの位置は次のとおりです。

  • toolbar: "full":メイン行の上付き文字と下付き文字の隣です。
  • 既定のツールバー:「More」(⋮)メニュー内です。
  • 独自のツールバー:任意の位置に inlinecode を追加します。
<link rel="stylesheet" href="/richtexteditor/rte_theme_default.css">
<script src="/richtexteditor/rte.js"></script>
<script src="/richtexteditor/plugins/inlinecode.js"></script>

<div id="editor"><p>Call editor.getHTMLCode() to read the content, then save it.</p></div>
<script>
var editor = new RichTextEditor("#editor", {
    toolbar: "mytoolbar",
    toolbar_mytoolbar: "{bold,italic,underline,inlinecode}|{insertlink,insertcode}|{undo,redo}"
});
</script>

オプションはありません。code はすでにエディターの HTML ソース表示に使われているため、コマンド名は inlinecode です。

使い方

  • 選択範囲がある場合は、選択したテキストを囲み、選択状態を保ちます。もう一度押すと解除できます。
  • カーソルだけの場合は、カーソル位置の単語、つまり左右で最も近い空白までの連続した文字を対象にします。カーソル位置は変わりません。空白上では何もせず、空の <code> は作成しません。
  • 解除。選択したすべての文字がすでにコードなら、コード指定を解除します。一部を解除すると分割されます。<code>the content</code> 内の「content」を選択してボタンを押すと、<code>the </code>content が残ります。内部の斜体や太字は、解除したテキストにも残ります。ただし、両側のコード部分に空の要素が残る場合があります。<code>a <i>b</i> c</code> の「b」を解除すると、<code>a <i></i></code><i>b</i><code><i></i> c</code> として保存されます。
  • 入力。エディターのインライン Markdown ショートカット(markdownInlineEnabled、既定で有効)を使うと、`npm install` の末尾のバッククォートを入力した時点で <code>npm install</code> になります。これはプラグインなしでも動作します。プラグインは、ボタンとコード指定の解除機能を追加します。

スクリプトでは、editor.execCommand("inlinecode") または editor.toggleInlineCode() で現在の選択範囲の指定を切り替え、editor.isInlineCode() でカーソルがコード内にあるかを確認します。コマンド専用のキーボードショートカットはありません。

注意点

  • 保存するマークアップは、クラスのない単純な要素です。
    <p>Call <code>editor.getHTMLCode()</code> to read the content, then save it.</p>
    2 つのコード部分が隣接すると 1 つの要素に結合します。空白だけの選択範囲は囲みません。
  • <pre> のコードブロック内と既存のコード内は、すでにコードなので囲みません。複数行のコードブロックには insertcode を使います。
  • 灰色の背景と等幅フォントは、エディターのコンテンツ用スタイルシート(runtime/richtexteditor_content.css、ルール code { … })によるものです。保存した HTML の表示先にも、独自の code スタイルが必要です。
  • サニタイザーでは code 要素を許可する必要があります。多くのサニタイザーは既定で許可しています。

関連情報:ツールバー項目のリファレンス、execCommand、コードスニペットのデモ。