org-mode: tô sáng các dòng trong khối src khi xuất


7

Github có một cách thuận tiện để hiển thị một số dòng như được tô sáng trong mã, như vậy .

Tôi muốn biết liệu có cách nào để thiết lập một cái gì đó tương tự với các khối mã chế độ org khi xuất (trong trường hợp sử dụng của tôi, sang HTML) hay không, vì vậy tôi có thể hiển thị một khối mã dài hơn cho ngữ cảnh để hướng người đọc nhanh chóng hướng tới các dòng đã được thêm hoặc sửa đổi.

Tôi không tìm thấy bất cứ điều gì rõ ràng trong tài liệu. Tôi không biết mình sẽ bắt đầu nghiên cứu ở đâu để thực hiện điều này.

Điều này có thể được thực hiện? Nó đã được thực hiện? Nếu không, tôi có thể tự thực hiện điều này không? Tôi sẽ bắt đầu từ đâu?

Tôi đã thấy rằng xuất chế độ org sang HTML và cung cấp một .code-highlightedlớp, nhưng dường như chỉ dành cho các (ref:xx)công cụ: di chuột qua một tham chiếu, mã tương ứng được tô sáng.


Không có cách nào mà không viết một số mã tôi nghĩ. Bạn có thể cần đánh dấu khối mã của mình bằng một cái gì đó trông giống như một nhận xét, sau đó sử dụng bộ lọc org để sửa đổi đầu ra với đánh dấu html cần thiết để làm nổi bật.
John Kitchin

Câu trả lời:


2

Dựa trên cú pháp nhãn coderef, tôi sử dụng (hl:line)nhãn giả được thay thế bằng một bộ lọc org-export-filter. Các dòng tham chiếu được gói trong một divthuộc tính style:

(defun org-html-hl-line (src backend info)
  (when (org-export-derived-backend-p backend 'html)
    (replace-regexp-in-string
     "\\([^\n]+\\)(hl:line)\n"
     "<div style=\"background-color: rgb(248, 238, 199);\">\\1\n</div>" src)))

(add-to-list 'org-export-filter-src-block-functions
             'org-html-hl-line)

Lưu ý rằng các nhãn phải ở cuối dòng như trong ví dụ sau:

(functionp &rest form)           (hl:line)
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.