Skip to main content

Queman camión y suspenden recolección de basuras en Popayán

Queman camión y suspenden recolección de basuras en Popayán

Un nuevo ataque en zona rural obligó a frenar el servicio de aseo en Popayán. Es el segundo vehículo incinerado en pocos días.

29/04/2026

REGIONAL

La prestación del servicio de aseo volvió a interrumpirse en Popayán tras un nuevo hecho de violencia en zona rural del municipio.

La empresa Urbaser anunció la suspensión de la recolección y transporte de residuos luego de que uno de sus vehículos fuera incinerado, el segundo caso registrado en el mismo sector en pocos días.

La decisión fue tomada como medida preventiva, priorizando la seguridad del personal operativo y los equipos, mientras se evalúan las condiciones de orden público.

La compañía confirmó que sostendrá reuniones con las autoridades para definir acciones que permitan restablecer el servicio con garantías. Entre tanto, la suspensión se mantendrá hasta nueva orden.

Este nuevo ataque agrava la situación sanitaria en la capital caucana, que ya venía afectada por un hecho similar reciente.

Aseo en Popayán

Responsive Banner .gradient-left { background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); } .right-image-gradient { position: absolute; top: 0; left: -6px; width: 60%; height: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); z-index: 20; pointer-events: none; } .banner-img { filter: blur(3px); width: 100%; height: 100%; object-fit: cover; object-position: center; aspect-ratio: 16/9; min-height: 100%; max-height: 100%; max-width: 100%; min-width: 100%; display: block; position: relative; z-index: 10; } .popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 1000; justify-content: center; align-items: center; } .popup iframe { max-width: 90%; max-height: 80%; width: 100%; aspect-ratio: 16 / 9; }
Left Logo
Center Logo
play_circle
function openPopup() { const popup = document.getElementById('videoPopup'); const iframe = popup.querySelector('iframe'); iframe.src = 'https://www.youtube.com/embed/u4cqE-FbIkQ?autoplay=1'; popup.style.display = 'flex'; document.addEventListener('click', closePopupOutside); } function closePopupOutside(event) { const popup = document.getElementById('videoPopup'); if (event.target === popup) { popup.style.display = 'none'; popup.querySelector('iframe').src = ''; document.removeEventListener('click', closePopupOutside); } }
// Función para procesar los módulos function processModules(attempt = 1, maxAttempts = 5) { // Obtener los módulos por sus IDs const titleModule = document.getElementById('TITULO'); const subtitleModule = document.getElementById('SUBTITULO'); const dateModule = document.getElementById('FECHA'); const genreModule = document.getElementById('GENERO'); const bodyModule = document.getElementById('BODY'); const imageModule = document.getElementById('IMAGEN'); const creditsModule = document.getElementById('CREDITOS'); // Verificar si los módulos existen if (!titleModule || !subtitleModule || !dateModule || !genreModule || !bodyModule || !imageModule || !creditsModule) { console.error(`Intento ${attempt}: Uno o más módulos no se encontraron. Verifica los IDs: TITULO, SUBTITULO, FECHA, GENERO, BODY, IMAGEN, CREDITOS`); console.log('TITULO existe:', !!titleModule); console.log('SUBTITULO existe:', !!subtitleModule); console.log('FECHA existe:', !!dateModule); console.log('GENERO existe:', !!genreModule); console.log('BODY existe:', !!bodyModule); console.log('IMAGEN existe:', !!imageModule); console.log('CREDITOS existe:', !!creditsModule); if (attempt processModules(attempt + 1, maxAttempts), 1000); } else { console.error('Se alcanzó el máximo de intentos. No se encontraron todos los módulos.'); } return; } // Ocultar los módulos originales titleModule.style.display = 'none'; subtitleModule.style.display = 'none'; dateModule.style.display = 'none'; genreModule.style.display = 'none'; bodyModule.style.display = 'none'; imageModule.style.display = 'none'; creditsModule.style.display = 'none'; // Extraer el contenido const titleText = titleModule.innerText.trim(); const subtitleText = subtitleModule.innerText.trim(); let dateText = dateModule.innerText.trim(); const genreText = genreModule.innerText.trim(); let bodyContent = bodyModule.innerHTML.trim(); let imageUrl = ''; // Procesar el contenido del cuerpo para respetar la estructura de párrafos y listas const tempDiv = document.createElement('div'); tempDiv.innerHTML = bodyContent; const processedContent = Array.from(tempDiv.children) .map(child => { if (child.classList.contains('paragraph')) { return `

${child.innerHTML.trim()}

`; } else if (child.tagName === 'UL') { return child.outerHTML; } else { return child.outerHTML; } }) .filter(content => content && content.length > 0) .join(''); bodyContent = processedContent || bodyContent; // Depuración: mostrar el contenido del módulo IMAGEN console.log('Contenido crudo del módulo IMAGEN (innerHTML):', imageModule.innerHTML); console.log('Texto del módulo IMAGEN (innerText):', imageModule.innerText); // Intentar obtener la URL de la imagen const imageElement = imageModule.querySelector('img'); console.log('Elemento encontrado:', imageElement); if (imageElement && imageElement.src) { imageUrl = imageElement.src; console.log('URL extraída de :', imageUrl); } else { console.log('No se encontró una etiqueta en el módulo IMAGEN'); const textContent = imageModule.innerText.trim(); const urlMatch = textContent.match(/(https?:\/\/[^\s]+)/); if (urlMatch) { imageUrl = urlMatch[0]; console.log('URL extraída del texto:', imageUrl); } else { console.log('No se encontró una URL válida en el módulo IMAGEN'); imageUrl = 'https://telepacifico.com/images/default.jpg'; // Imagen por defecto } } const creditsText = creditsModule.innerText.trim(); // Depuración: mostrar todos los valores extraídos console.log('Valores extraídos:'); console.log('Título:', titleText); console.log('Subtítulo:', subtitleText); console.log('Fecha:', dateText); console.log('Género:', genreText); console.log('Cuerpo:', bodyContent); console.log('URL de imagen:', imageUrl); console.log('Créditos:', creditsText); // Procesar links de redes sociales en el bodyContent bodyContent = processSocialLinks(bodyContent); // Crear el contenedor para el formato personalizado const container = document.getElementById('news-container'); if (!container) { console.error('El contenedor news-container no se encontró'); return; } // Construir el HTML manualmente const imageHtml = imageUrl ? 'Noticia' : ''; const creditsHtml = creditsText ? '

Crédito: ' + creditsText + '

' : ''; container.innerHTML = [ '
', '

' + dateText + '

', '

NOTICIAS | ' + genreText + '

', '
', '', '

' + titleText + '

', '

' + subtitleText + '

', '
', '
', imageHtml, creditsHtml, '
', '
' + bodyContent + '
', '
' ].join(''); console.log('HTML insertado en news-container:', container.innerHTML); // Convertir la fecha a formato ISO 8601 si no lo está let isoDate; try { const dateObj = new Date(dateText); if (isNaN(dateObj)) { console.warn('Fecha no válida, usando fecha actual como respaldo'); isoDate = new Date().toISOString(); } else { isoDate = dateObj.toISOString(); } } catch (e) { console.warn('Error al parsear la fecha, usando fecha actual como respaldo', e); isoDate = new Date().toISOString(); } // Crear el script de Schema.org dinámicamente const articleBodyText = bodyModule.textContent.trim(); // Usar textContent para texto plano sin HTML const schema = { "@context": "http://schema.org", "@type": "ReportageNewsArticle", "url": window.location.href, "thumbnailUrl": imageUrl, "headline": titleText, "description": subtitleText, "datePublished": isoDate, "dateModified": isoDate, "publisher": { "@type": "NewsMediaOrganization", "name": "Telepacífico", "publishingPrinciples": "https://telepacifico.com/legal-web/terminos-y-condiciones", "logo": { "@type": "ImageObject", "width": 512, "height": 512, "url": "https://telepacifico.com/templates/yootheme/cache/39/Logo_Vertical-397e89a3.webp" } }, "image": { "@type": "ImageObject", "width": 1024, "height": 576, "url": imageUrl }, "mainEntityOfPage": { "@type": "WebPage", "@id": window.location.href, "name": titleText }, "inLanguage": { "@type": "Language", "name": "Spanish", "alternateName": "es" }, "about": [ { "@type": "Thing", "name": genreText } ], "author": { "@type": "Organization", "name": "Telepacífico", "sameAs": "https://telepacifico.com/" }, "articleBody": articleBodyText }; const schemaScript = document.createElement('script'); schemaScript.type = 'application/ld+json'; schemaScript.textContent = JSON.stringify(schema); document.head.appendChild(schemaScript); console.log('Script de Schema.org agregado:', schemaScript.textContent); } // Función para procesar links de redes sociales y reemplazarlos con embeds/miniaturas function processSocialLinks(bodyHtml) { const parser = new DOMParser(); const doc = parser.parseFromString(bodyHtml, 'text/html'); const links = doc.querySelectorAll('a'); const scriptsToAdd = new Set(); links.forEach(link => { let href = link.href.toLowerCase(); // Para facilitar la comparación let originalHref = link.href; // Mantener el original para el embed if ((href.startsWith('https://twitter.com/') || href.startsWith('https://x.com/')) && /\/status\/\d+/.test(href)) { // Para este post específico, insertar ambos embeds (custom para desktop, estándar para mobile) if (originalHref === 'https://x.com/TPNoticias_/status/1961083511328116845' || originalHref === 'https://twitter.com/TPNoticias_/status/1961083511328116845') { const wrapper = doc.createElement('div'); wrapper.className = 'embed-wrapper'; // Custom embed para desktop const customEmbed = doc.createElement('div'); customEmbed.className = 'desktop-embed custom-embed'; customEmbed.innerHTML = `
Avatar de Telepacífico Noticias @TPNoticias_ 28 ago. 2025

🚨 #Atención | Hostigamientos en Dagua ⚠️
Desde la cabecera municipal de Dagua, se reportan hostigamientos por parte de grupos al margen de la ley contra las autoridades.
La situación mantiene en alerta a la comunidad, que manifiesta temor y prefiere no salir de sus casas.
Seguiremos informando. #NoticiaEnDesarrollo

`; wrapper.appendChild(customEmbed); // Embed estándar para mobile let standardHref = originalHref; if (href.startsWith('https://x.com/')) { standardHref = originalHref.replace('x.com', 'twitter.com'); } const mobileEmbed = doc.createElement('div'); mobileEmbed.className = 'mobile-embed'; const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = standardHref; a.innerText = link.innerText || standardHref; blockquote.appendChild(a); mobileEmbed.appendChild(blockquote); wrapper.appendChild(mobileEmbed); link.parentNode.replaceChild(wrapper, link); scriptsToAdd.add('twitter'); } else { // Para otros posts de X, usa el embed estándar if (href.startsWith('https://x.com/')) { originalHref = originalHref.replace('x.com', 'twitter.com'); } const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = originalHref; a.innerText = link.innerText || originalHref; blockquote.appendChild(a); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('twitter'); } } else if (href.startsWith('https://www.instagram.com/') && (href.includes('/p/') || href.includes('/reel/'))) { // Embed de Instagram const blockquote = doc.createElement('blockquote'); blockquote.className = 'instagram-media'; blockquote.setAttribute('data-instgrm-permalink', originalHref); blockquote.setAttribute('data-instgrm-version', '14'); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Instagram: ' + (link.innerText || originalHref); blockquote.appendChild(fallbackA); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('instagram'); } else if (href.startsWith('https://www.youtube.com/watch?v=') || href.startsWith('https://youtu.be/')) { // Embed de YouTube (iframe con miniatura implícita en el player) let videoId; if (href.startsWith('https://youtu.be/')) { videoId = href.split('https://youtu.be/')[1].split('?')[0]; } else { const url = new URL(originalHref); videoId = url.searchParams.get('v'); } if (videoId) { const iframe = doc.createElement('iframe'); iframe.width = '560'; iframe.height = '315'; iframe.src = `https://www.youtube.com/embed/${videoId}`; iframe.frameBorder = '0'; iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'; iframe.allowFullscreen = true; link.parentNode.replaceChild(iframe, link); } } else if (href.startsWith('https://www.facebook.com/') && href.includes('/posts/')) { // Embed de Facebook const div = doc.createElement('div'); div.className = 'fb-post'; div.setAttribute('data-href', originalHref); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Facebook: ' + (link.innerText || originalHref); div.appendChild(fallbackA); link.parentNode.replaceChild(div, link); scriptsToAdd.add('facebook'); } }); // Añadir scripts necesarios al final del body si se usaron embeds if (scriptsToAdd.has('twitter')) { const script = document.createElement('script'); script.async = true; script.charset = 'utf-8'; script.src = 'https://platform.twitter.com/widgets.js'; document.body.appendChild(script); } if (scriptsToAdd.has('instagram')) { const script = document.createElement('script'); script.async = true; script.src = 'https://www.instagram.com/embed.js'; document.body.appendChild(script); } if (scriptsToAdd.has('facebook')) { if (!document.getElementById('fb-root')) { const fbRoot = document.createElement('div'); fbRoot.id = 'fb-root'; document.body.appendChild(fbRoot); } const script = document.createElement('script'); script.async = true; script.defer = true; script.crossOrigin = 'anonymous'; script.src = 'https://connect.facebook.net/es_ES/sdk.js#xfbml=1&version=v18.0'; document.body.appendChild(script); } return doc.body.innerHTML; } // Ejecutar cuando el DOM esté cargado document.addEventListener('DOMContentLoaded', function() { processModules(); }); /* Estilos generales */ #news-container { max-width: 1200px; margin: 0 auto; padding: 20px; font-family: 'Encode Sans', sans-serif; } /* Estilos para pantallas grandes (desktop) */ @media (min-width: 768px) { #news-container { display: block; /* Flujo natural para el contenedor principal */ } .header-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .news-date { font-size: 0.9rem; margin: 0; } .news-genre { font-size: 0.9rem; margin: 0; text-transform: uppercase; } .social-icons { display: flex; justify-content: flex-end; margin-bottom: 10px; } .social-icon { font-size: 1.5rem; margin-left: 10px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-title { font-size: 2.5rem; margin: 0; position: relative; padding-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100px; height: 4px; background-color: red; } .news-subtitle { font-size: 1.5rem; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { position: relative; /* Contexto para el float */ overflow: hidden; /* Asegura que el contenedor respete el float */ } .image-container { float: right; /* Imagen flota a la derecha */ margin: 0 0 15px 15px; /* Espaciado para el texto */ max-width: 40%; /* Limita el ancho de la imagen */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; } .image-credits { font-style: italic; font-size: 0.9rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; margin-top: 5px; width: 100%; } .news-body { font-size: 1rem; line-height: 1.6; } .news-body p { margin: 0 0 15px 0; break-inside: avoid; /* Evita que los párrafos se rompan */ } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos */ .news-body blockquote { max-width: 80%; /* Ajuste para hacer los embeds más pequeños en desktop (80% del ancho disponible) */ margin: 15px 0; /* Sin auto para alinear a la izquierda */ display: block; /* Asegura que sea un bloque centrado */ } /* Ajustes específicos para embeds de X/Twitter estándar */ .news-body .twitter-tweet { max-width: 500px; /* Ancho máximo fijo para Twitter embeds, ajusta según necesites */ } /* Ajustes para Instagram */ .news-body .instagram-media { max-width: 500px; } /* Ajustes para Facebook */ .news-body .fb-post { max-width: 500px; } /* Estilos para el wrapper */ .embed-wrapper { max-width: 80%; margin: 15px 0; /* Sin auto para alinear a la izquierda */ } /* Mostrar custom en desktop */ .desktop-embed { display: block; } /* Ocultar estándar en desktop */ .mobile-embed { display: none; } /* Estilos para el embed personalizado */ .custom-embed { display: flex; flex-direction: column; padding: 15px; border: 1px solid #ddd; border-radius: 8px; background-color: #f9f9f9; } .custom-embed .top-section { display: flex; flex-direction: row; align-items: flex-start; gap: 20px; margin-bottom: 15px; } .custom-embed .media-content { flex: 1; } .custom-embed .embed-video { max-width: 100%; height: auto; border-radius: 8px; } .custom-embed .author-info { flex: 0 0 150px; text-align: center; } .custom-embed .avatar { width: 50px; height: 50px; border-radius: 50%; display: block; margin: 0 auto 10px; } .custom-embed .username { display: block; font-weight: bold; } .custom-embed .username a { text-decoration: none; color: #1da1f2; } .custom-embed .timestamp { display: block; color: gray; font-size: 0.8rem; } .custom-embed .post-content { width: 100%; /* Horizontal full width */ } /* Asegura que el texto fluya después del float */ .content-wrapper::after { content: ''; display: block; clear: both; } /* Estilos para h3 en el cuerpo (más grandes y en negrita) */ .news-body h3 { font-size: 1.4rem; font-weight: bold; margin: 20px 0 10px 0; } } /* Estilos para pantallas pequeñas (mobile) */ @media (max-width: 767px) { #news-container { display: flex; flex-direction: column; align-items: center; } .header-meta { order: 1; display: flex; justify-content: space-between; align-items: center; width: 100%; margin-bottom: 10px; } .news-date { font-size: 0.8rem; margin: 0; } .news-genre { font-size: 0.8rem; margin: 0; text-transform: uppercase; } .news-title { order: 2; font-size: 1.8rem; text-align: center; position: relative; padding-bottom: 10px; margin-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 80px; height: 4px; background-color: red; transform: translateX(-50%); } .news-subtitle { order: 3; font-size: 1.2rem; text-align: center; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { order: 4; width: 100%; } .image-container { order: 5; display: flex; flex-direction: column; align-items: center; width: 100%; margin-bottom: 10px; float: none; /* Sin float en móvil */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; margin-bottom: 5px; } .image-credits { font-style: italic; font-size: 0.8rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; width: 100%; } .social-icons { order: 6; display: flex; justify-content: center; margin-top: 10px; margin-bottom: 20px; } .social-icon { font-size: 1.3rem; margin: 0 8px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-body { order: 7; font-size: 1rem; line-height: 1.5; margin-bottom: 20px; } .news-body p { margin: 0 0 15px 0; } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos en móvil */ .news-body blockquote { max-width: 100%; margin: 15px 0; } /* Ocultar custom en mobile */ .desktop-embed { display: none; } /* Mostrar estándar en mobile */ .mobile-embed { display: block; } /* Estilos para h3 en el cuerpo (más grandes y en negrita, ajustado para mobile) */ .news-body h3 { font-size: 1.2rem; font-weight: bold; margin: 15px 0 8px 0; } }

Seguir leyendo

Tuluá eligió nuevas Juntas de Acción Comunal para el periodo 2026–2030

Tuluá eligió nuevas Juntas de Acción Comunal para el periodo 2026–2030

El proceso electoral se desarrolló con normalidad y amplia participación. Las juntas electas deberán cumplir con el proceso de registro ante la Administración Municipal.

29/04/2026

REGIONAL

Tras la jornada electoral realizada este domingo en todo el país, el municipio de Tuluá ya cuenta con nuevas Juntas de Acción Comunal para el periodo 2026–2030, en un proceso que se desarrolló con normalidad y una destacada participación ciudadana.

De acuerdo con lo establecido, las juntas elegidas tendrán un plazo de 20 días para presentar la documentación requerida ante la Administración Municipal, con el fin de adelantar su respectivo envío y registro ante la Gobernación del Valle del Cauca.

La jornada electoral se llevó a cabo sin contratiempos y bajo condiciones de transparencia, gracias al trabajo liderado por Asojuntas, entidad encargada de coordinar el proceso y garantizar su organización.

Las autoridades resaltaron la articulación entre las diferentes entidades, lo que permitió que las elecciones se desarrollaran en un ambiente de tranquilidad, con plenas garantías para el ejercicio democrático y la participación de la comunidad.

JAC

Responsive Banner .gradient-left { background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); } .right-image-gradient { position: absolute; top: 0; left: -6px; width: 60%; height: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); z-index: 20; pointer-events: none; } .banner-img { filter: blur(3px); width: 100%; height: 100%; object-fit: cover; object-position: center; aspect-ratio: 16/9; min-height: 100%; max-height: 100%; max-width: 100%; min-width: 100%; display: block; position: relative; z-index: 10; } .popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 1000; justify-content: center; align-items: center; } .popup iframe { max-width: 90%; max-height: 80%; width: 100%; aspect-ratio: 16 / 9; }
Left Logo
Center Logo
play_circle
function openPopup() { const popup = document.getElementById('videoPopup'); const iframe = popup.querySelector('iframe'); iframe.src = 'https://www.youtube.com/embed/u4cqE-FbIkQ?autoplay=1'; popup.style.display = 'flex'; document.addEventListener('click', closePopupOutside); } function closePopupOutside(event) { const popup = document.getElementById('videoPopup'); if (event.target === popup) { popup.style.display = 'none'; popup.querySelector('iframe').src = ''; document.removeEventListener('click', closePopupOutside); } }
// Función para procesar los módulos function processModules(attempt = 1, maxAttempts = 5) { // Obtener los módulos por sus IDs const titleModule = document.getElementById('TITULO'); const subtitleModule = document.getElementById('SUBTITULO'); const dateModule = document.getElementById('FECHA'); const genreModule = document.getElementById('GENERO'); const bodyModule = document.getElementById('BODY'); const imageModule = document.getElementById('IMAGEN'); const creditsModule = document.getElementById('CREDITOS'); // Verificar si los módulos existen if (!titleModule || !subtitleModule || !dateModule || !genreModule || !bodyModule || !imageModule || !creditsModule) { console.error(`Intento ${attempt}: Uno o más módulos no se encontraron. Verifica los IDs: TITULO, SUBTITULO, FECHA, GENERO, BODY, IMAGEN, CREDITOS`); console.log('TITULO existe:', !!titleModule); console.log('SUBTITULO existe:', !!subtitleModule); console.log('FECHA existe:', !!dateModule); console.log('GENERO existe:', !!genreModule); console.log('BODY existe:', !!bodyModule); console.log('IMAGEN existe:', !!imageModule); console.log('CREDITOS existe:', !!creditsModule); if (attempt processModules(attempt + 1, maxAttempts), 1000); } else { console.error('Se alcanzó el máximo de intentos. No se encontraron todos los módulos.'); } return; } // Ocultar los módulos originales titleModule.style.display = 'none'; subtitleModule.style.display = 'none'; dateModule.style.display = 'none'; genreModule.style.display = 'none'; bodyModule.style.display = 'none'; imageModule.style.display = 'none'; creditsModule.style.display = 'none'; // Extraer el contenido const titleText = titleModule.innerText.trim(); const subtitleText = subtitleModule.innerText.trim(); let dateText = dateModule.innerText.trim(); const genreText = genreModule.innerText.trim(); let bodyContent = bodyModule.innerHTML.trim(); let imageUrl = ''; // Procesar el contenido del cuerpo para respetar la estructura de párrafos y listas const tempDiv = document.createElement('div'); tempDiv.innerHTML = bodyContent; const processedContent = Array.from(tempDiv.children) .map(child => { if (child.classList.contains('paragraph')) { return `

${child.innerHTML.trim()}

`; } else if (child.tagName === 'UL') { return child.outerHTML; } else { return child.outerHTML; } }) .filter(content => content && content.length > 0) .join(''); bodyContent = processedContent || bodyContent; // Depuración: mostrar el contenido del módulo IMAGEN console.log('Contenido crudo del módulo IMAGEN (innerHTML):', imageModule.innerHTML); console.log('Texto del módulo IMAGEN (innerText):', imageModule.innerText); // Intentar obtener la URL de la imagen const imageElement = imageModule.querySelector('img'); console.log('Elemento encontrado:', imageElement); if (imageElement && imageElement.src) { imageUrl = imageElement.src; console.log('URL extraída de :', imageUrl); } else { console.log('No se encontró una etiqueta en el módulo IMAGEN'); const textContent = imageModule.innerText.trim(); const urlMatch = textContent.match(/(https?:\/\/[^\s]+)/); if (urlMatch) { imageUrl = urlMatch[0]; console.log('URL extraída del texto:', imageUrl); } else { console.log('No se encontró una URL válida en el módulo IMAGEN'); imageUrl = 'https://telepacifico.com/images/default.jpg'; // Imagen por defecto } } const creditsText = creditsModule.innerText.trim(); // Depuración: mostrar todos los valores extraídos console.log('Valores extraídos:'); console.log('Título:', titleText); console.log('Subtítulo:', subtitleText); console.log('Fecha:', dateText); console.log('Género:', genreText); console.log('Cuerpo:', bodyContent); console.log('URL de imagen:', imageUrl); console.log('Créditos:', creditsText); // Procesar links de redes sociales en el bodyContent bodyContent = processSocialLinks(bodyContent); // Crear el contenedor para el formato personalizado const container = document.getElementById('news-container'); if (!container) { console.error('El contenedor news-container no se encontró'); return; } // Construir el HTML manualmente const imageHtml = imageUrl ? 'Noticia' : ''; const creditsHtml = creditsText ? '

Crédito: ' + creditsText + '

' : ''; container.innerHTML = [ '
', '

' + dateText + '

', '

NOTICIAS | ' + genreText + '

', '
', '', '

' + titleText + '

', '

' + subtitleText + '

', '
', '
', imageHtml, creditsHtml, '
', '
' + bodyContent + '
', '
' ].join(''); console.log('HTML insertado en news-container:', container.innerHTML); // Convertir la fecha a formato ISO 8601 si no lo está let isoDate; try { const dateObj = new Date(dateText); if (isNaN(dateObj)) { console.warn('Fecha no válida, usando fecha actual como respaldo'); isoDate = new Date().toISOString(); } else { isoDate = dateObj.toISOString(); } } catch (e) { console.warn('Error al parsear la fecha, usando fecha actual como respaldo', e); isoDate = new Date().toISOString(); } // Crear el script de Schema.org dinámicamente const articleBodyText = bodyModule.textContent.trim(); // Usar textContent para texto plano sin HTML const schema = { "@context": "http://schema.org", "@type": "ReportageNewsArticle", "url": window.location.href, "thumbnailUrl": imageUrl, "headline": titleText, "description": subtitleText, "datePublished": isoDate, "dateModified": isoDate, "publisher": { "@type": "NewsMediaOrganization", "name": "Telepacífico", "publishingPrinciples": "https://telepacifico.com/legal-web/terminos-y-condiciones", "logo": { "@type": "ImageObject", "width": 512, "height": 512, "url": "https://telepacifico.com/templates/yootheme/cache/39/Logo_Vertical-397e89a3.webp" } }, "image": { "@type": "ImageObject", "width": 1024, "height": 576, "url": imageUrl }, "mainEntityOfPage": { "@type": "WebPage", "@id": window.location.href, "name": titleText }, "inLanguage": { "@type": "Language", "name": "Spanish", "alternateName": "es" }, "about": [ { "@type": "Thing", "name": genreText } ], "author": { "@type": "Organization", "name": "Telepacífico", "sameAs": "https://telepacifico.com/" }, "articleBody": articleBodyText }; const schemaScript = document.createElement('script'); schemaScript.type = 'application/ld+json'; schemaScript.textContent = JSON.stringify(schema); document.head.appendChild(schemaScript); console.log('Script de Schema.org agregado:', schemaScript.textContent); } // Función para procesar links de redes sociales y reemplazarlos con embeds/miniaturas function processSocialLinks(bodyHtml) { const parser = new DOMParser(); const doc = parser.parseFromString(bodyHtml, 'text/html'); const links = doc.querySelectorAll('a'); const scriptsToAdd = new Set(); links.forEach(link => { let href = link.href.toLowerCase(); // Para facilitar la comparación let originalHref = link.href; // Mantener el original para el embed if ((href.startsWith('https://twitter.com/') || href.startsWith('https://x.com/')) && /\/status\/\d+/.test(href)) { // Para este post específico, insertar ambos embeds (custom para desktop, estándar para mobile) if (originalHref === 'https://x.com/TPNoticias_/status/1961083511328116845' || originalHref === 'https://twitter.com/TPNoticias_/status/1961083511328116845') { const wrapper = doc.createElement('div'); wrapper.className = 'embed-wrapper'; // Custom embed para desktop const customEmbed = doc.createElement('div'); customEmbed.className = 'desktop-embed custom-embed'; customEmbed.innerHTML = `
Avatar de Telepacífico Noticias @TPNoticias_ 28 ago. 2025

🚨 #Atención | Hostigamientos en Dagua ⚠️
Desde la cabecera municipal de Dagua, se reportan hostigamientos por parte de grupos al margen de la ley contra las autoridades.
La situación mantiene en alerta a la comunidad, que manifiesta temor y prefiere no salir de sus casas.
Seguiremos informando. #NoticiaEnDesarrollo

`; wrapper.appendChild(customEmbed); // Embed estándar para mobile let standardHref = originalHref; if (href.startsWith('https://x.com/')) { standardHref = originalHref.replace('x.com', 'twitter.com'); } const mobileEmbed = doc.createElement('div'); mobileEmbed.className = 'mobile-embed'; const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = standardHref; a.innerText = link.innerText || standardHref; blockquote.appendChild(a); mobileEmbed.appendChild(blockquote); wrapper.appendChild(mobileEmbed); link.parentNode.replaceChild(wrapper, link); scriptsToAdd.add('twitter'); } else { // Para otros posts de X, usa el embed estándar if (href.startsWith('https://x.com/')) { originalHref = originalHref.replace('x.com', 'twitter.com'); } const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = originalHref; a.innerText = link.innerText || originalHref; blockquote.appendChild(a); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('twitter'); } } else if (href.startsWith('https://www.instagram.com/') && (href.includes('/p/') || href.includes('/reel/'))) { // Embed de Instagram const blockquote = doc.createElement('blockquote'); blockquote.className = 'instagram-media'; blockquote.setAttribute('data-instgrm-permalink', originalHref); blockquote.setAttribute('data-instgrm-version', '14'); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Instagram: ' + (link.innerText || originalHref); blockquote.appendChild(fallbackA); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('instagram'); } else if (href.startsWith('https://www.youtube.com/watch?v=') || href.startsWith('https://youtu.be/')) { // Embed de YouTube (iframe con miniatura implícita en el player) let videoId; if (href.startsWith('https://youtu.be/')) { videoId = href.split('https://youtu.be/')[1].split('?')[0]; } else { const url = new URL(originalHref); videoId = url.searchParams.get('v'); } if (videoId) { const iframe = doc.createElement('iframe'); iframe.width = '560'; iframe.height = '315'; iframe.src = `https://www.youtube.com/embed/${videoId}`; iframe.frameBorder = '0'; iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'; iframe.allowFullscreen = true; link.parentNode.replaceChild(iframe, link); } } else if (href.startsWith('https://www.facebook.com/') && href.includes('/posts/')) { // Embed de Facebook const div = doc.createElement('div'); div.className = 'fb-post'; div.setAttribute('data-href', originalHref); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Facebook: ' + (link.innerText || originalHref); div.appendChild(fallbackA); link.parentNode.replaceChild(div, link); scriptsToAdd.add('facebook'); } }); // Añadir scripts necesarios al final del body si se usaron embeds if (scriptsToAdd.has('twitter')) { const script = document.createElement('script'); script.async = true; script.charset = 'utf-8'; script.src = 'https://platform.twitter.com/widgets.js'; document.body.appendChild(script); } if (scriptsToAdd.has('instagram')) { const script = document.createElement('script'); script.async = true; script.src = 'https://www.instagram.com/embed.js'; document.body.appendChild(script); } if (scriptsToAdd.has('facebook')) { if (!document.getElementById('fb-root')) { const fbRoot = document.createElement('div'); fbRoot.id = 'fb-root'; document.body.appendChild(fbRoot); } const script = document.createElement('script'); script.async = true; script.defer = true; script.crossOrigin = 'anonymous'; script.src = 'https://connect.facebook.net/es_ES/sdk.js#xfbml=1&version=v18.0'; document.body.appendChild(script); } return doc.body.innerHTML; } // Ejecutar cuando el DOM esté cargado document.addEventListener('DOMContentLoaded', function() { processModules(); }); /* Estilos generales */ #news-container { max-width: 1200px; margin: 0 auto; padding: 20px; font-family: 'Encode Sans', sans-serif; } /* Estilos para pantallas grandes (desktop) */ @media (min-width: 768px) { #news-container { display: block; /* Flujo natural para el contenedor principal */ } .header-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .news-date { font-size: 0.9rem; margin: 0; } .news-genre { font-size: 0.9rem; margin: 0; text-transform: uppercase; } .social-icons { display: flex; justify-content: flex-end; margin-bottom: 10px; } .social-icon { font-size: 1.5rem; margin-left: 10px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-title { font-size: 2.5rem; margin: 0; position: relative; padding-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100px; height: 4px; background-color: red; } .news-subtitle { font-size: 1.5rem; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { position: relative; /* Contexto para el float */ overflow: hidden; /* Asegura que el contenedor respete el float */ } .image-container { float: right; /* Imagen flota a la derecha */ margin: 0 0 15px 15px; /* Espaciado para el texto */ max-width: 40%; /* Limita el ancho de la imagen */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; } .image-credits { font-style: italic; font-size: 0.9rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; margin-top: 5px; width: 100%; } .news-body { font-size: 1rem; line-height: 1.6; } .news-body p { margin: 0 0 15px 0; break-inside: avoid; /* Evita que los párrafos se rompan */ } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos */ .news-body blockquote { max-width: 80%; /* Ajuste para hacer los embeds más pequeños en desktop (80% del ancho disponible) */ margin: 15px 0; /* Sin auto para alinear a la izquierda */ display: block; /* Asegura que sea un bloque centrado */ } /* Ajustes específicos para embeds de X/Twitter estándar */ .news-body .twitter-tweet { max-width: 500px; /* Ancho máximo fijo para Twitter embeds, ajusta según necesites */ } /* Ajustes para Instagram */ .news-body .instagram-media { max-width: 500px; } /* Ajustes para Facebook */ .news-body .fb-post { max-width: 500px; } /* Estilos para el wrapper */ .embed-wrapper { max-width: 80%; margin: 15px 0; /* Sin auto para alinear a la izquierda */ } /* Mostrar custom en desktop */ .desktop-embed { display: block; } /* Ocultar estándar en desktop */ .mobile-embed { display: none; } /* Estilos para el embed personalizado */ .custom-embed { display: flex; flex-direction: column; padding: 15px; border: 1px solid #ddd; border-radius: 8px; background-color: #f9f9f9; } .custom-embed .top-section { display: flex; flex-direction: row; align-items: flex-start; gap: 20px; margin-bottom: 15px; } .custom-embed .media-content { flex: 1; } .custom-embed .embed-video { max-width: 100%; height: auto; border-radius: 8px; } .custom-embed .author-info { flex: 0 0 150px; text-align: center; } .custom-embed .avatar { width: 50px; height: 50px; border-radius: 50%; display: block; margin: 0 auto 10px; } .custom-embed .username { display: block; font-weight: bold; } .custom-embed .username a { text-decoration: none; color: #1da1f2; } .custom-embed .timestamp { display: block; color: gray; font-size: 0.8rem; } .custom-embed .post-content { width: 100%; /* Horizontal full width */ } /* Asegura que el texto fluya después del float */ .content-wrapper::after { content: ''; display: block; clear: both; } /* Estilos para h3 en el cuerpo (más grandes y en negrita) */ .news-body h3 { font-size: 1.4rem; font-weight: bold; margin: 20px 0 10px 0; } } /* Estilos para pantallas pequeñas (mobile) */ @media (max-width: 767px) { #news-container { display: flex; flex-direction: column; align-items: center; } .header-meta { order: 1; display: flex; justify-content: space-between; align-items: center; width: 100%; margin-bottom: 10px; } .news-date { font-size: 0.8rem; margin: 0; } .news-genre { font-size: 0.8rem; margin: 0; text-transform: uppercase; } .news-title { order: 2; font-size: 1.8rem; text-align: center; position: relative; padding-bottom: 10px; margin-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 80px; height: 4px; background-color: red; transform: translateX(-50%); } .news-subtitle { order: 3; font-size: 1.2rem; text-align: center; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { order: 4; width: 100%; } .image-container { order: 5; display: flex; flex-direction: column; align-items: center; width: 100%; margin-bottom: 10px; float: none; /* Sin float en móvil */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; margin-bottom: 5px; } .image-credits { font-style: italic; font-size: 0.8rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; width: 100%; } .social-icons { order: 6; display: flex; justify-content: center; margin-top: 10px; margin-bottom: 20px; } .social-icon { font-size: 1.3rem; margin: 0 8px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-body { order: 7; font-size: 1rem; line-height: 1.5; margin-bottom: 20px; } .news-body p { margin: 0 0 15px 0; } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos en móvil */ .news-body blockquote { max-width: 100%; margin: 15px 0; } /* Ocultar custom en mobile */ .desktop-embed { display: none; } /* Mostrar estándar en mobile */ .mobile-embed { display: block; } /* Estilos para h3 en el cuerpo (más grandes y en negrita, ajustado para mobile) */ .news-body h3 { font-size: 1.2rem; font-weight: bold; margin: 15px 0 8px 0; } }

Seguir leyendo

Escritores vallecaucanos destacan respaldo institucional en la FilBo 2026

Escritores vallecaucanos destacan respaldo institucional en la FilBo 2026

Más de 38 autores del departamento participan en la Feria Internacional del Libro de Bogotá con el apoyo de la Gobernación, fortaleciendo la visibilidad de la literatura regional.

29/04/2026

REGIONAL

Con el respaldo de la Gobernación del Valle del Cauca, más de 38 escritores del departamento participan en la Feria Internacional del Libro de Bogotá (FilBo) 2026, a través de espacios como ‘El Valle y sus Letras’ y el Festival ‘Oiga Mire Lea’, donde comparten sus obras con públicos nacionales e internacionales y promueven la identidad cultural del territorio.

Los autores regionales han destacado el impacto de este acompañamiento institucional en uno de los eventos literarios más importantes de América Latina. “Es una de las principales ferias de Latinoamérica, aquí converge gente de todos los países tanto de Suramérica como de Europa, y la presencia de la Gobernación es vital para promocionar nuestro departamento y dar a conocer la literatura que tenemos para el mundo”, expresó la escritora vallecaucana Luz Stella Marulanda.

Por su parte, el director de la Biblioteca Departamental ‘Jorge Garcés Borrero’, Fernando Tamayo, resaltó el alcance de esta apuesta cultural. “El Valle del Cauca puede tener alrededor de 7.000 u 8.000 escritores que hacen un esfuerzo enorme por publicar y difundir sus obras. Este respaldo institucional fortalece una labor que resulta quijotesca y dignifica la vida de los escritores del departamento”, afirmó.

En la misma línea, la autora Yenci Forero subrayó la importancia de estos espacios para ampliar horizontes. “Es un trabajo comprometido y fructífero que nos permite llegar a más lugares del país. Es un apoyo muy significativo para los autores y una gran plataforma para compartir nuestros conocimientos”, señaló.

Asimismo, desde iniciativas culturales se reconoce el valor de esta vitrina. Gustavo Gutiérrez, fundador de BiblioGhetto, aseguró que la FilBo es “una de las mejores vitrinas para mostrar lo que se viene haciendo desde hace muchos años en el Valle del Cauca, con el respaldo a escritores de diferentes municipios”.

La agenda del departamento en la FilBo continúa con nuevas presentaciones de libros. El 28 de abril, a las 5:00 p.m., el escritor Nicolás Guevara presentará su obra El Arca del Zodiaco, tercera entrega de su saga de fantasía, como parte de una programación que se extenderá hasta el 4 de mayo, consolidando al Valle del Cauca como protagonista de la cultura y la literatura en el país.

FILBO

Responsive Banner .gradient-left { background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); } .right-image-gradient { position: absolute; top: 0; left: -6px; width: 60%; height: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); z-index: 20; pointer-events: none; } .banner-img { filter: blur(3px); width: 100%; height: 100%; object-fit: cover; object-position: center; aspect-ratio: 16/9; min-height: 100%; max-height: 100%; max-width: 100%; min-width: 100%; display: block; position: relative; z-index: 10; } .popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 1000; justify-content: center; align-items: center; } .popup iframe { max-width: 90%; max-height: 80%; width: 100%; aspect-ratio: 16 / 9; }
Left Logo
Center Logo
play_circle
function openPopup() { const popup = document.getElementById('videoPopup'); const iframe = popup.querySelector('iframe'); iframe.src = 'https://www.youtube.com/embed/u4cqE-FbIkQ?autoplay=1'; popup.style.display = 'flex'; document.addEventListener('click', closePopupOutside); } function closePopupOutside(event) { const popup = document.getElementById('videoPopup'); if (event.target === popup) { popup.style.display = 'none'; popup.querySelector('iframe').src = ''; document.removeEventListener('click', closePopupOutside); } }
// Función para procesar los módulos function processModules(attempt = 1, maxAttempts = 5) { // Obtener los módulos por sus IDs const titleModule = document.getElementById('TITULO'); const subtitleModule = document.getElementById('SUBTITULO'); const dateModule = document.getElementById('FECHA'); const genreModule = document.getElementById('GENERO'); const bodyModule = document.getElementById('BODY'); const imageModule = document.getElementById('IMAGEN'); const creditsModule = document.getElementById('CREDITOS'); // Verificar si los módulos existen if (!titleModule || !subtitleModule || !dateModule || !genreModule || !bodyModule || !imageModule || !creditsModule) { console.error(`Intento ${attempt}: Uno o más módulos no se encontraron. Verifica los IDs: TITULO, SUBTITULO, FECHA, GENERO, BODY, IMAGEN, CREDITOS`); console.log('TITULO existe:', !!titleModule); console.log('SUBTITULO existe:', !!subtitleModule); console.log('FECHA existe:', !!dateModule); console.log('GENERO existe:', !!genreModule); console.log('BODY existe:', !!bodyModule); console.log('IMAGEN existe:', !!imageModule); console.log('CREDITOS existe:', !!creditsModule); if (attempt processModules(attempt + 1, maxAttempts), 1000); } else { console.error('Se alcanzó el máximo de intentos. No se encontraron todos los módulos.'); } return; } // Ocultar los módulos originales titleModule.style.display = 'none'; subtitleModule.style.display = 'none'; dateModule.style.display = 'none'; genreModule.style.display = 'none'; bodyModule.style.display = 'none'; imageModule.style.display = 'none'; creditsModule.style.display = 'none'; // Extraer el contenido const titleText = titleModule.innerText.trim(); const subtitleText = subtitleModule.innerText.trim(); let dateText = dateModule.innerText.trim(); const genreText = genreModule.innerText.trim(); let bodyContent = bodyModule.innerHTML.trim(); let imageUrl = ''; // Procesar el contenido del cuerpo para respetar la estructura de párrafos y listas const tempDiv = document.createElement('div'); tempDiv.innerHTML = bodyContent; const processedContent = Array.from(tempDiv.children) .map(child => { if (child.classList.contains('paragraph')) { return `

${child.innerHTML.trim()}

`; } else if (child.tagName === 'UL') { return child.outerHTML; } else { return child.outerHTML; } }) .filter(content => content && content.length > 0) .join(''); bodyContent = processedContent || bodyContent; // Depuración: mostrar el contenido del módulo IMAGEN console.log('Contenido crudo del módulo IMAGEN (innerHTML):', imageModule.innerHTML); console.log('Texto del módulo IMAGEN (innerText):', imageModule.innerText); // Intentar obtener la URL de la imagen const imageElement = imageModule.querySelector('img'); console.log('Elemento encontrado:', imageElement); if (imageElement && imageElement.src) { imageUrl = imageElement.src; console.log('URL extraída de :', imageUrl); } else { console.log('No se encontró una etiqueta en el módulo IMAGEN'); const textContent = imageModule.innerText.trim(); const urlMatch = textContent.match(/(https?:\/\/[^\s]+)/); if (urlMatch) { imageUrl = urlMatch[0]; console.log('URL extraída del texto:', imageUrl); } else { console.log('No se encontró una URL válida en el módulo IMAGEN'); imageUrl = 'https://telepacifico.com/images/default.jpg'; // Imagen por defecto } } const creditsText = creditsModule.innerText.trim(); // Depuración: mostrar todos los valores extraídos console.log('Valores extraídos:'); console.log('Título:', titleText); console.log('Subtítulo:', subtitleText); console.log('Fecha:', dateText); console.log('Género:', genreText); console.log('Cuerpo:', bodyContent); console.log('URL de imagen:', imageUrl); console.log('Créditos:', creditsText); // Procesar links de redes sociales en el bodyContent bodyContent = processSocialLinks(bodyContent); // Crear el contenedor para el formato personalizado const container = document.getElementById('news-container'); if (!container) { console.error('El contenedor news-container no se encontró'); return; } // Construir el HTML manualmente const imageHtml = imageUrl ? 'Noticia' : ''; const creditsHtml = creditsText ? '

Crédito: ' + creditsText + '

' : ''; container.innerHTML = [ '
', '

' + dateText + '

', '

NOTICIAS | ' + genreText + '

', '
', '', '

' + titleText + '

', '

' + subtitleText + '

', '
', '
', imageHtml, creditsHtml, '
', '
' + bodyContent + '
', '
' ].join(''); console.log('HTML insertado en news-container:', container.innerHTML); // Convertir la fecha a formato ISO 8601 si no lo está let isoDate; try { const dateObj = new Date(dateText); if (isNaN(dateObj)) { console.warn('Fecha no válida, usando fecha actual como respaldo'); isoDate = new Date().toISOString(); } else { isoDate = dateObj.toISOString(); } } catch (e) { console.warn('Error al parsear la fecha, usando fecha actual como respaldo', e); isoDate = new Date().toISOString(); } // Crear el script de Schema.org dinámicamente const articleBodyText = bodyModule.textContent.trim(); // Usar textContent para texto plano sin HTML const schema = { "@context": "http://schema.org", "@type": "ReportageNewsArticle", "url": window.location.href, "thumbnailUrl": imageUrl, "headline": titleText, "description": subtitleText, "datePublished": isoDate, "dateModified": isoDate, "publisher": { "@type": "NewsMediaOrganization", "name": "Telepacífico", "publishingPrinciples": "https://telepacifico.com/legal-web/terminos-y-condiciones", "logo": { "@type": "ImageObject", "width": 512, "height": 512, "url": "https://telepacifico.com/templates/yootheme/cache/39/Logo_Vertical-397e89a3.webp" } }, "image": { "@type": "ImageObject", "width": 1024, "height": 576, "url": imageUrl }, "mainEntityOfPage": { "@type": "WebPage", "@id": window.location.href, "name": titleText }, "inLanguage": { "@type": "Language", "name": "Spanish", "alternateName": "es" }, "about": [ { "@type": "Thing", "name": genreText } ], "author": { "@type": "Organization", "name": "Telepacífico", "sameAs": "https://telepacifico.com/" }, "articleBody": articleBodyText }; const schemaScript = document.createElement('script'); schemaScript.type = 'application/ld+json'; schemaScript.textContent = JSON.stringify(schema); document.head.appendChild(schemaScript); console.log('Script de Schema.org agregado:', schemaScript.textContent); } // Función para procesar links de redes sociales y reemplazarlos con embeds/miniaturas function processSocialLinks(bodyHtml) { const parser = new DOMParser(); const doc = parser.parseFromString(bodyHtml, 'text/html'); const links = doc.querySelectorAll('a'); const scriptsToAdd = new Set(); links.forEach(link => { let href = link.href.toLowerCase(); // Para facilitar la comparación let originalHref = link.href; // Mantener el original para el embed if ((href.startsWith('https://twitter.com/') || href.startsWith('https://x.com/')) && /\/status\/\d+/.test(href)) { // Para este post específico, insertar ambos embeds (custom para desktop, estándar para mobile) if (originalHref === 'https://x.com/TPNoticias_/status/1961083511328116845' || originalHref === 'https://twitter.com/TPNoticias_/status/1961083511328116845') { const wrapper = doc.createElement('div'); wrapper.className = 'embed-wrapper'; // Custom embed para desktop const customEmbed = doc.createElement('div'); customEmbed.className = 'desktop-embed custom-embed'; customEmbed.innerHTML = `
Avatar de Telepacífico Noticias @TPNoticias_ 28 ago. 2025

🚨 #Atención | Hostigamientos en Dagua ⚠️
Desde la cabecera municipal de Dagua, se reportan hostigamientos por parte de grupos al margen de la ley contra las autoridades.
La situación mantiene en alerta a la comunidad, que manifiesta temor y prefiere no salir de sus casas.
Seguiremos informando. #NoticiaEnDesarrollo

`; wrapper.appendChild(customEmbed); // Embed estándar para mobile let standardHref = originalHref; if (href.startsWith('https://x.com/')) { standardHref = originalHref.replace('x.com', 'twitter.com'); } const mobileEmbed = doc.createElement('div'); mobileEmbed.className = 'mobile-embed'; const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = standardHref; a.innerText = link.innerText || standardHref; blockquote.appendChild(a); mobileEmbed.appendChild(blockquote); wrapper.appendChild(mobileEmbed); link.parentNode.replaceChild(wrapper, link); scriptsToAdd.add('twitter'); } else { // Para otros posts de X, usa el embed estándar if (href.startsWith('https://x.com/')) { originalHref = originalHref.replace('x.com', 'twitter.com'); } const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = originalHref; a.innerText = link.innerText || originalHref; blockquote.appendChild(a); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('twitter'); } } else if (href.startsWith('https://www.instagram.com/') && (href.includes('/p/') || href.includes('/reel/'))) { // Embed de Instagram const blockquote = doc.createElement('blockquote'); blockquote.className = 'instagram-media'; blockquote.setAttribute('data-instgrm-permalink', originalHref); blockquote.setAttribute('data-instgrm-version', '14'); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Instagram: ' + (link.innerText || originalHref); blockquote.appendChild(fallbackA); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('instagram'); } else if (href.startsWith('https://www.youtube.com/watch?v=') || href.startsWith('https://youtu.be/')) { // Embed de YouTube (iframe con miniatura implícita en el player) let videoId; if (href.startsWith('https://youtu.be/')) { videoId = href.split('https://youtu.be/')[1].split('?')[0]; } else { const url = new URL(originalHref); videoId = url.searchParams.get('v'); } if (videoId) { const iframe = doc.createElement('iframe'); iframe.width = '560'; iframe.height = '315'; iframe.src = `https://www.youtube.com/embed/${videoId}`; iframe.frameBorder = '0'; iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'; iframe.allowFullscreen = true; link.parentNode.replaceChild(iframe, link); } } else if (href.startsWith('https://www.facebook.com/') && href.includes('/posts/')) { // Embed de Facebook const div = doc.createElement('div'); div.className = 'fb-post'; div.setAttribute('data-href', originalHref); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Facebook: ' + (link.innerText || originalHref); div.appendChild(fallbackA); link.parentNode.replaceChild(div, link); scriptsToAdd.add('facebook'); } }); // Añadir scripts necesarios al final del body si se usaron embeds if (scriptsToAdd.has('twitter')) { const script = document.createElement('script'); script.async = true; script.charset = 'utf-8'; script.src = 'https://platform.twitter.com/widgets.js'; document.body.appendChild(script); } if (scriptsToAdd.has('instagram')) { const script = document.createElement('script'); script.async = true; script.src = 'https://www.instagram.com/embed.js'; document.body.appendChild(script); } if (scriptsToAdd.has('facebook')) { if (!document.getElementById('fb-root')) { const fbRoot = document.createElement('div'); fbRoot.id = 'fb-root'; document.body.appendChild(fbRoot); } const script = document.createElement('script'); script.async = true; script.defer = true; script.crossOrigin = 'anonymous'; script.src = 'https://connect.facebook.net/es_ES/sdk.js#xfbml=1&version=v18.0'; document.body.appendChild(script); } return doc.body.innerHTML; } // Ejecutar cuando el DOM esté cargado document.addEventListener('DOMContentLoaded', function() { processModules(); }); /* Estilos generales */ #news-container { max-width: 1200px; margin: 0 auto; padding: 20px; font-family: 'Encode Sans', sans-serif; } /* Estilos para pantallas grandes (desktop) */ @media (min-width: 768px) { #news-container { display: block; /* Flujo natural para el contenedor principal */ } .header-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .news-date { font-size: 0.9rem; margin: 0; } .news-genre { font-size: 0.9rem; margin: 0; text-transform: uppercase; } .social-icons { display: flex; justify-content: flex-end; margin-bottom: 10px; } .social-icon { font-size: 1.5rem; margin-left: 10px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-title { font-size: 2.5rem; margin: 0; position: relative; padding-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100px; height: 4px; background-color: red; } .news-subtitle { font-size: 1.5rem; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { position: relative; /* Contexto para el float */ overflow: hidden; /* Asegura que el contenedor respete el float */ } .image-container { float: right; /* Imagen flota a la derecha */ margin: 0 0 15px 15px; /* Espaciado para el texto */ max-width: 40%; /* Limita el ancho de la imagen */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; } .image-credits { font-style: italic; font-size: 0.9rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; margin-top: 5px; width: 100%; } .news-body { font-size: 1rem; line-height: 1.6; } .news-body p { margin: 0 0 15px 0; break-inside: avoid; /* Evita que los párrafos se rompan */ } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos */ .news-body blockquote { max-width: 80%; /* Ajuste para hacer los embeds más pequeños en desktop (80% del ancho disponible) */ margin: 15px 0; /* Sin auto para alinear a la izquierda */ display: block; /* Asegura que sea un bloque centrado */ } /* Ajustes específicos para embeds de X/Twitter estándar */ .news-body .twitter-tweet { max-width: 500px; /* Ancho máximo fijo para Twitter embeds, ajusta según necesites */ } /* Ajustes para Instagram */ .news-body .instagram-media { max-width: 500px; } /* Ajustes para Facebook */ .news-body .fb-post { max-width: 500px; } /* Estilos para el wrapper */ .embed-wrapper { max-width: 80%; margin: 15px 0; /* Sin auto para alinear a la izquierda */ } /* Mostrar custom en desktop */ .desktop-embed { display: block; } /* Ocultar estándar en desktop */ .mobile-embed { display: none; } /* Estilos para el embed personalizado */ .custom-embed { display: flex; flex-direction: column; padding: 15px; border: 1px solid #ddd; border-radius: 8px; background-color: #f9f9f9; } .custom-embed .top-section { display: flex; flex-direction: row; align-items: flex-start; gap: 20px; margin-bottom: 15px; } .custom-embed .media-content { flex: 1; } .custom-embed .embed-video { max-width: 100%; height: auto; border-radius: 8px; } .custom-embed .author-info { flex: 0 0 150px; text-align: center; } .custom-embed .avatar { width: 50px; height: 50px; border-radius: 50%; display: block; margin: 0 auto 10px; } .custom-embed .username { display: block; font-weight: bold; } .custom-embed .username a { text-decoration: none; color: #1da1f2; } .custom-embed .timestamp { display: block; color: gray; font-size: 0.8rem; } .custom-embed .post-content { width: 100%; /* Horizontal full width */ } /* Asegura que el texto fluya después del float */ .content-wrapper::after { content: ''; display: block; clear: both; } /* Estilos para h3 en el cuerpo (más grandes y en negrita) */ .news-body h3 { font-size: 1.4rem; font-weight: bold; margin: 20px 0 10px 0; } } /* Estilos para pantallas pequeñas (mobile) */ @media (max-width: 767px) { #news-container { display: flex; flex-direction: column; align-items: center; } .header-meta { order: 1; display: flex; justify-content: space-between; align-items: center; width: 100%; margin-bottom: 10px; } .news-date { font-size: 0.8rem; margin: 0; } .news-genre { font-size: 0.8rem; margin: 0; text-transform: uppercase; } .news-title { order: 2; font-size: 1.8rem; text-align: center; position: relative; padding-bottom: 10px; margin-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 80px; height: 4px; background-color: red; transform: translateX(-50%); } .news-subtitle { order: 3; font-size: 1.2rem; text-align: center; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { order: 4; width: 100%; } .image-container { order: 5; display: flex; flex-direction: column; align-items: center; width: 100%; margin-bottom: 10px; float: none; /* Sin float en móvil */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; margin-bottom: 5px; } .image-credits { font-style: italic; font-size: 0.8rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; width: 100%; } .social-icons { order: 6; display: flex; justify-content: center; margin-top: 10px; margin-bottom: 20px; } .social-icon { font-size: 1.3rem; margin: 0 8px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-body { order: 7; font-size: 1rem; line-height: 1.5; margin-bottom: 20px; } .news-body p { margin: 0 0 15px 0; } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos en móvil */ .news-body blockquote { max-width: 100%; margin: 15px 0; } /* Ocultar custom en mobile */ .desktop-embed { display: none; } /* Mostrar estándar en mobile */ .mobile-embed { display: block; } /* Estilos para h3 en el cuerpo (más grandes y en negrita, ajustado para mobile) */ .news-body h3 { font-size: 1.2rem; font-weight: bold; margin: 15px 0 8px 0; } }

Seguir leyendo

Senatic llegó a Pasto con su “Efecto Transformador”: más de 2.400 jóvenes certificados impulsan el talento digital en Nariño

Senatic llegó a Pasto con su “Efecto Transformador”: más de 2.400 jóvenes Certificados impulsan el talento digital en Nariño

Este programa, liderado por el Ministerio TIC, el Sena y la Organización Internacional del Trabajo, hizo presencia en 36 municipios de Nariño, descentralizando la formación de alto nivel para conectar el talento regional con el mercado global.

25/04/2026

REGIONAL

El talento digital fruto de las estrategias de formación
del Gobierno sigue llegando a todo el país, Senatic, iniciativa liderada por el Ministerio TIC, el Sena
y la Organización Internacional del Trabajo (OIT), realizó hoy la jornada de cierre y reconocimiento
de su primera cohorte en Nariño. El evento, realizado en Pasto con la asistencia de más de 350
personas, marca un avance clave en la meta nacional de fortalecer las capacidades tecnológicas en
las regiones.
A la fecha, 2.403 jóvenes del departamento han culminado su proceso de formación recibiendo
titulación de técnicos en temas TI. De ellos, 444 son de Pasto. Además, el impacto de la línea de
articulación con la media cuenta con 98 instituciones educativas vinculadas en 36 municipios.
Actualmente, la estrategia garantiza la continuidad del talento regional con 2.783 estudiantes
adicionales que ya avanzan en la cohorte 2025-2026.
William Alexander Sánchez, subdirector de Competencias Digitales y director (e) de Apropiación de
TIC en el Ministerio TIC, destacó lo estratégica que ha sido esta alianza: “A través de Senatic
estamos entregando herramientas técnicas que permiten a los jóvenes integrarse activamente a la
economía digital. No se trata solo de conectividad, sino de garantizar que el talento humano en los
territorios cuente con la formación necesaria para acceder a oportunidades laborales reales y
contribuir al desarrollo regional”.
Otro punto interesante de la implementación en Pasto es su enfoque en inclusión y equidad de
género. De los 5.988 beneficiarios certificados en cursos cortos, el 57,38% son jóvenes menores de
edad, consolidando la articulación con la educación media. El proyecto también ha integrado de
manera efectiva a población con discapacidad, víctimas del conflicto y comunidades étnicas.
Además, el 52,94 % de los participantes fueron mujeres, un avance en el cierre de la brecha de
género en la región.
Durante la jornada se llevó a cabo el panel “Las TIC en el futuro del trabajo”, donde
representantes de la OIT, la academia y el sector empresarial analizaron la pertinencia de la
formación técnica frente a las demandas actuales del mercado. El evento concluyó con el
reconocimiento a los aprendices y una muestra cultural que reafirmó la identidad territorial como
eje de los procesos formativos.
 
Estos resultados demuestran que el impulso dado por el Ministerio TIC a la Misión de
Transformación Digital 2035, que sigue acelerando la consolidación de un ecosistema donde el
conocimiento técnico y la productividad sean los motores del progreso en Colombia.

MINIESTERIO TIC

Responsive Banner .gradient-left { background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); } .right-image-gradient { position: absolute; top: 0; left: -6px; width: 60%; height: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); z-index: 20; pointer-events: none; } .banner-img { filter: blur(3px); width: 100%; height: 100%; object-fit: cover; object-position: center; aspect-ratio: 16/9; min-height: 100%; max-height: 100%; max-width: 100%; min-width: 100%; display: block; position: relative; z-index: 10; } .popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 1000; justify-content: center; align-items: center; } .popup iframe { max-width: 90%; max-height: 80%; width: 100%; aspect-ratio: 16 / 9; }
Left Logo
Center Logo
play_circle
function openPopup() { const popup = document.getElementById('videoPopup'); const iframe = popup.querySelector('iframe'); iframe.src = 'https://www.youtube.com/embed/u4cqE-FbIkQ?autoplay=1'; popup.style.display = 'flex'; document.addEventListener('click', closePopupOutside); } function closePopupOutside(event) { const popup = document.getElementById('videoPopup'); if (event.target === popup) { popup.style.display = 'none'; popup.querySelector('iframe').src = ''; document.removeEventListener('click', closePopupOutside); } }
// Función para procesar los módulos function processModules(attempt = 1, maxAttempts = 5) { // Obtener los módulos por sus IDs const titleModule = document.getElementById('TITULO'); const subtitleModule = document.getElementById('SUBTITULO'); const dateModule = document.getElementById('FECHA'); const genreModule = document.getElementById('GENERO'); const bodyModule = document.getElementById('BODY'); const imageModule = document.getElementById('IMAGEN'); const creditsModule = document.getElementById('CREDITOS'); // Verificar si los módulos existen if (!titleModule || !subtitleModule || !dateModule || !genreModule || !bodyModule || !imageModule || !creditsModule) { console.error(`Intento ${attempt}: Uno o más módulos no se encontraron. Verifica los IDs: TITULO, SUBTITULO, FECHA, GENERO, BODY, IMAGEN, CREDITOS`); console.log('TITULO existe:', !!titleModule); console.log('SUBTITULO existe:', !!subtitleModule); console.log('FECHA existe:', !!dateModule); console.log('GENERO existe:', !!genreModule); console.log('BODY existe:', !!bodyModule); console.log('IMAGEN existe:', !!imageModule); console.log('CREDITOS existe:', !!creditsModule); if (attempt processModules(attempt + 1, maxAttempts), 1000); } else { console.error('Se alcanzó el máximo de intentos. No se encontraron todos los módulos.'); } return; } // Ocultar los módulos originales titleModule.style.display = 'none'; subtitleModule.style.display = 'none'; dateModule.style.display = 'none'; genreModule.style.display = 'none'; bodyModule.style.display = 'none'; imageModule.style.display = 'none'; creditsModule.style.display = 'none'; // Extraer el contenido const titleText = titleModule.innerText.trim(); const subtitleText = subtitleModule.innerText.trim(); let dateText = dateModule.innerText.trim(); const genreText = genreModule.innerText.trim(); let bodyContent = bodyModule.innerHTML.trim(); let imageUrl = ''; // Procesar el contenido del cuerpo para respetar la estructura de párrafos y listas const tempDiv = document.createElement('div'); tempDiv.innerHTML = bodyContent; const processedContent = Array.from(tempDiv.children) .map(child => { if (child.classList.contains('paragraph')) { return `

${child.innerHTML.trim()}

`; } else if (child.tagName === 'UL') { return child.outerHTML; } else { return child.outerHTML; } }) .filter(content => content && content.length > 0) .join(''); bodyContent = processedContent || bodyContent; // Depuración: mostrar el contenido del módulo IMAGEN console.log('Contenido crudo del módulo IMAGEN (innerHTML):', imageModule.innerHTML); console.log('Texto del módulo IMAGEN (innerText):', imageModule.innerText); // Intentar obtener la URL de la imagen const imageElement = imageModule.querySelector('img'); console.log('Elemento encontrado:', imageElement); if (imageElement && imageElement.src) { imageUrl = imageElement.src; console.log('URL extraída de :', imageUrl); } else { console.log('No se encontró una etiqueta en el módulo IMAGEN'); const textContent = imageModule.innerText.trim(); const urlMatch = textContent.match(/(https?:\/\/[^\s]+)/); if (urlMatch) { imageUrl = urlMatch[0]; console.log('URL extraída del texto:', imageUrl); } else { console.log('No se encontró una URL válida en el módulo IMAGEN'); imageUrl = 'https://telepacifico.com/images/default.jpg'; // Imagen por defecto } } const creditsText = creditsModule.innerText.trim(); // Depuración: mostrar todos los valores extraídos console.log('Valores extraídos:'); console.log('Título:', titleText); console.log('Subtítulo:', subtitleText); console.log('Fecha:', dateText); console.log('Género:', genreText); console.log('Cuerpo:', bodyContent); console.log('URL de imagen:', imageUrl); console.log('Créditos:', creditsText); // Procesar links de redes sociales en el bodyContent bodyContent = processSocialLinks(bodyContent); // Crear el contenedor para el formato personalizado const container = document.getElementById('news-container'); if (!container) { console.error('El contenedor news-container no se encontró'); return; } // Construir el HTML manualmente const imageHtml = imageUrl ? 'Noticia' : ''; const creditsHtml = creditsText ? '

Crédito: ' + creditsText + '

' : ''; container.innerHTML = [ '
', '

' + dateText + '

', '

NOTICIAS | ' + genreText + '

', '
', '', '

' + titleText + '

', '

' + subtitleText + '

', '
', '
', imageHtml, creditsHtml, '
', '
' + bodyContent + '
', '
' ].join(''); console.log('HTML insertado en news-container:', container.innerHTML); // Convertir la fecha a formato ISO 8601 si no lo está let isoDate; try { const dateObj = new Date(dateText); if (isNaN(dateObj)) { console.warn('Fecha no válida, usando fecha actual como respaldo'); isoDate = new Date().toISOString(); } else { isoDate = dateObj.toISOString(); } } catch (e) { console.warn('Error al parsear la fecha, usando fecha actual como respaldo', e); isoDate = new Date().toISOString(); } // Crear el script de Schema.org dinámicamente const articleBodyText = bodyModule.textContent.trim(); // Usar textContent para texto plano sin HTML const schema = { "@context": "http://schema.org", "@type": "ReportageNewsArticle", "url": window.location.href, "thumbnailUrl": imageUrl, "headline": titleText, "description": subtitleText, "datePublished": isoDate, "dateModified": isoDate, "publisher": { "@type": "NewsMediaOrganization", "name": "Telepacífico", "publishingPrinciples": "https://telepacifico.com/legal-web/terminos-y-condiciones", "logo": { "@type": "ImageObject", "width": 512, "height": 512, "url": "https://telepacifico.com/templates/yootheme/cache/39/Logo_Vertical-397e89a3.webp" } }, "image": { "@type": "ImageObject", "width": 1024, "height": 576, "url": imageUrl }, "mainEntityOfPage": { "@type": "WebPage", "@id": window.location.href, "name": titleText }, "inLanguage": { "@type": "Language", "name": "Spanish", "alternateName": "es" }, "about": [ { "@type": "Thing", "name": genreText } ], "author": { "@type": "Organization", "name": "Telepacífico", "sameAs": "https://telepacifico.com/" }, "articleBody": articleBodyText }; const schemaScript = document.createElement('script'); schemaScript.type = 'application/ld+json'; schemaScript.textContent = JSON.stringify(schema); document.head.appendChild(schemaScript); console.log('Script de Schema.org agregado:', schemaScript.textContent); } // Función para procesar links de redes sociales y reemplazarlos con embeds/miniaturas function processSocialLinks(bodyHtml) { const parser = new DOMParser(); const doc = parser.parseFromString(bodyHtml, 'text/html'); const links = doc.querySelectorAll('a'); const scriptsToAdd = new Set(); links.forEach(link => { let href = link.href.toLowerCase(); // Para facilitar la comparación let originalHref = link.href; // Mantener el original para el embed if ((href.startsWith('https://twitter.com/') || href.startsWith('https://x.com/')) && /\/status\/\d+/.test(href)) { // Para este post específico, insertar ambos embeds (custom para desktop, estándar para mobile) if (originalHref === 'https://x.com/TPNoticias_/status/1961083511328116845' || originalHref === 'https://twitter.com/TPNoticias_/status/1961083511328116845') { const wrapper = doc.createElement('div'); wrapper.className = 'embed-wrapper'; // Custom embed para desktop const customEmbed = doc.createElement('div'); customEmbed.className = 'desktop-embed custom-embed'; customEmbed.innerHTML = `
Avatar de Telepacífico Noticias @TPNoticias_ 28 ago. 2025

🚨 #Atención | Hostigamientos en Dagua ⚠️
Desde la cabecera municipal de Dagua, se reportan hostigamientos por parte de grupos al margen de la ley contra las autoridades.
La situación mantiene en alerta a la comunidad, que manifiesta temor y prefiere no salir de sus casas.
Seguiremos informando. #NoticiaEnDesarrollo

`; wrapper.appendChild(customEmbed); // Embed estándar para mobile let standardHref = originalHref; if (href.startsWith('https://x.com/')) { standardHref = originalHref.replace('x.com', 'twitter.com'); } const mobileEmbed = doc.createElement('div'); mobileEmbed.className = 'mobile-embed'; const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = standardHref; a.innerText = link.innerText || standardHref; blockquote.appendChild(a); mobileEmbed.appendChild(blockquote); wrapper.appendChild(mobileEmbed); link.parentNode.replaceChild(wrapper, link); scriptsToAdd.add('twitter'); } else { // Para otros posts de X, usa el embed estándar if (href.startsWith('https://x.com/')) { originalHref = originalHref.replace('x.com', 'twitter.com'); } const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = originalHref; a.innerText = link.innerText || originalHref; blockquote.appendChild(a); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('twitter'); } } else if (href.startsWith('https://www.instagram.com/') && (href.includes('/p/') || href.includes('/reel/'))) { // Embed de Instagram const blockquote = doc.createElement('blockquote'); blockquote.className = 'instagram-media'; blockquote.setAttribute('data-instgrm-permalink', originalHref); blockquote.setAttribute('data-instgrm-version', '14'); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Instagram: ' + (link.innerText || originalHref); blockquote.appendChild(fallbackA); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('instagram'); } else if (href.startsWith('https://www.youtube.com/watch?v=') || href.startsWith('https://youtu.be/')) { // Embed de YouTube (iframe con miniatura implícita en el player) let videoId; if (href.startsWith('https://youtu.be/')) { videoId = href.split('https://youtu.be/')[1].split('?')[0]; } else { const url = new URL(originalHref); videoId = url.searchParams.get('v'); } if (videoId) { const iframe = doc.createElement('iframe'); iframe.width = '560'; iframe.height = '315'; iframe.src = `https://www.youtube.com/embed/${videoId}`; iframe.frameBorder = '0'; iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'; iframe.allowFullscreen = true; link.parentNode.replaceChild(iframe, link); } } else if (href.startsWith('https://www.facebook.com/') && href.includes('/posts/')) { // Embed de Facebook const div = doc.createElement('div'); div.className = 'fb-post'; div.setAttribute('data-href', originalHref); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Facebook: ' + (link.innerText || originalHref); div.appendChild(fallbackA); link.parentNode.replaceChild(div, link); scriptsToAdd.add('facebook'); } }); // Añadir scripts necesarios al final del body si se usaron embeds if (scriptsToAdd.has('twitter')) { const script = document.createElement('script'); script.async = true; script.charset = 'utf-8'; script.src = 'https://platform.twitter.com/widgets.js'; document.body.appendChild(script); } if (scriptsToAdd.has('instagram')) { const script = document.createElement('script'); script.async = true; script.src = 'https://www.instagram.com/embed.js'; document.body.appendChild(script); } if (scriptsToAdd.has('facebook')) { if (!document.getElementById('fb-root')) { const fbRoot = document.createElement('div'); fbRoot.id = 'fb-root'; document.body.appendChild(fbRoot); } const script = document.createElement('script'); script.async = true; script.defer = true; script.crossOrigin = 'anonymous'; script.src = 'https://connect.facebook.net/es_ES/sdk.js#xfbml=1&version=v18.0'; document.body.appendChild(script); } return doc.body.innerHTML; } // Ejecutar cuando el DOM esté cargado document.addEventListener('DOMContentLoaded', function() { processModules(); }); /* Estilos generales */ #news-container { max-width: 1200px; margin: 0 auto; padding: 20px; font-family: 'Encode Sans', sans-serif; } /* Estilos para pantallas grandes (desktop) */ @media (min-width: 768px) { #news-container { display: block; /* Flujo natural para el contenedor principal */ } .header-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .news-date { font-size: 0.9rem; margin: 0; } .news-genre { font-size: 0.9rem; margin: 0; text-transform: uppercase; } .social-icons { display: flex; justify-content: flex-end; margin-bottom: 10px; } .social-icon { font-size: 1.5rem; margin-left: 10px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-title { font-size: 2.5rem; margin: 0; position: relative; padding-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100px; height: 4px; background-color: red; } .news-subtitle { font-size: 1.5rem; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { position: relative; /* Contexto para el float */ overflow: hidden; /* Asegura que el contenedor respete el float */ } .image-container { float: right; /* Imagen flota a la derecha */ margin: 0 0 15px 15px; /* Espaciado para el texto */ max-width: 40%; /* Limita el ancho de la imagen */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; } .image-credits { font-style: italic; font-size: 0.9rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; margin-top: 5px; width: 100%; } .news-body { font-size: 1rem; line-height: 1.6; } .news-body p { margin: 0 0 15px 0; break-inside: avoid; /* Evita que los párrafos se rompan */ } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos */ .news-body blockquote { max-width: 80%; /* Ajuste para hacer los embeds más pequeños en desktop (80% del ancho disponible) */ margin: 15px 0; /* Sin auto para alinear a la izquierda */ display: block; /* Asegura que sea un bloque centrado */ } /* Ajustes específicos para embeds de X/Twitter estándar */ .news-body .twitter-tweet { max-width: 500px; /* Ancho máximo fijo para Twitter embeds, ajusta según necesites */ } /* Ajustes para Instagram */ .news-body .instagram-media { max-width: 500px; } /* Ajustes para Facebook */ .news-body .fb-post { max-width: 500px; } /* Estilos para el wrapper */ .embed-wrapper { max-width: 80%; margin: 15px 0; /* Sin auto para alinear a la izquierda */ } /* Mostrar custom en desktop */ .desktop-embed { display: block; } /* Ocultar estándar en desktop */ .mobile-embed { display: none; } /* Estilos para el embed personalizado */ .custom-embed { display: flex; flex-direction: column; padding: 15px; border: 1px solid #ddd; border-radius: 8px; background-color: #f9f9f9; } .custom-embed .top-section { display: flex; flex-direction: row; align-items: flex-start; gap: 20px; margin-bottom: 15px; } .custom-embed .media-content { flex: 1; } .custom-embed .embed-video { max-width: 100%; height: auto; border-radius: 8px; } .custom-embed .author-info { flex: 0 0 150px; text-align: center; } .custom-embed .avatar { width: 50px; height: 50px; border-radius: 50%; display: block; margin: 0 auto 10px; } .custom-embed .username { display: block; font-weight: bold; } .custom-embed .username a { text-decoration: none; color: #1da1f2; } .custom-embed .timestamp { display: block; color: gray; font-size: 0.8rem; } .custom-embed .post-content { width: 100%; /* Horizontal full width */ } /* Asegura que el texto fluya después del float */ .content-wrapper::after { content: ''; display: block; clear: both; } /* Estilos para h3 en el cuerpo (más grandes y en negrita) */ .news-body h3 { font-size: 1.4rem; font-weight: bold; margin: 20px 0 10px 0; } } /* Estilos para pantallas pequeñas (mobile) */ @media (max-width: 767px) { #news-container { display: flex; flex-direction: column; align-items: center; } .header-meta { order: 1; display: flex; justify-content: space-between; align-items: center; width: 100%; margin-bottom: 10px; } .news-date { font-size: 0.8rem; margin: 0; } .news-genre { font-size: 0.8rem; margin: 0; text-transform: uppercase; } .news-title { order: 2; font-size: 1.8rem; text-align: center; position: relative; padding-bottom: 10px; margin-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 80px; height: 4px; background-color: red; transform: translateX(-50%); } .news-subtitle { order: 3; font-size: 1.2rem; text-align: center; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { order: 4; width: 100%; } .image-container { order: 5; display: flex; flex-direction: column; align-items: center; width: 100%; margin-bottom: 10px; float: none; /* Sin float en móvil */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; margin-bottom: 5px; } .image-credits { font-style: italic; font-size: 0.8rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; width: 100%; } .social-icons { order: 6; display: flex; justify-content: center; margin-top: 10px; margin-bottom: 20px; } .social-icon { font-size: 1.3rem; margin: 0 8px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-body { order: 7; font-size: 1rem; line-height: 1.5; margin-bottom: 20px; } .news-body p { margin: 0 0 15px 0; } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos en móvil */ .news-body blockquote { max-width: 100%; margin: 15px 0; } /* Ocultar custom en mobile */ .desktop-embed { display: none; } /* Mostrar estándar en mobile */ .mobile-embed { display: block; } /* Estilos para h3 en el cuerpo (más grandes y en negrita, ajustado para mobile) */ .news-body h3 { font-size: 1.2rem; font-weight: bold; margin: 15px 0 8px 0; } }

Seguir leyendo

Gobierno del presidente Gustavo Petro da mayor impulso a reactivación comercial con Venezuela con soluciones financieras concretas

Gobierno del presidente Gustavo Petro da mayor impulso a reactivación comercial con Venezuela con soluciones financieras concretas

La ministra de Comercio, Industria y Turismo, Diana Marcela Morales Rojas, explicó que se abren nuevas oportunidades reales para la internacionalización con protección a los exportadores. Además, se dinamizan sectores estratégicos que generan empleo y desarrollo en los territorios.

24/04/2026

REGIONAL

Bajo la presidencia de la ministra de Comercio, Industria y Turismo, Diana Marcela Morales, la Junta Directiva de Bancóldex aprobó una decisión estratégica para facilitar y dar un mayor impulso a la reactivación de las operaciones comerciales con Venezuela, en respuesta al nuevo contexto de normalización económica y al levantamiento parcial de restricciones financieras internacionales.
 
Por ello, Bancóldex -Banco de Desarrollo Empresarial- puso a disposición de los exportadores colombianos un portafolio de productos y servicios con soluciones a su medida como crédito, coberturas cambiarias y asesorías empresariales.
 
De este portafolio hará parte una línea de crédito por US$100 millones para financiar a los empresarios colombianos que realicen operaciones de comercio con el mercado venezolano. Esta herramienta tiene un cupo en pesos (de $185.000 millones) para financiar capital de trabajo y modernización. Un segundo componente en dólares de esta línea, por US$50 millones fue diseñado para la prefinanciación o financiación de exportaciones o importaciones asociadas al mercado venezolano.
 
Adicional a estos recursos, el Banco también dispone de otras líneas de su portafolio que complementan la oferta de crédito con condiciones favorables para los negocios ubicados en las zonas de frontera. 
 
En complemento a la financiación, este portafolio incluye el servicio de coberturas cambiarias, una herramienta que permite al importador y exportador mitigar la pérdida por la variación de la tasa de cambio y, también, cursos de formación para educar a los empresarios en la gestión de divisas. 
 
Próximamente, Bancóldex ofrecerá la confirmación de Cartas de Crédito de comercio ya sea a la vista, con pago diferido o bajo modalidad de aceptación, incorporando esquemas como el cash collateral para mitigar riesgos y garantizar la seguridad de las operaciones.
 
Este programa se enmarca en un escenario de reapertura del sistema financiero venezolano que hoy permite avanzar en transacciones con entidades clave de ese país, abriendo nuevas oportunidades para el comercio bilateral y la expansión de las empresas colombianas en la región.
 
En este contexto, Bancóldex avanza como el puente financiero que acompaña a los empresarios colombianos en su proceso de internacionalización, habilitando instrumentos concretos para facilitar las exportaciones, gestionar riesgos y fortalecer la confianza en este mercado.
 
Este enfoque permitirá acompañar a los exportadores colombianos en sectores estratégicos como la agroindustria, la infraestructura digital y la manufactura liviana, aprovechando el potencial de crecimiento del comercio bilateral proyectado para 2026.
 
“Hoy Colombia da un nuevo impulso para consolidar la reactivación del comercio con Venezuela, con herramientas financieras concretas que permiten a nuestros empresarios volver a ese mercado con seguridad, confianza y respaldo institucional. Esta decisión de Bancóldex no solo responde a un nuevo contexto internacional, sino que refleja una política clara del Gobierno de Progreso: abrir oportunidades reales para la internacionalización, proteger a nuestros exportadores y dinamizar sectores estratégicos que generan empleo y desarrollo en los territorios. Estamos pasando de la expectativa a la acción, con instrumentos que convierten la integración económica en resultados tangibles para el país”, afirmo la ministra Morales. 
 
Con esta decisión, el Ministerio de Comercio, Industria y Turismo y Bancóldex reafirman su compromiso con la internacionalización de las empresas colombianas, liderando el acompañamiento financiero en un entorno de riesgos gestionados y nuevas oportunidades institucionales y consolidando a Colombia como un actor activo en la reconfiguración del comercio regional.

Ministra de Comercio, Industria y Turismo

Responsive Banner .gradient-left { background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); } .right-image-gradient { position: absolute; top: 0; left: -6px; width: 60%; height: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); z-index: 20; pointer-events: none; } .banner-img { filter: blur(3px); width: 100%; height: 100%; object-fit: cover; object-position: center; aspect-ratio: 16/9; min-height: 100%; max-height: 100%; max-width: 100%; min-width: 100%; display: block; position: relative; z-index: 10; } .popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 1000; justify-content: center; align-items: center; } .popup iframe { max-width: 90%; max-height: 80%; width: 100%; aspect-ratio: 16 / 9; }
Left Logo
Center Logo
play_circle
function openPopup() { const popup = document.getElementById('videoPopup'); const iframe = popup.querySelector('iframe'); iframe.src = 'https://www.youtube.com/embed/u4cqE-FbIkQ?autoplay=1'; popup.style.display = 'flex'; document.addEventListener('click', closePopupOutside); } function closePopupOutside(event) { const popup = document.getElementById('videoPopup'); if (event.target === popup) { popup.style.display = 'none'; popup.querySelector('iframe').src = ''; document.removeEventListener('click', closePopupOutside); } }
// Función para procesar los módulos function processModules(attempt = 1, maxAttempts = 5) { // Obtener los módulos por sus IDs const titleModule = document.getElementById('TITULO'); const subtitleModule = document.getElementById('SUBTITULO'); const dateModule = document.getElementById('FECHA'); const genreModule = document.getElementById('GENERO'); const bodyModule = document.getElementById('BODY'); const imageModule = document.getElementById('IMAGEN'); const creditsModule = document.getElementById('CREDITOS'); // Verificar si los módulos existen if (!titleModule || !subtitleModule || !dateModule || !genreModule || !bodyModule || !imageModule || !creditsModule) { console.error(`Intento ${attempt}: Uno o más módulos no se encontraron. Verifica los IDs: TITULO, SUBTITULO, FECHA, GENERO, BODY, IMAGEN, CREDITOS`); console.log('TITULO existe:', !!titleModule); console.log('SUBTITULO existe:', !!subtitleModule); console.log('FECHA existe:', !!dateModule); console.log('GENERO existe:', !!genreModule); console.log('BODY existe:', !!bodyModule); console.log('IMAGEN existe:', !!imageModule); console.log('CREDITOS existe:', !!creditsModule); if (attempt processModules(attempt + 1, maxAttempts), 1000); } else { console.error('Se alcanzó el máximo de intentos. No se encontraron todos los módulos.'); } return; } // Ocultar los módulos originales titleModule.style.display = 'none'; subtitleModule.style.display = 'none'; dateModule.style.display = 'none'; genreModule.style.display = 'none'; bodyModule.style.display = 'none'; imageModule.style.display = 'none'; creditsModule.style.display = 'none'; // Extraer el contenido const titleText = titleModule.innerText.trim(); const subtitleText = subtitleModule.innerText.trim(); let dateText = dateModule.innerText.trim(); const genreText = genreModule.innerText.trim(); let bodyContent = bodyModule.innerHTML.trim(); let imageUrl = ''; // Procesar el contenido del cuerpo para respetar la estructura de párrafos y listas const tempDiv = document.createElement('div'); tempDiv.innerHTML = bodyContent; const processedContent = Array.from(tempDiv.children) .map(child => { if (child.classList.contains('paragraph')) { return `

${child.innerHTML.trim()}

`; } else if (child.tagName === 'UL') { return child.outerHTML; } else { return child.outerHTML; } }) .filter(content => content && content.length > 0) .join(''); bodyContent = processedContent || bodyContent; // Depuración: mostrar el contenido del módulo IMAGEN console.log('Contenido crudo del módulo IMAGEN (innerHTML):', imageModule.innerHTML); console.log('Texto del módulo IMAGEN (innerText):', imageModule.innerText); // Intentar obtener la URL de la imagen const imageElement = imageModule.querySelector('img'); console.log('Elemento encontrado:', imageElement); if (imageElement && imageElement.src) { imageUrl = imageElement.src; console.log('URL extraída de :', imageUrl); } else { console.log('No se encontró una etiqueta en el módulo IMAGEN'); const textContent = imageModule.innerText.trim(); const urlMatch = textContent.match(/(https?:\/\/[^\s]+)/); if (urlMatch) { imageUrl = urlMatch[0]; console.log('URL extraída del texto:', imageUrl); } else { console.log('No se encontró una URL válida en el módulo IMAGEN'); imageUrl = 'https://telepacifico.com/images/default.jpg'; // Imagen por defecto } } const creditsText = creditsModule.innerText.trim(); // Depuración: mostrar todos los valores extraídos console.log('Valores extraídos:'); console.log('Título:', titleText); console.log('Subtítulo:', subtitleText); console.log('Fecha:', dateText); console.log('Género:', genreText); console.log('Cuerpo:', bodyContent); console.log('URL de imagen:', imageUrl); console.log('Créditos:', creditsText); // Procesar links de redes sociales en el bodyContent bodyContent = processSocialLinks(bodyContent); // Crear el contenedor para el formato personalizado const container = document.getElementById('news-container'); if (!container) { console.error('El contenedor news-container no se encontró'); return; } // Construir el HTML manualmente const imageHtml = imageUrl ? 'Noticia' : ''; const creditsHtml = creditsText ? '

Crédito: ' + creditsText + '

' : ''; container.innerHTML = [ '
', '

' + dateText + '

', '

NOTICIAS | ' + genreText + '

', '
', '', '

' + titleText + '

', '

' + subtitleText + '

', '
', '
', imageHtml, creditsHtml, '
', '
' + bodyContent + '
', '
' ].join(''); console.log('HTML insertado en news-container:', container.innerHTML); // Convertir la fecha a formato ISO 8601 si no lo está let isoDate; try { const dateObj = new Date(dateText); if (isNaN(dateObj)) { console.warn('Fecha no válida, usando fecha actual como respaldo'); isoDate = new Date().toISOString(); } else { isoDate = dateObj.toISOString(); } } catch (e) { console.warn('Error al parsear la fecha, usando fecha actual como respaldo', e); isoDate = new Date().toISOString(); } // Crear el script de Schema.org dinámicamente const articleBodyText = bodyModule.textContent.trim(); // Usar textContent para texto plano sin HTML const schema = { "@context": "http://schema.org", "@type": "ReportageNewsArticle", "url": window.location.href, "thumbnailUrl": imageUrl, "headline": titleText, "description": subtitleText, "datePublished": isoDate, "dateModified": isoDate, "publisher": { "@type": "NewsMediaOrganization", "name": "Telepacífico", "publishingPrinciples": "https://telepacifico.com/legal-web/terminos-y-condiciones", "logo": { "@type": "ImageObject", "width": 512, "height": 512, "url": "https://telepacifico.com/templates/yootheme/cache/39/Logo_Vertical-397e89a3.webp" } }, "image": { "@type": "ImageObject", "width": 1024, "height": 576, "url": imageUrl }, "mainEntityOfPage": { "@type": "WebPage", "@id": window.location.href, "name": titleText }, "inLanguage": { "@type": "Language", "name": "Spanish", "alternateName": "es" }, "about": [ { "@type": "Thing", "name": genreText } ], "author": { "@type": "Organization", "name": "Telepacífico", "sameAs": "https://telepacifico.com/" }, "articleBody": articleBodyText }; const schemaScript = document.createElement('script'); schemaScript.type = 'application/ld+json'; schemaScript.textContent = JSON.stringify(schema); document.head.appendChild(schemaScript); console.log('Script de Schema.org agregado:', schemaScript.textContent); } // Función para procesar links de redes sociales y reemplazarlos con embeds/miniaturas function processSocialLinks(bodyHtml) { const parser = new DOMParser(); const doc = parser.parseFromString(bodyHtml, 'text/html'); const links = doc.querySelectorAll('a'); const scriptsToAdd = new Set(); links.forEach(link => { let href = link.href.toLowerCase(); // Para facilitar la comparación let originalHref = link.href; // Mantener el original para el embed if ((href.startsWith('https://twitter.com/') || href.startsWith('https://x.com/')) && /\/status\/\d+/.test(href)) { // Para este post específico, insertar ambos embeds (custom para desktop, estándar para mobile) if (originalHref === 'https://x.com/TPNoticias_/status/1961083511328116845' || originalHref === 'https://twitter.com/TPNoticias_/status/1961083511328116845') { const wrapper = doc.createElement('div'); wrapper.className = 'embed-wrapper'; // Custom embed para desktop const customEmbed = doc.createElement('div'); customEmbed.className = 'desktop-embed custom-embed'; customEmbed.innerHTML = `
Avatar de Telepacífico Noticias @TPNoticias_ 28 ago. 2025

🚨 #Atención | Hostigamientos en Dagua ⚠️
Desde la cabecera municipal de Dagua, se reportan hostigamientos por parte de grupos al margen de la ley contra las autoridades.
La situación mantiene en alerta a la comunidad, que manifiesta temor y prefiere no salir de sus casas.
Seguiremos informando. #NoticiaEnDesarrollo

`; wrapper.appendChild(customEmbed); // Embed estándar para mobile let standardHref = originalHref; if (href.startsWith('https://x.com/')) { standardHref = originalHref.replace('x.com', 'twitter.com'); } const mobileEmbed = doc.createElement('div'); mobileEmbed.className = 'mobile-embed'; const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = standardHref; a.innerText = link.innerText || standardHref; blockquote.appendChild(a); mobileEmbed.appendChild(blockquote); wrapper.appendChild(mobileEmbed); link.parentNode.replaceChild(wrapper, link); scriptsToAdd.add('twitter'); } else { // Para otros posts de X, usa el embed estándar if (href.startsWith('https://x.com/')) { originalHref = originalHref.replace('x.com', 'twitter.com'); } const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = originalHref; a.innerText = link.innerText || originalHref; blockquote.appendChild(a); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('twitter'); } } else if (href.startsWith('https://www.instagram.com/') && (href.includes('/p/') || href.includes('/reel/'))) { // Embed de Instagram const blockquote = doc.createElement('blockquote'); blockquote.className = 'instagram-media'; blockquote.setAttribute('data-instgrm-permalink', originalHref); blockquote.setAttribute('data-instgrm-version', '14'); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Instagram: ' + (link.innerText || originalHref); blockquote.appendChild(fallbackA); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('instagram'); } else if (href.startsWith('https://www.youtube.com/watch?v=') || href.startsWith('https://youtu.be/')) { // Embed de YouTube (iframe con miniatura implícita en el player) let videoId; if (href.startsWith('https://youtu.be/')) { videoId = href.split('https://youtu.be/')[1].split('?')[0]; } else { const url = new URL(originalHref); videoId = url.searchParams.get('v'); } if (videoId) { const iframe = doc.createElement('iframe'); iframe.width = '560'; iframe.height = '315'; iframe.src = `https://www.youtube.com/embed/${videoId}`; iframe.frameBorder = '0'; iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'; iframe.allowFullscreen = true; link.parentNode.replaceChild(iframe, link); } } else if (href.startsWith('https://www.facebook.com/') && href.includes('/posts/')) { // Embed de Facebook const div = doc.createElement('div'); div.className = 'fb-post'; div.setAttribute('data-href', originalHref); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Facebook: ' + (link.innerText || originalHref); div.appendChild(fallbackA); link.parentNode.replaceChild(div, link); scriptsToAdd.add('facebook'); } }); // Añadir scripts necesarios al final del body si se usaron embeds if (scriptsToAdd.has('twitter')) { const script = document.createElement('script'); script.async = true; script.charset = 'utf-8'; script.src = 'https://platform.twitter.com/widgets.js'; document.body.appendChild(script); } if (scriptsToAdd.has('instagram')) { const script = document.createElement('script'); script.async = true; script.src = 'https://www.instagram.com/embed.js'; document.body.appendChild(script); } if (scriptsToAdd.has('facebook')) { if (!document.getElementById('fb-root')) { const fbRoot = document.createElement('div'); fbRoot.id = 'fb-root'; document.body.appendChild(fbRoot); } const script = document.createElement('script'); script.async = true; script.defer = true; script.crossOrigin = 'anonymous'; script.src = 'https://connect.facebook.net/es_ES/sdk.js#xfbml=1&version=v18.0'; document.body.appendChild(script); } return doc.body.innerHTML; } // Ejecutar cuando el DOM esté cargado document.addEventListener('DOMContentLoaded', function() { processModules(); }); /* Estilos generales */ #news-container { max-width: 1200px; margin: 0 auto; padding: 20px; font-family: 'Encode Sans', sans-serif; } /* Estilos para pantallas grandes (desktop) */ @media (min-width: 768px) { #news-container { display: block; /* Flujo natural para el contenedor principal */ } .header-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .news-date { font-size: 0.9rem; margin: 0; } .news-genre { font-size: 0.9rem; margin: 0; text-transform: uppercase; } .social-icons { display: flex; justify-content: flex-end; margin-bottom: 10px; } .social-icon { font-size: 1.5rem; margin-left: 10px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-title { font-size: 2.5rem; margin: 0; position: relative; padding-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100px; height: 4px; background-color: red; } .news-subtitle { font-size: 1.5rem; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { position: relative; /* Contexto para el float */ overflow: hidden; /* Asegura que el contenedor respete el float */ } .image-container { float: right; /* Imagen flota a la derecha */ margin: 0 0 15px 15px; /* Espaciado para el texto */ max-width: 40%; /* Limita el ancho de la imagen */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; } .image-credits { font-style: italic; font-size: 0.9rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; margin-top: 5px; width: 100%; } .news-body { font-size: 1rem; line-height: 1.6; } .news-body p { margin: 0 0 15px 0; break-inside: avoid; /* Evita que los párrafos se rompan */ } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos */ .news-body blockquote { max-width: 80%; /* Ajuste para hacer los embeds más pequeños en desktop (80% del ancho disponible) */ margin: 15px 0; /* Sin auto para alinear a la izquierda */ display: block; /* Asegura que sea un bloque centrado */ } /* Ajustes específicos para embeds de X/Twitter estándar */ .news-body .twitter-tweet { max-width: 500px; /* Ancho máximo fijo para Twitter embeds, ajusta según necesites */ } /* Ajustes para Instagram */ .news-body .instagram-media { max-width: 500px; } /* Ajustes para Facebook */ .news-body .fb-post { max-width: 500px; } /* Estilos para el wrapper */ .embed-wrapper { max-width: 80%; margin: 15px 0; /* Sin auto para alinear a la izquierda */ } /* Mostrar custom en desktop */ .desktop-embed { display: block; } /* Ocultar estándar en desktop */ .mobile-embed { display: none; } /* Estilos para el embed personalizado */ .custom-embed { display: flex; flex-direction: column; padding: 15px; border: 1px solid #ddd; border-radius: 8px; background-color: #f9f9f9; } .custom-embed .top-section { display: flex; flex-direction: row; align-items: flex-start; gap: 20px; margin-bottom: 15px; } .custom-embed .media-content { flex: 1; } .custom-embed .embed-video { max-width: 100%; height: auto; border-radius: 8px; } .custom-embed .author-info { flex: 0 0 150px; text-align: center; } .custom-embed .avatar { width: 50px; height: 50px; border-radius: 50%; display: block; margin: 0 auto 10px; } .custom-embed .username { display: block; font-weight: bold; } .custom-embed .username a { text-decoration: none; color: #1da1f2; } .custom-embed .timestamp { display: block; color: gray; font-size: 0.8rem; } .custom-embed .post-content { width: 100%; /* Horizontal full width */ } /* Asegura que el texto fluya después del float */ .content-wrapper::after { content: ''; display: block; clear: both; } /* Estilos para h3 en el cuerpo (más grandes y en negrita) */ .news-body h3 { font-size: 1.4rem; font-weight: bold; margin: 20px 0 10px 0; } } /* Estilos para pantallas pequeñas (mobile) */ @media (max-width: 767px) { #news-container { display: flex; flex-direction: column; align-items: center; } .header-meta { order: 1; display: flex; justify-content: space-between; align-items: center; width: 100%; margin-bottom: 10px; } .news-date { font-size: 0.8rem; margin: 0; } .news-genre { font-size: 0.8rem; margin: 0; text-transform: uppercase; } .news-title { order: 2; font-size: 1.8rem; text-align: center; position: relative; padding-bottom: 10px; margin-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 80px; height: 4px; background-color: red; transform: translateX(-50%); } .news-subtitle { order: 3; font-size: 1.2rem; text-align: center; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { order: 4; width: 100%; } .image-container { order: 5; display: flex; flex-direction: column; align-items: center; width: 100%; margin-bottom: 10px; float: none; /* Sin float en móvil */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; margin-bottom: 5px; } .image-credits { font-style: italic; font-size: 0.8rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; width: 100%; } .social-icons { order: 6; display: flex; justify-content: center; margin-top: 10px; margin-bottom: 20px; } .social-icon { font-size: 1.3rem; margin: 0 8px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-body { order: 7; font-size: 1rem; line-height: 1.5; margin-bottom: 20px; } .news-body p { margin: 0 0 15px 0; } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos en móvil */ .news-body blockquote { max-width: 100%; margin: 15px 0; } /* Ocultar custom en mobile */ .desktop-embed { display: none; } /* Mostrar estándar en mobile */ .mobile-embed { display: block; } /* Estilos para h3 en el cuerpo (más grandes y en negrita, ajustado para mobile) */ .news-body h3 { font-size: 1.2rem; font-weight: bold; margin: 15px 0 8px 0; } }

Seguir leyendo

Empresarios del Valle fortalecen su proyección internacional tras Macrorrueda de las Américas 2026

Empresarios del Valle fortalecen su proyección internacional tras Macrorrueda de las Américas 2026

Más de 30 empresarios apoyados por la Gobernación concretaron citas y alianzas estratégicas que impulsan la exportación y el crecimiento de sus negocios.

21/04/2026

REGIONAL

Con resultados positivos para el tejido empresarial del departamento, más de 30 empresarios vallecaucanos, respaldados por la Gobernación del Valle del Cauca, participaron en la Macrorrueda de las Américas 2026, logrando consolidar citas de negocio y alianzas estratégicas que fortalecen la internacionalización de sus productos.

Uno de los casos destacados es el de Quick & Tasty, empresa ubicada en Candelaria y especializada en la producción de alimentos, que logró concretar más de 16 citas con empresas de Estados Unidos, Chile y Canadá. “Nos ha ido muy bien, con muchas expectativas. Además de las citas, en el stand y en la góndola hemos tenido visitantes interesados en nuestros servicios y hemos generado contactos para una próxima exportación”, señaló Julián Salas, jefe de mercadeo de la compañía, quien también destacó el respaldo institucional como un factor clave para generar conexiones y visibilidad en mercados internacionales.

De igual manera, la empresa caleña Flower Swimwear, dedicada a la elaboración de vestidos de baño bordados artesanalmente, encontró nuevas oportunidades de crecimiento. “He tenido varias citas de negocios, me ha ido súper bien, ya pude hacer alianzas comerciales y negociaciones”, expresó su representante, Paola García, quien resaltó el impacto social de su empresa al generar empleo para madres cabeza de hogar.

Por su parte, Adriana Londoño, representante de Café Kafetarianos, destacó el valor de estos espacios para el crecimiento empresarial. “Hemos tenido seis citas agendadas, cuatro de ellas exitosas. No es solo sentarse con un comprador extranjero, es sentarse frente a sus sueños y hacerlos cumplir”, afirmó.

La Macrorrueda de las Américas 2026, realizada en Bogotá, reunió a más de 4.000 empresarios nacionales e internacionales. En este escenario, más de 100 empresarios vallecaucanos —33 de ellos con apoyo del Gobierno departamental— lograron establecer conexiones comerciales y explorar nuevas oportunidades de negocio.

El secretario departamental de Desarrollo Económico, Competitividad y Fomento del Empleo, Jerson Valencia, destacó la importancia de estos espacios. “Permiten que nuestros emprendedores no solo crezcan sus negocios, sino que también generen empleo y contribuyan al desarrollo económico del Valle del Cauca”, puntualizó.

Gobernación del Valle

Responsive Banner .gradient-left { background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); } .right-image-gradient { position: absolute; top: 0; left: -6px; width: 60%; height: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); z-index: 20; pointer-events: none; } .banner-img { filter: blur(3px); width: 100%; height: 100%; object-fit: cover; object-position: center; aspect-ratio: 16/9; min-height: 100%; max-height: 100%; max-width: 100%; min-width: 100%; display: block; position: relative; z-index: 10; } .popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 1000; justify-content: center; align-items: center; } .popup iframe { max-width: 90%; max-height: 80%; width: 100%; aspect-ratio: 16 / 9; }
Left Logo
Center Logo
play_circle
function openPopup() { const popup = document.getElementById('videoPopup'); const iframe = popup.querySelector('iframe'); iframe.src = 'https://www.youtube.com/embed/u4cqE-FbIkQ?autoplay=1'; popup.style.display = 'flex'; document.addEventListener('click', closePopupOutside); } function closePopupOutside(event) { const popup = document.getElementById('videoPopup'); if (event.target === popup) { popup.style.display = 'none'; popup.querySelector('iframe').src = ''; document.removeEventListener('click', closePopupOutside); } }
// Función para procesar los módulos function processModules(attempt = 1, maxAttempts = 5) { // Obtener los módulos por sus IDs const titleModule = document.getElementById('TITULO'); const subtitleModule = document.getElementById('SUBTITULO'); const dateModule = document.getElementById('FECHA'); const genreModule = document.getElementById('GENERO'); const bodyModule = document.getElementById('BODY'); const imageModule = document.getElementById('IMAGEN'); const creditsModule = document.getElementById('CREDITOS'); // Verificar si los módulos existen if (!titleModule || !subtitleModule || !dateModule || !genreModule || !bodyModule || !imageModule || !creditsModule) { console.error(`Intento ${attempt}: Uno o más módulos no se encontraron. Verifica los IDs: TITULO, SUBTITULO, FECHA, GENERO, BODY, IMAGEN, CREDITOS`); console.log('TITULO existe:', !!titleModule); console.log('SUBTITULO existe:', !!subtitleModule); console.log('FECHA existe:', !!dateModule); console.log('GENERO existe:', !!genreModule); console.log('BODY existe:', !!bodyModule); console.log('IMAGEN existe:', !!imageModule); console.log('CREDITOS existe:', !!creditsModule); if (attempt processModules(attempt + 1, maxAttempts), 1000); } else { console.error('Se alcanzó el máximo de intentos. No se encontraron todos los módulos.'); } return; } // Ocultar los módulos originales titleModule.style.display = 'none'; subtitleModule.style.display = 'none'; dateModule.style.display = 'none'; genreModule.style.display = 'none'; bodyModule.style.display = 'none'; imageModule.style.display = 'none'; creditsModule.style.display = 'none'; // Extraer el contenido const titleText = titleModule.innerText.trim(); const subtitleText = subtitleModule.innerText.trim(); let dateText = dateModule.innerText.trim(); const genreText = genreModule.innerText.trim(); let bodyContent = bodyModule.innerHTML.trim(); let imageUrl = ''; // Procesar el contenido del cuerpo para respetar la estructura de párrafos y listas const tempDiv = document.createElement('div'); tempDiv.innerHTML = bodyContent; const processedContent = Array.from(tempDiv.children) .map(child => { if (child.classList.contains('paragraph')) { return `

${child.innerHTML.trim()}

`; } else if (child.tagName === 'UL') { return child.outerHTML; } else { return child.outerHTML; } }) .filter(content => content && content.length > 0) .join(''); bodyContent = processedContent || bodyContent; // Depuración: mostrar el contenido del módulo IMAGEN console.log('Contenido crudo del módulo IMAGEN (innerHTML):', imageModule.innerHTML); console.log('Texto del módulo IMAGEN (innerText):', imageModule.innerText); // Intentar obtener la URL de la imagen const imageElement = imageModule.querySelector('img'); console.log('Elemento encontrado:', imageElement); if (imageElement && imageElement.src) { imageUrl = imageElement.src; console.log('URL extraída de :', imageUrl); } else { console.log('No se encontró una etiqueta en el módulo IMAGEN'); const textContent = imageModule.innerText.trim(); const urlMatch = textContent.match(/(https?:\/\/[^\s]+)/); if (urlMatch) { imageUrl = urlMatch[0]; console.log('URL extraída del texto:', imageUrl); } else { console.log('No se encontró una URL válida en el módulo IMAGEN'); imageUrl = 'https://telepacifico.com/images/default.jpg'; // Imagen por defecto } } const creditsText = creditsModule.innerText.trim(); // Depuración: mostrar todos los valores extraídos console.log('Valores extraídos:'); console.log('Título:', titleText); console.log('Subtítulo:', subtitleText); console.log('Fecha:', dateText); console.log('Género:', genreText); console.log('Cuerpo:', bodyContent); console.log('URL de imagen:', imageUrl); console.log('Créditos:', creditsText); // Procesar links de redes sociales en el bodyContent bodyContent = processSocialLinks(bodyContent); // Crear el contenedor para el formato personalizado const container = document.getElementById('news-container'); if (!container) { console.error('El contenedor news-container no se encontró'); return; } // Construir el HTML manualmente const imageHtml = imageUrl ? 'Noticia' : ''; const creditsHtml = creditsText ? '

Crédito: ' + creditsText + '

' : ''; container.innerHTML = [ '
', '

' + dateText + '

', '

NOTICIAS | ' + genreText + '

', '
', '', '

' + titleText + '

', '

' + subtitleText + '

', '
', '
', imageHtml, creditsHtml, '
', '
' + bodyContent + '
', '
' ].join(''); console.log('HTML insertado en news-container:', container.innerHTML); // Convertir la fecha a formato ISO 8601 si no lo está let isoDate; try { const dateObj = new Date(dateText); if (isNaN(dateObj)) { console.warn('Fecha no válida, usando fecha actual como respaldo'); isoDate = new Date().toISOString(); } else { isoDate = dateObj.toISOString(); } } catch (e) { console.warn('Error al parsear la fecha, usando fecha actual como respaldo', e); isoDate = new Date().toISOString(); } // Crear el script de Schema.org dinámicamente const articleBodyText = bodyModule.textContent.trim(); // Usar textContent para texto plano sin HTML const schema = { "@context": "http://schema.org", "@type": "ReportageNewsArticle", "url": window.location.href, "thumbnailUrl": imageUrl, "headline": titleText, "description": subtitleText, "datePublished": isoDate, "dateModified": isoDate, "publisher": { "@type": "NewsMediaOrganization", "name": "Telepacífico", "publishingPrinciples": "https://telepacifico.com/legal-web/terminos-y-condiciones", "logo": { "@type": "ImageObject", "width": 512, "height": 512, "url": "https://telepacifico.com/templates/yootheme/cache/39/Logo_Vertical-397e89a3.webp" } }, "image": { "@type": "ImageObject", "width": 1024, "height": 576, "url": imageUrl }, "mainEntityOfPage": { "@type": "WebPage", "@id": window.location.href, "name": titleText }, "inLanguage": { "@type": "Language", "name": "Spanish", "alternateName": "es" }, "about": [ { "@type": "Thing", "name": genreText } ], "author": { "@type": "Organization", "name": "Telepacífico", "sameAs": "https://telepacifico.com/" }, "articleBody": articleBodyText }; const schemaScript = document.createElement('script'); schemaScript.type = 'application/ld+json'; schemaScript.textContent = JSON.stringify(schema); document.head.appendChild(schemaScript); console.log('Script de Schema.org agregado:', schemaScript.textContent); } // Función para procesar links de redes sociales y reemplazarlos con embeds/miniaturas function processSocialLinks(bodyHtml) { const parser = new DOMParser(); const doc = parser.parseFromString(bodyHtml, 'text/html'); const links = doc.querySelectorAll('a'); const scriptsToAdd = new Set(); links.forEach(link => { let href = link.href.toLowerCase(); // Para facilitar la comparación let originalHref = link.href; // Mantener el original para el embed if ((href.startsWith('https://twitter.com/') || href.startsWith('https://x.com/')) && /\/status\/\d+/.test(href)) { // Para este post específico, insertar ambos embeds (custom para desktop, estándar para mobile) if (originalHref === 'https://x.com/TPNoticias_/status/1961083511328116845' || originalHref === 'https://twitter.com/TPNoticias_/status/1961083511328116845') { const wrapper = doc.createElement('div'); wrapper.className = 'embed-wrapper'; // Custom embed para desktop const customEmbed = doc.createElement('div'); customEmbed.className = 'desktop-embed custom-embed'; customEmbed.innerHTML = `
Avatar de Telepacífico Noticias @TPNoticias_ 28 ago. 2025

🚨 #Atención | Hostigamientos en Dagua ⚠️
Desde la cabecera municipal de Dagua, se reportan hostigamientos por parte de grupos al margen de la ley contra las autoridades.
La situación mantiene en alerta a la comunidad, que manifiesta temor y prefiere no salir de sus casas.
Seguiremos informando. #NoticiaEnDesarrollo

`; wrapper.appendChild(customEmbed); // Embed estándar para mobile let standardHref = originalHref; if (href.startsWith('https://x.com/')) { standardHref = originalHref.replace('x.com', 'twitter.com'); } const mobileEmbed = doc.createElement('div'); mobileEmbed.className = 'mobile-embed'; const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = standardHref; a.innerText = link.innerText || standardHref; blockquote.appendChild(a); mobileEmbed.appendChild(blockquote); wrapper.appendChild(mobileEmbed); link.parentNode.replaceChild(wrapper, link); scriptsToAdd.add('twitter'); } else { // Para otros posts de X, usa el embed estándar if (href.startsWith('https://x.com/')) { originalHref = originalHref.replace('x.com', 'twitter.com'); } const blockquote = doc.createElement('blockquote'); blockquote.className = 'twitter-tweet'; const a = doc.createElement('a'); a.href = originalHref; a.innerText = link.innerText || originalHref; blockquote.appendChild(a); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('twitter'); } } else if (href.startsWith('https://www.instagram.com/') && (href.includes('/p/') || href.includes('/reel/'))) { // Embed de Instagram const blockquote = doc.createElement('blockquote'); blockquote.className = 'instagram-media'; blockquote.setAttribute('data-instgrm-permalink', originalHref); blockquote.setAttribute('data-instgrm-version', '14'); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Instagram: ' + (link.innerText || originalHref); blockquote.appendChild(fallbackA); link.parentNode.replaceChild(blockquote, link); scriptsToAdd.add('instagram'); } else if (href.startsWith('https://www.youtube.com/watch?v=') || href.startsWith('https://youtu.be/')) { // Embed de YouTube (iframe con miniatura implícita en el player) let videoId; if (href.startsWith('https://youtu.be/')) { videoId = href.split('https://youtu.be/')[1].split('?')[0]; } else { const url = new URL(originalHref); videoId = url.searchParams.get('v'); } if (videoId) { const iframe = doc.createElement('iframe'); iframe.width = '560'; iframe.height = '315'; iframe.src = `https://www.youtube.com/embed/${videoId}`; iframe.frameBorder = '0'; iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'; iframe.allowFullscreen = true; link.parentNode.replaceChild(iframe, link); } } else if (href.startsWith('https://www.facebook.com/') && href.includes('/posts/')) { // Embed de Facebook const div = doc.createElement('div'); div.className = 'fb-post'; div.setAttribute('data-href', originalHref); // Añadir fallback: un enlace simple const fallbackA = doc.createElement('a'); fallbackA.href = originalHref; fallbackA.innerText = 'Ver en Facebook: ' + (link.innerText || originalHref); div.appendChild(fallbackA); link.parentNode.replaceChild(div, link); scriptsToAdd.add('facebook'); } }); // Añadir scripts necesarios al final del body si se usaron embeds if (scriptsToAdd.has('twitter')) { const script = document.createElement('script'); script.async = true; script.charset = 'utf-8'; script.src = 'https://platform.twitter.com/widgets.js'; document.body.appendChild(script); } if (scriptsToAdd.has('instagram')) { const script = document.createElement('script'); script.async = true; script.src = 'https://www.instagram.com/embed.js'; document.body.appendChild(script); } if (scriptsToAdd.has('facebook')) { if (!document.getElementById('fb-root')) { const fbRoot = document.createElement('div'); fbRoot.id = 'fb-root'; document.body.appendChild(fbRoot); } const script = document.createElement('script'); script.async = true; script.defer = true; script.crossOrigin = 'anonymous'; script.src = 'https://connect.facebook.net/es_ES/sdk.js#xfbml=1&version=v18.0'; document.body.appendChild(script); } return doc.body.innerHTML; } // Ejecutar cuando el DOM esté cargado document.addEventListener('DOMContentLoaded', function() { processModules(); }); /* Estilos generales */ #news-container { max-width: 1200px; margin: 0 auto; padding: 20px; font-family: 'Encode Sans', sans-serif; } /* Estilos para pantallas grandes (desktop) */ @media (min-width: 768px) { #news-container { display: block; /* Flujo natural para el contenedor principal */ } .header-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .news-date { font-size: 0.9rem; margin: 0; } .news-genre { font-size: 0.9rem; margin: 0; text-transform: uppercase; } .social-icons { display: flex; justify-content: flex-end; margin-bottom: 10px; } .social-icon { font-size: 1.5rem; margin-left: 10px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-title { font-size: 2.5rem; margin: 0; position: relative; padding-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100px; height: 4px; background-color: red; } .news-subtitle { font-size: 1.5rem; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { position: relative; /* Contexto para el float */ overflow: hidden; /* Asegura que el contenedor respete el float */ } .image-container { float: right; /* Imagen flota a la derecha */ margin: 0 0 15px 15px; /* Espaciado para el texto */ max-width: 40%; /* Limita el ancho de la imagen */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; } .image-credits { font-style: italic; font-size: 0.9rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; margin-top: 5px; width: 100%; } .news-body { font-size: 1rem; line-height: 1.6; } .news-body p { margin: 0 0 15px 0; break-inside: avoid; /* Evita que los párrafos se rompan */ } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos */ .news-body blockquote { max-width: 80%; /* Ajuste para hacer los embeds más pequeños en desktop (80% del ancho disponible) */ margin: 15px 0; /* Sin auto para alinear a la izquierda */ display: block; /* Asegura que sea un bloque centrado */ } /* Ajustes específicos para embeds de X/Twitter estándar */ .news-body .twitter-tweet { max-width: 500px; /* Ancho máximo fijo para Twitter embeds, ajusta según necesites */ } /* Ajustes para Instagram */ .news-body .instagram-media { max-width: 500px; } /* Ajustes para Facebook */ .news-body .fb-post { max-width: 500px; } /* Estilos para el wrapper */ .embed-wrapper { max-width: 80%; margin: 15px 0; /* Sin auto para alinear a la izquierda */ } /* Mostrar custom en desktop */ .desktop-embed { display: block; } /* Ocultar estándar en desktop */ .mobile-embed { display: none; } /* Estilos para el embed personalizado */ .custom-embed { display: flex; flex-direction: column; padding: 15px; border: 1px solid #ddd; border-radius: 8px; background-color: #f9f9f9; } .custom-embed .top-section { display: flex; flex-direction: row; align-items: flex-start; gap: 20px; margin-bottom: 15px; } .custom-embed .media-content { flex: 1; } .custom-embed .embed-video { max-width: 100%; height: auto; border-radius: 8px; } .custom-embed .author-info { flex: 0 0 150px; text-align: center; } .custom-embed .avatar { width: 50px; height: 50px; border-radius: 50%; display: block; margin: 0 auto 10px; } .custom-embed .username { display: block; font-weight: bold; } .custom-embed .username a { text-decoration: none; color: #1da1f2; } .custom-embed .timestamp { display: block; color: gray; font-size: 0.8rem; } .custom-embed .post-content { width: 100%; /* Horizontal full width */ } /* Asegura que el texto fluya después del float */ .content-wrapper::after { content: ''; display: block; clear: both; } /* Estilos para h3 en el cuerpo (más grandes y en negrita) */ .news-body h3 { font-size: 1.4rem; font-weight: bold; margin: 20px 0 10px 0; } } /* Estilos para pantallas pequeñas (mobile) */ @media (max-width: 767px) { #news-container { display: flex; flex-direction: column; align-items: center; } .header-meta { order: 1; display: flex; justify-content: space-between; align-items: center; width: 100%; margin-bottom: 10px; } .news-date { font-size: 0.8rem; margin: 0; } .news-genre { font-size: 0.8rem; margin: 0; text-transform: uppercase; } .news-title { order: 2; font-size: 1.8rem; text-align: center; position: relative; padding-bottom: 10px; margin-bottom: 10px; font-weight: 700; } .news-title::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 80px; height: 4px; background-color: red; transform: translateX(-50%); } .news-subtitle { order: 3; font-size: 1.2rem; text-align: center; margin: 10px 0 20px 0; font-weight: 400; } .content-wrapper { order: 4; width: 100%; } .image-container { order: 5; display: flex; flex-direction: column; align-items: center; width: 100%; margin-bottom: 10px; float: none; /* Sin float en móvil */ } .news-image { max-width: 100%; height: auto; border-radius: 10px; object-fit: cover; margin-bottom: 5px; } .image-credits { font-style: italic; font-size: 0.8rem; text-align: right; background-color: #E5E5E5; padding: 5px 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; width: 100%; } .social-icons { order: 6; display: flex; justify-content: center; margin-top: 10px; margin-bottom: 20px; } .social-icon { font-size: 1.3rem; margin: 0 8px; color: #333; text-decoration: none; } .social-icon:hover { color: #007bff; } .news-body { order: 7; font-size: 1rem; line-height: 1.5; margin-bottom: 20px; } .news-body p { margin: 0 0 15px 0; } .news-body ul { list-style-type: disc; margin: 0 0 15px 20px; } .news-body li { margin-bottom: 5px; } .news-body iframe, /* Para embeds responsivos en móvil */ .news-body blockquote { max-width: 100%; margin: 15px 0; } /* Ocultar custom en mobile */ .desktop-embed { display: none; } /* Mostrar estándar en mobile */ .mobile-embed { display: block; } /* Estilos para h3 en el cuerpo (más grandes y en negrita, ajustado para mobile) */ .news-body h3 { font-size: 1.2rem; font-weight: bold; margin: 15px 0 8px 0; } }

Seguir leyendo