Skip to main content

Documental colombiano rescata los Cantos de Trabajo de Llano, patrimonio cultural de la humanidad

Documental colombiano rescata los Cantos de Trabajo de Llano, patrimonio cultural de la humanidad

La producción audiovisual realizada en Casanare visibiliza una tradición ancestral de la Orinoquía colombiana reconocida por la UNESCO y reflexiona sobre su preservación para las nuevas generaciones.

15/05/2026

REGIONAL

En los extensos paisajes de la Orinoquía colombiana, donde el trabajo con el ganado hace parte de la identidad cultural del territorio, surge Cantos de Trabajo de Llano, un cortometraje documental que busca preservar y visibilizar una de las tradiciones orales más representativas de los Llanos colombo-venezolanos.

La producción, realizada en los municipios de Paz de Ariporo y Hato Corozal, en Casanare, retrata la profunda relación entre el hombre, el ganado y la naturaleza a través de expresiones ancestrales como el canto de vela, el canto de cabrestero y el canto de ordeño. Estas manifestaciones acompañan las labores diarias del llanero y funcionan como formas de comunicación, guía y conexión con el entorno.

Los Cantos de Trabajo de Llano fueron reconocidos por la UNESCO como Patrimonio Cultural Inmaterial de la Humanidad que requiere salvaguarda urgente, convirtiéndose en una de las declaratorias culturales más importantes para Colombia. Con más de 200 años de historia, esta tradición reúne cantos, silbos, gritos y llamados que hacen parte esencial de las dinámicas del trabajo ganadero en la región.

El documental, con una duración de 9 minutos y 50 segundos, fue desarrollado por realizadores que integran el Consejo Departamental de Cinematografía de Casanare, en articulación con el Ministerio de Cultura y la Gobernación de Casanare. La obra combina una mirada estética y sensible con una reflexión sobre la pérdida de identidad cultural y el distanciamiento de las nuevas generaciones frente a estas prácticas ancestrales.

Uno de los protagonistas del relato es Don Hermes Romero, portador certificado por la UNESCO y custodio de esta tradición desde hace más de cuatro décadas. Su testimonio aporta autenticidad y profundidad emocional a una narrativa que busca mantener viva la memoria sonora del llano.

A lo largo del documental también se exploran los orígenes de las letras, la función práctica de los cantos en el manejo del ganado y las preocupaciones frente al futuro de esta manifestación cultural. Más allá de una pieza audiovisual, Cantos de Trabajo de Llano se convierte en un ejercicio pedagógico y de memoria que invita a reconocer la importancia de proteger un patrimonio que trasciende las fronteras regionales.

La producción fue dirigida por Joseph Felipe Botia, quien además estuvo a cargo del guion e investigación. El equipo técnico contó con la producción de Artidoro Botía, la producción ejecutiva de Yeimi Rodríguez, dirección de fotografía de Valeria Porras y el diseño sonoro y montaje de Andrés Maldonado, entre otros profesionales comprometidos con la preservación cultural del territorio llanero.

DANE

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

Denuncian presunto intento de intimidación contra Gustavo Álvarez Gardeazábal en su finca de Riofrío

Denuncian presunto intento de intimidación contra Gustavo Álvarez Gardeazábal en su finca de Riofrío

El escritor y exgobernador del Valle del Cauca aseguró que un grupo de hombres armados, que se identificó como integrantes de la Policía, intentó ingresar sin orden judicial a su finca “El Porce”, ubicada sobre la vía entre Tuluá y Riofrío.

12/05/2026

REGIONAL

Momentos de tensión se vivieron en la finca “El Porce”, propiedad del escritor y exgobernador del Valle, Gustavo Álvarez Gardeazábal, luego de que un grupo de aproximadamente 12 hombres llegara al lugar en motocicletas y vehículos portando uniformes y distintivos similares a los de la Policía Nacional.

Según la denuncia del también columnista, los hombres afirmaban pertenecer al grupo de Carabineros y exigían ingresar a la propiedad para realizar una supuesta inspección. Sin embargo, Gardeazábal aseguró que se negó a abrir la puerta blindada de la vivienda al no existir una orden judicial ni de la Fiscalía que respaldara el procedimiento.  

El exmandatario afirmó que, tras consultar con autoridades departamentales y mandos policiales, le habrían indicado que no existía ningún operativo oficial autorizado en su contra. Por ello, expresó temor de que el hecho pudiera tratarse de un intento de intimidación, atentado o incluso secuestro.  

Gardeazábal relacionó lo ocurrido con recientes columnas de opinión en las que cuestionó la política de “Paz Total” y rechazó el asesinato del periodista Mateo Pérez, presuntamente cometido por disidencias armadas en Antioquia. “Estoy vivo y no tengo miedo”, escribió posteriormente en una nueva publicación.  

Hasta el momento, la Policía Nacional no ha emitido un pronunciamiento oficial sobre el caso.

Tomado de redes sociales.

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

Reclutamiento de menores enciende alarmas en el Pacífico colombiano: Valle y Cauca, entre las regiones más afectadas

Reclutamiento de menores enciende alarmas en el Pacífico colombiano: Valle y Cauca, entre las regiones más afectadas

El procurador general, Gregorio Eljach, lanzó un contundente llamado a los grupos armados para detener el reclutamiento de niños y adolescentes en Colombia. Alertó sobre el aumento de jóvenes vinculados al sistema penal y advirtió que departamentos del Pacífico como Valle del Cauca y Cauca enfrentan una situación crítica por la violencia, la deserción escolar y el accionar de estructuras ilegales.

12/05/2026

REGIONAL

Durante el Conversatorio de Justicia y Ciudadanía “Justicia Juvenil”, liderado por la Corte Suprema de Justicia, el procurador general de la Nación, Gregorio Eljach, hizo un fuerte pronunciamiento frente al reclutamiento de menores por parte de grupos armados ilegales en diferentes regiones del país.

“Dejen a los niños fuera del conflicto. Dejen a los adolescentes fuera de la guerra. Señores reclutadores y delincuentes, basta ya”, expresó el jefe del Ministerio Público, al advertir sobre la grave situación que enfrentan cientos de jóvenes en zonas golpeadas por la violencia.

El procurador señaló que gran parte de los adolescentes que terminan vinculados al Sistema de Responsabilidad Penal para Adolescentes (SRPA) ya habían sido víctimas de vulneraciones de derechos, entre ellas violencia intrafamiliar, abandono, deserción escolar y consumo de sustancias psicoactivas.

Las alertas son especialmente preocupantes para el Pacífico colombiano. Valle del Cauca aparece entre los departamentos con más adolescentes vinculados al sistema penal juvenil, mientras que en Cauca continúan creciendo los riesgos por presencia de grupos armados ilegales, reclutamiento forzado y violencia en zonas rurales.

Solo en lo corrido del año, según reveló la Procuraduría, han ingresado 1.444 adolescentes al SRPA, con mayores registros en Bogotá, Valle del Cauca, Antioquia y Atlántico. Además, más de 400 jóvenes que habían pasado por procesos de protección del ICBF terminaron involucrados en el sistema penal.

Eljach también alertó que entre 2023 y 2025 más de 500 adolescentes reincidieron en conductas delictivas por falta de respuestas efectivas del Estado, mientras que más de 8.000 jóvenes ingresaron al sistema sin contar con escolaridad básica.

En regiones como Cauca y Valle del Cauca, las autoridades han advertido reiteradamente sobre intentos de reclutamiento de menores por parte de disidencias armadas y estructuras criminales que buscan instrumentalizar a niños y adolescentes en actividades ilegales.

El procurador insistió en la necesidad de fortalecer políticas públicas con enfoque territorial y restaurativo para evitar que más jóvenes terminen atrapados en escenarios de violencia y criminalidad.

Finalmente, destacó los proyectos adelantados junto al SENA en centros especializados de Cali, Popayán y Armenia, donde más de 300 adolescentes han recibido procesos de formación y capacitación como estrategia de inclusión social y prevención de reincidencia.

Producaduría General de la Nació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

¿Llegó el fin de la guerra comercial entre Colombia y Ecuador? La CAN ordena a los dos países retirar aranceles

¿Llegó el fin de la guerra comercial entre Colombia y Ecuador? La CAN ordena a los dos países retirar aranceles  

La Comunidad Andina de Naciones dio 10 días a Colombia y Ecuador para retirar los aranceles que han golpeado el comercio y las economías de frontera.

08/05/2026

REGIONAL

La Comunidad Andina de Naciones ordenó a Colombia y Ecuador desmontar en un plazo de 10 días hábiles los aranceles y restricciones comerciales que mantienen enfrentados a ambos países desde comienzos de año.

La decisión se produce luego de varios meses de tensión comercial. Ecuador impuso inicialmente una tasa de seguridad del 30 % a productos colombianos y posteriormente la elevó al 100 %. En respuesta, Colombia aplicó aranceles recíprocos que hoy alcanzan hasta el 75 % sobre 191 partidas arancelarias ecuatorianas.

La CAN concluyó que las medidas de ambos gobiernos violan el Acuerdo de Cartagena y afectan el Programa de Liberación Comercial entre países miembros. El organismo advirtió que estas restricciones generan efectos negativos sobre trabajadores, empresarios y consumidores de las dos naciones.

Empresarios de ambos lados de la frontera venían alertando sobre el riesgo de quiebras y pérdidas económicas, especialmente en regiones como Nariño y la frontera norte ecuatoriana, donde el comercio binacional es clave para miles de familias.

Hasta el momento, ni el gobierno de Gustavo Petro ni el de Daniel Noboa se han pronunciado oficialmente sobre la orden de la CAN.

CAN

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

Nariño y Chocó, claves en capturas por fraude migratorio

Nariño y Chocó, claves en capturas por fraude migratorio

Más de 3.250 personas fueron capturadas en aeropuertos y fronteras del país. Nariño y Chocó aparecen entre las regiones con más detecciones.

08/05/2026

REGIONAL

Migración Colombia reveló que entre agosto de 2022 y marzo de 2026 fueron capturadas 3.250 personas en aeropuertos y puestos de control migratorio por delitos relacionados con documentos falsos, alertas internacionales y otros crímenes.

Aunque el Aeropuerto El Dorado concentra la mayoría de los casos, el informe destaca el papel de la regional Nariño-Putumayo, especialmente en el paso fronterizo de Rumichaca, donde se registró el 11 % de las capturas a nivel nacional.

También sobresale la regional Antioquia-Chocó, con el 6,8 % de los casos detectados, evidenciando la importancia estratégica del Pacífico y las fronteras en los controles migratorios y de seguridad.

Entre los delitos más frecuentes aparecen la falsificación de documentos, órdenes de captura por hurto, homicidio, concierto para delinquir y tráfico de estupefacientes.

Las autoridades destacaron que los oficiales migratorios cuentan con herramientas especializadas en grafología y documentología para detectar fraudes y activar alertas internacionales en tiempo real.

Migración Colombia

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

Capturan a tres presuntos integrantes de ‘Los Shotas’ en Buenaventura

Capturan a tres presuntos integrantes de ‘Los Shotas’ en Buenaventura

Entre los detenidos estaría alias ‘Eliécer’, señalado de coordinar homicidios y extorsiones, y de tener presuntos vínculos con estructuras del ELN.

08/05/2026

REGIONAL

En una nueva ofensiva contra las estructuras criminales que delinquen en Buenaventura, unidades del Gaula y la Seccional de Inteligencia Policial (Sipol) de la Policía Valle capturaron a tres presuntos integrantes de la banda delincuencial ‘Los Shotas’ en la comuna 12 del distrito.

Entre los detenidos se encuentra alias ‘Eliécer’, señalado por las autoridades de coordinar homicidios selectivos y actividades de extorsión. Según informó la gobernadora del Valle del Cauca, Dilian Francisca Toro, el capturado presenta antecedentes por delitos como secuestro y financiación del terrorismo, y presuntamente sería subordinado de alias ‘Mi Sangre’, cabecilla del ELN que mantendría alianzas con ‘Los Shotas’.

De acuerdo con la investigación, alias ‘Eliécer’, de 41 años y con aproximadamente 13 años de trayectoria criminal, estaría encargado de coordinar acciones violentas contra integrantes de la banda ‘Los Espartanos’, en medio de las disputas por el control territorial en sectores como Las Palmas y Nueva Granada.

Durante las diligencias de allanamiento y registro también fueron capturados en flagrancia alias ‘Mateo’, de 28 años, señalado de participar en secuestros y porte ilegal de armas, y alias ‘el Gordo’, de 18 años, quien presuntamente estaría encargado de cometer hurtos, cobrar extorsiones y brindar seguridad a alias ‘Eliécer’.

El coronel Pedro Astaíza, subcomandante de la Policía Valle, indicó que a los tres capturados se les dictó medida de aseguramiento en centro carcelario. Asimismo, confirmó que durante el operativo fueron incautadas dos armas de fuego —tipo pistola y revólver—, un supresor de sonido para subametralladora tipo Uzi y sustancias estupefacientes.

La gobernadora Dilian Francisca Toro señaló que, en lo corrido de 2026, ya se han realizado 36 capturas relacionadas con ‘Los Shotas’, estructura criminal señalada de obtener ingresos mensuales entre 30 y 50 millones de pesos producto de actividades ilícitas como la extorsión.

Los Shotas

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