JSDoc добавление реального кода в документацию - PullRequest
42 голосов
/ 03 июня 2010

Знаете ли вы, есть ли какой-либо тег <code /> в JSDoc? Мне нужно добавить кусочки кода в моей документации, как это:

/**
 * This function does something see example below:
 *
 * var x = foo("test"); //it will show "test" message
 *
 * @param {string} str: string argument that will be shown in message
 */
function foo(str)
{
   alert(str);
}

Мне нужно, чтобы код в комментариях отображался JSDoc как код (если не выделен синтаксис, по крайней мере, как предварительно отформатированный или что-то с серым фоном).

Ответы [ 6 ]

34 голосов
/ 03 июня 2010

Используйте

<pre><code>

....

Это то, что используется во многих официальных документах и, например, получит подсветку синтаксиса с помощью некоторых инструментов

31 голосов
/ 13 июля 2010

@example http://code.google.com/p/jsdoc-toolkit/wiki/TagExample

/**
 * This function does something see example below:
 * @example
 * var x = foo("test"); //it will show "test" message
 *
 * @param {string} str: string argument that will be shown in message
 */
function foo(str)
{
   alert(str);
}
25 голосов
/ 10 сентября 2015

Jsdoc3 имеет плагин уценки, но по умолчанию он отключен. Включите файл конфигурации по умолчанию ./node_modules/jsdoc/conf.json.EXAMPLE через ...

"plugins": [
    "plugins/markdown"
],

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

/**
* This function does something see example below:
* ```
* var x = foo("test"); //it will show "test" message
* ```
* @param {string} str: string argument that will be shown in message
*/
3 голосов
/ 18 марта 2015

Для jsdoc3 <code>..., кажется, работает просто отлично. Он также сохраняет код встроенным, в то время как добавление в <pre> создает абзац (что он и должен делать в любом случае). Поддержка браузера вроде бы в порядке, поэтому я не вижу причин не использовать его.

3 голосов
/ 23 августа 2010

Вы можете поместить любой HTML-код в JSDoc, и он будет скопирован. Вот пример того, что я использую:

/** 
 * The ReplaceSlang method replaces the string &quot;hi&quot; with &quot;hello&quot;.
 *   <script language="javascript">
 *     function testFunc() {
 *       alert(ReplaceSlang(prompt("Enter sample argument")));
 *     }
 *   </script>
 *   <input type="button" value="Test" onclick="testFunc()" />
 * @param {String} str The text to transform
 * @return {String}
 */
exports.ReplaceSlang = function(str) {
  return str.replace("hi", "hello");
};

Чтобы убедиться, что кнопка отсутствует в сводке, добавьте предложение и точку (.) Перед ней.

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

2 голосов
/ 29 мая 2014

Использование @ example работает в большинстве случаев, но зарезервированные символы HTML необходимо преобразовать в литералы: &lt; &gt; и т. Д., Иначе HTML будет отображаться и не отображаться как код.

...