Cú pháp lưu trữ nhận xét trong tệp đánh dấu, ví dụ: nhận xét CVS $ Id $ ở đầu tệp là gì? Tôi không tìm thấy gì trong dự án markdown .
Cú pháp lưu trữ nhận xét trong tệp đánh dấu, ví dụ: nhận xét CVS $ Id $ ở đầu tệp là gì? Tôi không tìm thấy gì trong dự án markdown .
Câu trả lời:
Tôi tin rằng tất cả các giải pháp được đề xuất trước đây (ngoài các giải pháp yêu cầu triển khai cụ thể) dẫn đến các nhận xét được đưa vào HTML đầu ra, ngay cả khi chúng không được hiển thị.
Nếu bạn muốn một nhận xét hoàn toàn dành cho chính mình (người đọc tài liệu đã chuyển đổi sẽ không thể nhìn thấy nó, ngay cả với "nguồn xem"), bạn có thể (ab) sử dụng nhãn liên kết (để sử dụng với liên kết kiểu tham chiếu) có sẵn trong đặc tả Markdown cốt lõi:
http://daredfireball.net/projects/markdown/syntax#link
Đó là:
[comment]: <> (This is a comment, it will not be included)
[comment]: <> (in the output file unless you use it in)
[comment]: <> (a reference style link.)
Hoặc bạn có thể đi xa hơn:
[//]: <> (This is also a comment.)
Để cải thiện khả năng tương thích nền tảng (và để lưu một tổ hợp phím), bạn cũng có thể sử dụng #
(đó là mục tiêu siêu liên kết hợp pháp) thay vì <>
:
[//]: # (This may be the most platform independent comment)
Để có tính di động tối đa, điều quan trọng là chèn một dòng trống trước và sau loại nhận xét này, bởi vì một số trình phân tích cú pháp Markdown không hoạt động chính xác khi các định nghĩa cọ sát với văn bản thông thường. Nghiên cứu gần đây nhất với Babelmark cho thấy các dòng trống trước và sau đều quan trọng. Một số trình phân tích cú pháp sẽ đưa ra nhận xét nếu không có dòng trống nào trước đó và một số trình phân tích cú pháp sẽ loại trừ dòng sau nếu không có dòng trống nào sau đó.
Nói chung, cách tiếp cận này sẽ hoạt động với hầu hết các trình phân tích cú pháp Markdown, vì nó là một phần của đặc tả cốt lõi. (ngay cả khi hành vi khi nhiều liên kết được xác định hoặc khi một liên kết được xác định nhưng không bao giờ được sử dụng, không được chỉ định nghiêm ngặt).
[//]: # "Comment"
và [//]: # (Comment)
dường như hoạt động trên nhiều loại triển khai hơn, bởi vì #
là một URI tương đối hợp lệ. GitHub, ví dụ, từ chối <>
và toàn bộ dòng sẽ hiển thị. Cũng đáng lưu ý rằng các nhãn liên kết thường cần được phân tách khỏi nội dung khác bằng một dòng trống.
Tôi sử dụng các thẻ HTML tiêu chuẩn, như
<!---
your comment goes here
and here
-->
Lưu ý dấu gạch ngang ba. Ưu điểm là nó hoạt động với pandoc khi tạo đầu ra TeX hoặc HTML. Thông tin thêm có sẵn về nhóm thảo luận pandoc .
Nghiên cứu nhỏ này chứng minh và hoàn thiện câu trả lời của Magnus
Cú pháp độc lập với nền tảng nhất là
(empty line)
[comment]: # (This actually is the most platform independent comment)
Cả hai điều kiện đều quan trọng:
#
(và không <>
)Đặc tả kỹ thuật Markdown nghiêm ngặt CommonMark chỉ hoạt động như dự định với cú pháp này (chứ không phải với <>
và / hoặc một dòng trống)
Để chứng minh điều này, chúng ta sẽ sử dụng Babelmark2, được viết bởi John MacFarlane. Công cụ này kiểm tra kết xuất mã nguồn cụ thể trong 28 triển khai Markdown.
( +
- đã vượt qua bài kiểm tra, -
- không vượt qua, ?
- để lại một số rác không được hiển thị trong HTML được hiển thị).
<>
13+, 15-<>
20+, 8-<>
20+, 8-#
13+ 1? 14-#
23+ 1? 4-#
23+ 1? 4-Điều này chứng minh các tuyên bố trên.
Những triển khai này thất bại tất cả 7 bài kiểm tra. Không có cơ hội sử dụng các nhận xét loại trừ khi kết xuất với họ.
#
với tất cả trừ GFM và <>
hoạt động cho GFM chứ không phải một vài người khác. Quá tệ GFM vừa là một trường hợp góc và cũng là một hương vị rất phổ biến.
#
kể từ ngày 21 tháng 1 năm 2016. Cebe vẫn không xử lý nó.
(...)
chính nó sẽ phá vỡ nó. Ít nhất là trên Visual Studio Code 1.19.
%s/^\(.*\)$/[comment]: # (\1)/g
Nếu bạn đang sử dụng Jekyll hoặc bạch tuộc sau đây cũng sẽ hoạt động.
{% comment %}
These commments will not include inside the source.
{% endcomment %}
Các thẻ Liquid {% comment %}
được phân tích cú pháp trước và loại bỏ trước khi bộ xử lý MarkDown thậm chí được xử lý. Khách truy cập sẽ không nhìn thấy khi họ cố gắng xem nguồn từ trình duyệt của họ.
{#
bình luận đa dòng tại đây#}
Một cách khác là đặt bình luận trong các thẻ HTML cách điệu. Bằng cách này, bạn có thể chuyển đổi tầm nhìn của họ khi cần thiết. Ví dụ: định nghĩa một lớp nhận xét trong biểu định kiểu CSS của bạn.
.comment { display: none; }
Sau đó, MarkDOWN nâng cao sau đây
We do <span class="comment">NOT</span> support comments
xuất hiện như sau trong BROWSER
We do support comments
Điều này hoạt động trên GitHub:
[](Comment text goes here)
HTML kết quả trông giống như:
<a href="Comment%20text%20goes%20here"></a>
Mà về cơ bản là một liên kết trống. Rõ ràng bạn có thể đọc nó trong nguồn của văn bản được hiển thị, nhưng dù sao bạn cũng có thể làm điều đó trên GitHub.
some text [](hidden text) blah blah
.
[](Comment text goes here)
Người dùng Vim Instant-Markdown cần sử dụng
<!---
First comment line...
//
_NO_BLANK_LINES_ARE_ALLOWED_
//
_and_try_to_avoid_double_minuses_like_this_: --
//
last comment line.
-->
Đồng thời xem Critic Markup, được hỗ trợ bởi số lượng công cụ Markdown ngày càng tăng.
Comment {>> <<}
Lorem ipsum dolor sit amet.{>>This is a comment<<}
Highlight+Comment {== ==}{>> <<}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. {==Vestibulum at orci magna. Phasellus augue justo, sodales eu pulvinar ac, vulputate eget nulla.==}{>>confusing<<} Mauris massa sem, tempor sed cursus et, semper tincidunt lacus.
Làm thế nào về việc đưa các ý kiến trong một khối R không eval, không echo? I E,
```{r echo=FALSE, eval=FALSE}
All the comments!
```
Có vẻ làm việc tốt cho tôi.
cat("# Some Header")
trong khối mã "đã nhận xét" và sử dụng results = "asis"
, và bạn có thể thêm toàn bộ các phần nhận xét vào mã của mình để có thể bật / tắt bằng cách bật eval = FALSE
, vì việc đánh giá R được thực hiện trước khi biên soạn pandoc. Cảm ơn ý kiến!
Tiết lộ: Tôi đã viết plugin.
Vì câu hỏi không chỉ định triển khai đánh dấu cụ thể, tôi muốn đề cập đến Plugin Nhận xét cho python-markdown , thực hiện cùng một kiểu nhận xét pandoc đã đề cập ở trên.
<!--- ... -->
Không hoạt động trong Pandoc Markdown (Pandoc 1.12.2.1). Bình luận vẫn xuất hiện trong html. Sau đây đã làm việc:
Blank line
[^Comment]: Text that will not appear in html source
Blank line
Sau đó sử dụng phần mở rộng + chú thích. Nó thực chất là một chú thích không bao giờ được tham khảo.
[#]:
.
Sau đây hoạt động rất tốt
<empty line>
[whatever comment text]::
phương thức đó tận dụng cú pháp để tạo liên kết thông qua tham chiếu
vì tham chiếu liên kết được tạo [1]: http://example.org
sẽ không được hiển thị, do đó, bất kỳ điều nào sau đây cũng sẽ không được hiển thị
<empty line>
[whatever]::
[whatever]:whatever
[whatever]: :
[whatever]: whatever
pandoc
trực tuyến hiện tại của Gitlab và GitHub .
Đối với pandoc, một cách tốt để chặn bình luận là sử dụng siêu dữ liệu yaml, theo đề xuất của tác giả pandoc . Tôi đã nhận thấy rằng điều này sẽ cho làm nổi bật cú pháp đúng đắn hơn về những ý kiến so với rất nhiều các giải pháp đề xuất khác, ít nhất là trong môi trường của tôi ( vim
, vim-pandoc
và vim-pandoc-syntax
).
Tôi sử dụng các bình luận khối yaml kết hợp với các bình luận nội tuyến html , vì các bình luận html không thể được lồng nhau . Thật không may, không có cách nào để bình luận khối trong siêu dữ liệu yaml , vì vậy mỗi dòng phải được nhận xét riêng. May mắn thay, chỉ nên có một dòng trong một đoạn văn mềm.
Theo tôi ~/.vimrc
, tôi đã thiết lập các phím tắt tùy chỉnh cho các nhận xét chặn:
nmap <Leader>b }o<Esc>O...<Esc>{ji#<Esc>O---<Esc>2<down>
nmap <Leader>v {jddx}kdd
Tôi sử dụng ,
như <Leader>
-key của mình , vì vậy ,b
, ,v
bình luận và bỏ ghi chú một đoạn tương ứng. Nếu tôi cần bình luận nhiều đoạn văn, tôi ánh xạ j,b
tới một macro (thường Q
) và chạy <number-of-paragraphs><name-of-macro>
(ví dụ ( 3Q
). Công việc tương tự cho việc bỏ ghi chú.
kramdown Công cụ đánh dấu dựa trên Ruby là mặc định cho Jekyll và do đó GitHub Pages Wap đã hỗ trợ nhận xét tích hợp thông qua cú pháp mở rộng của nó :
{::comment}
This text is completely ignored by kramdown - a comment in the text.
{:/comment}
Do you see {::comment}this text{:/comment}?
{::comment}some other comment{:/}
Điều này có lợi ích là cho phép nhận xét nội tuyến, nhưng nhược điểm của việc không thể di chuyển sang các công cụ Markdown khác.
Bạn có thể làm điều này (khối YAML):
~~~
# This is a
# multiline
# comment
...
Tôi đã thử với đầu ra latex, xin vui lòng xác nhận cho những người khác.