From ee4d8acd249aa16b77754ca07254892552a27449 Mon Sep 17 00:00:00 2001 From: Flor Date: Wed, 27 Nov 2024 09:41:49 -0300 Subject: [PATCH 1/5] changes h1 titles to h2 --- src/components/BannerList/Banner.scss | 8 +++++++- src/components/BannerList/BannerList.js | 8 ++++---- .../AnimatedTransitionContinous.js | 2 +- .../animatedTransitionContinous.scss | 4 ++++ 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/components/BannerList/Banner.scss b/src/components/BannerList/Banner.scss index 09ab2a3..bc40eb9 100644 --- a/src/components/BannerList/Banner.scss +++ b/src/components/BannerList/Banner.scss @@ -9,11 +9,17 @@ gap: 16px; } + h2 { + font-size: 52px; + margin: 0; + } + + .card_item { gap: 8px; align-items: center; - h2 { + h3 { font-size: 28px; margin: 0; } diff --git a/src/components/BannerList/BannerList.js b/src/components/BannerList/BannerList.js index fb42bc3..baddb4e 100644 --- a/src/components/BannerList/BannerList.js +++ b/src/components/BannerList/BannerList.js @@ -25,12 +25,12 @@ export default function BannerList({ data }) {
{item?.english_landing_page ? ( -

{item.title}

+

{item.title}

{item.description}

) : ( <> -

{item.title}

+

{item.title}

{item.description}

)} @@ -42,12 +42,12 @@ export default function BannerList({ data }) { return (
-

+

{title} {contactForm && concactFormAnchor && callToAction && ( {callToAction} )} -

+
{cards}
diff --git a/src/components/animatedTransitionContinous/AnimatedTransitionContinous.js b/src/components/animatedTransitionContinous/AnimatedTransitionContinous.js index e349fb1..682df20 100644 --- a/src/components/animatedTransitionContinous/AnimatedTransitionContinous.js +++ b/src/components/animatedTransitionContinous/AnimatedTransitionContinous.js @@ -30,7 +30,7 @@ const AnimatedTransitionContinous = ({ data }) => { className={""} /> )} -

{innerText || ""}

+

{innerText || ""}

{(imagePosition === "last" || !imagePosition) && image && ( Date: Wed, 27 Nov 2024 12:40:07 -0300 Subject: [PATCH 2/5] width y height agregado a la imagen de videoBackground --- src/components/videoBackground/VideoBackground.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/videoBackground/VideoBackground.js b/src/components/videoBackground/VideoBackground.js index 7c09c96..ddccaeb 100644 --- a/src/components/videoBackground/VideoBackground.js +++ b/src/components/videoBackground/VideoBackground.js @@ -103,7 +103,7 @@ function getVideoContent(video, videoRef, isIntersecting, pausePlay, handleKeyDo } } else { - videoContent = imageData ? :

+ videoContent = imageData ? :

} return videoContent; From d0ec91097c2d66641aaecc5adcaf649b107f419f Mon Sep 17 00:00:00 2001 From: santiortizrv Date: Thu, 28 Nov 2024 11:08:03 -0300 Subject: [PATCH 3/5] eliminadas dependencias innecesarias de FontAwesome --- src/components/FaIcon/FaIcon.js | 28 ++++++++++++++----- .../FontAwesomeOne/FontAwesomeOne.js | 15 ++++++---- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/components/FaIcon/FaIcon.js b/src/components/FaIcon/FaIcon.js index 7c22354..9e1aa4a 100644 --- a/src/components/FaIcon/FaIcon.js +++ b/src/components/FaIcon/FaIcon.js @@ -1,20 +1,34 @@ import React from "react" import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" -import "../FontAwesomeOne/FontAwesomeOne" +import { faEnvelope, faLocationDot } from "@fortawesome/free-solid-svg-icons" +import { faLinkedin, faTwitter, faInstagram, faYoutube, faSpotify } from "@fortawesome/free-brands-svg-icons" import PropTypes from "prop-types" +// Mapeo de los íconos que se usan +const iconMap = { + "fa-envelope": faEnvelope, + "fa-location-dot": faLocationDot, + "fa-linkedin": faLinkedin, + "fa-twitter": faTwitter, + "fa-instagram": faInstagram, + "fa-youtube": faYoutube, + "fa-spotify": faSpotify, +} const FaIcon = ({ type, code }) => { - return ( -
- -
- ) + const icon = iconMap[code] + + if (!icon) { + console.warn(`Icono no encontrado: type=${type}, code=${code}`) + return null + } + + return } FaIcon.propTypes = { type: PropTypes.string.isRequired, - code: PropTypes.string.isRequired + code: PropTypes.string.isRequired, } export default FaIcon \ No newline at end of file diff --git a/src/components/FontAwesomeOne/FontAwesomeOne.js b/src/components/FontAwesomeOne/FontAwesomeOne.js index f842dda..36959b8 100644 --- a/src/components/FontAwesomeOne/FontAwesomeOne.js +++ b/src/components/FontAwesomeOne/FontAwesomeOne.js @@ -1,8 +1,11 @@ import { library } from '@fortawesome/fontawesome-svg-core' -import { fas } from '@fortawesome/free-solid-svg-icons' -import { far } from '@fortawesome/free-regular-svg-icons' -import { fab } from '@fortawesome/free-brands-svg-icons' +import { faEnvelope, faLocationDot } from "@fortawesome/free-solid-svg-icons" +import { faLinkedin, faTwitter, faInstagram, faYoutube, faSpotify } from "@fortawesome/free-brands-svg-icons" -library.add(fas) -library.add(far) -library.add(fab) \ No newline at end of file +library.add(faEnvelope) +library.add(faLocationDot) +library.add(faLinkedin) +library.add(faTwitter) +library.add(faInstagram) +library.add(faYoutube) +library.add(faSpotify) \ No newline at end of file From d99f0db29a2eb274d45eb3a208d8d26d66b9675c Mon Sep 17 00:00:00 2001 From: Flor Date: Thu, 28 Nov 2024 12:04:07 -0300 Subject: [PATCH 4/5] title tag ahora con pageTitle --- src/hooks/useBlog.js | 5 +++++ src/templates/BlogItemDetail.js | 2 +- src/templates/LandingPage.js | 5 +++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/hooks/useBlog.js b/src/hooks/useBlog.js index e6a7495..f9f5a04 100644 --- a/src/hooks/useBlog.js +++ b/src/hooks/useBlog.js @@ -38,6 +38,11 @@ const useBlog = () => { blog_category { name } + seo { + pageTitle + pageKeywords + pageDescription + } } } allStrapiBlogPage: allStrapiEnglishBlogPage { diff --git a/src/templates/BlogItemDetail.js b/src/templates/BlogItemDetail.js index 34701c8..550176a 100644 --- a/src/templates/BlogItemDetail.js +++ b/src/templates/BlogItemDetail.js @@ -16,7 +16,7 @@ const BlogDetail = ({ data }) => { return ( diff --git a/src/templates/LandingPage.js b/src/templates/LandingPage.js index 78d634f..ecc1e9b 100644 --- a/src/templates/LandingPage.js +++ b/src/templates/LandingPage.js @@ -16,11 +16,11 @@ const LandingPage = ({ data, location }) => { ref: wrapperRef, } - const { pageKeywords, pageDescription } = seo || {} + const {pageTitle, pageKeywords, pageDescription } = seo || {} return ( - + {body?.length > 0 && navigation ? ( <> @@ -72,6 +72,7 @@ export const query = graphql` slug } seo { + pageTitle pageKeywords pageDescription } From 8d81ac1995793e5a8b8f3380f602d60e4f9e6446 Mon Sep 17 00:00:00 2001 From: Flor Date: Mon, 2 Dec 2024 13:18:33 -0300 Subject: [PATCH 5/5] datos estructurados para los blogs --- src/templates/BlogItemDetail.js | 36 ++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/templates/BlogItemDetail.js b/src/templates/BlogItemDetail.js index 550176a..3216b71 100644 --- a/src/templates/BlogItemDetail.js +++ b/src/templates/BlogItemDetail.js @@ -5,14 +5,41 @@ import Layout from "../components/layout" import { Seo, BannerTop } from "../components/index.js" import "./BlogItemDetail.scss" import PropTypes from "prop-types" +import { Helmet } from "react-helmet" import { getImage, GatsbyImage } from "gatsby-plugin-image" const BlogDetail = ({ data }) => { - const { title, description, image, imagePage, author, seo } = + const { title, description, image, imagePage, author, seo, published_at, updated_at } = data?.allStrapiArticle?.nodes[0] || {} const bannerTop = imagePage ? { title, imagePage } : { title, image } + const structuredData = { + "@context": "https://schema.org", + "@type": "Article", + "headline": seo?.pageTitle || title, // Usa pageTitle de SEO o el título + "description": seo?.pageDescription || description, + "image": imagePage?.url || image?.url, // Imagen principal + "author": author?.map(auth => ({ + "@type": "Person", + "name": auth.name, + })), + "datePublished": published_at, // Ajusta con la fecha real + "dateModified": updated_at, // Ajusta con la fecha real + "mainEntityOfPage": { + "@type": "WebPage", + "@id": `https://es.bitlogic.io/blog/${data?.allStrapiArticle?.nodes[0]?.slug}`, + }, + "publisher": { + "@type": "Organization", + "name": "Bitlogic", + "logo": { + "@type": "ImageObject", + "url": "https://bitlogic.io/static/64f396cb88cfcbfda46b86c5218242f2/de081/Logo_Bit_azul_7e725e9726.webp", // URL del logo del sitio + }, + }, + } + return ( { description={seo?.pageDescription} keywords={seo?.pageKeywords} /> + + +
@@ -110,6 +142,8 @@ export const query = graphql` title description slug + published_at + updated_at seo { pageTitle pageDescription