Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

highlight.jsの言語を指定
 
共有:
通知
すべてクリア

[解決済] highlight.jsの言語を指定

17 投稿
4 ユーザー
3 Reactions
2,712 表示
veilnui
(@veilnui)
Trusted Member Registered
結合: 5年前
投稿: 60
Topic starter  

こんにちは。

ソースコードのハイライト表示に機能を追加して欲しいです。

Hightlight.jsは、自動でプログラミング言語を判別しますが、その判別が上手くいかないときがあります。

例えば、PHPのソースがJavaのソースとしてハイライトされたり、C++のソースがハイライト表示されなかったりします。

すべてのソースコードで不具合が発生する訳ではなく、短いソースコードで良く発生します。
ソースの量が少なすぎて、Hightlight.js側が判別できていないのでしょう。

そのため、Hightlight.jsでどのプログラミング言語であるかを指定できるようにして欲しいです。
プルダウンメニューで選ぶ形でも、テキストボックスで入力する形でもどちらでもOKです。


   
引用
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

class で言語を指定できます。

言語を指定してハイライト表示する


   
わいひら reacted
返信引用
veilnui
(@veilnui)
Trusted Member Registered
結合: 5年前
投稿: 60
Topic starter  

その機能をCocoonブロックから指定できるようにして欲しいです。

ソースコードのハイライト表示は、多くのユーザーが使っている機能だと思うので、利便性が上がると思います。


   
返信引用
かうたっく
(@kautakku)
Famed Member Moderator
結合: 7年前
投稿: 4764
 

https://veilnui.net/making-arraylist-in-csharp/

このページを見るとですけど、おそらく言語のclass属性を 高度な設定 より追加してないと思います。

https://gyazo.com/c0070a5af281d22b0656019f6c78d707

  • 言語を上記 追加 CSS クラス に追加し、再利用ブロックに追加

それで、使いたいときに 「ブロックの検索」 呼び出し

  1. 縦三本リーダー… 詳細設定 から 「通常のブロックへ変換」を選ぶ

そうすることで履歴に残るので、あとは選択するだけで、機能追加されなくてもイケると思います。

  • 新規段落を追加 したとき、スラッシュ / を入力
  • 履歴からブロックを選ぶ
  • 「通常のブロックへ変換」を選んだら、もうclass属性付き

ってな具合で。

 

後は直近数個の履歴より、使いたい言語の属性付きをclass属性追加付きpreタグから選べて
要望の機能と似たような機に使えますよ。

 

 

毎回class属性を追加するのが面倒であれば、WordPressの機能使うのも。って話です
もっと便利な方法はわいひらさんに頑張ってもらうことかもしれないですね

無限に要望は尽きないと思いますし、1つの工程がなくなれば便利だと感じるのもあるかもしれないですが。

This post was modified 5年前 by かうたっく

   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17220
 

コードブロックを追加してみました(β版)。
------------------------------------------------
https://github.com/yhira/cocoon
最新ファイルをダウンロードする場合は、上記ページのダウンロードボタンからzipファイルをダウンロードしてください。

FTPでのアップデート方法はこちら。
https://wp-cocoon.com/ftp-update/
------------------------------------------------
ソースコードを表示は、エスケープとかがややこしいので不具合等はあるかもしれません。
僕も試してはいるのですが、もしよろしければ、いろいろなコードで試していただければ幸いです。


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17220
 

ブロックはこんな感じ。


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17220
 

ブロックはこんな感じ。


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17220
 

公開部分はこんな感じ。
選択した言語でラベルが表示されます。


   
返信引用
veilnui
(@veilnui)
Trusted Member Registered
結合: 5年前
投稿: 60
Topic starter  

https://veilnui.net/making-arraylist-in-csharp/

パスワードは「1234」です(半角数字)。

従来のソースとCocoonのソースを両方載せてみました。


   
返信引用
veilnui
(@veilnui)
Trusted Member Registered
結合: 5年前
投稿: 60
Topic starter  

禁則文字のエスケープは上手く行われています。

 

あと、書き忘れだと思いますが、ソースを囲う「preタグ」の中に「codeタグ」がありません。

また、Hightlight.jsは「codeタグ」のクラス名にプログラミング言語を指定することで、その言語でソースをハイライト表示できます。

例えば、Pythonでハイライト表示する場合は、こんな感じです。

<pre>
<code class="python">
</code>
</pre>

   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17220
 

Cocoonは元々、preタグにclassを指定する仕様ですよ。
https://wp-cocoon.com/highlight-js/
Hightlight.jsは必ずしもcodeタグを使わなければいけないというわけではないかと思います。

You can use any tags instead of <pre><code> to mark up your code.

https://highlightjs.org/usage/


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17220
 

本来は、codeで囲んだ方が良かったのかもしれませんが、ビジュアルエディターの時はpreの中にcodeを書く機能を実装するのが難しかったのと、pre,code双方挿入する前提の使い方では、使い勝手が悪かったのでpreのみの仕様にしました。

そのときの名残で、Cocoon設定のHightlight.jsのCSSセレクタ指定(デフォルト)も「.entry-content pre」なので、ブロックエディターもその仕様に合わせました。


   
返信引用
veilnui
(@veilnui)
Trusted Member Registered
結合: 5年前
投稿: 60
Topic starter  

なるほど。
確かに実装上のコストと利便性が釣り合わない機能は意味がないです。

この状態でも標準のソースコード表示より便利になり、助かりました。
禁則文字のエスケープも行われていますし、フォントも等幅フォント表示です。

あと、細かい部分ですが、個人的にはpreタグのボーダーは非表示にしたほうが見栄えが良いと思います。


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17220
 

ご確認ありがとうございます。

あと、細かい部分ですが、個人的にはpreタグのボーダーは非表示にしたほうが見栄えが良いと思います。

そこらへんは、かなり好みの部分になってくると思うので、自前でCSSを書いて対応していただければと思います。


   
返信引用
veilnui
(@veilnui)
Trusted Member Registered
結合: 5年前
投稿: 60
Topic starter  

了解です。

ソースコードブロックの追加ありがとうございます。


   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17220
 

先日実装した、Cocoonの「コード」ブロックですが、以下に書かれた理由から公式の「コード」ブロックで十分に思うので、2.0.3あたりで廃止する方向でいかせていただこうと思います。
https://wp-cocoon.com/community/cocoon-blocks-all/cocoon%e3%81%ae%e3%82%b3%e3%83%bc%e3%83%89%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%81%ab%e9%96%a2%e3%81%99%e3%82%8b%e4%b8%8d%e5%85%b7%e5%90%88/

廃止理由としてはこちらになります。

  • WordPress公式の「コード」ブロックでも言語指定はできる
  • WordPress公式の「コード」ブロックと今後大きく差別化する予定はないので同じものが2つあっても意味がない
  • どうせ廃止するなら早めに廃止しておいた方が良い

   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17220
 

既にGitHub版のものは廃止しました。
https://github.com/yhira/cocoon
大変申しわけないのですが、今後は公式のコードブロックをご利用いただければと思います。

言語指定は、「高度な設定」から、「追加CSSクラス」を追加の方法でお願いいたします。


   
返信引用
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました