この記事では、Blog Park ブログがチャプター ディレクトリ インデックスを自動的に生成できるようにする複数の JS コードを主に紹介します。必要な友人はそれを参照できます
良いブログ投稿には、ブログの品質が優れているだけでなく、読者にとってより快適で便利な読書を可能にする優れた構成構造も必要です。庭は章ごとに分かれており、ブログ記事の前に目次索引があり、クリックすると該当の章にジャンプして読むことができ、また表の先頭に戻ることもできます。その中でもFish Liさんのブログ記事はこのような構成になっており、当然ながらこの構成でブログ記事を書く場合、手動で設定するのは非常に面倒で、間違いなく書き手の負担は大きくなります。章のインデックスを自動的に生成できれば、多くの作業を節約できると思いませんか?当初は FireBug を使用して Fish Li のソース コードがどのように実装されているかを確認したかったのですが、js が暗号化されているようです。実際、コードはそれほど多くなく、非常に簡単でした。
htmlコード
<h3>章节1</h3> <p>这里是章节1的内容</p> <h3>章节2</h3> <p>这里是章节2的内容</p> <h3>章节3</h3> <p>这里是章节3的内容</p> <h3>章节4</h3> <p>小小代码,不值一提,如果您觉得对您还有一点用,就点个赞支持一下吧。</p>
jsコード
<script language="javascript" type="text/javascript"> //生成目录索引列表 function GenerateContentList() { var jquery_h3_list = $('#cnblogs_post_body h3');//如果你的章节标题不是h3,只需要将这里的h3换掉即可 if(jquery_h3_list.length>0) { var content = '<a name="_labelTop"></a>'; content += '<p id="navCategory">'; content += '<p style="font-size:18px"><b>阅读目录</b></p>'; content += '<ul>'; for(var i =0;i<jquery_h3_list.length;i++) { var go_to_top = '<p style="text-align: right"><a href="#_labelTop" rel="external nofollow" rel="external nofollow" >回到顶部</a><a name="_label' + i + '"></a></p>'; $(jquery_h3_list[i]).before(go_to_top); var li_content = '<li><a href="#_label' + i + '" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >' + $(jquery_h3_list[i]).text() + '</a></li>'; content += li_content; } content += '</ul>'; content += '</p>'; if($('#cnblogs_post_body').length != 0 ) { $($('#cnblogs_post_body')[0]).prepend(content); } } } GenerateContentList(); </script>
使い方:ブログパークにログイン後、ブログパークのバックエンド管理を開き、「設定」タブに切り替え、上記のコードを「フッター」に貼り付けてくださいHTMLコード」エリアを保存するだけです。
注: 上記の js コードから抽出された h3 は章のタイトルとして使用されます。タイトルが h3 でない場合は、コードのコメントで自分で変更してください。このコードは、記事の冒頭に目次インデックスを生成するだけでなく、各章の右下隅 (つまり、次の章タイトルの右上隅) に「トップに戻る」リンクも生成します。読者が目次に戻りやすくするため。この記事のディレクトリ構造は自動的に生成されます。役に立った場合は、すぐに試してみてください。
原文: https://www.cnblogs.com/wangqiguo/p/4355032.html
through
レンダリング:
長い記事の場合は、読者が記事の内容とレベルをより明確に理解できるように、優れた目次インデックスが必要です。ただし、現時点 (2015.7) では、Blog Park は csdn blog のような公開記事のディレクトリ インデックスを自動的に生成しません。ただし、一部のネチズンは、ブログ パーク バックエンドによって提供されるカスタム関数を使用して独自のスクリプトを作成して、この関数を実装しています。私が使用したスクリプトは主に @lavender のメロディーを参照しています。記事のアドレスは http://www.cnblogs.com/wangqiguo/p/4355032.html です。
オリジナルの作成者のスクリプトはレベル 1 のディレクトリのみをサポートしています。私は 2 つのレベルを変更しました。最初のレベルは h2 で、2 番目のレベルは h3 です。ディスカッション QQ グループ アカウントなど、いくつかのガジェットも追加されました。効果は以下の図に示されています:
関数を追加する具体的な手順は次のとおりです:
1. ブログパークのバックエンドが js をサポートしていることを確認してください。これはデフォルトではサポートされていません。メールを送信する必要があります。アクティベーションを申請するために公式にメールを書きました(メールは contact@cnblogs .com です)。メールの内容には次の 2 つの単語を書くだけで、1 時間以内に返信が届きました。 。 。 。
2. バックエンドにスクリプトを追加します
ブログパークのバックエンドを開き、「設定」タブに入り、下部の「フッターHTMLコード」に対応する編集ボックスにjsコードを貼り付け、「」をクリックします。保存」ボタンをクリックして保存します。
3. フォーマットに従って記事を書く
新しいブログ記事を書くときは、h2、h3 などの js スクリプトで設定されたフォーマットに従って章を分割することに注意してください。もちろん、過去に公開した記事に h2、h3 などがあれば、ディレクトリインデックスが自動生成されます。
<script language="javascript" type="text/javascript"> // 生成目录索引列表 // ref: http://www.cnblogs.com/wangqiguo/p/4355032.html // modified by: zzq function GenerateContentList() { var mainContent = $('#cnblogs_post_body'); var h2_list = $('#cnblogs_post_body h2');//如果你的章节标题不是h2,只需要将这里的h2换掉即可 if(mainContent.length < 1) return; if(h2_list.length>0) { var content = '<a name="_labelTop"></a>'; content += '<p id="navCategory">'; content += '<p style="font-size:18px"><b>目录</b></p>'; content += '<ul>'; for(var i=0; i<h2_list.length; i++) { var go_to_top = '<p style="text-align: right"><a href="#_labelTop" rel="external nofollow" rel="external nofollow" >回到顶部</a><a name="_label' + i + '"></a></p>'; $(h2_list[i]).before(go_to_top); var h3_list = $(h2_list[i]).nextAll("h3"); var li3_content = ''; for(var j=0; j<h3_list.length; j++) { var tmp = $(h3_list[j]).prevAll('h2').first(); if(!tmp.is(h2_list[i])) break; var li3_anchor = '<a name="_label' + i + '_' + j + '"></a>'; $(h3_list[j]).before(li3_anchor); li3_content += '<li><a href="#_label' + i + '_' + j + '" rel="external nofollow" >' + $(h3_list[j]).text() + '</a></li>'; } var li2_content = ''; if(li3_content.length > 0) li2_content = '<li><a href="#_label' + i + '" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >' + $(h2_list[i]).text() + '</a><ul>' + li3_content + '</ul></li>'; else li2_content = '<li><a href="#_label' + i + '" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >' + $(h2_list[i]).text() + '</a></li>'; content += li2_content; } content += '</ul>'; content += '</p><p> </p>'; content += '<p style="font-size:18px"><b>正文</b></p>'; if($('#cnblogs_post_body').length != 0 ) { $($('#cnblogs_post_body')[0]).prepend(content); } } var qqinfo = '<p style="color:navy;font-size:12px">讨论QQ群:135202158</p>'; $(mainContent[0]).prepend(qqinfo); } GenerateContentList(); </script>
を実現するために 3 レベルのディレクトリ
をサポートします。 jb51.net /article/132341.htmZhang Guo のページを参照してください。彼はrreee
以上が皆さんのためにまとめたもので、今後皆さんのお役に立てれば幸いです。 関連記事:response.body().string()を複数回呼び出せないのはなぜ?
Vue コンポーネントを使用してカレンダーを実装する方法 (詳細なチュートリアル)
以上がWeb サイト生成章のディレクトリ コード例についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。