Комментарии в уценке

Каков синтаксис для хранения комментария в файле уценки, например, комментарий CVS $Id$ вверху файла? Я ничего не нашел в проекте уценки.

24 ответа

Решение

Я считаю, что все ранее предложенные решения (кроме тех, которые требуют определенных реализаций) приводят к тому, что комментарии включаются в выходной HTML, даже если они не отображаются.

Если вам нужен комментарий, предназначенный исключительно для вас (читатели преобразованного документа не должны видеть его, даже с "просмотром источника"), вы можете (ab) использовать ярлыки ссылок (для использования со ссылками в стиле ссылок), которые доступно в базовой спецификации Markdown:

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

То есть:

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

Для максимальной переносимости важно вставить пустую строку до и после комментариев этого типа, потому что некоторые анализаторы Markdown не работают правильно, когда определения соответствуют обычному тексту. Последнее исследование с Babelmark показывает, что пустые строки до и после важны. Некоторые парсеры выводят комментарий, если до этого не было пустой строки, а некоторые парсеры исключают следующую строку, если после нее нет пустой строки.

В целом, этот подход должен работать с большинством анализаторов Markdown, так как он является частью базовой спецификации. (даже если поведение, когда определено несколько ссылок или когда ссылка определена, но никогда не используется, строго не указано).

Я использую стандартные теги HTML, как

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

Обратите внимание на тройной тире. Преимущество заключается в том, что он работает с pandoc при генерации вывода TeX или HTML. Больше информации доступно в группе обсуждения pandoc.

Это небольшое исследование доказывает и уточняет ответ Магнуса

Наиболее независимый от платформы синтаксис

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

Оба условия важны:

  1. С помощью # (и не <> )
  2. С пустой строкой перед комментарием. Пустая строка после комментария не влияет на результат.

Строгая спецификация Markdown CommonMark работает только так, как задумано, с этим синтаксисом (а не с <> и / или пустая строка)

Чтобы доказать это, мы будем использовать Babelmark2, написанный Джоном Макфарлейном. Этот инструмент проверяет рендеринг конкретного исходного кода в 28 реализациях Markdown.

(+ - прошел тест, - - не прошло, ? - оставляет некоторый мусор, который не отображается в визуализированном HTML).

Это доказывает утверждения выше.

Эти реализации не проходят все 7 тестов. Там нет шансов использовать исключенные на визуализации комментарии с ними.

  • cebe / уценка 1.1.0
  • cebe / markdown MarkdownExtra 1.1.0
  • cebe / уценка GFM 1.1.0
  • s9e \ TextFormatter (Fatdown / PHP)

Если вы используете Jekyll или octopress, то также будут работать следующие.

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

Жидкие бирки {% comment %} анализируются первыми и удаляются до того, как процессор MarkDown даже доберется до него. Посетители не увидят, когда они попытаются просмотреть источник из своего браузера.

Следующее работает очень хорошо

<empty line>
[whatever comment text]::

этот метод использует преимущества синтаксиса для создания ссылок через ссылку
поскольку ссылка создана с помощью [1]: http://example.org не будет предоставлено, также не будет выполнено любое из следующего

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

Это работает на GitHub:

[](Comment text goes here)

Полученный HTML выглядит так:

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

Который в основном пустая ссылка. Очевидно, что вы можете прочитать это в источнике отрисованного текста, но вы можете сделать это в любом случае на GitHub.

Альтернативой является размещение комментариев в стилизованных тегах HTML. Таким образом, вы можете переключать их видимость по мере необходимости. Например, определите класс комментариев в вашей таблице стилей CSS.

.comment { display: none; }

Затем следующее усиление MARKDOWN

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

выглядит следующим образом в Браузере

We do support comments

Пользователи Vim Instant-Markdown должны использовать

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

Не работает в Pandoc Markdown (Pandoc 1.12.2.1). Комментарии все еще появились в html. Следующее сработало:

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

Затем используйте расширение сноски +. По сути, это сноска, на которую никогда не ссылаются.

Также см. Критическая разметка, поддерживаемая растущим числом инструментов разметки.

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.

Как насчет того, чтобы поместить комментарии в не-eval, non-echo R блок? т.е.

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

Кажется, хорошо работает для меня.

Раскрытие: я написал плагин.

Поскольку в вопросе не указана конкретная реализация разметки, я бы хотел упомянуть плагин Comments для python-markdown, который реализует тот же стиль комментирования pandoc, упомянутый выше.

При использовании mkdocs добавьте в свой mkdocs.yml:

        - pymdownx.striphtml:
      strip_comments: true
      strip_js_on_attributes: false

Затем обычные комментарии html в любом файле уценки, как

      <!-- this is a comment -->

будет удален из вывода html.

kramdown- движок уценки на основе Ruby, который используется по умолчанию для Jekyll и, следовательно, GitHub Pages - имеет встроенную поддержку комментариев через свой синтаксис расширения:

{::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.

Ниже приведен комментарий Markdown, который не будет отображаться на сайте GitHub Pages с помощью Jekyll.

      [whatever]: text

Для pandoc хорошим способом блокирования комментариев является использование метаблока yaml, как было предложено автором pandoc. Я заметил, что это дает более правильную подсветку синтаксиса комментариев по сравнению со многими другими предлагаемыми решениями, по крайней мере, в моей среде (vim, vim-pandoc, а также vim-pandoc-syntax).

Я использую комментарии блока yaml в сочетании с html-встроенными комментариями, так как html-комментарии не могут быть вложенными. К сожалению, в метаблоке yaml нет способа комментирования блоков, поэтому каждую строку нужно комментировать отдельно. К счастью, в мягком абзаце должна быть только одна строка.

В моем ~/.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). То же самое работает для комментариев.

Ты можешь попробовать

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

Вы можете сделать это (блок YAML):

---
# This is a
# multiline
# comment
...

Я пытался только с выходом латекса, пожалуйста, подтвердите для других.

Для Pandoc Markdown я использую обратные кавычки с comment как язык, такой как встроенный "кодовый" синтаксис

      `here's a comment`{=comment}

Это автоматически отфильтровывается на всех выходах. Он просто перегружает синтаксис их кода, а также работает с блоками кода для многострочных комментариев. Я не пробовал, но предполагаю, что это не работает для не-Pandoc Markdown.

Я написал небольшую программу awk для фильтрации маркеров #omitbegin и #omitend, которые я добавляю в свой текст. Я использую awk для передачи его вывода во временный файл, который затем может обработать pandoc. Вот так:

awk -f omitfilter.awk aim2_article.md >aim2_article_tmp.md

pandoc --pdf-engine=xelatex --lua-filter=pagebreak.lua --filter pandoc-crossref --citeproc aim2_article_tmp.md -o aim2_article.pdf

Вот omit filter.awk:

      /#omitbegin/ {
    insideOmit = 1;
}

! insideOmit {
    print $0
}

/#omitend/ {
    insideOmit = 0;
}

У Пандока есть вариант--strip-commentsэто удалит все<!-- normal html comments -->из вывода HTML.

https://pandoc.org/MANUAL.html#general-writer-options

Github README.md ИЛИ Stackru отвечает

Для ответов Github README или Stackru я использую # для встроенного комментария.

Пример:


# clone the remote repository to your local machine

npm clone https://github.com/chebaby/echebaby.git

# change directory

cd echebaby

# install dependencies

yarn install

Если это в VS Code, то есть еще один хороший вариант:

      <span hidden> Some texts </span>

Преимущество этого по сравнению с «тегом комментария HTML» состоит в сохранении подсветки синтаксиса в области редактирования, а также в возможности добавлять атрибуты для семантической разметки , например .

Предупреждение. Исходя из здравого смысла, не включайте личную информацию в исходный код.

вы можете использовать синтаксис изображения:![comment text here](). это приводит к:

Другие вопросы по тегам