From 8de84c77fc053242f0a7a6067d4ff581e3011fda Mon Sep 17 00:00:00 2001 From: canut Date: Mon, 26 Oct 2020 11:56:10 +0100 Subject: [PATCH] Remove MkDocs copyright from documentation pages (#3072) * Simplify MkDocs footer in documentation pages * Update plugins/techdocs/src/reader/transformers/simplifyMkdocsFooter.ts Co-authored-by: Emma Indal Co-authored-by: Emma Indal --- .../techdocs/src/reader/components/Reader.tsx | 2 + .../techdocs/src/reader/transformers/index.ts | 1 + .../transformers/simplifyMkdocsFooter.test.ts | 38 +++++++++++++++++++ .../transformers/simplifyMkdocsFooter.ts | 26 +++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 plugins/techdocs/src/reader/transformers/simplifyMkdocsFooter.test.ts create mode 100644 plugins/techdocs/src/reader/transformers/simplifyMkdocsFooter.ts diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 01299b8fe6..785c6f1c6b 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -30,6 +30,7 @@ import transformer, { rewriteDocLinks, addLinkClickListener, removeMkdocsHeader, + simplifyMkdocsFooter, modifyCss, onCssReady, sanitizeDOM, @@ -81,6 +82,7 @@ export const Reader = ({ entityId, onReady }: Props) => { }, }), removeMkdocsHeader(), + simplifyMkdocsFooter(), injectCss({ css: ` body { diff --git a/plugins/techdocs/src/reader/transformers/index.ts b/plugins/techdocs/src/reader/transformers/index.ts index ddbaadd071..0bab085abe 100644 --- a/plugins/techdocs/src/reader/transformers/index.ts +++ b/plugins/techdocs/src/reader/transformers/index.ts @@ -18,6 +18,7 @@ export * from './addBaseUrl'; export * from './rewriteDocLinks'; export * from './addLinkClickListener'; export * from './removeMkdocsHeader'; +export * from './simplifyMkdocsFooter'; export * from './modifyCss'; export * from './onCssReady'; export * from './sanitizeDOM'; diff --git a/plugins/techdocs/src/reader/transformers/simplifyMkdocsFooter.test.ts b/plugins/techdocs/src/reader/transformers/simplifyMkdocsFooter.test.ts new file mode 100644 index 0000000000..5af62a43c5 --- /dev/null +++ b/plugins/techdocs/src/reader/transformers/simplifyMkdocsFooter.test.ts @@ -0,0 +1,38 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createTestShadowDom, FIXTURES } from '../../test-utils'; +import { simplifyMkdocsFooter } from '.'; + +describe('simplifyMkdocsFooter', () => { + it('does not remove mkdocs copyright', () => { + const shadowDom = createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE, { + preTransformers: [], + postTransformers: [], + }); + + expect(shadowDom.querySelector('.md-footer-copyright')).toBeTruthy(); + }); + + it('does remove mkdocs copyright', () => { + const shadowDom = createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE, { + preTransformers: [simplifyMkdocsFooter()], + postTransformers: [], + }); + + expect(shadowDom.querySelector('.md-footer-copyright')).toBeFalsy(); + }); +}); diff --git a/plugins/techdocs/src/reader/transformers/simplifyMkdocsFooter.ts b/plugins/techdocs/src/reader/transformers/simplifyMkdocsFooter.ts new file mode 100644 index 0000000000..0d0745724d --- /dev/null +++ b/plugins/techdocs/src/reader/transformers/simplifyMkdocsFooter.ts @@ -0,0 +1,26 @@ +/* + * Copyright 2020 Spotify AB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { Transformer } from './index'; + +export const simplifyMkdocsFooter = (): Transformer => { + return dom => { + // Remove mkdocs copyright + dom.querySelector('.md-footer-copyright')?.remove(); + + return dom; + }; +};