ฉันกำลังเขียนเอกสาร Markdown ขนาดใหญ่และต้องการวางสารบัญแปลก ๆ ในตอนต้นที่จะให้ลิงก์ไปยังสถานที่ต่าง ๆ ในเอกสาร ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันพยายามใช้
[a link](# MyTitle)
ที่MyTitle
ชื่ออยู่ในเอกสารและสิ่งนี้ไม่ทำงาน
ฉันกำลังเขียนเอกสาร Markdown ขนาดใหญ่และต้องการวางสารบัญแปลก ๆ ในตอนต้นที่จะให้ลิงก์ไปยังสถานที่ต่าง ๆ ในเอกสาร ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันพยายามใช้
[a link](# MyTitle)
ที่MyTitle
ชื่ออยู่ในเอกสารและสิ่งนี้ไม่ทำงาน
คำตอบ:
ในpandocหากคุณใช้ตัวเลือก--toc
ในการสร้าง html สารบัญจะถูกสร้างขึ้นพร้อมลิงก์ไปยังส่วนต่างๆและกลับไปที่สารบัญจากส่วนหัวของส่วน มันคล้ายกับรูปแบบอื่น ๆ ของการเขียนแบบ pandoc เช่น LaTeX, rtf, rst เป็นต้นดังนั้นด้วยคำสั่ง
pandoc --toc happiness.txt -o happiness.html
markdown นี้:
% True Happiness
Introduction
------------
Many have posed the question of true happiness. In this blog post we propose to
solve it.
First Attempts
--------------
The earliest attempts at attaining true happiness of course aimed at pleasure.
Soon, though, the downside of pleasure was revealed.
จะให้สิ่งนี้เป็นเนื้อหาของ html:
<h1 class="title">
True Happiness
</h1>
<div id="TOC">
<ul>
<li>
<a href="#introduction">Introduction</a>
</li>
<li>
<a href="#first-attempts">First Attempts</a>
</li>
</ul>
</div>
<div id="introduction">
<h2>
<a href="#TOC">Introduction</a>
</h2>
<p>
Many have posed the question of true happiness. In this blog post we propose to solve it.
</p>
</div>
<div id="first-attempts">
<h2>
<a href="#TOC">First Attempts</a>
</h2>
<p>
The earliest attempts at attaining true happiness of course aimed at pleasure. Soon, though, the downside of pleasure was revealed.
</p>
</div>
git clone
-ed ในไดเรกทอรี tmbundle ต่ำสุดหรือนอกสุด~/Library/Application\ Support/TextMate/Bundles
เพื่อลดความซับซ้อนของการรวม
-1
การซ้ำซ้อนครั้งแรกของรหัส-2
ไปยังที่สอง ฯลฯ
Github จะแยกวิเคราะห์แท็ก Anchor ออกจากส่วนหัวของคุณโดยอัตโนมัติ ดังนั้นคุณสามารถทำสิ่งต่อไปนี้:
[Custom foo description](#foo)
# Foo
ในกรณีข้างต้นFoo
ส่วนหัวได้สร้างแท็กจุดยึดด้วยชื่อfoo
หมายเหตุ : เพียงหนึ่ง#
สำหรับทุกขนาดส่วนหัวไม่มีช่องว่างระหว่าง#
และชื่อจุดยึดชื่อแท็กจุดยึดต้องเป็นตัวพิมพ์เล็กและคั่นด้วยเครื่องหมายขีดคั่นหากมีหลายเส้น
[click on this link](#my-multi-word-header)
### My Multi Word Header
ทำงานนอกกรอบด้วยpandoc
เช่นกัน
[just](#like-this-one)
แทนที่ช่องว่างด้วยยัติภังค์ในสมอ
## Foo
ลอง [นี่คือลิงค์ของฉันไปที่ Foo] (# foo) ... นั่นคือ: แฮชแบบเดี่ยวไม่มีช่องว่างระหว่างแฮชและตัวพิมพ์เล็ก -kebab-case-name- ของส่วนหัว
การทดลองฉันพบวิธีแก้ปัญหาที่ใช้<div…/>
แต่วิธีแก้ปัญหาที่ชัดเจนคือการวางจุดยึดของคุณเองในหน้าเว็บทุกที่ที่คุณต้องการดังนี้
<a name="abcde">
ก่อนและ
</a>
หลังจากบรรทัดที่คุณต้องการ 'เชื่อมโยง' ถึง จากนั้นลิงก์มาร์กอัปเช่น:
[link text](#abcde)
ที่ใดก็ได้ในเอกสารพาคุณไปที่นั่น
<div…/>
แก้ปัญหาแทรก "จำลอง" ส่วนเพียงเพื่อเพิ่มid
คุณสมบัติและนี่คือที่อาจทำลายโครงสร้างหน้า แต่<a name="abcde"/>
การแก้ปัญหาควรจะเป็นอันตรายมากทีเดียว
(PS: การวางสมอในบรรทัดที่คุณต้องการเชื่อมโยงอาจเป็นไปได้
## <a name="head1">Heading One</a>
แต่สิ่งนี้ขึ้นอยู่กับว่า Markdown ปฏิบัติต่อสิ่งนี้อย่างไร ฉันสังเกตเห็นตัวอย่างเช่นตัวจัดรูปแบบคำตอบของ Stack Overflow มีความสุขกับสิ่งนี้!)
## headers
เช่น
<div/>
หลายบรรทัดด้านล่างจะได้รับผลกระทบ แต่ฉันต้องตัดข้อความที่ฉันกำลังเชื่อมโยงในส่วนdiv
คำสั่งแท็กแบบเต็มและฉันต้องระบุพฤติกรรมใหม่ตั้งแต่ต้นโดยใช้ HTML จริง หุยฮา
<a name="head1"/>
<a id="head1"/>
นี่อาจเป็นเธรดที่ล้าสมัย แต่เพื่อสร้างลิงก์เอกสารภายในเป็น markdown ใน Github ให้ใช้ ...
(หมายเหตุ: #title ตัวพิมพ์เล็ก)
# Contents
- [Specification](#specification)
- [Dependencies Title](#dependencies-title)
## Specification
Example text blah. Example text blah. Example text blah. Example text blah.
Example text blah. Example text blah. Example text blah. Example text blah.
Example text blah. Example text blah. Example text blah. Example text blah.
Example text blah. Example text blah.
## Dependencies Title
Example text blah. Example text blah. Example text blah. Example text blah.
Example text blah. Example text blah. Example text blah. Example text blah.
Example text blah. Example text blah. Example text blah. Example text blah.
Example text blah. Example text blah.
ทำคำถามที่ดีดังนั้นฉันจึงได้แก้ไขคำตอบของฉัน;
การเชื่อมโยงภายในสามารถทำขนาดใด ๆ โดยใช้ชื่อ - #
, ##
, ###
, ####
ฉันสร้างตัวอย่างรวดเร็วด้านล่าง ...
https://github.com/aogilvie/markdownLinkTest
(#dependencies-title)
บอก markdown Github ว่านี่คือลิงก์ภายใน ข้อความที่ตามมาอาจมีขนาดชื่อเรื่องใดก็ได้ นี่คือตัวอย่างการทดสอบที่ฉันทำ ... https://github.com/aogilvie/markdownLinkTest
ใช่ markdown ทำเช่นนี้ แต่คุณต้องระบุชื่อสมอ <a name='xyx'>
แต่คุณจะต้องระบุชื่อผู้ประกาศข่าว
ตัวอย่างที่สมบูรณ์
สิ่งนี้จะสร้างลิงค์
[tasks](#tasks)
ในภายหลังในเอกสารคุณสร้างสมอที่มีชื่อ (สิ่งที่เรียกว่า)
<a name="tasks">
my tasks
</a>
โปรดทราบว่าคุณสามารถล้อมรอบส่วนหัวได้เช่นกัน
<a name="tasks">
### Agile tasks (created by developer)
</a>
คู่มือการ pandoc อธิบายวิธีเชื่อมโยงไปยังส่วนหัวของคุณโดยใช้ตัวระบุ ฉันไม่ได้ตรวจสอบการสนับสนุนนี้โดย parsers อื่น ๆ แต่มีรายงานว่ามันไม่ทำงานบน GitHubGitHub
ตัวระบุสามารถระบุได้ด้วยตนเอง:
## my heading text {#mht}
Some normal text here,
including a [link to the header](#mht).
หรือคุณสามารถใช้ตัวระบุที่สร้างขึ้นอัตโนมัติ (ในกรณีนี้#my-heading-text
) ทั้งสองอธิบายในรายละเอียดในคู่มือ pandoc
หมายเหตุ : นี่เท่านั้นทำงานเมื่อมีการแปลงHTML , น้ำยาง , บริบท , สิ่งทอหรือAsciiDoc
บางสิ่งเพิ่มเติมที่ต้องจำไว้ถ้าคุณเคยจินตนาการด้วยสัญลักษณ์ในส่วนหัวที่คุณต้องการนำทางไป ...
# What this is about
------
#### Table of Contents
- [About](#what-this-is-about)
- [⚡ Sunopsis](#9889-tldr)
- [:gear: Grinders](#it-grinds-my-gears)
- [Attribution]
------
## ⚡ TLDR
Words for those short on time or attention.
___
## It Grinds my :gear:s
Here _`:gear:`_ is not something like ⚙ or ⛭
___
## ⛤ Attribution
Probably to much time at a keyboard
[Attribution]: #9956-attribution
... สิ่งที่ชอบ#
, ;
, &
และ:
ภายในจะมุ่งหน้าไปสายมักจะถูกละเลย / ลายแทนการหลบหนีและหนึ่งยังสามารถใช้การอ้างอิงการเชื่อมโยงรูปแบบที่จะทำให้การใช้งานได้อย่างรวดเร็วง่ายขึ้น
หมายเหตุ
GitHub รองรับ
:word:
ไวยากรณ์ในการคอมมิท, ไฟล์ readme ฯลฯ ดูส่วนสำคัญ (จาก rxaviers) ถ้าใช้ 'e เป็นที่น่าสนใจที่นั่นและสำหรับทุก ๆ ทศนิยมหรือฐานสิบหกสามารถใช้สำหรับเบราว์เซอร์ที่ทันสมัย cheat-sheet จากw3schoolsนั้นมีประโยชน์อย่างมากโดยเฉพาะอย่างยิ่งถ้าใช้ CSS
::before
หรือ::after
องค์ประกอบหลอกที่มีสัญลักษณ์เป็นสไตล์ของคุณ
ในกรณีที่มีคนสงสัยว่าภาพและลิงก์อื่น ๆ ภายในส่วนหัวถูกแยกวิเคราะห์เป็นid
...
- [Imaged](#alt-textbadge__examplehttpsexamplecom-to-somewhere)
## [![Alt Text][badge__example]](https://example.com) To Somewhere
[badge__example]:
https://img.shields.io/badge/Left-Right-success.svg?labelColor=brown&logo=stackexchange
"Eeak a mouse!"
การแสดงผล MarkDown นั้นแตกต่างกันไปในแต่ละสถานที่ดังนั้น ...
## methodName([options]) => <code>Promise</code>
... บน GitHub จะมีองค์ประกอบid
เช่น ...
id="methodnameoptions--promise"
... ซึ่งการสุขาภิบาลวานิลลาจะส่งผลให้id
...
id="methodnameoptions-codepromisecode"
... หมายความว่าการเขียนหรือการรวบรวมไฟล์ MarkDown จากเทมเพลตอาจต้องกำหนดเป้าหมายหนึ่งวิธีในการเป็นslugifeingหรือเพิ่มการกำหนดค่าและตรรกะของสคริปต์สำหรับวิธีที่ชาญฉลาดต่างๆที่ต้องการล้างข้อความของหัวเรื่อง
คำถามนี้ดูเหมือนจะมีคำตอบที่แตกต่างกันไปตามการใช้ markdown
ในความเป็นจริงเอกสาร Markdown อย่างเป็นทางการเงียบในหัวข้อนี้
ในกรณีเช่นนี้และหากคุณต้องการโซลูชันแบบพกพาคุณสามารถใช้ HTML ได้
ก่อนส่วนหัวใด ๆ หรือในบรรทัดส่วนหัวเดียวกันให้กำหนด ID โดยใช้แท็ก HTML บางส่วน
ตัวอย่างเช่น:<a id="Chapter1"></a>
คุณจะเห็นสิ่งนี้ในรหัสของคุณ แต่ไม่ใช่ในเอกสารที่แสดงผล
ดูตัวอย่างเต็มรูปแบบ (ออนไลน์และสามารถแก้ไขได้) ที่นี่
## Content
* [Chapter 1](#Chapter1)
* [Chapter 2](#Chapter2)
<div id="Chapter1"></div>
## Chapter 1
Some text here.
Some text here.
Some text here.
## Chapter 2 <span id="Chapter2"><span>
Some text here.
Some text here.
Some text here.
ในการทดสอบตัวอย่างนี้คุณต้องเพิ่มช่องว่างพิเศษระหว่างรายการเนื้อหาและบทแรกหรือลดความสูงของหน้าต่าง
นอกจากนี้ห้ามใช้ช่องว่างในชื่อของรหัส
## Chapter 1
ต้องการบรรทัดเปิดด้านบน (2) ลิงก์ใช้งานไม่ได้ ...
<span id="Chapter1"><span>
ไม่มีคำสั่งดังกล่าวในข้อมูลจำเพาะของ Markdown ขอโทษ
Gitlab ใช้GitLab Flavored Markdown (GFM)
ที่นี่ "ส่วนหัวที่แสดงโดย Markdown ทั้งหมดจะได้รับ ID โดยอัตโนมัติ"
หนึ่งสามารถใช้เมาส์เพื่อ:
คัดลอกและบันทึกลิงก์โดยใช้การคลิกเมาส์ขวา
ตัวอย่างเช่นในไฟล์ README.md ฉันมีส่วนหัว:
## series expansion formula of the Boettcher function
ซึ่งให้ลิงค์:
คำนำหน้าสามารถลบออกได้ดังนั้นลิงค์ที่นี่เป็นเพียง
file#header
ซึ่งที่นี่หมายถึง:
README.md#series-expansion-formula-of-the-boettcher-function
ตอนนี้มันสามารถใช้เป็น:
[series expansion formula of the Boettcher function](README.md#series-expansion-formula-of-the-boettcher-function)
ท่านสามารถทำได้ด้วยตนเอง: แทนที่ช่องว่างด้วยเครื่องหมายขีดกลาง
ตัวอย่างสดอยู่ที่นี่
ใช้ kramdown ดูเหมือนว่าวิธีนี้จะทำงานได้ดี:
[I want this to link to foo](#foo)
....
....
{: id="foo"}
### Foo are you?
ฉันเห็นมันถูกกล่าวถึงว่า
[foo][#foo]
....
#Foo
ทำงานได้อย่างมีประสิทธิภาพ แต่อดีตอาจเป็นทางเลือกที่ดีสำหรับองค์ประกอบนอกเหนือจากส่วนหัวหรือส่วนหัวอื่นที่มีหลายคำ
เนื่องจาก MultiMarkdown ถูกกล่าวถึงเป็นตัวเลือกในความคิดเห็น
ในMultiMarkdownไวยากรณ์สำหรับลิงค์ภายในนั้นง่าย
สำหรับหัวเรื่องใด ๆ ในเอกสารเพียงแค่ให้ชื่อส่วนหัวในรูปแบบนี้[heading][]
เพื่อสร้างลิงค์ภายใน
อ่านเพิ่มเติมได้ที่นี่: MultiMarkdown-5 ข้ามอ้างอิง
ข้ามอ้างอิง
คุณลักษณะที่ขอบ่อยครั้งคือความสามารถในการให้ Markdown จัดการลิงก์ภายในเอกสารโดยอัตโนมัติเช่นเดียวกับที่จัดการกับลิงก์ภายนอก เพื่อจุดประสงค์นี้ฉันเพิ่มความสามารถในการตีความ [ข้อความบางข้อความ] [] เป็น cross-link ถ้ามีส่วนหัวชื่อ“ ข้อความบางข้อความ” อยู่
ตัวอย่างเช่น [Metadata] [] จะนำคุณไปยัง # Metadata (หรือ ## Metadata, ### Metadata, #### Metadata, ##### Metadata, ###### Metadata)
หรือคุณสามารถใส่ป้ายกำกับที่คุณเลือกเพื่อช่วยแก้ปัญหากรณีที่ส่วนหัวหลายรายการมีชื่อเรื่องเดียวกัน:
ภาพรวม ### [MultiMarkdownOverview] ##
สิ่งนี้อนุญาตให้คุณใช้ [MultiMarkdownOverview] เพื่ออ้างถึงส่วนนี้โดยเฉพาะและไม่ใช่ส่วนอื่นที่ชื่อภาพรวม ใช้งานได้กับส่วนหัว atx- หรือสไตล์
หากคุณได้กำหนดสมอแล้วโดยใช้ id เดียวกับที่ใช้โดยส่วนหัวแล้วสมอที่กำหนดไว้จะมีความสำคัญกว่า
นอกเหนือจากส่วนหัวภายในเอกสารคุณสามารถจัดทำป้ายกำกับสำหรับรูปภาพและตารางซึ่งสามารถใช้สำหรับการอ้างอิงโยงได้เช่นกัน
หมุนบางส่วนใน<a name="">
เคล็ดลับ:
<a id="a-link"></a> Title
------
#### <a id="a-link"></a> Title (when you wanna control the h{N} with #'s)
นอกจากคำตอบข้างต้นแล้ว
เมื่อตั้งค่าตัวเลือกnumber_sections: true
ในส่วนหัว YAML:
number_sections: TRUE
RMarkdown จะให้หมายเลขของคุณโดยอัตโนมัติ
หากต้องการอ้างอิงส่วนที่จัดทำโดยอัตโนมัติให้ใส่สิ่งต่อไปนี้ในไฟล์ R Markdown ของคุณ:
[My Section]
My Section
ชื่อหมวดอยู่ที่ไหน
ดูเหมือนว่าจะใช้งานได้โดยไม่คำนึงถึงระดับส่วน:
# My section
## My section
### My section