마크 다운의 코멘트


1400

마크 다운 파일에 주석을 저장하는 구문은 무엇입니까 (예 : 파일 상단의 CVS $ Id $ 주석)? 마크 다운 프로젝트 에서 아무것도 찾지 못했습니다 .


10
행 사이를 읽으면 Markdown에 메타 데이터를 첨부하려는 것 같습니다. 따라서 헤더를 추가 할 수있는 전처리기를 사용하는 것이 좋습니다. 예를 들어 Jekyll 's Front Matter를 참조하십시오 . 다른 예를 들어, Basho가 어떻게 설명서에 Middleman을 사용 하는지보십시오 . (참고 : 이것은 질문에 대한 직접적인 답변이 아니므로 제가 의견으로 공유하고 있습니다.)
David J.

2
MultiMarkdown이 메타 데이터를 지원 하는 방법도 참조하십시오 .
David J.

다음은 Babelmark에 다른 파서가있는 다른 주석 유형의 벤치 마크입니다 .
Ulysse BN

답변:


1453

이전에 제안 된 모든 솔루션 (특정 구현이 필요한 솔루션 제외)은 주석이 표시되지 않더라도 출력 HTML에 주석이 포함된다고 생각합니다.

자신에게만 맞는 주석을 원할 경우 (변환 된 문서를 읽는 사람이 "소스보기"로도 볼 수 없어야 함) 링크 레이블 (참조 스타일 링크와 함께 사용)을 사용할 수 있습니다. 핵심 마크 다운 사양에서 사용 가능 :

http://daringfireball.net/projects/markdown/syntax#link

그건:

[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.)

아니면 더 나아갈 수도 있습니다.

[//]: <> (This is also a comment.)

플랫폼 호환성을 개선하고 하나의 키 입력을 저장하기 위해 다음 #대신 (합법적 인 하이퍼 링크 대상) 을 사용할 수도 있습니다 <>.

[//]: # (This may be the most platform independent comment)

이식성을 최대화하려면이 유형의 주석 전후에 빈 줄을 삽입해야합니다. 정의가 일반 텍스트에 대해 브러시 될 때 일부 마크 다운 구문 분석기가 올바르게 작동하지 않기 때문입니다. Babelmark에 대한 가장 최근의 연구에 따르면 전후의 빈 줄이 모두 중요합니다. 빈 줄이없는 경우 일부 파서는 주석을 출력하고, 빈 줄이없는 경우 일부 파서는 다음 줄을 제외합니다.

일반적으로이 접근법은 핵심 사양의 일부이므로 대부분의 Markdown 파서에서 작동합니다. (여러 링크가 정의되거나 링크가 정의되었지만 사용되지 않은 경우의 동작이 엄격하게 지정되지 않은 경우에도)


145
[//]: # "Comment"하고 [//]: # (Comment)있기 때문에, 구현의보다 다양한에서 작동하는 것 #유효한 상대 URI입니다. 예를 들어 GitHub는 거부 <>하고 전체 라인이 표시됩니다. 또한 링크 레이블을 빈 줄로 다른 내용과 구분해야하는 경우도 있습니다.
Zenexer

6
대부분의 플랫폼에 독립적이기 위해서는 주석 앞에 빈 줄이 필요합니다. 테스트 참조 : stackoverflow.com/a/32190021/2790048
Nick Volynkin

6
여러 줄 주석에 사용할 수 있습니까?
crypdick

4
@RovingRichard 네, 적어도 Pandoc에서는 주석 처리 된 블록에 빈 줄이 없으면 여러 줄 주석에 작동합니다 (단일 줄 바꿈은 괜찮습니다). 블록 주석에는 Magnus의 접근 방식을 사용하고 인라인 주석에는 chl의 HTML 접근 방식을 사용합니다 (보통 2 대시). 이렇게하면 이미 인라인 HTML 주석이 포함 된 단락을 주석 처리 할 수 ​​있습니다.
joelostblom

4
참고로 Pandoc을 사용하여 TOC를 생성하는 경우 중복 링크 참조에 대한 경고가 생성됩니다. (이것은 단지 경고 일 뿐이며 TOC는 여전히 생성 될 것입니다.)
Karl Giesing

995

나는 표준 HTML 태그를 사용한다.

<!---
your comment goes here
and here
-->

트리플 대시에 유의하십시오. 장점은 TeX 또는 HTML 출력을 생성 할 때 pandoc 과 함께 작동한다는 것 입니다. 자세한 내용은 pandoc-discuss 그룹 에서 확인할 수 있습니다 .


73
올바르게 이해하면 트리플 대시는 pandoc 이 마크 다운 파일을 구문 분석 할 때 주석을 무시 하게 합니다. 그러나 다른 마크 다운 엔진을 사용하면 주석이 생성 된 HTML에 표시되므로 "소스보기"로 표시됩니다. 그래서 당신은 당신이 그 의견에 넣은 것을 조심해야합니다;)
cberzan

5
Pandoc이 트리플 대시를 더블 대시와 다르게 처리하는 방법을 설명 할 수 있습니까? 내가 그들을 실험했을 때, 그들은 같은 방식으로 다루어지는 것처럼 보였다. 또한 Pandoc 사용자 안내서 는 "원시 HTML은 HTML, S5, Slidy, Slideous, DZSlides, EPUB, Markdown 및 Textile 출력에서 ​​변경되지 않은 채 전달되고 다른 형식에서는 표시되지 않습니다"라고 말합니다. 트리플 대시는 더블 대시보다 더 높은 권한을 가진 것으로 보이지 않습니다.
23시 41 분

1
@dkim 삼중 대시가있는 주석은 무시되고 HTML 출력에서 ​​삭제됩니다. HTML 파일에 삽입되는 이중 대시 주석의 경우에는 해당되지 않습니다. 여전히 최신 버전의 Pandoc (1.10)의 경우입니다.
chl

32
트리플 대시가 중요하면 "표준 HTML"주석이 아닙니다.
tripleee

17
Google 직원을위한 참고 사항 : 불행히도 GitHub Markdown에서는 작동하지 않으며 Magnus의 솔루션을 사용했습니다.
Daniel Buckmaster

198

이 작은 연구는 Magnus의 답변을 입증하고 개선 합니다.

가장 플랫폼 독립적 인 구문은

(empty line)
[comment]: # (This actually is the most platform independent comment)

두 가지 조건이 모두 중요합니다.

  1. 사용 #(하지 <>)
  2. 주석 앞에 빈 줄이 있습니다. 주석 다음의 빈 줄은 결과에 영향을 미치지 않습니다.

엄격한 마크 다운 사양 CommonMark 는이 구문에서 의도 한 대로만 작동합니다 ( <>빈 줄은 사용 하지 않음 ).

이를 증명하기 위해 John MacFarlane이 작성한 Babelmark2를 사용합니다. 이 도구는 28 Markdown 구현에서 특정 소스 코드의 렌더링을 확인합니다.

( +— 테스트를 통과했지만, -통과하지 못했습니다 ?— 렌더링 된 HTML에 표시되지 않은 일부 쓰레기가 남습니다.)

이것은 위의 진술을 증명합니다.

이러한 구현은 7 가지 테스트 모두에 실패합니다. 렌더링시 제외 된 의견을 사용할 수 없습니다.

  • cebe / markdown 1.1.0
  • cebe / markdown MarkdownExtra 1.1.0
  • cebe / markdown GFM 1.1.0
  • s9e \ TextFormatter (패트 다운 / PHP)

3
훌륭하고 철저한 테스트 도구! 당신이 바로 그 것 같습니다 # 제외한 모든 GFM에 대한 작품<> 작품 GFM에 대한 아니라 몇 사람을. 너무 나쁜 GFM은 코너 케이스이며 매우 인기있는 맛입니다.
호브

1
s9e \ TextFormatter는 # 2016 년 1 월 21 일부터 작동하는 것처럼 보입니다 . Cebe는 여전히이를 처리하지 않습니다.
트로이 다니엘스

1
이상하게도 주석 (...)자체 가 포함되어 있으면 주석이 끊어집니다. 적어도 Visual Studio Code 1.19에서는.
Royi

1
따라서 모든 파일을 한 번에 주석으로 처리하려는 vim 사용자의 경우 :%s/^\(.*\)$/[comment]: # (\1)/g
Simon C.

Bablemark2가 존재한다는 마크 다운에 대해 무엇을 말합니까?
TC Proctor

54

Jekyll 또는 octopress를 사용하는 경우 다음도 작동합니다.

{% comment %} 
    These commments will not include inside the source.
{% endcomment %}

Liquid 태그 {% comment %}는 먼저 구문 분석되어 MarkDown 프로세서가 도달하기 전에 제거됩니다. 방문자는 브라우저에서 소스를 보려고 할 때 볼 수 없습니다.


2
Jinja2 = {#여기에 여러 줄 주석#}
John Mee

29

대안은 양식화 된 HTML 태그 내에 주석을 넣는 것입니다. 이렇게하면 필요에 따라 가시성을 전환 할 수 있습니다. 예를 들어 CSS 스타일 시트에서 주석 클래스를 정의하십시오.

.comment { display: none; }

그런 다음 향상된 MARKDOWN

We do <span class="comment">NOT</span> support comments

브라우저에 다음과 같이 나타납니다

We do support comments


5
복사 / 붙여 넣기로 인해 "주석"텍스트와 일반 텍스트가 복사 될 수 있으므로 사용시주의하십시오. 텍스트 블록을 복사하는 사람에게는 예기치 않은 결과가 쉽게 발생할 수 있습니다.
Eilon

4
@Eilon 또한 이것에 대한 접근성은 끔찍할 것입니다
Ethan

접근성 지원 엔진은 텍스트를 표시하지 않습니다.
aredridel

28

이것은 GitHub에서 작동합니다.

[](Comment text goes here)

결과 HTML은 다음과 같습니다.

<a href="Comment%20text%20goes%20here"></a>

기본적으로 빈 링크입니다. 분명히 렌더링 된 텍스트의 소스에서 읽을 수는 있지만 어쨌든 GitHub에서 읽을 수 있습니다.


6
그것은 확실하지만 실제로는 지금까지 GitHub에서 항상 작동하는 유일한 대답입니다 (예 : 목록).
jomo

나는 같은 해결책에 도착했다. 인라인 주석을 위해 작업 할 수있는 유일한 방법입니다 (예 :) some text [](hidden text) blah blah.
c24w

3
이것은 2019-03-08 현재 github에서 더 이상 작동하지 않으며, 그대로 렌더링됩니다[](Comment text goes here)
dogmatic69

19

Vim Instant-Markdown 사용자는 다음을 사용해야합니다.

<!---
First comment line...
//
_NO_BLANK_LINES_ARE_ALLOWED_
//
_and_try_to_avoid_double_minuses_like_this_: --
//
last comment line.
-->

18

또한 많은 수의 마크 다운 도구가 지원하는 Critic Markup을 참조하십시오.

http://criticmarkup.com/

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.

5
그런 "의사"표준의 문제점 중 하나는 이식성이 없다는 것입니다. 일부 웹 사이트에서는 완벽하게 작동하지만 다른 웹 사이트에서는 완벽하지 않습니다.
Willem Van Onsem

14

주석이 아닌 비 에코 R 블록에 주석을 넣는 것은 어떻습니까? 즉,

```{r echo=FALSE, eval=FALSE}
All the comments!
```

나를 위해 잘 작동하는 것 같습니다.


2
또한 cat("# Some Header")"commented-out"코드 블록과 같은 작업을 수행 하고 use을 사용 하고 R 평가가 이전에 수행되기 results = "asis"때문에을 토글하여 켜거나 끌 수있는 전체 주석 처리 된 섹션을 코드에 추가 할 수 있습니다 eval = FALSE. 판독 컴파일. 아이디어 주셔서 감사합니다!
MichaelChirico

11

공개 : 나는 플러그인을 썼다.

질문에 특정 마크 다운 구현을 지정하지 않기 때문에 위에서 언급 한 것과 동일한 판 독 주석 스타일을 구현하는 python-markdownComments Plugin에 대해 언급하고 싶습니다 .


11
<!--- ... --> 

Pandoc Markdown (Pandoc 1.12.2.1)에서는 작동하지 않습니다. 주석은 여전히 ​​html로 나타납니다. 다음은 효과가있었습니다.

Blank line
[^Comment]:  Text that will not appear in html source
Blank line

그런 다음 + 각주 확장명을 사용하십시오. 본질적으로 결코 참조되지 않는 각주입니다.


나는 출력을 전혀 생성하지 않기 때문에 이것을 가장 좋아합니다. Bitbucket의 경우이 접두사로 충분 [#]: 합니다.
11

7

다음은 매우 잘 작동합니다

<empty line>
[whatever comment text]::

방법을 활용하는 것이 기준 링크를 통해 만들 신택스
로 작성된 링크 기준 보낸 [1]: http://example.org렌더링되지 않을 것, 마찬가지로 모든 다음의 표현이 아니라되지

<empty line>
[whatever]::
[whatever]:whatever
[whatever]: :
[whatever]: whatever

이 (첫 번째 변형 테스트)는 pandoc현재 온라인 GitlabGitHub 인스턴스에서 작동합니다 .
저자 Doak

5

pandoc의 경우, 주석을 차단하는 좋은 방법 은 pandoc author가 제안한대로 yaml 메타 블록을 사용하는 것입니다 . 나는이 내 환경 적어도 다른 제안 된 솔루션의 많은에 비해 코멘트 더 적절한 구문 강조를주는 것으로 나타났습니다 ( vim, vim-pandoc, 및 vim-pandoc-syntax).

html-comments를 중첩 할 수 없으므로 yaml 블록 주석을 html-inline comment와 함께 사용합니다 . 불행히도, yaml metablock 내에는 블록 주석 처리 방법이 없으므로 모든 행은 개별적으로 주석 처리해야합니다. 다행히도, 줄 바꿈 된 단락에는 한 줄만 있어야합니다.

내에서는 ~/.vimrc블록 주석에 대한 사용자 정의 바로 가기를 설정했습니다.

nmap <Leader>b }o<Esc>O...<Esc>{ji#<Esc>O---<Esc>2<down>
nmap <Leader>v {jddx}kdd

내가 사용하는 ,내 것처럼 <Leader>그렇게, - 키 ,b,v주석 및 주석 단락, 각각. 여러 단락에 주석을 달아야 할 j,b경우 매크로 (일반적으로 Q)에 매핑 하고 실행 <number-of-paragraphs><name-of-macro>(예 : ( 3Q))합니다.


5

kramdown 지킬에 대한 기본 따라서 GitHub의 페이지로가는 링크가 -THE 루비 기반 인하 엔진 을 내장하고 그것의 확장 구문을 통해 주석 지원 :

{::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{:/}

이는 인라인 주석을 허용하지만 다른 Markdown 엔진으로 이식 할 수 없다는 단점이 있습니다.


4

당신은 시도 할 수 있습니다

[](
Your comments go here however you cannot leave
// a blank line so fill blank lines with
//
Something
)

4

이를 수행 할 수 있습니다 (YAML 블록).

~~~
# This is a
# multiline
# comment
...

라텍스 출력으로 만 시도했지만 다른 사람을 확인하십시오.


HTML 출력에서도 작동합니다.
petzi 2016 년

Daniel의 html 출력 확인이 올바른지 확실하지 않습니다. html 출력 파일을 사용하여 "pandoc --bibliography paper.bib -o paper.html paper.md"를 실행하면 HTML에 주석 줄이 표시됩니다.
markgalassi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.