+ );
+};
+
+Author.propTypes = {
+ name: PropTypes.string,
+ photo: PropTypes.string,
+ date: PropTypes.string,
+ github: PropTypes.string,
+ email: PropTypes.string,
+};
+
+export default Author;
diff --git a/src/components/author/author.module.css b/src/components/author/author.module.css
new file mode 100644
index 0000000..fd6b56c
--- /dev/null
+++ b/src/components/author/author.module.css
@@ -0,0 +1,41 @@
+.author {
+ display: flex;
+ margin: 3em 0;
+}
+
+.author__image {
+ width: 4.5em;
+ height: 4.5em;
+ border-radius: 50%;
+ overflow: hidden;
+ margin: 0 1em;
+}
+
+.author__image img {
+ display: block;
+ width: 100%;
+}
+
+.author__info {
+ width: 50%;
+}
+
+.author__name {
+ font-size: 1rem;
+ font-weight: bold;
+}
+
+.author__date {
+ font-size: .8rem;
+ color: #737373;
+}
+
+.author__icon {
+ width: 24px;
+ height: 24px;
+ display: inline-block;
+}
+
+.author__icon:first-child {
+ margin-right: 5px;
+}
diff --git a/src/components/community-hero-section/community-hero-section.js b/src/components/community-hero-section/community-hero-section.js
index c053411..03b378a 100644
--- a/src/components/community-hero-section/community-hero-section.js
+++ b/src/components/community-hero-section/community-hero-section.js
@@ -3,37 +3,47 @@ import './community-hero-section.css';
import CardSection from './card-section/card-section';
const communityHeroSection = () => {
- const cards = [
- {
- title: 'Organizar un Meetup',
- description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium, eros eros hendrerit arcu, ut efficitur quam dolor id diam. Nam sed massa scelerisque, dictum quam vel, egestas metus.',
- txtButton: 'Llenar formulario para organizar un Meetup',
- descriptionExample: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium.'
- },
- {
- title: 'Impartir una charla',
- description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium, eros eros hendrerit arcu, ut efficitur quam dolor id diam. Nam sed massa scelerisque, dictum quam vel, egestas metus.',
- txtButton: 'Llenar formulario para impartir charla',
- descriptionExample: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium.'
- },
- {
- title: 'Escribir / Traducir un Artículo',
- description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium, eros eros hendrerit arcu, ut efficitur quam dolor id diam. Nam sed massa scelerisque, dictum quam vel, egestas metus.',
- txtButton: 'Llenar formulario para escribir un artículo',
- descriptionExample: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium.'
- },
- ];
- return (
-
-
-
¿Cómo ayudar?
- {
- cards.map( card => (
-
- ))
- }
-
-
+ const cards = [
+ {
+ title: 'Organizar un Meetup',
+ description:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium, eros eros hendrerit arcu, ut efficitur quam dolor id diam. Nam sed massa scelerisque, dictum quam vel, egestas metus.',
+ txtButton: 'Llenar formulario para organizar un Meetup',
+ descriptionExample:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium.',
+ },
+ {
+ title: 'Impartir una charla',
+ description:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium, eros eros hendrerit arcu, ut efficitur quam dolor id diam. Nam sed massa scelerisque, dictum quam vel, egestas metus.',
+ txtButton: 'Llenar formulario para impartir charla',
+ descriptionExample:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium.',
+ },
+ {
+ title: 'Escribir / Traducir un Artículo',
+ description:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium, eros eros hendrerit arcu, ut efficitur quam dolor id diam. Nam sed massa scelerisque, dictum quam vel, egestas metus.',
+ txtButton: 'Llenar formulario para escribir un artículo',
+ descriptionExample:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus accumsan sapien a elementum. Vestibulum nibh nisi, semper sit amet egestas non, blandit id turpis. Nam accumsan lectus et ultrices lacinia. In vehicula, odio eu molestie pretium.',
+ },
+ ];
+ return (
+
+
+
¿Cómo ayudar?
+ {cards.map((card, idx) => (
+
+ ))}
+
+
)
}
diff --git a/src/data/authors.json b/src/data/authors.json
new file mode 100644
index 0000000..c0d7440
--- /dev/null
+++ b/src/data/authors.json
@@ -0,0 +1,42 @@
+[
+ {
+ "rol": "Co-Organizador",
+ "name": "Richard Palacios G",
+ "photo": "https://avatars0.githubusercontent.com/u/11642622?v=4",
+ "github": "https://richardpalaciosg.dev/",
+ "website": "https://richardpalaciosg.dev/",
+ "email": "https://richardpalaciosg.dev/",
+ "twitter": "https://richardpalaciosg.dev/",
+ "description": "Lorem ipsum dolor sit amet consectetur adipiscing elit id tempus cras orci accumsan, commodo semper sagittis consequat turpis hac malesuada felis nisi senectus est. "
+ },
+ {
+ "rol": "Co-Organizador",
+ "name": "Israel Teneda",
+ "photo": "https://avatars2.githubusercontent.com/u/20668624?v=4",
+ "github": "https://github.com/israteneda",
+ "website": "https://github.com/israteneda",
+ "email": "https://github.com/israteneda",
+ "twitter": "https://github.com/israteneda",
+ "description": "Lorem ipsum dolor sit amet consectetur adipiscing elit id tempus cras orci accumsan, commodo semper sagittis consequat turpis hac malesuada felis nisi senectus est. "
+ },
+ {
+ "rol": "Co-Organizador",
+ "name": "Edisson Reinozo",
+ "photo": "https://avatars3.githubusercontent.com/u/14936466?v=4",
+ "github": "https://github.com/edzzn",
+ "website": "http://edzzn.com/",
+ "email": "http://edzzn.com/",
+ "twitter": "http://edzzn.com/",
+ "description": "Lorem ipsum dolor sit amet consectetur adipiscing elit id tempus cras orci accumsan, commodo semper sagittis consequat turpis hac malesuada felis nisi senectus est. "
+ },
+ {
+ "rol": "Co-Organizador",
+ "name": "Jordan Jaramillo",
+ "photo": "https://avatars2.githubusercontent.com/u/62086742?v=4",
+ "github": "https://github.com/jordanrjcode",
+ "website": "https://github.com/jordanrjcode",
+ "email": "https://github.com/jordanrjcode",
+ "twitter": "https://github.com/jordanrjcode",
+ "description": "Lorem ipsum dolor sit amet consectetur adipiscing elit id tempus cras orci accumsan, commodo semper sagittis consequat turpis hac malesuada felis nisi senectus est. "
+ }
+]
diff --git a/src/pages/blog.js b/src/pages/blog.js
index 6962ff0..c921950 100644
--- a/src/pages/blog.js
+++ b/src/pages/blog.js
@@ -4,7 +4,6 @@ import Layout from "../components/layout/layout";
import SEO from "../components/seo";
import { StaticQuery, graphql, Link } from "gatsby";
-import { render } from "react-dom";
function BlogPage(articulos) {
return (
@@ -15,7 +14,7 @@ function BlogPage(articulos) {
{articulos.map((articulo) => (
-
+
{articulo.title}
))}
@@ -33,6 +32,7 @@ function renderBlogPage() {
articulos: allMdx {
edges {
node {
+ id
slug
frontmatter {
title
@@ -48,6 +48,7 @@ function renderBlogPage() {
return {
...articulo.node.frontmatter,
slug: articulo.node.slug,
+ id: articulo.node.id,
};
});
return BlogPage(articulosFormateados);
diff --git a/src/pages/blog/gatsby-deploy.mdx b/src/pages/blog/gatsby-deploy.mdx
index d00e3e5..1de08c3 100644
--- a/src/pages/blog/gatsby-deploy.mdx
+++ b/src/pages/blog/gatsby-deploy.mdx
@@ -3,6 +3,7 @@ title: Deploy de un sitio de Gatsby en Netlify
date: "2020-10-05"
updated: "2020-10-05"
description: Como realizar el deploy de un sitio construido con Gatsby a Netlify
+author: "https://github.com/edzzn"
---
Esta es la guía base para realizar el deploy de una página construida con el framework Gatsby,
diff --git a/src/templates/blog-entry.js b/src/templates/blog-entry.js
index 8eedf43..a93681c 100644
--- a/src/templates/blog-entry.js
+++ b/src/templates/blog-entry.js
@@ -1,35 +1,45 @@
import React from "react";
import Layout from "../components/layout/layout";
import SEO from "../components/seo";
+import { useStaticQuery, graphql } from "gatsby";
+import styles from "./blog-entry.module.css";
+import Author from "../components/author/author";
-// import PropTypes from 'prop-types';
-
-export default function BlogEntry({ pageContext, children }) {
+const BlogEntry = ({ children }) => {
+ const data = useStaticQuery(graphql`
+ query BlogEntry {
+ mdx {
+ frontmatter {
+ title
+ date(formatString: "MMMM DD, YYYY")
+ author {
+ photo
+ name
+ github
+ email
+ }
+ }
+ }
+ }
+ `);
+ const { title, date } = data.mdx.frontmatter;
+ const { name, photo, github, email } = data.mdx.frontmatter.author;
return (
-
-
-
-