mirror of
https://github.com/jambonz/next-static-site.git
synced 2025-12-19 04:47:44 +00:00
organize src directory, lighthouse fixes
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import Layout from '../components/layout';
|
||||
import { Hero } from '../components/jambonz-ui';
|
||||
import { getData } from '../lib/data';
|
||||
import Layout from '../src/components/layout';
|
||||
import { Hero } from '../src/components/jambonz-ui';
|
||||
import { getData } from '../src/lib/data';
|
||||
|
||||
export default function Page404({ data }) {
|
||||
return (
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import '../styles/global.scss';
|
||||
import '../src/styles/global.scss';
|
||||
|
||||
export default function App({Component, pageProps}) {
|
||||
return <Component {...pageProps} />;
|
||||
|
||||
13
pages/_document.js
Normal file
13
pages/_document.js
Normal file
@@ -0,0 +1,13 @@
|
||||
import { Html, Head, Main, NextScript } from 'next/document';
|
||||
|
||||
export default function Document() {
|
||||
return (
|
||||
<Html lang="en">
|
||||
<Head />
|
||||
<body>
|
||||
<Main />
|
||||
<NextScript />
|
||||
</body>
|
||||
</Html>
|
||||
);
|
||||
}
|
||||
@@ -2,9 +2,9 @@ import { useEffect } from 'react';
|
||||
|
||||
import Prism from 'prismjs';
|
||||
|
||||
import Layout from '../../components/layout';
|
||||
import Markdown from '../../components/markdown';
|
||||
import { getData, getMarkdown, getMarkdownPaths } from '../../lib/data';
|
||||
import Layout from '../../src/components/layout';
|
||||
import Markdown from '../../src/components/markdown';
|
||||
import { getData, getMarkdown, getMarkdownPaths } from '../../src/lib/data';
|
||||
|
||||
export default function Docs({ data, docs }) {
|
||||
useEffect(() => {
|
||||
|
||||
@@ -2,15 +2,15 @@ import { nanoid } from 'nanoid';
|
||||
import classNames from 'classnames';
|
||||
import { useState, useEffect, useRef } from 'react';
|
||||
|
||||
import Layout from '../components/layout';
|
||||
import { Latest, Hero, Icon, Button, H6, H5, H2, P, MS, normalizeSubtext, normalizeSlug, useMobileMedia } from '../components/jambonz-ui';
|
||||
import { getData } from '../lib/data';
|
||||
import Layout from '../src/components/layout';
|
||||
import { Latest, Hero, Icon, Button, H6, H4, H3, H2, P, MS, normalizeSubtext, normalizeSlug, useMobileMedia } from '../src/components/jambonz-ui';
|
||||
import { getData } from '../src/lib/data';
|
||||
|
||||
function Tech({data}) {
|
||||
return (
|
||||
<section className="tech wrap">
|
||||
<div className="tech__image">
|
||||
<img src={data.image} />
|
||||
<img src={data.image.src} width={data.image.width} height={data.image.height} alt={data.image.alt} />
|
||||
</div>
|
||||
<ul className="tech__notes">
|
||||
{data.notes.map((note) => {
|
||||
@@ -61,10 +61,10 @@ function Dilemma({data}) {
|
||||
<H2>{data.headline}</H2>
|
||||
</div>
|
||||
<div className="dilemma__subtext">
|
||||
<H5>
|
||||
<H3 className="h5">
|
||||
{/* Use dangerouslySetInnerHTML to render inline spans from YAML data */}
|
||||
{normalizeSubtext(data.subtext).map((subtext) => <div key={nanoid()} dangerouslySetInnerHTML={{ __html: subtext }} />)}
|
||||
</H5>
|
||||
</H3>
|
||||
</div>
|
||||
<div className="dilemma__tables">
|
||||
{data.tables.map((table) => {
|
||||
@@ -83,7 +83,7 @@ function Dilemma({data}) {
|
||||
return (
|
||||
<div key={slug} className={classNames(tableClasses)}>
|
||||
<div className="dilemma__table__title" onClick={() => handleToggle(slug)}>
|
||||
{table.logo ? <img src={table.logo} /> : <P><strong>{table.title}</strong></P>}
|
||||
{table.logo ? <img src={table.logo} width="128" height="42" alt="jambonz" /> : <P><strong>{table.title}</strong></P>}
|
||||
<span className="dilemma__table__toggle" >
|
||||
{isActiveToggle ? <Icon name="ChevronUp" /> : <Icon name="ChevronDown" />}
|
||||
</span>
|
||||
@@ -124,7 +124,7 @@ function BYO({data}) {
|
||||
<H2>{data.headline}</H2>
|
||||
</div>
|
||||
<div className="byo__subtext">
|
||||
<H5>{data.subtext}</H5>
|
||||
<H3 className="h5">{data.subtext}</H3>
|
||||
</div>
|
||||
<div className="byo__icons icons">
|
||||
{data.icons.map((icon) => {
|
||||
@@ -132,10 +132,10 @@ function BYO({data}) {
|
||||
})}
|
||||
</div>
|
||||
<div className="byo__comment">
|
||||
<H5>
|
||||
<H4 className="h5">
|
||||
{/* Use dangerouslySetInnerHTML to render inline link from YAML data */}
|
||||
<div dangerouslySetInnerHTML={{ __html: data.comment }} />
|
||||
</H5>
|
||||
</H4>
|
||||
</div>
|
||||
<div className="byo__cta">
|
||||
<Button href={data.url} subStyle="dark" target="_blank">{data.cta}</Button>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import Link from 'next/link';
|
||||
|
||||
import Layout from '../components/layout';
|
||||
import { P, M, MS, MXS, H1, H2, H3, H4, H5, H6, Button, Icon } from '../components/jambonz-ui';
|
||||
import { getData } from '../lib/data';
|
||||
import Layout from '../src/components/layout';
|
||||
import { P, M, MS, MXS, H1, H2, H3, H4, H5, H6, Button, Icon } from '../src/components/jambonz-ui';
|
||||
import { getData } from '../src/lib/data';
|
||||
|
||||
export default function JambonzUI({ data }) {
|
||||
const pageData = data['jambonz-ui'];
|
||||
|
||||
@@ -2,9 +2,9 @@ import { useEffect } from 'react';
|
||||
|
||||
import Prism from 'prismjs';
|
||||
|
||||
import Layout from '../../components/layout';
|
||||
import Markdown from '../../components/markdown';
|
||||
import { getData, getMarkdown, getMarkdownPaths } from '../../lib/data';
|
||||
import Layout from '../../src/components/layout';
|
||||
import Markdown from '../../src/components/markdown';
|
||||
import { getData, getMarkdown, getMarkdownPaths } from '../../src/lib/data';
|
||||
|
||||
export default function OpenSource({ data, docs }) {
|
||||
useEffect(() => {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { nanoid } from 'nanoid';
|
||||
|
||||
import Layout from '../components/layout';
|
||||
import { Hero, Icon, Button, H2, H6, P, normalizeSubtext } from '../components/jambonz-ui';
|
||||
import { getData } from '../lib/data';
|
||||
import Layout from '../src/components/layout';
|
||||
import { Hero, Icon, Button, H2, P, normalizeSubtext } from '../src/components/jambonz-ui';
|
||||
import { getData } from '../src/lib/data';
|
||||
|
||||
function Structure({data}) {
|
||||
return (
|
||||
@@ -10,7 +10,7 @@ function Structure({data}) {
|
||||
<div className="wrap structure__text">
|
||||
<>
|
||||
{normalizeSubtext(data.text).map((text) => {
|
||||
return <H6 key={nanoid()}>{text}</H6>;
|
||||
return <P className="h6" key={nanoid()}>{text}</P>;
|
||||
})}
|
||||
</>
|
||||
</div>
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
import Layout from '../components/layout';
|
||||
import { Hero, TextLayout } from '../components/jambonz-ui';
|
||||
import { getData, getParsedMarkdown } from '../lib/data';
|
||||
import Layout from '../src/components/layout';
|
||||
import { Hero, TextLayout, normalizeTextLayout } from '../src/components/jambonz-ui';
|
||||
import { getData, getParsedMarkdown } from '../src/lib/data';
|
||||
import path from 'path';
|
||||
|
||||
export default function Privacy({ data, parsed }) {
|
||||
parsed.contentHtml = normalizeTextLayout(parsed.contentHtml);
|
||||
|
||||
return (
|
||||
<Layout siteData={data.site}>
|
||||
<Hero data={data.privacy.hero} subStyle="privacy" />
|
||||
<div className="wrap pad-b">
|
||||
<TextLayout data={parsed} />
|
||||
</div>
|
||||
<section className="wrap pad-b">
|
||||
<TextLayout data={parsed} name="privacy" />
|
||||
</section>
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
import Layout from '../components/layout';
|
||||
import { Hero, TextLayout } from '../components/jambonz-ui';
|
||||
import { getData, getParsedMarkdown } from '../lib/data';
|
||||
import Layout from '../src/components/layout';
|
||||
import { Hero, TextLayout, normalizeTextLayout } from '../src/components/jambonz-ui';
|
||||
import { getData, getParsedMarkdown } from '../src/lib/data';
|
||||
import path from 'path';
|
||||
|
||||
export default function Terms({ data, parsed }) {
|
||||
parsed.contentHtml = normalizeTextLayout(parsed.contentHtml);
|
||||
|
||||
return (
|
||||
<Layout siteData={data.site}>
|
||||
<Hero data={data.terms.hero} subStyle="terms" />
|
||||
<div className="wrap pad-b">
|
||||
<TextLayout data={parsed} />
|
||||
</div>
|
||||
<section className="wrap pad-b">
|
||||
<TextLayout data={parsed} name="terms" />
|
||||
</section>
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
|
||||
12
pages/why.js
12
pages/why.js
@@ -1,8 +1,8 @@
|
||||
import { nanoid } from 'nanoid';
|
||||
|
||||
import Layout from '../components/layout';
|
||||
import { Hero, Icon, Button, H5, H2, P } from '../components/jambonz-ui';
|
||||
import { getData } from '../lib/data';
|
||||
import Layout from '../src/components/layout';
|
||||
import { Hero, Icon, Button, H3, H2, P } from '../src/components/jambonz-ui';
|
||||
import { getData } from '../src/lib/data';
|
||||
|
||||
function Facts({data}) {
|
||||
return (
|
||||
@@ -14,7 +14,7 @@ function Facts({data}) {
|
||||
<div key={nanoid()} className="facts__item">
|
||||
<Icon name={fact.icon} mainStyle="fill" />
|
||||
<div className="facts__text">
|
||||
<H5><strong>{fact.title}</strong></H5>
|
||||
<P className="h5"><strong>{fact.title}</strong></P>
|
||||
<P>{fact.text}</P>
|
||||
</div>
|
||||
</div>
|
||||
@@ -36,7 +36,7 @@ function OS({data}) {
|
||||
</H2>
|
||||
</div>
|
||||
<div className="os__subtext">
|
||||
<H5>{data.subtext}</H5>
|
||||
<H3 className="h5">{data.subtext}</H3>
|
||||
</div>
|
||||
<div className="btns os__btns">
|
||||
{data.buttons.map((button) => {
|
||||
@@ -49,7 +49,7 @@ function OS({data}) {
|
||||
})}
|
||||
</div>
|
||||
<div className="os__logo">
|
||||
<img src={data.logo} />
|
||||
<img src={data.logo} width="313" height="71" alt="drachtio" />
|
||||
<Button href="https://github.com/sponsors/drachtio/" target="_blank" mainStyle="pill" subStyle="jambonz">
|
||||
<Icon name="Heart" />
|
||||
<span>Sponsor</span>
|
||||
|
||||
Reference in New Issue
Block a user