]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-12330 Don't filter content multiple times
authorWouter Admiraal <wouter.admiraal@sonarsource.com>
Wed, 24 Jul 2019 14:56:17 +0000 (16:56 +0200)
committerSonarTech <sonartech@sonarsource.com>
Wed, 7 Aug 2019 18:21:21 +0000 (20:21 +0200)
server/sonar-web/src/main/js/apps/documentation/components/App.tsx
server/sonar-web/src/main/js/apps/documentation/components/__tests__/__snapshots__/App-test.tsx.snap
server/sonar-web/src/main/js/apps/documentation/pages.ts
server/sonar-web/src/main/js/components/docs/DocMarkdownBlock.tsx
server/sonar-web/src/main/js/components/docs/DocTooltip.tsx

index 2cda70e7bb94eec8dbefff358ab4e5d0427d0d37..80e081dcb553d36dfdfd7d5a1a982fe6156003d1 100644 (file)
@@ -112,8 +112,8 @@ export default class App extends React.PureComponent<Props> {
               <DocMarkdownBlock
                 className="documentation-content cut-margins boxed-group-inner"
                 content={page.content}
-                displayH1={true}
                 stickyToc={true}
+                title={page.title}
               />
             </div>
           </div>
index 01b9f7beb9881cb2d8c01ab0cd67eebb8d1722bf..3fe5325afa76712391f13bd888e0429ef2d961d8 100644 (file)
@@ -29,8 +29,8 @@ exports[`should render correctly for SonarCloud 1`] = `
         <DocMarkdownBlock
           className="documentation-content cut-margins boxed-group-inner"
           content="Lorem ipsum dolor sit amet fredum"
-          displayH1={true}
           stickyToc={true}
+          title="Lorem"
         />
       </div>
     </div>
@@ -72,8 +72,8 @@ exports[`should render correctly for SonarQube 1`] = `
         <DocMarkdownBlock
           className="documentation-content cut-margins boxed-group-inner"
           content="Lorem ipsum dolor sit amet fredum"
-          displayH1={true}
           stickyToc={true}
+          title="Lorem"
         />
       </div>
     </div>
index b1c9c998941e9cbc1e655a22b399464263990cfd..585228f6c06981a2aa18316526de63221db70608 100644 (file)
@@ -39,7 +39,7 @@ export default function getPages(): DocumentationEntry[] {
         ? (parsed.frontmatter.scope.toLowerCase() as DocumentationEntryScope)
         : undefined,
       text,
-      content: file.content
+      content
     };
   });
 }
index ea14c42542b1cf4746606e0420ec1068e4478e19..9392a1996379fecfcca304343174751959364043 100644 (file)
@@ -25,7 +25,6 @@ import reactRenderer from 'remark-react';
 import slug from 'remark-slug';
 import 'sonar-ui-common/components/ui/Alert.css'; // eslint-disable-line import/extension
 import { scrollToElement } from 'sonar-ui-common/helpers/scrolling';
-import { filterContent, separateFrontMatter } from '../../helpers/markdown';
 import DocCollapsibleBlock from './DocCollapsibleBlock';
 import DocImg from './DocImg';
 import DocLink from './DocLink';
@@ -35,10 +34,10 @@ import DocTooltipLink from './DocTooltipLink';
 interface Props {
   childProps?: T.Dict<string>;
   className?: string;
-  content: string | undefined;
-  displayH1?: boolean;
+  content: string;
   isTooltip?: boolean;
   stickyToc?: boolean;
+  title?: string;
 }
 
 export default class DocMarkdownBlock extends React.PureComponent<Props> {
@@ -58,9 +57,7 @@ export default class DocMarkdownBlock extends React.PureComponent<Props> {
   };
 
   render() {
-    const { childProps, content, className, displayH1, stickyToc, isTooltip } = this.props;
-    const parsed = separateFrontMatter(content || '');
-    const filteredContent = filterContent(parsed.content);
+    const { childProps, content, className, title, stickyToc, isTooltip } = this.props;
 
     const md = remark();
 
@@ -92,10 +89,10 @@ export default class DocMarkdownBlock extends React.PureComponent<Props> {
         className={classNames('markdown', className, { 'has-toc': stickyToc })}
         ref={ref => (this.node = ref)}>
         <div className="markdown-content">
-          {displayH1 && <h1 className="documentation-title">{parsed.frontmatter.title}</h1>}
-          {md.processSync(filteredContent).contents}
+          {title !== undefined && <h1 className="documentation-title">{title}</h1>}
+          {md.processSync(content).contents}
         </div>
-        {stickyToc && <DocToc content={filteredContent} onAnchorClick={this.handleAnchorClick} />}
+        {stickyToc && <DocToc content={content} onAnchorClick={this.handleAnchorClick} />}
       </div>
     );
   }
index 8aba588c84888a995fb27833608a5dcdf42f891a..d3677270f84d44447c5269a82b825a18605db33e 100644 (file)
@@ -20,6 +20,7 @@
 import * as React from 'react';
 import HelpTooltip from 'sonar-ui-common/components/controls/HelpTooltip';
 import { lazyLoad } from 'sonar-ui-common/components/lazyLoad';
+import { filterContent } from '../../helpers/markdown';
 
 const DocMarkdownBlock = lazyLoad(() => import('./DocMarkdownBlock'));
 
@@ -73,7 +74,7 @@ export default class DocTooltip extends React.PureComponent<Props, State> {
             <DocMarkdownBlock
               childProps={this.props.overlayProps}
               className="cut-margins"
-              content={this.state.content}
+              content={filterContent(this.state.content)}
               isTooltip={true}
             />
           </div>