upd sitemetadata

This commit is contained in:
Sergey Yarkov 2020-07-08 16:55:54 +03:00
parent f15a73bd76
commit 6c04635a9b
9 changed files with 38 additions and 29 deletions

View File

@ -10,7 +10,6 @@ module.exports = {
titleTemplate: '%s · статьи и руководства по веб-разработке', titleTemplate: '%s · статьи и руководства по веб-разработке',
description: 'сборник статей и руководств по тематике веб-разработки и IT для того чтобы помочь вам', description: 'сборник статей и руководств по тематике веб-разработки и IT для того чтобы помочь вам',
url: 'https://devthread.ru', url: 'https://devthread.ru',
email: 'support@devthread.ru',
menuLinks: [ menuLinks: [
{ {
name: 'Статьи', name: 'Статьи',
@ -28,7 +27,13 @@ module.exports = {
name: 'Ресурсы', name: 'Ресурсы',
link: '/books' link: '/books'
} }
] ],
social: {
email: 'support@devthread.ru',
telegram: 'https://t.me/devthread',
twitter: 'https://twitter.com/devthread',
yadzen: 'https://zen.yandex.ru/'
}
}, },
plugins: [ plugins: [
'gatsby-plugin-react-helmet', 'gatsby-plugin-react-helmet',

View File

@ -5,7 +5,7 @@ import './About.scss'
import ContactsIcon from '../../images/contacts-icon.svg' import ContactsIcon from '../../images/contacts-icon.svg'
const About = ({ title, pageTitle, email }) => { const About = ({ title, pageTitle, social }) => {
return ( return (
<div className="about"> <div className="about">
<div className="about-heading"> <div className="about-heading">
@ -29,8 +29,8 @@ const About = ({ title, pageTitle, email }) => {
<span>контакты</span> <span>контакты</span>
</div> </div>
<ul> <ul>
<li><a href={`mailto:${email}`}>{email}</a></li> <li><a href={`mailto:${social.email}`}>{social.email}</a></li>
<li><a href="/">telegram</a></li> <li><a href={social.telegram} target='_blank' rel='noreferrer'>telegram</a></li>
<Link to='/contacts'>форма обратной связи</Link> <Link to='/contacts'>форма обратной связи</Link>
</ul> </ul>
</div> </div>

View File

@ -6,8 +6,7 @@ import './Contacts.scss'
import MemoIcon from '../../images/memo-icon.svg' import MemoIcon from '../../images/memo-icon.svg'
const Contacts = () => { const Contacts = () => {
const { siteMetadata: { email } } = useSiteMetadataQuery() const { siteMetadata: { social: { email, telegram } } } = useSiteMetadataQuery()
return ( return (
<div className="contacts"> <div className="contacts">
<div className="contacts-heading"> <div className="contacts-heading">
@ -24,7 +23,7 @@ const Contacts = () => {
<h2>контактные данные</h2> <h2>контактные данные</h2>
<ul> <ul>
<li><a href={`mailto:${email}`}>{email}</a></li> <li><a href={`mailto:${email}`}>{email}</a></li>
<li><a href="/">telegram</a></li> <li><a href={telegram}>telegram</a></li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -1,44 +1,44 @@
import React from 'react'; import React from 'react';
import { Link } from 'gatsby' import { Link } from 'gatsby'
import PropTypes from 'prop-types' import PropTypes from 'prop-types'
import useSiteMetadataQuery from '../../hooks/useSiteMetadataQuery'
import './Footer.scss' import './Footer.scss'
import LogoIcon from '../../images/logo-icon.svg' import LogoIcon from '../../images/logo-icon.svg'
import GatsbyIcon from '../../images/gatsby-icon.svg' import GatsbyIcon from '../../images/gatsby-icon.svg'
import NetlifyIcon from '../../images/netlify-icon.svg' import NetlifyIcon from '../../images/netlify-icon.svg'
const Footer = ({ title }) => { const Footer = () => {
const { siteMetadata: { title, menuLinks, social: { email, telegram, twitter, yadzen } } } = useSiteMetadataQuery()
return ( return (
<footer> <footer>
<div className="footer-content"> <div className="footer-content">
<div className="footer-content__logo"> <div className="footer-content__logo">
<LogoIcon /> <LogoIcon />
<a href="/">{title}</a> <Link to='/'>{title}</Link>
</div> </div>
<div className="footer-content__nav"> <div className="footer-content__nav">
<div className="footer-nav__links"> <div className="footer-nav__links">
<div className="links-nav"> <div className="links-nav">
<p>Навигация</p> <p>Навигация</p>
<ul> <ul>
<li><Link to='/articles'>Статьи</Link></li> {menuLinks.map((page, i) => page.link !== '/contacts' ? <li key={i}><Link to={page.link}>{page.name}</Link></li> : null)}
<li><Link to='/about'>О сайте</Link></li>
<li><Link to='/books'>Ресурсы</Link></li>
</ul> </ul>
</div> </div>
<div className="links-contacts"> <div className="links-contacts">
<p>Контакты</p> <p>Контакты</p>
<ul> <ul>
<li><Link to='/contacts'>Форма обратной связи</Link></li> <li><Link to='/contacts'>Форма обратной связи</Link></li>
<li><a href="/">Телеграмм</a></li> <li><a href={telegram}>Телеграмм</a></li>
<li><a href="mailto:support@devthread.ru">Почта</a></li> <li><a href={`mailto:${email}`}>Почта</a></li>
</ul> </ul>
</div> </div>
<div className="links-social"> <div className="links-social">
<p>Социальные сети</p> <p>Социальные сети</p>
<ul> <ul>
<li><a href="https://t.me/devthread" rel='noreferrer' target='_blank'>Наш телеграмм канал</a></li> <li><a href={telegram} rel='noreferrer' target='_blank'>Наш телеграмм канал</a></li>
<li><a href="/" target='_blank'>Яндекс.Дзен</a></li> <li><a href={yadzen} rel='noreferrer' target='_blank'>Яндекс.Дзен</a></li>
<li><a href="https://twitter.com/devthread" rel='noreferrer' target='_blank'>Твиттер</a></li> <li><a href={twitter} rel='noreferrer' target='_blank'>Твиттер</a></li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -2,6 +2,7 @@ import React from 'react'
import { useLocation } from '@reach/router' import { useLocation } from '@reach/router'
import PropTypes from 'prop-types' import PropTypes from 'prop-types'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import useSiteMetadataQuery from '../../hooks/useSiteMetadataQuery'
import ThemeContext from '../../context/ThemeContext' import ThemeContext from '../../context/ThemeContext'
import './Header.scss' import './Header.scss'
@ -11,7 +12,8 @@ import TwitterIcon from '../../images/twitter-icon.svg'
import MoonIcon from '../../images/moon-icon.svg' import MoonIcon from '../../images/moon-icon.svg'
import SunIcon from '../../images/sun-icon.svg' import SunIcon from '../../images/sun-icon.svg'
const Header = ({ title, menuLinks }) => { const Header = () => {
const { siteMetadata: { title, menuLinks, social: { twitter, telegram } } } = useSiteMetadataQuery()
const [isScrolled, setIsScrolled] = React.useState(false) const [isScrolled, setIsScrolled] = React.useState(false)
const [isMobileOpen, setIsMobileOpen] = React.useState(false) const [isMobileOpen, setIsMobileOpen] = React.useState(false)
const { pathname } = useLocation() const { pathname } = useLocation()
@ -42,10 +44,10 @@ const Header = ({ title, menuLinks }) => {
</div> </div>
<div className="header-content__nav desktop"> <div className="header-content__nav desktop">
<div className="header-nav__social"> <div className="header-nav__social">
<a href="/" target="_blank"> <a href={telegram} target="_blank" rel='noreferrer'>
<TelegramIcon /> <TelegramIcon />
</a> </a>
<a href="/" target="_blank"> <a href={twitter} target="_blank" rel='noreferrer'>
<TwitterIcon /> <TwitterIcon />
</a> </a>
</div> </div>

View File

@ -1,16 +1,13 @@
import React from 'react' import React from 'react'
import useSiteMetadataQuery from '../../hooks/useSiteMetadataQuery'
import Header from '../Header/Header' import Header from '../Header/Header'
import Footer from '../Footer/Footer' import Footer from '../Footer/Footer'
const Layout = ({ children }) => { const Layout = ({ children }) => {
const { siteMetadata } = useSiteMetadataQuery()
return ( return (
<> <>
<Header title={siteMetadata.title} menuLinks={siteMetadata.menuLinks} /> <Header />
{children} {children}
<Footer title={siteMetadata.title} /> <Footer />
</> </>
) )
} }

View File

@ -8,12 +8,17 @@ const useSiteMetadata = () => {
title title
titleTemplate titleTemplate
description description
email
siteUrl: url siteUrl: url
menuLinks { menuLinks {
name name
link link
} }
social {
email
telegram
twitter
yadzen
}
} }
} }
} }

View File

@ -6,7 +6,7 @@ import Offers from '../components/Offers/Offers'
import About from '../components/About/About' import About from '../components/About/About'
const AboutPage = () => { const AboutPage = () => {
const { siteMetadata: { title, menuLinks, email } } = useSiteMetadataQuery() const { siteMetadata: { title, menuLinks, social } } = useSiteMetadataQuery()
return ( return (
<Layout> <Layout>
<SEO title='О сайте' description='Этот сайт придуман для того, чтобы помочь вам разобраться с вашей проблемой и решить её. Сайт содержит в себе статьи и руководства.' /> <SEO title='О сайте' description='Этот сайт придуман для того, чтобы помочь вам разобраться с вашей проблемой и решить её. Сайт содержит в себе статьи и руководства.' />
@ -14,7 +14,7 @@ const AboutPage = () => {
<div className="container-fluid"> <div className="container-fluid">
<div className="row"> <div className="row">
<div className="col-md-9 col-xs-12"> <div className="col-md-9 col-xs-12">
<About title={title} pageTitle={menuLinks.filter(page => page.link === '/about')[0].name} email={email} /> <About title={title} pageTitle={menuLinks.filter(page => page.link === '/about')[0].name} social={social} />
</div> </div>
<div className="col-md-3 col-xs-12"> <div className="col-md-3 col-xs-12">
<Offers /> <Offers />

View File

@ -50,6 +50,7 @@
position: relative; position: relative;
top: -150px; top: -150px;
visibility: hidden; visibility: hidden;
height: 0;
} }
.inner { .inner {