Yorumlar Markdown


1401

Bir markdown dosyasında yorum saklama sözdizimi nedir, örneğin dosyanın üstündeki CVS $ Id $ açıklaması? Markdown projesinde hiçbir şey bulamadım .


10
Satır aralarını okurken Markdown'unuza meta veriler eklemek istediğiniz anlaşılıyor. Bu nedenle, başlık eklemenizi sağlayan bir önişlemci kullanmanızı öneririm. Bir örnek için bkz. Jekyll'in Ön Maddesi . Başka bir örnek için Basho'nun belgelerinde Middleman'ı nasıl kullandığını görün . (Not: Bu soruya doğrudan bir cevap değildir, bu yüzden onu yorum olarak paylaşıyorum.)
David J.


İşte Babelmark'daki farklı ayrıştırıcılarla farklı yorum türlerinin bir karşılaştırması .
Ulysse BN

Yanıtlar:


1455

Önceden önerilen tüm çözümlerin (belirli uygulamalar gerektiren çözümlerin dışında), görüntülenmedikleri halde yorumların çıktı HTML'sinde yer almasına neden olduğuna inanıyorum.

Kesinlikle kendiniz için olan bir yorum istiyorsanız (dönüştürülmüş belgenin okuyucuları "görünümü kaynağı" ile bile göremez), (ab) bağlantı etiketlerini çekirdek Markdown spesifikasyonunda mevcuttur:

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

Yani:

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

Veya daha ileri gidebilirsiniz:

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

Platform uyumluluğunu geliştirmek (ve bir tuş vuruşunu kaydetmek) için aşağıdakileri kullanmak da mümkündür #(meşru bir köprü hedefi) <>:

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

Maksimum taşınabilirlik için, bu tür yorumlardan önce ve sonra boş bir satır eklemek önemlidir, çünkü bazı Markdown ayrıştırıcılar tanımlamalar normal metne göre fırçalandığında düzgün çalışmaz. Babelmark ile yapılan en son araştırma, önceki ve sonraki boş satırların her ikisinin de önemli olduğunu göstermektedir. Bazı ayrıştırıcılar daha önce boş satır yoksa yorumu gönderir ve bazı ayrıştırıcılar daha sonra boş satır yoksa aşağıdaki satırı hariç tutar.

Genel olarak, bu yaklaşım temel şartnamenin bir parçası olduğu için çoğu Markdown ayrıştırıcısı ile çalışmalıdır. (birden çok bağlantı tanımlandığında veya bir bağlantı tanımlanmış ancak hiç kullanılmamışsa, davranış kesinlikle belirtilmemiş olsa bile).


145
[//]: # "Comment"ve [//]: # (Comment)daha çeşitli uygulamalar üzerinde çalışıyor gibi görünüyor, çünkü #geçerli bir göreli URI. Örneğin GitHub reddedilir <>ve tüm çizgi görünür hale gelir. Bağlantı etiketlerinin genellikle boş bir satırla diğer içerikten ayrılması gerektiğini de belirtmek gerekir.
Zenexer

6
Platformdan bağımsız olmak için yorumdan önce de boş bir satır gerekiyor.
Testlere

6
Bu çok satırlı yorumlar için kullanılabilir mi?
crypdick

4
@RovingRichard Evet, en azından Pandoc'ta, yorumlanan blokta boş satır yoksa (tek satır araları iyi) bu çok satırlı yorumlar için çalışır. Blok yorumları için Magnus yaklaşımını ve satır içi yorumlar için chl'nin HTML yaklaşımını kullanıyorum (genellikle sadece 2 tire olmasına rağmen). Bu şekilde zaten satır içi HTML yorumları içeren paragrafları engelleyebilirim.
joelostblom

4
Sadece FYI, ancak Pandoc kullanarak bir TOK oluşturuyorsanız, bu, yinelenen bağlantı referansları hakkında bir uyarı oluşturur. (Bunlar sadece uyarılardır, TOK yaratılacaktır.)
Karl Giesing

995

Gibi standart HTML etiketleri kullanıyorum

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

Üçlü tireye dikkat edin. Avantajı, TeX veya HTML çıktısı oluştururken pandoc ile çalışmasıdır . Daha fazla bilgi pandoc-tartışma grubunda mevcuttur.


73
Doğru anlarsam , üçlü çizgi pandoc'un markdown dosyasını ayrıştırdığında yorumu yoksaymasını sağlar. Ancak başka bir etiketleme motoru kullanırsanız, yorum oluşturulan HTML'de görünür (ve "görünüm kaynağı" ile görünür olur). Bu yoruma ne koyduğunuza dikkat etmelisiniz;)
cberzan

5
Pandoc'un üçlü çizgilere çifte olanlardan nasıl farklı davrandığını açıklayabilir misiniz? Onları denediğimde, onlar da aynı şekilde ele alındı. Ayrıca, Pandoc kullanıcı kılavuzu sadece "Ham HTML değişmeden HTML, S5, Slidyus, Slideous, DZSlides, EPUB, Markdown ve Textile çıktılarında geçirilir ve diğer formatlarda bastırılır." Üç çizgi, çifte olanlardan daha yüksek bir ayrıcalığa sahip görünmüyor.
dkim

1
@dkim Üç tire içeren yorumlar yoksayılır ve HTML çıktısından çıkarılır. HTML dosyasına eklenen çift kesikli yorumlarda durum böyle değildir. Bu hala Pandoc'un (1.10) en son sürümü için geçerlidir.
chl

32
Üçlü çizgi anlamlıysa, bunlar "standart HTML" yorumları değildir.
tripleee

17
Google çalışanları için not: bu ne yazık ki GitHub Markdown'da çalışmıyor ve Magnus'un çözümünü kullandım.
Daniel Buckmaster

198

Bu küçük araştırma Magnus'un cevabını kanıtlıyor ve geliştiriyor

Platformdan en bağımsız sözdizimi

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

Her iki koşul da önemlidir:

  1. Kullanma #(ve değil <>)
  2. Yorumdan önce boş bir satırla . Yorumdan sonraki boş satırın sonuç üzerinde bir etkisi yoktur.

Sıkı Markdown spesifikasyonu CommonMark sadece bu sözdizimiyle (ve <>boş satırla değil)

Bunu kanıtlamak için John MacFarlane tarafından yazılan Babelmark2'yi kullanacağız. Bu araç, 28 Markdown uygulamasında belirli kaynak kodunun oluşturulmasını kontrol eder.

( +- testi geçti, -- geçmedi, ?- işlenmiş HTML'de gösterilmeyen bazı çöpler bırakır).

Bu, yukarıdaki ifadeleri kanıtlamaktadır.

Bu uygulamalar 7 testin hepsinde başarısız olur. Onlarla dışlanan yorumlarda yorum kullanma şansı yoktur.

  • cebe / etiketleme 1.1.0
  • cebe / markdown MarkdownExtra 1.1.0
  • cebe / markdown GFM 1.1.0
  • s9e \ TextFormatter (Fatdown / PHP)

3
Mükemmel, kapsamlı test aracı! Eğer bu doğru oldun # tüm ama GFM için çalışmalar ve <> eserler GFM için ancak bir kaç diğerleri. Çok kötü GFM hem bir köşe kılıfı hem de çok popüler bir lezzet.
Ocaklar

1
Görünüşe göre s9e \ TextFormatter # , 21 Ocak 2016 tarihinden itibaren çalışıyor . Cebe hala ele almıyor.
Troy Daniels

1
Garip bir şekilde, yorum (...)kendi başına içeriyorsa , onu ihlal eder. En azından Visual Studio Code 1.19 üzerinde.
Royi

1
ve böylece tüm dosyalara aynı anda yorum yapmak isteyen vim kullanıcıları için:%s/^\(.*\)$/[comment]: # (\1)/g
Simon C.

Bablemark2'nin var olduğu markdown hakkında ne diyor?
TC Proctor

54

Jekyll veya ahtapot kullanıyorsanız aşağıdaki de işe yarayacaktır.

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

Önce Sıvı etiketleri {% comment %}ayrıştırılır ve MarkDown işlemcisi buna ulaşmadan kaldırılır. Ziyaretçiler, tarayıcılarından kaynak görüntülemeye çalıştıklarında görmezler.


2
Jinja2 = {#burada çok satırlı yorumlar#}
John Mee

29

Alternatif olarak stilize HTML etiketlerinin içine yorumlar koymak da mümkündür. Bu şekilde, görünürlüklerini gerektiği gibi değiştirebilirsiniz. Örneğin, CSS stil sayfanızda bir yorum sınıfı tanımlayın.

.comment { display: none; }

Ardından, aşağıdaki İŞARETLİ

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

bir TARAYICI'da aşağıdaki gibi görünür

We do support comments


5
Kopyala / yapıştır, büyük olasılıkla "yorumlanmış" metnin yanı sıra normal metnin de kopyalanmasına neden olur, bu nedenle bunu kullanırken dikkatli olun. Bir metin bloğunu kopyalayan biri için kolayca beklenmedik sonuçlar üretebilir.
Eilon

4
@Eilon da bunun için erişilebilirlik korkunç olurdu
Ethan

Erişilebilirliği destekleyen motorlar ekranı düzgün atlayacaktır: metin yok.
aredridel

28

Bu GitHub'da çalışır:

[](Comment text goes here)

Ortaya çıkan HTML şöyle görünür:

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

Bu temelde boş bir bağlantıdır. Açıkçası bunu işlenen metnin kaynağında okuyabilirsiniz, ancak yine de GitHub'da yapabilirsiniz.


6
Kesinlikle öyle, ama aslında şimdiye kadar GitHub'da, örneğin listelerde çalışan tek cevap.
jomo

Aynı çözüme ulaştım. Satır içi yorumlar için çalışabildiğim tek örnek bu some text [](hidden text) blah blah.
c24w

3
2019-03-08 itibariyle artık github üzerinde çalışmaz, olduğu gibi işler[](Comment text goes here)
dogmatic69

19

Vim Instant-Markdown kullanıcılarının kullanması gerekiyor

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

18

Ayrıca, artan sayıda Markdown aracı tarafından desteklenen Kritik İşaretleme konusuna bakın.

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
Böyle "sözde" standartları ile sorunlardan biri taşınabilir olmadığını düşünüyorum. Bazı web sitelerinde bunlar mükemmel çalışır, diğerlerinde çalışmazlar.
Willem Van Onsem

14

Yorumları değerlendirmeyen, yankısız bir R bloğuna koymaya ne dersiniz? yani

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

Benim için iyi çalışıyor gibi görünüyor.


2
Ayrıca, cat("# Some Header")"yorumlanmış" kod blokları gibi şeyler yapmaktan çekinmeyin ve kullanın results = "asis"ve eval = FALSER değerlendirmesi, pandoc derlemesi. Fikir için teşekkürler!
MichaelChirico

11

Açıklama: Eklentiyi yazdım.

Soru belirli bir işaretleme uygulaması belirtmediğinden, yukarıda belirtilen aynı pandoc yorumlama stilini uygulayan python- markdown için Yorumlar Eklentisinden bahsetmek istiyorum .


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

Pandoc Markdown'da çalışmaz (Pandoc 1.12.2.1). Yorumlar hala html biçiminde görünüyordu. Aşağıdakiler işe yaradı:

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

Ardından + dipnot uzantısını kullanın. Asla referans alınmayan bir dipnot.


Bunu hiç sevmiyorum, çünkü hiç çıktı üretmiyor. Bitbucket için bu önek yeterlidir: [#]: .
Ceving

7

Aşağıdakiler çok iyi çalışıyor

<empty line>
[whatever comment text]::

bu yöntem, oluşturulmuş bağlantı referansı oluşturulmayacağından referans yoluyla bağlantı oluşturmak için sözdiziminden yararlanır , benzer şekilde aşağıdakilerden herhangi biri de oluşturulmayacaktır
[1]: http://example.org

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

Bu (test edilen ilk varyant) için çalışır pandocyanı sıra mevcut çevrimiçi örneklerini Gitlab ve GitHub .
doak

5

Pandoc için, yorumu engellemenin iyi bir yolu , pandoc yazarı tarafından önerildiği gibi bir yaml metablock kullanmaktır . Bu benim ortamda en azından diğer önerilen çözümlerin birçoğu kıyasla yorumların daha düzgün sözdizimi vurgulamasını verdiğini fark etmiş ( vim, vim-pandocve vim-pandoc-syntax).

HTML blok yorumlarını html-satır içi yorumlarla birlikte kullanıyorum, çünkü html yorumları yuvalanamıyor . Ne yazık ki, yaml metablock içinde yorum yapmayı engellemenin bir yolu yoktur , bu nedenle her satırın ayrı ayrı yorumlanması gerekir. Neyse ki, yazılımla sarılmış bir paragrafta yalnızca bir satır olmalıdır.

Benim ~/.vimrc, blok yorumları için özel kısayollar ayarladım:

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

-Key ,olarak kullanıyorum ve sırasıyla bir paragrafı yorumluyorum ve yorumunu kaldırıyorum. Birden fazla paragraf yorumlamak gerekirse, ben bir makro (genellikle ) eşlemek ve çalıştırmak (örneğin ( ).Aynı uncommenting için çalışır.<Leader>,b,vj,bQ<number-of-paragraphs><name-of-macro>3Q


5

kramdown —Jekyll ve dolayısıyla GitHub Sayfaları için varsayılan olan Ruby tabanlı işaretleme motoru - uzantı sözdizimi aracılığıyla yerleşik yorum desteğine sahiptir :

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

Bu, satır içi yorumlara izin verme avantajına sahiptir, ancak diğer Markdown motorlarına taşınabilir olmanın dezavantajı.


4

Deneyebilirsin

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

4

Bunu yapabilirsiniz (YAML bloğu):

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

Sadece lateks çıktı ile denedim, lütfen diğerleri için onaylayın.


HTML çıktısı ile de çalışır.
petzi

Daniel'in html çıktısındaki onayının doğru olup olmadığından emin değilim. Ben bir html çıktı dosyası ile yaptım ve "pandoc - bibliyografya paper.bib -o paper.html paper.md" koştu ve HTML yorum satırlarını gösterdi.
markgalassi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.