Liên kết ngoài chế độ Org không hoạt động khi xuất sang HTML


8

Tôi có 2 .orgtệp:

// a.org contains the anchor
<<my_anchor>>

// b.org contains the link to my_anchor
[[file:a.org::my_anchor][My Link]]

Khi tôi bấm vào liên kết trong org-mode, nó liên kết một cách chính xác đến vị trí của my_anchortrong a.org. Nhưng khi tôi xuất 2 tệp này sang HTML, điều tôi mong đợi là:

// b.html
<a href="a.html#my_anchor">My Link</a>

Những gì tôi nhận được là:

// b.html
<a href="a.html">My Link</a>

Tôi tự hỏi làm thế nào để viết chính xác một liên kết bên ngoài để nó hoạt động cả ở chế độ org và trong HTML đã xuất.


Những gì tôi nhận được là <a id="orgtarget1"></a>trong a.html<a href="a.html#MissingReference">My Link</a>trong b.html, tốt hơn một chút, nhưng không hoạt động. Phiên bản org này 8.3.3.
Andrew Swann

@AndrewSwann Cảm ơn thông tin, của tôi là 8.2.5. Điều này có vẻ đầy hứa hẹn, có thể nó đòi hỏi một cách đặc biệt để viết liên kết trong chế độ org, tôi tự hỏi làm thế nào.
vicch

Nó trông giống như một lỗi với tôi - bạn đã thử báo cáo chưa?
Andrew Swann

@AndrewSwann Không, tôi chưa biết cách báo cáo lỗi. Trên thực tế, tôi không cảm thấy muốn đầu tư nhiều thời gian hơn vào lúc này. Dường như không phải là một vấn đề quan trọng.
vicch

@AndrewSwann Đây là một lỗi tài liệu. Bạn tìm thêm chi tiết về điều đó ở cuối câu trả lời của tôi dưới đây. Tôi đã nộp báo cáo lỗi.
Tobias

Câu trả lời:


7

Chuỗi phía sau ::thực sự là một tìm kiếm . Trong ngữ cảnh này, người ta hiểu nhận xét có liên quan trong mã nguồn của hàm org-html-linktrong tệp thư viện ox-html.el(org 8.2.5). Nó nói rằng:

  ;; Add search option, if any.  A search option can be
  ;; relative to a custom-id or a headline title.  Any other
  ;; option is ignored.

Vì vậy, bạn có thể thay thế my_anchorbằng cách #my_anchortạo id tùy chỉnh hoặc sử dụng tiêu đề tiêu đề bắt đầu bằng ký tự *. Trong trường hợp thứ hai, không bao gồm khoảng trắng sau *-character!

Tiêu đề phần liên kết trong các tệp khác chỉ hoạt động khi bạn xuất bản các dự án chế độ tổ chức . Các dự án chế độ Org được định nghĩa là thành viên của biến org-publish-project-alist. Xem tài liệu về biến này và Phần 13 Xuất bản hướng dẫn sử dụng chế độ org để biết chi tiết.

Ví dụ: tệp a.org:

* This is file a.org
  Some important notes.

* Second Section

* Section with a custom-id

  Some text before the custom-id

  <<#my-anchor>> Here we have the custom-id

  Some text behind the custom-id.

Văn bản trong tệp b.org:

* This is file b.org
  Some text.

* b.org contains the link to my_anchor
  [[file:a.org::#my_anchor][My Link to the custom-id]]

  [[file:a.org::*Second Section][My Link to the headline of the second section]]

Ghi chú: Lý do mà liên kết đến các tiêu đề trong các file khác chỉ làm việc với các xuất bản là họ được lấy từ org-publish-cachetrong org-publish-resolve-external-fuzzy-linkđó được sử dụng trong org-html-link.

Liên kết tiêu đề phần thực sự là các liên kết được đánh số, chẳng hạn như sec-1, sec-2và các tiêu đề của phần được dịch sang các số 1,2, ... thông qua danh sách liên kết trong biến org-publish-cache.


Tôi coi đây là một lỗi tài liệu. Xuất html của các liên kết của các tiêu đề phần trong các tệp khác không được đề cập trong Phần 13.1.6 Liên kết giữa các tệp được xuất bản của hướng dẫn chế độ org. Tôi cũng không thể tìm thấy bất kỳ nhận xét nào về việc xuất html của các liên kết đến id tùy chỉnh trên các tệp trong hướng dẫn.

Tôi vừa mới phát hiện ra những điều này thông qua việc đọc mã nguồn.


Đây là những gì tôi nhận được như là một câu trả lời cho báo cáo lỗi của mình:

Thank you for the report.

Unfortunately, this feature is very experimental, and actually quite
buggy. It's not ready for prime time, and therefore not documented.
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.