Trong Markdown, cách tốt nhất để liên kết đến một đoạn của trang, tức là #some_id là gì?


127

Tôi đang cố gắng tìm ra cách tham chiếu một khu vực khác của trang bằng Markdown. Tôi có thể làm cho nó hoạt động nếu tôi thêm một

<div id="mylink" /> 

và cho các liên kết làm:

[My link](#mylink)

Nhưng tôi đoán là có một số cách khác để thực hiện một liên kết trong trang trong Markdown mà không liên quan đến divthẻ thẳng .

Có ý kiến ​​gì không?


Tôi đã luôn luôn thực hiện chúng theo cách bạn đã làm ở đây.
Joe Martinez

1
<div/>có thể làm đảo lộn định dạng cho phần còn lại của trang. Sử dụng <a id="ident"/>. Xem câu trả lời của tôi.
Steve Powell


Thay vào đó hãy xem xét sử dụng MultiMarkdown. Nó cung cấp [anchor][]cú pháp để làm điều này. github.com/fletcher/MultiMarkdown/wiki/ từ
jwpfox

Câu trả lời:


165

Xem câu trả lời này .

Tóm lại hãy tạo một điểm đến với

<a name="sometext"></a>

được chèn vào bất cứ nơi nào trong đánh dấu đánh dấu của bạn (ví dụ: trong một tiêu đề:

## heading<a name="headin"></a>

và liên kết với nó bằng cách sử dụng liên kết markdown:

[This is the link text](#headin)

hoặc là

[some text](#sometext)

Không sử dụng <div>- điều này sẽ làm rối bố cục cho nhiều trình kết xuất.

(Tôi đã thay đổi id=đến name=ở trên. Xem câu trả lời này để giải thích tẻ nhạt.)


7
+1, cảm ơn. Thật đáng buồn khi nó không tự động làm điều này. IMHO rất ẩm ướt.
Marc-André Lafortune

Nó xấu xí khi bạn phải đọc nó trong một trình soạn thảo văn bản, nhưng, nó không làm việc. Không chắc chắn tại sao đây không phải là câu trả lời được chấp nhận.
kayleeFrye_onDeck

Xác định các neo kiểu cũ <a name="..." />lỗi thời nhưng tuân thủ các thông số kỹ thuật HTML sau này. Nếu <div>có thể được hiển thị dưới dạng một khối phá vỡ (có thể vì lý do không được tiết lộ, CSS sẽ cho kích thước) có thể <span>(một yếu tố nội tuyến) có thể thực hiện thủ thuật không?
Javier

25

Tôi đoán điều này phụ thuộc vào những gì bạn đang sử dụng để tạo html từ đánh dấu của bạn. Tôi nhận thấy rằng jekyll (được sử dụng bởi các trang gihub.io theo mặc định) tự động thêm thuộc tính id = "" vào các tiêu đề trong html mà nó tạo ra.

Ví dụ: nếu bạn đánh dấu là

My header
---------

Html kết quả sẽ trông như thế này:

<h2 id="my-header">My header</h2>

Vì vậy, bạn có thể liên kết với nó đơn giản bằng cách [My link](#my-header)


Đây là câu trả lời tốt nhất và sạch sẽ. Markdown thực sự rất tuyệt nó thực sự giúp làm blog nhanh. ^ _ ^
Ashok MA

16

Với phiên bản PHP của Markdown , bạn cũng có thể liên kết các tiêu đề với các định danh phân đoạn trong trang bằng một cú pháp như một trong những điều sau đây, như được ghi lại ở đây

Header 1            {#header1}
========

## Header 2 ##      {#header2}

và sau đó

[Link back to header 1](#header1)
[Link back to header 2](#header2)

Thật không may, cú pháp này hiện chỉ được hỗ trợ cho các tiêu đề, nhưng ít nhất nó có thể hữu ích cho việc xây dựng mục lục.


3

Neo đích cho một liên kết trong trang HTML có thể là bất kỳ phần tử nào có idthuộc tính. Xem Liên kết trên trang web W3C. Đây là một trích dẫn từ phần có liên quan:

Các neo đích trong tài liệu HTML có thể được chỉ định bởi phần tử A (đặt tên bằng thuộc tính name) hoặc bởi bất kỳ phần tử nào khác (đặt tên bằng thuộc tính id).

Markdown coi HTML là HTML (xem HTML nội tuyến ), do đó bạn có thể tạo số nhận dạng phân đoạn của mình từ bất kỳ yếu tố nào bạn muốn. Ví dụ, nếu bạn muốn liên kết đến một đoạn văn, chỉ cần bọc đoạn văn trong thẻ đoạn văn và bao gồm một id:

<p id="mylink">Lorem ipsum dolor sit amet...</p>

Sau đó sử dụng Markdown tiêu chuẩn của bạn [My link](#mylink)để tạo liên kết đến đoạn neo. Điều này sẽ giúp giữ cho HTML của bạn sạch sẽ, vì không cần đánh dấu thêm.


Theo kinh nghiệm của tôi, sử dụng <p>thẻ trong Markdown có thể loại bỏ CSS của một đoạn thông thường. Tôi muốn sử dụng một cách thận trọng, tôi mới sử dụng Markdown nhưng nó có một số điểm kỳ quặc.
2rs2ts

@ user691859 Tôi không chắc ý của bạn là gì khi "sử dụng <p>thẻ trong Markdown có thể loại bỏ CSS của một đoạn thông thường". Markdown kết thúc các đoạn trong <p>thẻ và bỏ qua những đoạn đã có <p>thẻ. Tôi không thể thấy điều này sẽ ảnh hưởng đến CSS như thế nào ...
Mike

Hành vi là thất thường đối với tôi. Trên tumblr, sử dụng <p> có thể (không phải luôn luôn) loại bỏ tất cả các hành vi bên cạnh hành vi cụ thể mà tôi đã chỉ định. Tôi không biết tại sao. <div> LUÔN LUÔN làm điều tương tự.
2rs2ts

3

Đối với bất kỳ ai sử dụng Visual Studio Team Foundation Server (TFS) 2015, nó thực sự không thích nhúng <a>hoặc <div>các yếu tố, ít nhất là trong các tiêu đề. Nó cũng không giống như biểu tượng cảm xúc trong các tiêu đề:

### 🔧 Configuration 🔧

Lorem ipsum problem fixem.

Được dịch sang:

<h3 id="-configuration-">🔧 Configuration 🔧</h3>
<p>Lorem ipsum problem fixem.</p>

Và vì vậy, các liên kết nên sử dụng điều đó id(phá vỡ phần mở rộng xem trước này và các phần mở rộng xem trước khác trong Visual Studio) hoặc xóa biểu tượng cảm xúc:

Here's [how to setup](#-configuration-) //🔧 Configuration 🔧
Here's [how to setup](#configuration) //Configuration

Trong đó phiên bản sau hoạt động cả trực tuyến trong TFS trong bản xem trước đánh dấu của Visual Studio.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.