私は、これははるかに洗練されてわからないんだけど、これは私がやってしまったものです:
幸い、でも現在のバージョン3.5.5で、ハックはまだ同じように動作します。 jsdocのインストールをハックすることなく、すべてのプロジェクトで動作します。
私の問題:インポートされたnode_modulesから派生したクラスがあり、ドキュメントに継承された情報が含まれていたが、基本クラスがサイドバーのナビゲーションを詰まらせたくなかった。
まず、私は(私はそれが-node_modulesをスキップ呼ばれる)私のJSDocのテンプレートにプラグインを追加しました:
exports.handlers = {
processingComplete: function (e)
{
for (let i = 0; i < e.doclets.length; i++)
{
const doclet = e.doclets[i]
if (!doclet.undocumented && doclet.meta && doclet.meta.path.indexOf('node_modules') !== -1)
{
// hack the name so I can find it in the .tmpl file
// I tried to add a new flag to the doclet, but it didn't pass through
doclet.longname += '~'
}
}
}
};
それから私はnavigation.tmplにチェックを追加しました:
<ul class="list">
<?js
this.nav.forEach(function (item) {
?>
<?js if (item.longname[item.longname.length - 1] !== '~') { ?>
<li class="item" data-name="<?js= item.longname ?>">
...
<? } ?>
そして、 poof、私のサイドバーにnode_moduleのインポートはもうありません。 (これは、あなたがこれらのクラスにクリックするとサイドバーを表示しないという欠点があります。私はそれを取り除くことができますが、それほど重要なものではありません)。
これを変更して外部シンボルをチェックします。プラグインのconsole.log(e)を使用して、ドックレットが提供するすべての情報を取得し、自分の状況に適したものを探します。
私は現在このハックを使用しています。間違いなく満足している。自分自身を定義していない外部モジュールをどう扱うのですか?私はモジュールに入って@externalでモジュールをハックしなければなりませんでしたが、それはあまり満足できません。 –