社内のgit-lab wikiはMarkdownで動作します。記事の要約をいくつか作成し、ヘッダーにクリックすると、ヘッダーが展開され、テキストが表示されるように、基本的に次のようにWikiに投稿したいと思います example
Markdownにはこの展開/折りたたみ/折りたたみ機能はありますか?
短い回答:いいえ、Markdownはそのような機能を直接提供していませんが、いくつかの作業を行うと、機能するものを構築できる場合があります。
このような機能を動作させるには、アニメーションなどを制御するためにCSSやJavaScriptが必要になります。そのような機能をHTMLで動作させることはできるかもしれませんが、Markdown出力では特に簡単ではありません。
理想的には、折りたたみ可能な各セクションはdivでラップされます。
<div id="section1">
<h1>Section 1</h1>
<p>Section 1 content</p>
<div id="section1-1">
<h2>Section1-1</h2>
<p>section 1-1 content</p>
</div>
<div id="section1-2">
<h2>Section1-2</h2>
<p>section 1-2 content</p>
</div>
</div>
次に、CSS/JavaScriptを使用して、個々のセクションを折りたたむことができます。ただし、Markdownにはセクションの概念はありません。上記の代わりに、Markdownは次のフラットドキュメントを提供します。
<h1>Section 1</h1>
<p>Section 1 content</p>
<h2>Section1-1</h2>
<p>section 1-1 content</p>
<h2>Section1-2</h2>
<p>section 1-2 content</p>
ソリューションでは、ドキュメント全体をループし、さまざまなセクションに分割して、各セクションをdivでラップする必要があります。 coupleexamples は、Python-Markdownパーサーの拡張機能として見つかります。ただし、作業している環境に関する情報があれば、正しい方向を示すのは少し難しくなります。さらに、Stackoverflowはツールの推奨サイトではありません。ただし、他の人がどのように問題を解決したか(私が指摘した例)を観察すると、同様の解決策を見つけることができます。
セクションが適切にラップされたら、個々のセクションを折りたたむ/折りたたむ小さなJavaScriptが残りの部分を処理します。しかし、それはここで何度も尋ねられ回答された別の問題です。問題のその部分の解決策については、サイドバーにリストされている「関連する」質問のいくつかを参照してください。
プレーンHTMLコンテンツを取得し、セクションの折り返しを行い、折りたたみ/折りたたみ機能をすべて1つに実装するJavaScriptライブラリが存在する可能性もあります。ただし、そのようなライブラリは少し重く、サイトの速度が低下する可能性があるため、カチオン化を進めてください。
試してください:
<details>
<summary>Your header here! (Click to expand)</summary>
Your content here...
> markup like blockquote's should even work on github!
more content here...
</details>
この種のものをここで試すことができます:
<details>
<summary>Your header here! (Click to expand)</summary>
Your content here...</br>
(markup only where supported)</br>
more content here...</br>
</details>
これはChromeで動作しますが、他のブラウザではまだ動作しない場合があります。 githubの関連記事 がいくつかあります。
Githubリポジトリがあなたが望むことをする存在します: szhielelp/md-post-header-collapse 。
マークダウンポストでヘッダーを折りたたみ可能にするjqueryツール
https://szhshp.org/tech/2016/08/23/jekyllmdpostcollapse.html これはドキュメントであり、プラグインの機能を確認できます。
基本的な考え方は、ヘッダーをクリックするたびにすべてのヘッダーの子要素の表示/非表示の状態を逆にすることです。
let collapse = function (headerElem) {
let isShow = headerElem.hasClass('headerCollapsed') ? true : false;
if (isShow) {
// collapsed
headerElem.removeClass('headerCollapsed');
} else {
headerElem.addClass('headerCollapsed');
}
/* collapse all header's children */
headerCollapse(headerElem, headerElem.next(), isShow);
}
let headerCollapse = function (headerElem, currentElem, isShow) {
/* I remove the end condition */
if (isShow) {
currentElem.show(400);
/* reset status */
currentElem.removeClass('headerCollapsed')
} else {
currentElem.hide(400);
}
headerCollapse(headerElem, currentElem.next(), isShow)
}
}