From 950f18fc3679938e71926288287796020277a8c8 Mon Sep 17 00:00:00 2001 From: John Haugeland Date: Wed, 15 Jun 2022 11:08:14 -0700 Subject: [PATCH] Attempt to install git submodules automatically, set up workspaces automatically, and build once on install. Also, stub the standard build call to point to project build. Currently untested due to KnodesCommunity/typedoc-plugins#82 --- package.json | 4 +++- packages/plugin-pages/src/plugin.ts | 2 +- .../theme-plugins/page-tree/a-page-tree-builder.spec.ts | 7 +++++++ .../src/theme-plugins/page-tree/a-page-tree-builder.ts | 6 ++++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a98ada11..304381cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@knodes/typedoc-plugins", - "version": "0.22.5", + "version": "0.22.6", "description": "A monorepo containing all knodes-published TypeDoc plugins", "license": "MIT", "private": true, @@ -24,6 +24,8 @@ "./packages/*" ], "scripts": { + "postinstall": "git submodule update --init --recursive && npm i --workspaces && npm run projects:build", + "build": "npm run projects:build", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", "docs": "typedoc", "format:pkg": "format-package --write", diff --git a/packages/plugin-pages/src/plugin.ts b/packages/plugin-pages/src/plugin.ts index 735c87d6..70982a1e 100644 --- a/packages/plugin-pages/src/plugin.ts +++ b/packages/plugin-pages/src/plugin.ts @@ -21,7 +21,7 @@ export class PagesPlugin extends ABasePlugin { } /** - * This method is called after the plugin has been instanciated. + * This method is called after the plugin has been instantiated. */ public override initialize(){ const opts = this.pluginOptions.getValue(); diff --git a/packages/plugin-pages/src/theme-plugins/page-tree/a-page-tree-builder.spec.ts b/packages/plugin-pages/src/theme-plugins/page-tree/a-page-tree-builder.spec.ts index e7dcd089..0f9b1cf7 100644 --- a/packages/plugin-pages/src/theme-plugins/page-tree/a-page-tree-builder.spec.ts +++ b/packages/plugin-pages/src/theme-plugins/page-tree/a-page-tree-builder.spec.ts @@ -121,6 +121,13 @@ describe( APageTreeBuilder.name, () => { matchReflection( PageReflection, { name: 'Baz', depth: 0, module: testHost.project, sourceFilePath: 'baz.md', content: 'Baz content', url: 'baz.html' } ), ] ); } ); + it( 'should map hidden item', () => { + setVirtualFs( { + 'foo.md': 'Foo content' + } ); + const out = testHost.mapPagesToReflections( [ { title: 'HIDDEN', source: 'foo.md' } ] ); + expect( out ).toHaveLength( 1 ); + } ); it( 'should map page with children', () => { setVirtualFs( { 'foo.md': 'Foo content', diff --git a/packages/plugin-pages/src/theme-plugins/page-tree/a-page-tree-builder.ts b/packages/plugin-pages/src/theme-plugins/page-tree/a-page-tree-builder.ts index ff6ce013..7b0ef497 100644 --- a/packages/plugin-pages/src/theme-plugins/page-tree/a-page-tree-builder.ts +++ b/packages/plugin-pages/src/theme-plugins/page-tree/a-page-tree-builder.ts @@ -145,6 +145,12 @@ export abstract class APageTreeBuilder implements IPageTreeBuilder { } this.project.registerReflection( nodeReflection ); this.addNodeToProjectAsChild( nodeReflection ); + // strip a hidden node, but *after* adding its source to the project as a child + if( node.title === 'HIDDEN' ){ + return node.children ? + this._mapPagesToReflections( node.children, parent, childrenIO ) : + []; + } const children = node.children ? this._mapPagesToReflections( node.children,