import React from 'react'; import clsx from 'clsx'; import Layout from '@theme/Layout'; import Link from '@docusaurus/Link'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import useBaseUrl from '@docusaurus/useBaseUrl'; import styles from './styles.module.css'; const features = [ { title: <>Configurable, imageUrl: 'img/undraw_docusaurus_mountain.svg', description: ( <> Define and apply your rules and policies. Integrate with your workflow. ), }, { title: <>Extendable via plugins, imageUrl: 'img/undraw_docusaurus_mountain.svg', description: ( <> Define your custom metric. Add new language parser. Create advanced post-analysis tool. ), }, { title: <>Multiple metrics, imageUrl: 'img/undraw_docusaurus_react.svg', description: ( <> Complexity, size and other. ), }, { title: <>Multiple languages, imageUrl: 'img/undraw_docusaurus_tree.svg', description: ( <> C/C++, C# and Java. Recognises classes, interfaces, namespaces, functions, comments, preprocessor and much more. ), }, { title: <>High performance and scalability, imageUrl: 'img/undraw_docusaurus_react.svg', description: ( <> Applicable to huge code bases: thousands of files per minute. Ultra-fast feedback on iterative re-run. ), }, { title: <>Effortless application to legacy code, imageUrl: 'img/undraw_docusaurus_react.svg', description: ( <> Recognises legacy, modified and new code. Prevents from negative trends. Encourages positive. ), }, ]; function Feature({imageUrl, title, description}) { const imgUrl = useBaseUrl(imageUrl); return (
{imgUrl && (
{title}
)}

{title}

{description}

); } function Home() { const context = useDocusaurusContext(); const {siteConfig = {}} = context; return (

{siteConfig.title}

{siteConfig.tagline}

Get Started
{features && features.length > 0 && (
{features.map((props, idx) => ( ))}
)}
); } export default Home;