From 4ccf88416205c8c655e5c121460efae08d4c2eeb Mon Sep 17 00:00:00 2001 From: Marco Farina Date: Wed, 3 Jun 2026 00:09:18 +0200 Subject: [PATCH] chore(cleanup): rimuove dead code dei componenti legacy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rimuove Hero/ (PDBLogo, GridBackground, Logo), Chapters/ e HomepageFeatures/: residui del template Docusaurus e del vecchio hero, non più referenziati. La homepage usa VolumeCard, BentoFeatures e ChapterIndex. Typecheck e build verdi. Co-Authored-By: Claude Opus 4.8 --- src/components/Chapters/Section/index.tsx | 17 -- .../Chapters/Section/styles.module.css | 27 ---- .../Chapters/SectionTitle/index.tsx | 23 --- .../Chapters/SectionTitle/styles.module.css | 26 ---- src/components/Chapters/ThemeImage/index.tsx | 47 ------ src/components/Chapters/index.tsx | 60 ------- src/components/Chapters/styles.module.css | 74 --------- src/components/Hero/GridBackground.tsx | 147 ------------------ src/components/Hero/Logo/index.tsx | 13 -- src/components/Hero/PDBLogo.tsx | 80 ---------- src/components/HomepageFeatures/index.tsx | 77 --------- .../HomepageFeatures/styles.module.css | 11 -- 12 files changed, 602 deletions(-) delete mode 100644 src/components/Chapters/Section/index.tsx delete mode 100644 src/components/Chapters/Section/styles.module.css delete mode 100644 src/components/Chapters/SectionTitle/index.tsx delete mode 100644 src/components/Chapters/SectionTitle/styles.module.css delete mode 100644 src/components/Chapters/ThemeImage/index.tsx delete mode 100644 src/components/Chapters/index.tsx delete mode 100644 src/components/Chapters/styles.module.css delete mode 100644 src/components/Hero/GridBackground.tsx delete mode 100644 src/components/Hero/Logo/index.tsx delete mode 100644 src/components/Hero/PDBLogo.tsx delete mode 100644 src/components/HomepageFeatures/index.tsx delete mode 100644 src/components/HomepageFeatures/styles.module.css diff --git a/src/components/Chapters/Section/index.tsx b/src/components/Chapters/Section/index.tsx deleted file mode 100644 index 1276357..0000000 --- a/src/components/Chapters/Section/index.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; - -import styles from './styles.module.css'; - -interface SectionProps { - children: React.ReactNode; -} - -function Section({ children }: SectionProps) { - return ( -
-
{children}
-
- ); -} - -export default Section; diff --git a/src/components/Chapters/Section/styles.module.css b/src/components/Chapters/Section/styles.module.css deleted file mode 100644 index 5ad03f8..0000000 --- a/src/components/Chapters/Section/styles.module.css +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -.wrapper { - background: - linear-gradient( - to bottom, - var(--home-section-top), - var(--home-section-bottom) - ), - var(--home-section-top); - display: flex; - justify-content: center; -} - -.container { - max-width: 1000px; - padding: 8rem 1rem 5rem; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} diff --git a/src/components/Chapters/SectionTitle/index.tsx b/src/components/Chapters/SectionTitle/index.tsx deleted file mode 100644 index d387e9d..0000000 --- a/src/components/Chapters/SectionTitle/index.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import Heading from '@theme/Heading'; - -import styles from './styles.module.css'; - -interface SectionTitleProps { - title: string; - description: React.ReactNode; -} - -function SectionTitle({ title, description }: SectionTitleProps) { - return ( -
- - {title} - - - {description} - -
- ); -} - -export default SectionTitle; diff --git a/src/components/Chapters/SectionTitle/styles.module.css b/src/components/Chapters/SectionTitle/styles.module.css deleted file mode 100644 index 872d3cc..0000000 --- a/src/components/Chapters/SectionTitle/styles.module.css +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -.container { - text-align: center; - display: flex; - flex-direction: column; - align-items: center; -} - -.title { - font-size: 48px; -} - -.description { - font-size: 20px; - color: var(--home-secondary-text); - line-height: 150%; - margin-top: 1rem; - font-weight: normal; - max-width: 850px; -} diff --git a/src/components/Chapters/ThemeImage/index.tsx b/src/components/Chapters/ThemeImage/index.tsx deleted file mode 100644 index 624f681..0000000 --- a/src/components/Chapters/ThemeImage/index.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import React, { useState, useEffect } from 'react'; - -interface ThemeImageProps { - lightSrc: string; - darkSrc: string; - className?: string; - alt: string; -} - -function ThemeImage({ lightSrc, darkSrc, className, alt }: ThemeImageProps) { - const [theme, setTheme] = useState('light'); - - useEffect(() => { - const themeObserver = new MutationObserver((mutations) => { - mutations.forEach((mutation) => { - if ( - mutation.type === 'attributes' && - mutation.attributeName === 'data-theme' - ) { - const newTheme = (mutation.target as HTMLElement).getAttribute( - 'data-theme', - ); - if (newTheme) { - setTheme(newTheme); - } - } - }); - }); - - const htmlElement = document.documentElement; - themeObserver.observe(htmlElement, { - attributes: true, - }); - - return () => themeObserver.disconnect(); - }, []); - - return ( - {alt} - ); -} - -export default ThemeImage; diff --git a/src/components/Chapters/index.tsx b/src/components/Chapters/index.tsx deleted file mode 100644 index a391eea..0000000 --- a/src/components/Chapters/index.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import Link from '@docusaurus/Link'; -import Heading from '@theme/Heading'; - -import ThemeImage from './ThemeImage'; -import Section from './Section'; -import SectionTitle from './SectionTitle'; - -import styles from './styles.module.css'; - -function Chapters() { - return ( -
- Ogni capitolo del libro, a portata di mano.} - /> -
- - -
- - Fondamenti di Python - -

- Come installare e usare Python, cos'è un IDE, come si scrive - e si esegue un programma. -

-
- - - -
- - Le basi del linguaggio - -

- Input e output, le variabili, i tipi di dati, le operazioni - aritmetiche e le espressioni. -

-
- -
-
- ); -} - -export default Chapters; diff --git a/src/components/Chapters/styles.module.css b/src/components/Chapters/styles.module.css deleted file mode 100644 index ccca103..0000000 --- a/src/components/Chapters/styles.module.css +++ /dev/null @@ -1,74 +0,0 @@ -.cardContainer { - display: grid; - gap: 2rem; - margin: 2rem auto; - grid-template-columns: repeat(3, 1fr); -} - -.card { - text-decoration: none; - color: inherit; - border: 1px solid var(--home-border); - border-radius: 12px; - overflow: hidden; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.03); - background-color: var(--home-background); - display: flex; - flex-direction: column; -} - -.card:hover { - text-decoration: none; - color: inherit; -} - -.cardContent { - padding: 16px 24px; -} - -.cardTitle { - margin-top: 10px; - margin-bottom: 5px; - font-size: 20px; - line-height: 140%; -} - -.cardDescription { - margin-top: 0; - color: var(--home-secondary-text); - font-size: 16px; - line-height: 150%; -} - -@media only screen and (max-width: 900px) { - .cardContainer { - display: flex; - flex-direction: column; - } - - .card { - flex-direction: row; - text-align: left; - } - - .cardImage { - width: auto; - height: 150px; - margin: 1rem; - border-radius: 0.5rem; - border: 1px solid var(--home-border); - } -} - -@media only screen and (max-width: 650px) { - .card { - flex-direction: column; - text-align: center; - align-items: center; - } - - .cardImage { - margin-bottom: 0; - max-width: calc(100% - 2rem); - } -} diff --git a/src/components/Hero/GridBackground.tsx b/src/components/Hero/GridBackground.tsx deleted file mode 100644 index 79e80c6..0000000 --- a/src/components/Hero/GridBackground.tsx +++ /dev/null @@ -1,147 +0,0 @@ -import React from 'react'; - -function GridBackground() { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); -} - -export default GridBackground; diff --git a/src/components/Hero/Logo/index.tsx b/src/components/Hero/Logo/index.tsx deleted file mode 100644 index f891590..0000000 --- a/src/components/Hero/Logo/index.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import LogoSVG from '@site/static/img/logo.svg'; - -type LogoProps = { - width?: string; - height?: string; -}; - -const Logo: React.FC = ({ width = '250px', height = '250px' }) => { - return ; -}; - -export default Logo; diff --git a/src/components/Hero/PDBLogo.tsx b/src/components/Hero/PDBLogo.tsx deleted file mode 100644 index 3d92c93..0000000 --- a/src/components/Hero/PDBLogo.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import * as React from 'react'; - -const Logo: React.FC> = () => ( - - - - - - - - - - - - - - - - - - - - - -); - -export default Logo; diff --git a/src/components/HomepageFeatures/index.tsx b/src/components/HomepageFeatures/index.tsx deleted file mode 100644 index 57727cb..0000000 --- a/src/components/HomepageFeatures/index.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; - -type FeatureItem = { - title: string; - Svg: React.ComponentType>; - description: JSX.Element; -}; - -import Mountain from '@site/static/img/undraw_docusaurus_mountain.svg'; -import Tree from '@site/static/img/undraw_docusaurus_tree.svg'; -import ReactLogo from '@site/static/img/undraw_docusaurus_react.svg'; - -const FeatureList: FeatureItem[] = [ - { - title: 'Facile da usare', - Svg: Mountain, - description: ( - <> - Python Doesn't Byte è progettato per essere facile da usare. Basato - su Docusaurus, un framework React open source, è consultabile online da - qualsiasi dispositivo e in qualsiasi momento. - - ), - }, - { - title: 'Concentrati sulle cose importanti', - Svg: Tree, - description: ( - <> - Python Doesn't Byte è un libro pensato per essere un riferimento - per tutti gli studenti delle scuole superiori che voglio imparare - Python, senza i fronzoli di un libro di testo tradizionale. - - ), - }, - { - title: 'Come un libro dovrebbe essere', - Svg: ReactLogo, - description: ( - <> - I libri di testo cartacei non sono adatti all'insegnamento della - programmazione nell'era digitale. Python Doesn't Byte è un - libro digitale, con esempi interattivi e codice eseguibile. - - ), - }, -]; - -function Feature({ title, Svg, description }: FeatureItem) { - return ( -
-
- -
-
- {title} -

{description}

-
-
- ); -} - -export default function HomepageFeatures(): JSX.Element { - return ( -
-
-
- {FeatureList.map((props, idx) => ( - - ))} -
-
-
- ); -} diff --git a/src/components/HomepageFeatures/styles.module.css b/src/components/HomepageFeatures/styles.module.css deleted file mode 100644 index b248eb2..0000000 --- a/src/components/HomepageFeatures/styles.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 200px; - width: 200px; -}