Merge branch 'main' of https://git.h4ckdata.es/h4ckx0r/webSostenible
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
name: Verificar versión, Compilar y Desplegar
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'package.json'
|
||||
workflow_dispatch:
|
||||
# Puedes añadir inputs si lo necesitas, por ejemplo:
|
||||
# inputs:
|
||||
# deploy_tag:
|
||||
# description: 'Etiqueta de la versión a desplegar'
|
||||
# required: true
|
||||
# default: 'latest'
|
||||
|
||||
jobs:
|
||||
check-version:
|
||||
|
||||
2510
package-lock.json
generated
2510
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -11,8 +11,8 @@
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/mdx": "^3.1.9",
|
||||
"@astrojs/mdx": "^4.0.8",
|
||||
"@astrojs/sitemap": "^3.2.1",
|
||||
"astro": "^4.16.10"
|
||||
"astro": "^5.3.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
const posts = await Astro.glob("../pages/posts/*.mdx");
|
||||
import { getCollection } from "astro:content";
|
||||
const posts = await getCollection("posts");
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
@@ -9,12 +10,12 @@ const posts = await Astro.glob("../pages/posts/*.mdx");
|
||||
<div class="card h-100">
|
||||
<div class="card-body d-flex flex-column">
|
||||
<h5 class="card-title">
|
||||
{post.frontmatter.titulo}
|
||||
{post.data.titulo}
|
||||
</h5>
|
||||
<p class="card-text post-content flex-grow-1">
|
||||
{post.frontmatter.descripcion}
|
||||
{post.data.descripcion}
|
||||
</p>
|
||||
<a href={post.url} class="btn btn-success mt-auto">
|
||||
<a href={"/posts/" + post.id} class="btn btn-success mt-auto">
|
||||
Ver detalles
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
---
|
||||
import { getCollection } from "astro:content";
|
||||
const { currentPost } = Astro.props;
|
||||
|
||||
const posts = await Astro.glob('../pages/posts/*.mdx');
|
||||
const posts = await getCollection("posts");
|
||||
|
||||
const processedPosts = await Promise.all(posts.map(async (post) => {
|
||||
const { frontmatter, url, file } = await post;
|
||||
const fileName = file.split('/').pop().replace('.mdx', '').toLowerCase();
|
||||
return { fileName, frontmatter, url };
|
||||
const { data } = await post;
|
||||
const fileName = post.id;
|
||||
const url = `/posts/${post.id}`
|
||||
return { fileName, data, url };
|
||||
}));
|
||||
|
||||
const relatedPosts = processedPosts
|
||||
@@ -14,10 +16,10 @@ const relatedPosts = processedPosts
|
||||
currentPost.relacionados?.map(rel => rel.toLowerCase()).includes(post.fileName)
|
||||
)
|
||||
.map((post) => ({
|
||||
title: post.frontmatter?.titulo || 'Sin título',
|
||||
excerpt: post.frontmatter?.descripcion || '',
|
||||
title: post.data.titulo,
|
||||
excerpt: post.data.descripcion,
|
||||
url: post.url || '#',
|
||||
imagen: post.frontmatter?.imagen || '/default-image.jpg',
|
||||
imagen: post.data?.imagen || '/default-image.jpg',
|
||||
}));
|
||||
---
|
||||
|
||||
|
||||
25
src/content.config.ts
Normal file
25
src/content.config.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
// src/content.config.ts
|
||||
import { defineCollection, z } from 'astro:content';
|
||||
import { glob } from 'astro/loaders';
|
||||
|
||||
const posts = defineCollection({
|
||||
// Usa el loader "glob" para buscar archivos .md en la carpeta indicada.
|
||||
loader: glob({ pattern: '**/*.mdx', base: './src/posts' }),
|
||||
// Define un esquema para validar el frontmatter de cada post
|
||||
schema: z.object({
|
||||
titulo: z.string(),
|
||||
descripcion: z.string(),
|
||||
fecha: z.coerce.date(),
|
||||
autor: z.string(),
|
||||
imagen: z.string().optional()
|
||||
}).passthrough(),
|
||||
computedFields: {
|
||||
url: {
|
||||
type: 'string',
|
||||
resolve: (entry) => `${entry}` // Genera la URL usando el slug calculado de cada post.
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Exporta las colecciones definidas
|
||||
export const collections = { posts };
|
||||
@@ -1,30 +1,32 @@
|
||||
---
|
||||
// ListadoPosts.astro
|
||||
const posts = await Astro.glob("../pages/posts/*.mdx");
|
||||
import { getCollection } from "astro:content";
|
||||
|
||||
const posts = await getCollection("posts");
|
||||
|
||||
// Función para ordenar posts
|
||||
const orderPosts = (posts, orderBy = "fecha", ascending = false) => {
|
||||
return [...posts].sort((a, b) => {
|
||||
return posts.sort((a, b) => {
|
||||
if (orderBy === "fecha") {
|
||||
const comparison = new Date(b.frontmatter.fecha).getTime() -
|
||||
new Date(a.frontmatter.fecha).getTime();
|
||||
const comparison =
|
||||
new Date(b.data.fecha).getTime() -
|
||||
new Date(a.data.fecha).getTime();
|
||||
return ascending ? -comparison : comparison;
|
||||
} else if (orderBy === "titulo") {
|
||||
const comparison = a.frontmatter.titulo.localeCompare(b.frontmatter.titulo);
|
||||
const comparison = a.data.titulo.localeCompare(b.data.titulo);
|
||||
return ascending ? comparison : -comparison;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
};
|
||||
|
||||
// Ordenar posts por defecto (más reciente primero)
|
||||
const initialPosts = orderPosts(posts, "fecha", false);
|
||||
---
|
||||
|
||||
<div class="container py-5">
|
||||
<div class="text-center mb-5 mt-3">
|
||||
<h1 class="display-4">Blog Ecobjetivos</h1>
|
||||
<p class="lead text-muted">Explora nuestros artículos sobre sostenibilidad y desarrollo</p>
|
||||
<p class="lead text-muted">
|
||||
Explora nuestros artículos sobre sostenibilidad y desarrollo
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Controles de búsqueda y ordenamiento -->
|
||||
@@ -43,13 +45,17 @@ const initialPosts = orderPosts(posts, "fecha", false);
|
||||
id="searchInput"
|
||||
class="form-control border-start-0"
|
||||
placeholder="Buscar artículos..."
|
||||
>
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<select id="orderSelect" class="form-select">
|
||||
<option value="fecha-desc">Más recientes primero</option>
|
||||
<option value="fecha-asc">Más antiguos primero</option>
|
||||
<option value="fecha-desc"
|
||||
>Más recientes primero</option
|
||||
>
|
||||
<option value="fecha-asc"
|
||||
>Más antiguos primero</option
|
||||
>
|
||||
<option value="titulo-asc">Título A-Z</option>
|
||||
<option value="titulo-desc">Título Z-A</option>
|
||||
</select>
|
||||
@@ -68,15 +74,15 @@ const initialPosts = orderPosts(posts, "fecha", false);
|
||||
<article class="card shadow-sm h-100 border-0">
|
||||
<div class="row g-0">
|
||||
<div class="col-md-4">
|
||||
{post.frontmatter.imagen ? (
|
||||
{post.data.imagen ? (
|
||||
<img
|
||||
src={post.frontmatter.imagen}
|
||||
src={post.data.imagen}
|
||||
class="post-image rounded-start"
|
||||
alt={post.frontmatter.titulo}
|
||||
alt={post.data.titulo}
|
||||
/>
|
||||
) : (
|
||||
<div class="default-image rounded-start">
|
||||
<i class="fas fa-leaf fa-3x text-success"></i>
|
||||
<i class="fas fa-leaf fa-3x text-success" />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
@@ -84,31 +90,45 @@ const initialPosts = orderPosts(posts, "fecha", false);
|
||||
<div class="card-body d-flex flex-column h-100">
|
||||
<div class="mb-3">
|
||||
<h2 class="card-title h4">
|
||||
{post.frontmatter.titulo}
|
||||
{post.data.titulo}
|
||||
</h2>
|
||||
<p class="card-text text-muted">
|
||||
{post.frontmatter.descripcion}
|
||||
{post.data.descripcion}
|
||||
</p>
|
||||
</div>
|
||||
<div class="mt-auto">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="author-info">
|
||||
<small class="text-muted d-block">
|
||||
<i class="fas fa-user-edit me-2"></i>
|
||||
{post.frontmatter.autor}
|
||||
<i class="fas fa-user-edit me-2" />
|
||||
{post.data.autor}
|
||||
</small>
|
||||
<small class="text-muted d-block">
|
||||
<i class="far fa-calendar-alt me-2"></i>
|
||||
{new Date(post.frontmatter.fecha).toLocaleDateString('es-ES', {
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
day: 'numeric'
|
||||
})}
|
||||
<i class="far fa-calendar-alt me-2" />
|
||||
<time
|
||||
datetime={
|
||||
post.data.fecha
|
||||
}
|
||||
>
|
||||
{new Date(
|
||||
post.data.fecha,
|
||||
).toLocaleDateString(
|
||||
"es-ES",
|
||||
{
|
||||
year: "numeric",
|
||||
month: "long",
|
||||
day: "numeric",
|
||||
},
|
||||
)}
|
||||
</time>
|
||||
</small>
|
||||
</div>
|
||||
<a href={post.url} class="btn btn-outline-success">
|
||||
<a
|
||||
href={"/posts/" + post.id}
|
||||
class="btn btn-outline-success"
|
||||
>
|
||||
Leer más
|
||||
<i class="fas fa-arrow-right ms-2"></i>
|
||||
<i class="fas fa-arrow-right ms-2" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -124,12 +144,14 @@ const initialPosts = orderPosts(posts, "fecha", false);
|
||||
|
||||
<style>
|
||||
.card {
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
transition:
|
||||
transform 0.3s ease,
|
||||
box-shadow 0.3s ease;
|
||||
background: #ffffff;
|
||||
}
|
||||
.card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important;
|
||||
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
|
||||
}
|
||||
.post-image {
|
||||
width: 100%;
|
||||
@@ -170,44 +192,47 @@ const initialPosts = orderPosts(posts, "fecha", false);
|
||||
<script>
|
||||
// El mismo script que antes...
|
||||
const posts = {
|
||||
frontmatter: JSON.stringify(Array.from(document.querySelectorAll('.post-item')).map(post => ({
|
||||
frontmatter: JSON.stringify(Array.from(document.querySelectorAll('.post-item')).map(post => {
|
||||
const timeEl = post.querySelector('time');
|
||||
return {
|
||||
titulo: post.querySelector('.card-title').textContent.trim(),
|
||||
fecha: post.querySelector('.fa-calendar-alt').nextSibling.textContent.trim(),
|
||||
// Usar el atributo datetime para obtener la fecha en formato ISO
|
||||
fecha: timeEl ? timeEl.getAttribute('datetime') : '',
|
||||
element: post.outerHTML
|
||||
})))
|
||||
};
|
||||
};
|
||||
}))
|
||||
};
|
||||
|
||||
const searchInput = document.getElementById('searchInput');
|
||||
const orderSelect = document.getElementById('orderSelect');
|
||||
const postsContainer = document.getElementById('postsContainer');
|
||||
const searchInput = document.getElementById("searchInput");
|
||||
const orderSelect = document.getElementById("orderSelect");
|
||||
const postsContainer = document.getElementById("postsContainer");
|
||||
|
||||
function updatePosts() {
|
||||
const searchTerm = searchInput.value.toLowerCase();
|
||||
const [orderBy, direction] = orderSelect.value.split('-');
|
||||
const [orderBy, direction] = orderSelect.value.split("-");
|
||||
|
||||
let filteredPosts = JSON.parse(posts.frontmatter)
|
||||
.filter(post =>
|
||||
post.titulo.toLowerCase().includes(searchTerm)
|
||||
);
|
||||
let filteredPosts = JSON.parse(posts.frontmatter).filter((post) =>
|
||||
post.titulo.toLowerCase().includes(searchTerm),
|
||||
);
|
||||
|
||||
// Ordenar posts
|
||||
filteredPosts.sort((a, b) => {
|
||||
if (orderBy === 'fecha') {
|
||||
if (orderBy === "fecha") {
|
||||
const dateA = new Date(a.fecha);
|
||||
const dateB = new Date(b.fecha);
|
||||
return direction === 'asc' ? dateA - dateB : dateB - dateA;
|
||||
return direction === "asc" ? dateA - dateB : dateB - dateA;
|
||||
} else {
|
||||
const comparison = a.titulo.localeCompare(b.titulo);
|
||||
return direction === 'asc' ? comparison : -comparison;
|
||||
return direction === "asc" ? comparison : -comparison;
|
||||
}
|
||||
});
|
||||
|
||||
// Actualizar DOM
|
||||
postsContainer.innerHTML = filteredPosts
|
||||
.map(post => post.element)
|
||||
.join('');
|
||||
.map((post) => post.element)
|
||||
.join("");
|
||||
}
|
||||
|
||||
searchInput.addEventListener('input', updatePosts);
|
||||
orderSelect.addEventListener('change', updatePosts);
|
||||
searchInput.addEventListener("input", updatePosts);
|
||||
orderSelect.addEventListener("change", updatePosts);
|
||||
</script>
|
||||
@@ -1,20 +1,39 @@
|
||||
---
|
||||
// src/layouts/PostLayout.astro
|
||||
import RelatedPosts from "../components/PostsRelacionados.astro"; // Componente para posts relacionados
|
||||
import Navbar from "../components/Navbar.astro";
|
||||
import Footer from "../components/Footer.astro";
|
||||
|
||||
const { frontmatter } = Astro.props;
|
||||
|
||||
const headings = Astro.props.headings;
|
||||
|
||||
const description = frontmatter.descripcion;
|
||||
|
||||
// URLs para compartir en redes sociales
|
||||
const shareUrl = new URL(Astro.url.pathname, Astro.site).toString();
|
||||
const facebookShareUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(shareUrl)}`;
|
||||
const twitterShareUrl = `https://twitter.com/intent/tweet?url=${encodeURIComponent(shareUrl)}&text=${encodeURIComponent(frontmatter.title)}`;
|
||||
const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${encodeURIComponent(shareUrl)}&title=${encodeURIComponent(frontmatter.title)}`;
|
||||
const twitterShareUrl = `https://twitter.com/intent/tweet?url=${encodeURIComponent(shareUrl)}&text=${encodeURIComponent(frontmatter.titulo)}`;
|
||||
const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${encodeURIComponent(shareUrl)}&title=${encodeURIComponent(frontmatter.titulo)}`;
|
||||
|
||||
const blogJsonLd = {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
"headline": frontmatter.titulo,
|
||||
"image": frontmatter.imagen && new URL(frontmatter.imagen, Astro.site),
|
||||
"datePublished": frontmatter.fecha,
|
||||
"dateModified": frontmatter.fecha,
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": frontmatter.autor
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Ecobjetivos",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": new URL('/logo.png', Astro.site)
|
||||
}
|
||||
},
|
||||
"description": description
|
||||
};
|
||||
---
|
||||
|
||||
<html lang="es">
|
||||
@@ -24,81 +43,38 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
<title>{frontmatter.titulo} - Ecobjetivos</title>
|
||||
<link rel="icon" type="image/png" href="logo.png" />
|
||||
<meta name="description" content={description} />
|
||||
<link
|
||||
rel="canonical"
|
||||
href={new URL(Astro.url.pathname, Astro.site).toString()}
|
||||
/>
|
||||
<link rel="canonical" href={new URL(Astro.url.pathname, Astro.site).toString()} />
|
||||
|
||||
<!-- Open Graph / Facebook -->
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content={Astro.url} />
|
||||
<meta property="og:title" content={frontmatter.titulo} />
|
||||
<meta property="og:description" content={description} />
|
||||
<meta
|
||||
property="og:image"
|
||||
content={frontmatter.imagen &&
|
||||
new URL(frontmatter.imagen, Astro.site)}
|
||||
/>
|
||||
<meta property="og:image" content={frontmatter.imagen && new URL(frontmatter.imagen, Astro.site)} />
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta property="twitter:card" content="summary_large_image" />
|
||||
<meta property="twitter:url" content={Astro.url} />
|
||||
<meta property="twitter:title" content={frontmatter.titulo} />
|
||||
<meta property="twitter:description" content={description} />
|
||||
<meta
|
||||
property="twitter:image"
|
||||
content={frontmatter.imagen &&
|
||||
new URL(frontmatter.imagen, Astro.site)}
|
||||
/>
|
||||
<meta property="twitter:image" content={frontmatter.imagen && new URL(frontmatter.imagen, Astro.site)} />
|
||||
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-1JT18RF3R4"
|
||||
></script>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-1JT18RF3R4"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag("js", new Date());
|
||||
|
||||
gtag("config", "G-1JT18RF3R4");
|
||||
</script>
|
||||
|
||||
<!-- Structured Data for Google -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
"headline": "${frontmatter.titulo}",
|
||||
"image": "${frontmatter.imagen && new URL(frontmatter.imagen, Astro.site)}",
|
||||
"datePublished": "${frontmatter.fecha}",
|
||||
"dateModified": "${frontmatter.fecha}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "${frontmatter.autor}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Ecobjetivos",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "${new URL('/logo.png', Astro.site)}"
|
||||
}
|
||||
},
|
||||
"description": "${description}"
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json" set:html={JSON.stringify(blogJsonLd)} />
|
||||
|
||||
<link
|
||||
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet" />
|
||||
<style>
|
||||
body {
|
||||
font-family: "Arial", sans-serif;
|
||||
@@ -106,7 +82,6 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
color: #333;
|
||||
}
|
||||
.post-header {
|
||||
margin-top: 60px;
|
||||
background-color: #4caf50;
|
||||
color: white;
|
||||
padding: 2rem 0;
|
||||
@@ -136,18 +111,15 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
||||
border: 1px solid #e9ecef;
|
||||
}
|
||||
|
||||
.table-of-contents h4 {
|
||||
color: #2c3e50;
|
||||
border-bottom: 2px solid #4caf50;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.table-of-contents ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.table-of-contents a {
|
||||
color: #495057;
|
||||
text-decoration: none;
|
||||
@@ -157,30 +129,17 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
font-size: 0.9rem;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.table-of-contents a:hover {
|
||||
color: #4caf50;
|
||||
background-color: #e8f5e9;
|
||||
padding-left: 0.6rem;
|
||||
}
|
||||
|
||||
/* Estilos para la indentación visual */
|
||||
.toc-level-2 {
|
||||
padding-left: 1.1rem;
|
||||
}
|
||||
.toc-level-3 {
|
||||
padding-left: 2.1rem;
|
||||
}
|
||||
.toc-level-4 {
|
||||
padding-left: 3.1rem;
|
||||
}
|
||||
.toc-level-5 {
|
||||
padding-left: 4.1rem;
|
||||
}
|
||||
.toc-level-6 {
|
||||
padding-left: 5.1rem;
|
||||
}
|
||||
|
||||
.toc-level-2 { padding-left: 1.1rem; }
|
||||
.toc-level-3 { padding-left: 2.1rem; }
|
||||
.toc-level-4 { padding-left: 3.1rem; }
|
||||
.toc-level-5 { padding-left: 4.1rem; }
|
||||
.toc-level-6 { padding-left: 5.1rem; }
|
||||
/* Líneas verticales para la indentación */
|
||||
.toc-level-2,
|
||||
.toc-level-3,
|
||||
@@ -190,13 +149,8 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
border-left: 2px solid #e9ecef;
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
html {
|
||||
scroll-padding-top: 70px; /* Ajusta este valor según la altura de tu navbar */
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
html { scroll-padding-top: 70px; }
|
||||
img { max-width: 100%; height: auto; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -211,30 +165,24 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
<main class="container my-5">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<article class="post-content">
|
||||
<article class="post-content" data-bs-spy="scroll" data-bs-target="#toc" data-bs-offset="70" tabindex="0">
|
||||
<slot />
|
||||
</article>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<aside class="sticky-top" style="top: 2rem;">
|
||||
<aside class="sticky-top" style="top: 5rem;">
|
||||
<div class="d-none d-lg-block">
|
||||
<div class="table-of-contents p-3 mb-4">
|
||||
<!-- Se añade el id "toc" para ser usado por scrollspy -->
|
||||
<div id="toc" class="table-of-contents p-3 mb-4">
|
||||
<h4 class="mb-3 pb-2 fw-bold">Contenido</h4>
|
||||
<ul class="m-0">
|
||||
{
|
||||
headings.map((heading) => (
|
||||
<li
|
||||
class={`mb-2 toc-level-${heading.depth}`}
|
||||
>
|
||||
<a
|
||||
href={`#${heading.slug}`}
|
||||
class="py-1 px-2"
|
||||
>
|
||||
{heading.text}
|
||||
</a>
|
||||
</li>
|
||||
))
|
||||
}
|
||||
{headings.map((heading) => (
|
||||
<li class={`mb-2 toc-level-${heading.depth}`}>
|
||||
<a href={`#${heading.slug}`} class="py-1 px-2">
|
||||
{heading.text}
|
||||
</a>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -242,15 +190,11 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
<div class="card-body">
|
||||
<p class="post-meta">
|
||||
<i class="fas fa-calendar-alt"></i>
|
||||
{
|
||||
new Date(
|
||||
frontmatter.fecha,
|
||||
).toLocaleDateString("es-ES", {
|
||||
year: "numeric",
|
||||
month: "long",
|
||||
day: "numeric",
|
||||
})
|
||||
}
|
||||
{new Date(frontmatter.fecha).toLocaleDateString("es-ES", {
|
||||
year: "numeric",
|
||||
month: "long",
|
||||
day: "numeric",
|
||||
})}
|
||||
|
|
||||
<i class="fas fa-user"></i>
|
||||
{frontmatter.autor}
|
||||
@@ -265,22 +209,25 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="btn btn-primary me-2"
|
||||
><i class="fab fa-facebook-f fa-fw"></i></a
|
||||
>
|
||||
<i class="fab fa-facebook-f fa-fw"></i>
|
||||
</a>
|
||||
<a
|
||||
href={twitterShareUrl}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="btn btn-info me-2"
|
||||
><i class="fab fa-twitter fa-fw"></i></a
|
||||
>
|
||||
<i class="fab fa-twitter fa-fw"></i>
|
||||
</a>
|
||||
<a
|
||||
href={linkedinShareUrl}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="btn btn-secondary"
|
||||
><i class="fab fa-linkedin-in fa-fw"></i></a
|
||||
>
|
||||
<i class="fab fa-linkedin-in fa-fw"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
@@ -292,9 +239,7 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
|
||||
<Footer />
|
||||
|
||||
<script
|
||||
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"
|
||||
></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -302,14 +247,7 @@ const linkedinShareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${
|
||||
@import url("https://fonts.googleapis.com/css2?family=Inter+Tight:ital@0;1&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Londrina+Sketch&display=swap");
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
p,
|
||||
a {
|
||||
h1, h2, h3, h4, h5, h6, p, a {
|
||||
font-family: "Inter Tight", sans-serif !important;
|
||||
font-optical-sizing: auto;
|
||||
font-weight: 400 !important;
|
||||
|
||||
16
src/pages/posts/[id].astro
Normal file
16
src/pages/posts/[id].astro
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
import { getCollection, render } from 'astro:content';
|
||||
// 1. Generate a new path for every collection entry
|
||||
export async function getStaticPaths() {
|
||||
const posts = await getCollection('posts');
|
||||
return posts.map(post => ({
|
||||
params: { id: post.id },
|
||||
props: { post },
|
||||
}));
|
||||
}
|
||||
// 2. For your template, you can get the entry directly from the prop
|
||||
const { post } = Astro.props;
|
||||
const { Content } = await render(post);
|
||||
---
|
||||
<h1>{post.data.titulo}</h1>
|
||||
<Content />
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'El Cambio Climático: Un Desafío Global que Requiere Acción Inmediata'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Este post explica el cambio climático causado por la actividad humana, detallando sus principales causas como la quema de combustibles fósiles, la deforestación y el consumo excesivo. También ofrece soluciones para mitigar sus efectos, como el uso de energías renovables y prácticas sostenibles, invitando a actuar para un futuro más verde.'
|
||||
imagen: 'https://www.nedgia.es/wp-content/uploads/2024/03/Cambio_climatico_v2.jpg'
|
||||
hashtags: ['Alianzas Globales', 'Cooperación Internacional', 'Sostenibilidad', 'ODS17', 'Agenda 2030']
|
||||
relacionados: ['ods13', 'contaminacion', 'retos ambientales']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
|
||||
El cambio climático es, sin lugar a dudas, uno de los mayores retos a los que nos enfrentamos como sociedad. A lo largo de la historia de nuestro planeta, el clima ha sufrido importantes transformaciones debido a causas naturales. Sin embargo, el cambio climático actual presenta dos características fundamentales que lo hacen especialmente preocupante:
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'La Contaminación Ambiental y su Impacto en el Desarrollo Sostenible'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Explora las diferentes formas de contaminación, sus causas y consecuencias, y cómo afectan al medio ambiente y la salud humana. Descubre la importancia de adoptar prácticas sostenibles para un futuro más limpio y saludable.'
|
||||
imagen: 'https://todoingenierias.com/wp-content/uploads/contaminacion-y-medio-ambiente.jpg'
|
||||
hashtags: ['Alianzas Globales', 'Cooperación Internacional', 'Sostenibilidad', 'ODS17', 'Agenda 2030']
|
||||
relacionados: ['ods14', 'ods15', 'cambio_climatico', 'retos ambientales']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Deforestación y Erosión del Suelo'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-12-10'
|
||||
descripcion: 'La deforestación y la erosión del suelo están destruyendo ecosistemas, reduciendo la fertilidad de la tierra y agravando el cambio climático. Descubre sus causas, consecuencias y cómo podemos actuar para proteger nuestro planeta.'
|
||||
imagen: 'https://www.iberdrola.com/documents/20125/40576/reforestacion_746x419.jpg/7ffde25d-e3a2-3e75-ba3d-b6e543dd0e24?t=1627463867254'
|
||||
hashtags: ['Alianzas Globales', 'Cooperación Internacional', 'Sostenibilidad', 'ODS17', 'Agenda 2030']
|
||||
relacionados: ['explotacion de recursos', 'cambio_climatico']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
La **deforestación** y la **erosión del suelo** son dos problemas interconectados que representan un gran desafío para el desarrollo sostenible. Estos fenómenos no solo afectan la biodiversidad y la calidad del suelo, sino que también tienen implicaciones directas en el cambio climático y la calidad de vida humana.
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Sobreexplotación de Recursos Naturales: Un Desafío para la Sostenibilidad'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-12-10'
|
||||
descripcion: 'El uso excesivo de los recursos naturales está llevando al planeta al límite. Descubre qué es la sobreexplotación, sus impactos en el medio ambiente y cómo podemos actuar para proteger nuestro futuro.'
|
||||
imagen: 'https://www.shutterstock.com/image-vector/natural-resources-depletion-planet-reserves-600nw-2250107081.jpg'
|
||||
hashtags: ['Alianzas Globales', 'Cooperación Internacional', 'Sostenibilidad', 'ODS17', 'Agenda 2030']
|
||||
relacionados: ['deforestacion y erosion']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
|
||||
El crecimiento de la población mundial, junto con un estilo de vida cada vez más consumista, está llevando a la **sobreexplotación de los recursos naturales**. Este fenómeno amenaza la sostenibilidad del planeta al agotar los elementos esenciales para la vida, como el agua, los bosques, los minerales y el suelo.
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'ODS 1: Fin de la Pobreza'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'José Antonio Marín'
|
||||
fecha: '10/29/24'
|
||||
fecha: '2025-02-25'
|
||||
descripcion: 'Este objetivo busca erradicar la pobreza extrema garantizando acceso a recursos básicos, oportunidades económicas y una vida digna para todos. Descubre en detalle el ODS 1 en el siguiente post:'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/f/f1/Sustainable_Development_Goal-es-17.jpg'
|
||||
hashtags: ['ODS1', 'Erradicación de la Pobreza', 'Desarrollo Sostenible', 'Igualdad de Derechos', 'Protección Social']
|
||||
relacionados: ['ods2', 'ods10', 'stakeholders']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -62,7 +62,14 @@ Cabe destacar que este ODS es uno de los más importantes de todos, ya que está
|
||||
Se puede destacar su interrelación con el ODS 2, que fomenta la erradicación del hambre en todo el mundo, mediante distintos medios que podrás ver en dicho artículo.
|
||||
|
||||
<ImagenMD alt="Imagotipo ODS1" src="https://www.aiscertificacion.com/wp-content/uploads/2024/02/S-WEB-Goal-01-1-e1707468767703.png"/>
|
||||
|
||||
### Representación artística:
|
||||
El cuadro escogido para representar al ODS1 es "Los comedores de patatas" de Vincent van Gogh. Este cuadro fue pintado en el año 1885 y representa perfectamente lo que nos quiere transmitir este ODS.
|
||||
<ImagenMD alt="Cuadro ODS1" src="https://i.ibb.co/V0nGQWdp/Van-willem-vincent-gogh-die-kartoffelesser-03850.jpg"/>
|
||||
#### ¿Por qué encaja con este ODS?
|
||||
Encaja por lo siguiente:
|
||||
- La pintura representa a una familia de campesinos humildes comiendo una comida simple y básica, demostrando las bajas condiciones de vida que tenían las clases populares en aquella época.
|
||||
- Muestra la pobreza de los habitantes del campo de una forma gráfica y que nos hace ver su perspectiva.
|
||||
- La obra nos transmite un mensaje empatizador con la gente de esa condición social, transmitiendo un mensaje de dignidad y humanidad.
|
||||
---
|
||||
|
||||
*Nota: Este documento es una guía general sobre los ODS y puede requerir actualizaciones periódicas según los avances y cambios en la implementación global.*
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Unidos por la Igualdad: La Lucha hacia el ODS 10'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2025-02-18'
|
||||
descripcion: 'En este post exploramos el Objetivo de Desarrollo Sostenible 10, que busca reducir las desigualdades en el mundo. A través de la promoción de oportunidades equitativas y la inclusión de todos los grupos sociales, buscamos crear un futuro más justo para todos. Descubre cómo cada uno de nosotros puede contribuir a esta causa, trabajando juntos para eliminar barreras y construir comunidades donde cada voz cuente. ¡Es momento de actuar y hacer una diferencia real en la vida de las personas!'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Sustainable_Development_Goal-es-08.jpg/320px-Sustainable_Development_Goal-es-08.jpg'
|
||||
hashtags: ['Ciudades Sostenibles', 'Vivienda Asequible', 'Transporte Sostenible', 'Planificación Urbana', 'Resiliencia Urbana']
|
||||
relacionados: ['ods1', 'stakeholders', 'post isr']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
<ImagenMD alt="infografia" src="https://focus2030.org/IMG/png/sdg_1.adults_poverty-4.png"/>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Cómo Construir Ciudades Sostenibles: Claves del ODS 11 para un Futuro Mejor'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2025-02-18'
|
||||
descripcion: 'Descubre cómo el Objetivo de Desarrollo Sostenible (ODS) 11 busca transformar nuestras ciudades en lugares más inclusivos, seguros y sostenibles. En este post exploramos las principales acciones que necesitamos para lograr un futuro urbano más verde, accesible y resiliente, desde la vivienda asequible hasta el transporte sostenible. ¡Todos podemos contribuir a hacer de nuestras ciudades un mejor lugar para vivir!'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Sustainable_Development_Goal-es-07.jpg/320px-Sustainable_Development_Goal-es-07.jpg'
|
||||
hashtags: ['Ciudades Sostenibles', 'Vivienda Asequible', 'Transporte Sostenible', 'Planificación Urbana', 'Resiliencia Urbana']
|
||||
relacionados: ['ods13', 'ods12', 'retos ambientales', 'stakeholders']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
<ImagenMD alt="ciudad verde" src="https://www.ismedioambiente.com/wp-content/uploads/2020/09/ciudad-verde-china-1024x576.jpg"/>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'ODS 12: Producción y Consumo Responsables'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2025-02-18'
|
||||
descripcion: 'Conoce cómo el ODS 12 promueve la producción y el consumo responsables a través de la gestión eficiente de recursos, la reducción de desechos y la implementación de prácticas sostenibles en todos los sectores. Descubre por qué la educación, la participación empresarial y la creación de políticas son esenciales para un futuro más verde.'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Sustainable_Development_Goal-es-06.jpg/320px-Sustainable_Development_Goal-es-06.jpg'
|
||||
hashtags: ['Producción Responsable', 'Consumo Sostenible', 'Gestión de Recursos', 'Reducción de Desechos', 'Educación Ambiental']
|
||||
relacionados: ['ods13', 'post isr', 'retos ambientales']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Deque trata el ODS 12
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'ODS 13: Acciones Urgentes por el Clima'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Descubre cómo el ODS 13 aborda la crisis climática a través de la reducción de emisiones, la resiliencia climática y la cooperación internacional. Aprende por qué la educación, la protección de ecosistemas y la adopción de políticas integradas son esenciales para un futuro más seguro. ¡El momento de actuar es ahora!'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Sustainable_Development_Goal-es-05.jpg/320px-Sustainable_Development_Goal-es-05.jpg'
|
||||
hashtags: ['Cambio Climático', 'Energías Renovables', 'Resiliencia', 'Educación Ambiental', 'Cooperación Internacional', 'Protección de Ecosistemas']
|
||||
relacionados: ['cambio_climatico', 'retos ambientales', 'contaminacion']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Protegiendo nuestros océanos: ODS 14'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2025-02-24'
|
||||
descripcion: 'En este post, exploraremos la importacia del objetivo de desarrollo sostenible 14 que se centra en la conservación y uso sotenible de nuestros océanos y recuros marinos'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/80/Sustainable_Development_Goal-es-04.jpg/320px-Sustainable_Development_Goal-es-04.jpg'
|
||||
hashtags: ['Conservación Marina', 'Sostenibilidad', 'Cambio Climático', 'Biodiversidad', 'Pesca Sostenible']
|
||||
relacionados: ['contaminacion', 'retos ambientales']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'ODS 15: Protegiendo la Vida en los Ecosistemas Terrestres'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2025-02-24'
|
||||
descripcion: 'Explora cómo el ODS 15 busca proteger los ecosistemas terrestres, promoviendo la conservación de la biodiversidad, el uso sostenible de los recursos y el combate a la desertificación. Descubre cómo cada uno de nosotros puede contribuir a preservar nuestro entorno natural para un futuro más sostenible.'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Sustainable_Development_Goal-es-03.jpg/320px-Sustainable_Development_Goal-es-03.jpg'
|
||||
hashtags: ['Ecosistemas', 'Biodiversidad', 'Conservación', 'Desertificación', 'Recursos Naturales']
|
||||
relacionados: ['ods2', 'contaminacion']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'ODS 16: Construyendo un Futuro de Paz, Justicia y Transparencia Global'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-12-10'
|
||||
descripcion: 'Explora cómo el ODS 16 busca construir sociedades pacíficas y justas mediante el acceso equitativo a la justicia, el fortalecimiento de instituciones inclusivas y el respeto por los derechos humanos. Descubre cómo podemos unirnos para crear un futuro más seguro y sostenible para todos.'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Sustainable_Development_Goal-es-02.jpg/320px-Sustainable_Development_Goal-es-02.jpg'
|
||||
hashtags: ['Paz', 'Justicia', 'Instituciones Inclusivas', 'Derechos Humanos', 'Participación Ciudadana']
|
||||
relacionados: ['stakeholders', 'post aspectos asg']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Construyendo Alianzas para un Futuro Sostenible: ODS 17'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2025-02-24'
|
||||
descripcion: 'Descubre cómo el ODS 17 promueve alianzas globales para alcanzar los Objetivos de Desarrollo Sostenible. Conoce cómo la cooperación internacional en financiamiento, tecnología, capacidades, comercio y participación de la sociedad civil son claves para lograr un futuro más sostenible e inclusivo para todos.'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Sustainable_Development_Goal_17-es.png/320px-Sustainable_Development_Goal_17-es.png'
|
||||
hashtags: ['Alianzas Globales', 'Cooperación Internacional', 'Sostenibilidad', 'ODS17', 'Agenda 2030']
|
||||
relacionados: ['stakeholders', 'post isr']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
<ImagenMD alt="colaboracion global" src="https://img.freepik.com/fotos-premium/ilustracion-plana-sobre-colaboracion-global_818261-5770.jpg"/>
|
||||
El **Objetivo de Desarrollo Sostenible 17** (ODS 17) se enfoca en fortalecer la cooperación y revitalizar la alianza mundial para el desarrollo sostenible. Esta alianza es crucial para alcanzar los otros 16 objetivos de la Agenda 2030, ya que la colaboración y el compromiso entre países, empresas y organizaciones son esenciales para el éxito de los ODS.
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'ODS 2: Hambre Cero'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'José Antonio Marín'
|
||||
fecha: '10/29/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Este objetivo busca erradicar la pobreza extrema garantizando acceso a recursos básicos, oportunidades económicas y una vida digna para todos. Descubre en detalle el ODS 2 en el siguiente post:'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/8/80/Sustainable_Development_Goal-es-16.jpg'
|
||||
hashtags: ['Hambre Cero', 'Seguridad Alimentaria', 'Nutricion', 'Agricultura Sostenible']
|
||||
relacionados: ['ods12', 'ods15', 'retos ambientales']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
---
|
||||
titulo: 'ODS 3: Salud y Bienestar'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'José Antonio Marín'
|
||||
fecha: '10/29/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Este objetivo busca mejorar la salud y la calidad de vida general de todos los seres humanos, involucrando una serie de políticas y de acciones tanto gubernamentales y civiles para lograr dicho objetivo. Descubre qué implica exactamente en este artículo:'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Sustainable_Development_Goal-es-15.jpg/1024px-Sustainable_Development_Goal-es-15.jpg'
|
||||
relacionados: ['contaminacion', 'cambio_climatico', 'retos ambientales']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
---
|
||||
titulo: 'ODS 4: Educación de Calidad'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'José Antonio Marín'
|
||||
fecha: '10/29/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Este objetivo busca garantizar una educación inclusiva, equitativa y de calidad para todos los los ciudadanos del mundo a lo largo de sus vidas. Descubre qué es lo que implica en este post:'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Sustainable_Development_Goal-es-14.jpg/480px-Sustainable_Development_Goal-es-14.jpg'
|
||||
relacionados: ['ods12', 'ods15', 'retos ambientales']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
---
|
||||
titulo: 'ODS 5: Igualdad de Género'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'José Antonio Marín'
|
||||
fecha: '10/29/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Este objetivo busca empoderar a las mujeres y niñas con el objetivo de disminuir la desigualdad entre hombres y mujeres. Descubre qué es lo que implica en este post:'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/Sustainable_Development_Goal-es-13.jpg/480px-Sustainable_Development_Goal-es-13.jpg'
|
||||
relacionados: ['ods4', 'ods10', 'stakeholders']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
---
|
||||
titulo: 'ODS 6: Agua Limpia y Saneamiento'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'José Antonio Marín'
|
||||
fecha: '10/29/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Este objetivo busca garantizar el acceso universal al agua limpia y al saneamiento, promoviendo una gestión sostenible de los recursos hídricos. Descubre qué significa y qué acciones son necesarias para alcanzarlo en este post:'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Sustainable_Development_Goal-es-12.jpg'
|
||||
relacionados: ['ods14', 'ods15', 'retos ambientales', 'contaminacion']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
---
|
||||
titulo: 'ODS 7: Energía Asequible y No Contaminante'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'José Antonio Marín'
|
||||
fecha: '10/29/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Este objetivo busca garantizar el acceso a energía asequible, fiable, sostenible y moderna para todos, promoviendo el uso de fuentes renovables y soluciones más limpias. Descubre qué significa y qué acciones son necesarias para alcanzarlo en este post:'
|
||||
imagen: 'https://www.un.org/sustainabledevelopment/es/wp-content/uploads/sites/3/2018/07/S_SDG-goals_icons-individual-rgb-07.png'
|
||||
relacionados: ['ods13', 'contaminacion', 'retos ambientales', 'ods12']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
---
|
||||
titulo: 'ODS 8: Trabajo Decente y Crecimiento Económico'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'José Antonio Marín'
|
||||
fecha: '10/29/24'
|
||||
fecha: '2024-12-09'
|
||||
descripcion: 'Este objetivo busca garantizar una calidad laboral amplia, así como un crecimiento económico constante, sostenible y respetuoso con el planeta. Descubre qué significa y qué acciones son necesarias para alcanzarlo en este post:'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Sustainable_Development_Goal-es-10.jpg/1024px-Sustainable_Development_Goal-es-10.jpg'
|
||||
relacionados: ['ods1', 'ods4', 'retos ambientales', 'ods12']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
---
|
||||
titulo: 'ODS 9: Industria, Innovación e Infraestructura'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'José Antonio Marín'
|
||||
fecha: '10/29/24'
|
||||
fecha: '2024-12-09'
|
||||
descripcion: 'Este objetivo busca construir infraestructuras industriales resilientes, así como promover la industrialización inclusiva y sostenible, y fomentar la innovación. Descubre qué significa y qué acciones son necesarias para alcanzarlo en este post:'
|
||||
imagen: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/31/Sustainable_Development_Goal-es-09.jpg/1024px-Sustainable_Development_Goal-es-09.jpg'
|
||||
relacionados: ['ods8', 'ods6', 'ods11', 'ods17']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
## Introducción
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Pérdida de biodiversidad: Un reto para el desarrollo sostenible'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'La pérdida de biodiversidad es una amenaza creciente para los ecosistemas y el bienestar humano. En este post, exploramos sus principales causas, como la destrucción de hábitats y el cambio climático, y cómo afecta a la salud y al medio ambiente. Descubre por qué conservar la biodiversidad es clave para un futuro sostenible y qué podemos hacer al respecto.'
|
||||
imagen: 'https://cdn.bitlysdowssl-aws.com/wp-content/uploads/2023/05/Captura-de-pantalla-2023-05-23-000607.png'
|
||||
hashtags: ['Alianzas Globales', 'Cooperación Internacional', 'Sostenibilidad', 'ODS17', 'Agenda 2030']
|
||||
relacionados: ['ods15', 'ods14', 'retos ambientales', 'contaminacion']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Criterios ASG: La Guía Completa para Empresas Sostenibles y Responsables'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'Explora cómo los criterios ambientales dentro de los ASG (Ambientales, Sociales y de Gobernanza) están redefiniendo el impacto de las empresas en el planeta. Desde la reducción de emisiones y el uso sostenible del agua, hasta la protección de la biodiversidad y la gestión de residuos, los criterios ambientales ayudan a evaluar cómo las empresas contribuyen a un mundo más limpio y sostenible. Descubre cómo estos factores guían las decisiones de inversión responsable y apoyan la transición hacia una economía verde.'
|
||||
imagen: 'https://aga.es/wp-content/uploads/2023/05/ASG_WEB-1.jpg'
|
||||
hashtags: ['Ciudades Sostenibles', 'Vivienda Asequible', 'Transporte Sostenible', 'Planificación Urbana', 'Resiliencia Urbana']
|
||||
relacionados: ['ods12', 'stakeholders']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
# Aspectos Ambientales, Sociales y de Gobernanza (ASG)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Inversiones Socialmente Responsables (ISR): Finanzas para un Futuro Sostenible'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-12-10'
|
||||
descripcion: 'Las inversiones socialmente responsables (ISR) combinan rentabilidad y sostenibilidad, incorporando criterios ambientales, sociales y de gobernanza (ASG) para generar un impacto positivo en el planeta y la sociedad.'
|
||||
imagen: 'https://www.fhlconsulting.com/sites/default/files/2019-02/ISO%20%285%29.png'
|
||||
hashtags: ['Ciudades Sostenibles', 'Vivienda Asequible', 'Transporte Sostenible', 'Planificación Urbana', 'Resiliencia Urbana']
|
||||
relacionados: ['ods12', 'ods17']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
# Inversiones Socialmente Responsables (ISR)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'Retos Ambientales: Enfrentando los Desafíos del Futuro'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-11-26'
|
||||
descripcion: 'El planeta enfrenta amenazas urgentes como el cambio climático, la escasez de agua, la contaminación y la pérdida de biodiversidad. Estos problemas están conectados y afectan nuestro presente y futuro. Para garantizar un mundo habitable para las próximas generaciones, debemos actuar ahora: reducir, reutilizar, conservar recursos y optar por energías limpias. El cambio empieza con nuestras decisiones diarias. ¡El futuro está en nuestras manos!'
|
||||
imagen: 'https://datos.gob.es/sites/default/files/styles/blog_image/public/blog/image/retos_medio_ambiente_open_data_0.jpg?itok=bA5rXDLZ'
|
||||
hashtags: ['Alianzas Globales', 'Cooperación Internacional', 'Sostenibilidad', 'ODS17', 'Agenda 2030']
|
||||
relacionados: ['contaminacion', 'cambio_climatico', 'ods13']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
|
||||
Hoy en día, el panorama medioambiental es cada vez más preocupante. Científicos, gobiernos, organizaciones y ciudadanos de todo el mundo comparten una creciente inquietud por el futuro de nuestro planeta. Los retos que enfrentamos hoy condicionan no solo el presente, sino también el bienestar de las generaciones venideras. Es urgente que tomemos acción para mitigar los efectos de los problemas medioambientales que, de no abordarse de forma integral, podrían tener consecuencias irreversibles.
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
titulo: 'El Rol de los Stakeholders y los Criterios ASG en el Desarrollo Sostenible Empresarial'
|
||||
layout: '../../layouts/PostStyle.astro'
|
||||
layout: '../layouts/PostStyle.astro'
|
||||
autor: 'Lucas Curiel'
|
||||
fecha: '08/10/24'
|
||||
fecha: '2024-12-10'
|
||||
descripcion: 'Las empresas deben considerar su impacto en el ambiente, la sociedad y la gobernanza (ASG) para un desarrollo sostenible. Este artículo explora los grupos de interés clave empleados, clientes, comunidades y más y su influencia en las decisiones empresariales, destacando la importancia de alinear los objetivos corporativos con prácticas responsables y sostenibles.'
|
||||
imagen: 'https://www.foromarketing.com/wp-content/uploads/Stakeholders.png'
|
||||
hashtags: ['Ciudades Sostenibles', 'Vivienda Asequible', 'Transporte Sostenible', 'Planificación Urbana', 'Resiliencia Urbana']
|
||||
relacionados: ['ods17', 'post aspectos asg', 'ods10']
|
||||
---
|
||||
import ImagenMD from "../../components/ImagenMD.astro"
|
||||
import ImagenMD from "../components/ImagenMD.astro"
|
||||
|
||||
# Stakeholders y Criterios ASG en las Organizaciones
|
||||
|
||||
Reference in New Issue
Block a user