Savez-vous s'il existe une sorte de <code />
tag dans JSDoc? J'ai besoin d'ajouter des morceaux de code dans ma documentation comme ceci:
/**
* 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);
}
J'ai besoin que le code dans les commentaires soit affiché par JSDoc en tant que code (sinon la syntaxe est mise en évidence, au moins comme pré-formatée ou quelque chose avec un fond gris).
Utilisation
<pre><code>
....
</code></pre>
C'est ce qui est utilisé dans de nombreux documents officiels et recevra, par exemple, une mise en évidence de la syntaxe avec certains outils.
@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);
}
Jsdoc3 possède un plugin de démarque mais il est désactivé par défaut. Activez-le le fichier de configuration par défaut ./node_modules/jsdoc/conf.json.EXAMPLE
via ...
"plugins": [
"plugins/markdown"
],
... et vous avez un support de syntaxe Nice pour les documents, y compris pour le code. Markdown utilise trois backticks (```
) pour délimiter les blocs de code. Pour utiliser l'exemple d'origine:
/**
* 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
*/
Pour jsdoc<code>...</code>
semble bien fonctionner. Il conserve également le code en ligne tout en ajoutant <pre>
crée un paragraphe (ce qu'il doit faire de toute façon). Prise en charge du navigateur semble être ok donc je ne vois aucune raison de ne pas l'utiliser.
Vous pouvez mettre n'importe quel code HTML dans JSDoc et il sera copié. Voici un exemple de ce que j'utilise:
/**
* The ReplaceSlang method replaces the string "hi" with "hello".
* <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");
};
Pour vous assurer que le bouton ne figure pas dans le résumé, ajoutez-y une phrase et un point (.).
Vous devez trouver un moyen d'inclure votre fichier javascript dans la sortie de JSDoc afin qu'ils soient chargés. (Sinon, votre code n'existe pas en tant que javascript dans la sortie de JSDoc - vous pouvez modifier le modèle pour cela: voir documentation JsPlate )
L'utilisation de @ exemple fonctionne dans la plupart des cas, mais les caractères réservés HTML doivent être traduits en littéraux: <
>
et ainsi de suite, sinon le HTML sera rendu et non affiché en tant que code.