${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Anuncio El Debate 7VAndalucia
/* Estilos para hacer el anuncio adaptable */
.anuncio-container {
max-width: 100%;
margin: 0 auto;
text-align: center;
}
.anuncio-enlace {
display: inline-block;
max-width: 100%;
transition: transform 0.3s ease;
}
.anuncio-enlace:hover {
transform: scale(1.02);
}
.anuncio-imagen {
max-width: 100%;
height: auto;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
Pablo Iglesias Turrión
A pesar de que ha sido el Partido Popular quien ha utilizado de forma constante la apelación a la libertad contra el peligro de que las izquierdas acabaran con ella si alcanzaban el poder, ha sido el partido Unidas Podemos quien se ha visto más veces interpelado por esta acusación: “Comunismo o libertad”. Lo que ha llevado al que hasta ahora ha sido su líder indiscutible a precisar lo que él entiende por libertad: “La libertad es que si tienen que operar a tu abuelo de un cáncer no hay nadie que por tener más dinero en una cuenta bancaria se pueda poner delante. La libertad significa que la sanidad, la educación o el derecho a moverte en un transporte de calidad no dependa de tu cuenta bancaria". Este mensaje tan sencillo como fácil de entender lo veo reflejado en Norberto Bobbio (1909), jurista y politólogo, seguidor de Hans Kelsen y Antonio Gramsci quien escribió que el concepto de libertad se refiere a “la facultad de realizar o no ciertas acciones sin ser impedido por los demás, por la sociedad como un todo orgánico o, más sencillamente, por el poder estatal”.
Anuncio El Debate 7VAndalucia
/* Estilos para hacer el anuncio adaptable */
.anuncio-container {
max-width: 100%;
margin: 0 auto;
text-align: center;
}
.anuncio-enlace {
display: inline-block;
max-width: 100%;
transition: transform 0.3s ease;
}
.anuncio-enlace:hover {
transform: scale(1.02);
}
.anuncio-imagen {
max-width: 100%;
height: auto;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
Anuncio El Debate 7VAndalucia
/* Estilos para hacer el anuncio adaptable */
.anuncio-container {
max-width: 100%;
margin: 0 auto;
text-align: center;
}
.anuncio-enlace {
display: inline-block;
max-width: 100%;
transition: transform 0.3s ease;
}
.anuncio-enlace:hover {
transform: scale(1.02);
}
.anuncio-imagen {
max-width: 100%;
height: auto;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
Qué pensamos los gitanos de la libertad
El concepto de libertad está tan arraigado en la conciencia de todos los gitanos y gitanas del mundo que supondría un reto de muy difícil consecución que cualquiera de los intelectuales citados en este artículo pudiera acertar a definirlo con precisión. La libertad es tan necesaria a la comunidad gitana que sin ella pereceríamos irremediablemente. Y si no hemos desaparecido ya es porque hemos generado los anticuerpos necesarios para no sucumbir a los ataques y a los genocidios que a lo largo de la historia han sufrido nuestros antepasados. A nadie se le ocurriría dedicar un tiempo de su vida a investigar por qué las personas necesitamos el aire para respirar. Es obvio. Si el aire no llega a tus pulmones, te mueres. Sin más. La libertad es el aire que necesitamos los gitanos para seguir vivos sobre la faz de la tierra.
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Seguramente la mayoría de los gitanos de hoy no lo sabrían explicar, ni falta que les hace. Mi abuelo Agapito Heredia, era un gitano que yo me atrevería a definir como lorquiano. Alto, delgado, esbelto como una vara de mimbre, siempre ataviado con su sombrero de ala ancha. Se ganaba la vida con el corretaje que le daban quienes tenían un burro o una mula que vender y quien necesitaba una mula o un burro que comprar para su negocio. Era analfabeto total y nunca vio la necesidad de que sus hijos fueran a la escuela. Murió ya mayor, pero yo recuerdo, siendo muy niño, que él nos decía “Salud y libertad” cuando quería poner de manifiesto el mayor tesoro al que ineludiblemente debíamos aspirar.
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Libertad. La libertad del Pueblo Gitano no es la de Isabel Ayuso, ni la de Rocío Monasterio, ni la de Ángel Gabilondo, ni la de Mónica García ni la de Pablo Iglesia ni la de Edmundo Bal. Nuestra libertad que engloba a la de todos ellos y a ninguna de las que ellos defienden en exclusiva, es la libertad de vivir con las menores ataduras posibles. Lo que no supone el rechazo de las reglas fundamentales indispensables para garantizar en democracia la convivencia con el resto de los ciudadanos. Lo dijo Montesquieu (1689) con absoluta claridad: “La libertad es el derecho de hacer lo que permiten las leyes”.
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Algunos pensadores, como Norberto Bobbio, se han acercado lo suficiente al pensamiento gitano como para decir: “El Estado debe gobernar lo menos posible, dado que la verdadera libertad consiste en no verse obstaculizado por un exceso de leyes”. Aunque Albert Einstein (1879) fue más contundente al afirmar: “No creo en el sentido filosófico del término en la libertad del hombre. Cada uno actúa no solo según una coacción externa sino también según una necesidad interna”.
Widget de Noticias RSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.news-widget {
width: 100%;
max-width: 800px;
background-color: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
overflow: hidden;
border: 1px solid #e1e5e9;
}
.widget-header {
background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
color: white;
padding: 20px;
text-align: center;
position: relative;
}
.widget-header h2 {
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 5px;
}
.widget-header p {
opacity: 0.9;
font-size: 0.95rem;
}
.rss-icon {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
background-color: #ff6600;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 12px;
font-weight: bold;
}
.news-list {
padding: 0;
}
.news-item {
display: flex;
padding: 18px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
cursor: pointer;
width: 100%;
}
.news-item:hover {
background-color: #f8fafc;
transform: translateX(5px);
}
.news-item:last-child {
border-bottom: none;
}
.news-number {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
background-color: #3498db;
color: white;
border-radius: 50%;
font-weight: bold;
margin-right: 15px;
flex-shrink: 0;
}
.news-content {
flex: 1;
width: calc(100% - 45px);
}
.news-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
margin-bottom: 5px;
line-height: 1.4;
width: 100%;
word-wrap: break-word;
}
.news-date {
font-size: 0.85rem;
color: #7f8c8d;
width: 100%;
}
.external-link {
color: #3498db;
font-size: 0.9rem;
margin-top: 5px;
display: inline-block;
}
.widget-footer {
padding: 15px 20px;
text-align: center;
background-color: #f8fafc;
border-top: 1px solid #e1e5e9;
color: #7f8c8d;
font-size: 0.9rem;
}
.loading {
padding: 40px 20px;
text-align: center;
color: #7f8c8d;
}
.error {
padding: 40px 20px;
text-align: center;
color: #e74c3c;
background-color: #fdf2f2;
}
@media (max-width: 600px) {
.news-item {
flex-direction: column;
}
.news-number {
margin-bottom: 10px;
}
.widget-header h2 {
font-size: 1.5rem;
}
}
document.addEventListener('DOMContentLoaded', function() {
const rssUrl = 'https://www.noticiasdealmeria.com/rss/ultimasNoticias/';
const newsList = document.getElementById('newsList');
// Datos de ejemplo para mostrar el diseño (en caso de que el RSS no funcione)
const sampleNews = [
{
title: 'El Ayuntamiento anuncia nuevas medidas para mejorar el tráfico en el centro',
link: '#',
date: '12 de noviembre de 2025'
},
{
title: 'Inaugurado el nuevo parque empresarial con más de 50 empresas',
link: '#',
date: '11 de noviembre de 2025'
},
{
title: 'La Universidad presenta su plan de expansión para el próximo año',
link: '#',
date: '10 de noviembre de 2025'
},
{
title: 'Celebración del festival gastronómico con participantes internacionales',
link: '#',
date: '9 de noviembre de 2025'
},
{
title: 'Nuevo proyecto de sostenibilidad para proteger las zonas naturales',
link: '#',
date: '8 de noviembre de 2025'
}
];
// Función para mostrar noticias de ejemplo
function displaySampleNews() {
newsList.innerHTML = '';
sampleNews.forEach((news, index) => {
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(news.link, '_blank');
newsItem.innerHTML = `
${index + 1}
${news.title}
${news.date}
Leer más ?
`;
newsList.appendChild(newsItem);
});
}
// Función para obtener y parsear el RSS
async function fetchRSS() {
try {
// Usamos un proxy CORS para evitar problemas de same-origin policy
const proxyUrl = 'https://api.allorigins.win/raw?url=';
const response = await fetch(proxyUrl + encodeURIComponent(rssUrl));
if (!response.ok) {
throw new Error('Error al cargar el feed RSS');
}
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, 'text/xml');
// Verificar si el parseo fue exitoso
if (xmlDoc.getElementsByTagName('parsererror').length > 0) {
throw new Error('Error al parsear el XML');
}
// Obtener los elementos item del RSS
const items = xmlDoc.getElementsByTagName('item');
// Limpiar el contenido de carga
newsList.innerHTML = '';
// Mostrar las primeras 5 noticias
const maxItems = Math.min(items.length, 5);
if (maxItems === 0) {
newsList.innerHTML = '
No se encontraron noticias en el feed RSS.';
return;
}
for (let i = 0; i < maxItems; i++) {
const item = items[i];
const title = item.getElementsByTagName('title')[0]?.textContent || 'Título no disponible';
const link = item.getElementsByTagName('link')[0]?.textContent || '#';
const pubDate = item.getElementsByTagName('pubDate')[0]?.textContent || '';
const newsItem = document.createElement('div');
newsItem.className = 'news-item';
newsItem.onclick = () => window.open(link, '_blank');
// Formatear la fecha
let formattedDate = '';
if (pubDate) {
const date = new Date(pubDate);
formattedDate = date.toLocaleDateString('es-ES', {
day: 'numeric',
month: 'long',
year: 'numeric'
});
}
newsItem.innerHTML = `
${i + 1}
${title}
${formattedDate ? `
${formattedDate}` : ''}
Leer más ?
`;
newsList.appendChild(newsItem);
}
} catch (error) {
console.error('Error:', error);
// En caso de error, mostrar noticias de ejemplo
displaySampleNews();
// Mostrar mensaje de error
const errorMsg = document.createElement('div');
errorMsg.className = 'error';
errorMsg.innerHTML = `
Error al cargar las noticias en tiempo real: ${error.message}
Se muestran noticias de ejemplo. Intenta recargar la página.
`;
newsList.insertBefore(errorMsg, newsList.firstChild);
}
}
// Cargar las noticias al iniciar
fetchRSS();
// Actualizar cada 10 minutos (opcional)
setInterval(fetchRSS, 10 * 60 * 1000);
});
Anuncio El Debate 7VAndalucia
/* Estilos para hacer el anuncio adaptable */
.anuncio-container {
max-width: 100%;
margin: 0 auto;
text-align: center;
}
.anuncio-enlace {
display: inline-block;
max-width: 100%;
transition: transform 0.3s ease;
}
.anuncio-enlace:hover {
transform: scale(1.02);
}
.anuncio-imagen {
max-width: 100%;
height: auto;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
Al final, como por todo en la vida, tenemos que pagar un precio. Y el que los gitanos y las gitanas de todo el mundo tenemos que pagar es el de que se nos reconozca nuestro derecho a la libertad para seguir siendo gitanos. Pero, claro, como dijo José Martí (1853), apóstol de la independencia cubana, “La libertad, o está muy cara y es necesario resignarse a vivir sin ella, o a pagar el precio”. Los gitanos y las gitanas llevamos siglos pagando el precio de nuestra libertad y estamos dispuestos a seguir pagándolo el tiempo que haga falta para seguir siendo lo que somos.