Jaka jest składnia do przechowywania komentarza w pliku przeceny, np. Komentarz CVS $ Id $ u góry pliku? Nic nie znalazłem w projekcie przeceny .
Jaka jest składnia do przechowywania komentarza w pliku przeceny, np. Komentarz CVS $ Id $ u góry pliku? Nic nie znalazłem w projekcie przeceny .
Odpowiedzi:
Uważam, że wszystkie wcześniej zaproponowane rozwiązania (oprócz tych, które wymagają konkretnych implementacji) powodują, że komentarze są dołączane do wyjściowego kodu HTML, nawet jeśli nie są wyświetlane.
Jeśli chcesz komentarz wyłącznie dla siebie (czytelnicy przekonwertowanego dokumentu nie powinni go widzieć, nawet w „źródle widoku”), możesz (ab) użyć etykiet linków (do użycia z linkami w stylu referencyjnym), które są dostępne w podstawowej specyfikacji Markdown:
http://daringfireball.net/projects/markdown/syntax#link
To jest:
[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.)
Lub możesz pójść dalej:
[//]: <> (This is also a comment.)
Aby poprawić zgodność platformy (i zaoszczędzić jedno naciśnięcie klawisza), można również użyć #
(który jest uzasadnionym celem hiperłącza) zamiast <>
:
[//]: # (This may be the most platform independent comment)
Aby zapewnić maksymalną przenośność, ważne jest wstawienie pustego wiersza przed i po komentarzach tego typu, ponieważ niektóre parsery Markdown nie działają poprawnie, gdy definicje odrywają się od zwykłego tekstu. Najnowsze badania z Babelmark pokazują, że puste linie przed i po są ważne. Niektóre parsery wypiszą komentarz, jeśli wcześniej nie było pustej linii, a niektóre parsery wykluczą następną linię, jeśli po niej nie będzie pustej linii.
Ogólnie rzecz biorąc, to podejście powinno działać z większością parserów Markdown, ponieważ jest to część podstawowej specyfikacji. (nawet jeśli zachowanie, gdy zdefiniowano wiele łączy lub gdy łącze jest zdefiniowane, ale nigdy nie jest używane, nie jest ściśle określone).
[//]: # "Comment"
i [//]: # (Comment)
wydaje się, że działa na szerszej gamie implementacji, ponieważ #
jest to prawidłowy względny identyfikator URI. Na przykład GitHub odrzuca <>
, a cała linia staje się widoczna. Warto również zauważyć, że etykiety linków często muszą być oddzielone od innych treści pustą linią.
Używam standardowych tagów HTML, takich jak
<!---
your comment goes here
and here
-->
Zwróć uwagę na potrójną kreskę. Zaletą jest to, że działa z pandoc podczas generowania danych wyjściowych TeX lub HTML. Więcej informacji jest dostępnych w grupie dyskusyjnej pandoc .
To małe badanie potwierdza i udoskonala odpowiedź Magnusa
Najbardziej niezależna od platformy składnia to
(empty line)
[comment]: # (This actually is the most platform independent comment)
Oba warunki są ważne:
#
(i nie <>
)Ścisła specyfikacja Markdown CommonMark działa tylko zgodnie z przeznaczeniem z tą składnią (a nie z <>
i / lub pustą linią)
Aby to udowodnić, użyjemy Babelmark2, napisanego przez Johna MacFarlane'a. To narzędzie sprawdza rendering konkretnego kodu źródłowego w 28 implementacjach Markdown.
( +
- zdał test, -
- nie zdał, ?
- pozostawia śmieci, które nie są wyświetlane w renderowanym HTML).
<>
13+, 15-<>
20+, 8-<>
20+, 8-#
13+ 1? 14#
23+ 1? 4-#
23+ 1? 4-To potwierdza powyższe stwierdzenia.
Te implementacje kończą się niepowodzeniem we wszystkich 7 testach. Nie ma szans na użycie z nimi komentarzy wykluczonych przy renderowaniu.
#
działa dla wszystkich oprócz GFM i <>
działa dla GFM, ale nie dla kilku innych. Szkoda, że GFM to zarówno narożnik, jak i bardzo popularny smak.
#
21 stycznia 2016 r. Cebe nadal go nie obsługuje.
(...)
sam w sobie zawiera , łamie go. Przynajmniej w Visual Studio Code 1.19.
%s/^\(.*\)$/[comment]: # (\1)/g
Jeśli używasz Jekyll lub octopress, następujące działania również będą działać.
{% comment %}
These commments will not include inside the source.
{% endcomment %}
Tagi Liquid {% comment %}
są najpierw analizowane i usuwane, zanim procesor MarkDown do nich dojdzie. Odwiedzający nie zobaczą, gdy spróbują wyświetlić źródło z przeglądarki.
{#
tutaj komentarze wielowierszowe#}
Alternatywą jest umieszczanie komentarzy w stylizowanych znacznikach HTML. W ten sposób możesz w razie potrzeby przełączać ich widoczność. Na przykład zdefiniuj klasę komentarzy w arkuszu stylów CSS.
.comment { display: none; }
Następnie następujące ulepszone MARKDOWN
We do <span class="comment">NOT</span> support comments
pojawia się w PRZEGLĄDARCE w następujący sposób
We do support comments
Działa to na GitHub:
[](Comment text goes here)
Powstały HTML wygląda następująco:
<a href="Comment%20text%20goes%20here"></a>
Co jest w zasadzie pustym linkiem. Oczywiście możesz to przeczytać w źródle renderowanego tekstu, ale możesz to zrobić w GitHub.
some text [](hidden text) blah blah
.
[](Comment text goes here)
Użytkownicy Vim Instant-Markdown muszą korzystać
<!---
First comment line...
//
_NO_BLANK_LINES_ARE_ALLOWED_
//
_and_try_to_avoid_double_minuses_like_this_: --
//
last comment line.
-->
Zobacz także Critic Markup, wspierany przez rosnącą liczbę narzędzi Markdown.
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.
Co powiesz na umieszczenie komentarzy w nie-ewaluacyjnym, bez echa bloku R? to znaczy,
```{r echo=FALSE, eval=FALSE}
All the comments!
```
Wydaje się, że działa dobrze dla mnie.
cat("# Some Header")
w obrębie „zakomentowanych” bloków kodu i używać results = "asis"
, a także możesz dodawać całe skomentowane sekcje do swojego kodu, które można włączać / wyłączać przez przełączanie eval = FALSE
, ponieważ ocena R jest wykonywana przed kompilacja pandoc. Dzięki za pomysł!
Ujawnienie: Napisałem wtyczkę.
Ponieważ pytanie nie określa konkretnej implementacji Markdown, chciałbym wspomnieć o wtyczce Komentarze dla python-markdown , która implementuje ten sam styl komentowania pandoc, o którym mowa powyżej.
<!--- ... -->
Nie działa w Pandoc Markdown (Pandoc 1.12.2.1). Komentarze wciąż pojawiały się w html. Następujące działało:
Blank line
[^Comment]: Text that will not appear in html source
Blank line
Następnie użyj rozszerzenia + przypisu dolnego. Jest to zasadniczo przypis, do którego nigdy się nie odwołujemy.
[#]:
.
Poniższe działa bardzo dobrze
<empty line>
[whatever comment text]::
ta metoda korzysta ze składni do tworzenia linków poprzez referencje,
ponieważ referencje do linków utworzone za pomocą [1]: http://example.org
nie będą renderowane, podobnie jak żadne z poniższych
<empty line>
[whatever]::
[whatever]:whatever
[whatever]: :
[whatever]: whatever
pandoc
bieżących instancji online Gitlab, jak i GitHub .
W przypadku pandoc dobrym sposobem na zablokowanie komentarza jest użycie metamocka yaml, zgodnie z sugestią autora pandoc . Zauważyłem, że daje to bardziej właściwe podświetlanie składni komentarzach w porównaniu do wielu innych proponowanych rozwiązań, przynajmniej w moim otoczeniu ( vim
, vim-pandoc
, i vim-pandoc-syntax
).
Używam komentarzy blokujących yaml w połączeniu z komentarzami HTML , ponieważ nie można zagnieżdżać komentarzy HTML . Niestety nie ma sposobu na blokowanie komentowania w metameczce yaml , więc każda linia musi być komentowana indywidualnie. Na szczęście powinna być tylko jedna linia w akapicie z miękkim zapisem.
W moim ~/.vimrc
ustawiłem niestandardowe skróty do blokowania komentarzy:
nmap <Leader>b }o<Esc>O...<Esc>{ji#<Esc>O---<Esc>2<down>
nmap <Leader>v {jddx}kdd
Używam ,
jako mój <Leader>
klawiszem, więc ,b
i ,v
komentarz i usuń paragraf odpowiednio. Jeśli muszę skomentować wiele akapitów, odwzorowuję j,b
makro (zwykle Q
) i uruchamiam <number-of-paragraphs><name-of-macro>
(np. ( 3Q
). To samo działa w przypadku odkomentowania.
kramdown - oparty na Ruby silnik markdown, który jest domyślny dla Jekyll, a tym samym GitHub Pages - ma wbudowaną obsługę komentarzy dzięki składni rozszerzenia :
{::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{:/}
Ma to tę zaletę, że pozwala na komentarze w linii, ale wadą jest brak możliwości przenoszenia na inne silniki Markdown.
Możesz to zrobić (blok YAML):
~~~
# This is a
# multiline
# comment
...
Próbowałem tylko z wyjściem lateksowym, proszę potwierdzić dla innych.