صنعاء القديمة، عاصمة اليمن التاريخية، تُعد واحدة من أقدم المدن المأهولة في العالم. تتميز المدينة بتنوع ثقافتها وجمال معمارها الذي يعكس تاريخاً طويلاً
صنعاء القديمة: عراقة التاريخ وجمال التراث
صنعاء القديمة، عاصمة اليمن التاريخية، تُعد واحدة من أقدم المدن المأهولة في العالم. تتميز المدينة بتنوع ثقافتها وجمال معمارها الذي يعكس تاريخاً طويلاً من التبادل الثقافي والاقتصادي. في هذا المقال، سنستعرض جوانب مختلفة من صنعاء القديمة، بما في ذلك تاريخها، معالمها الأثرية، وأسواقها التقليدية، مع تحسينات تساعد على تصدر نتائج البحث. تاريخ صنعاء القديمة تأسست صنعاء القديمة في عهد الممالك السبئية، ويعتقد أنها أقدم من 2500 سنة. لعبت المدينة دوراً محورياً في تاريخ اليمن كعاصمة لمملكة سبأ ، ثم لاحقاً في فترة الإسلام كعاصمة ثقافية وتجارية. تأثرت المدينة بالعديد من الحضارات عبر العصور، مما أعطاها طابعاً تاريخياً فريداً. مساجد صنعاء الأثرية تعد المساجد في صنعاء القديمة من أبرز معالمها الدينية والأثرية. من أبرزها مسجد الجامع الكبير، الذي يُعتبر أقدم مسجد في اليمن وأحد أقدم المساجد في العالم الإسلامي، ويعود تاريخه إلى القرن السابع الميلادي. كما يتميز مسجد النهرين بموقعه الجغرافي الرائع وتصميمه المعماري الفريد. أبواب صنعاء القديمة تُحاط صنعاء القديمة بسور قديم يحتوي على عدة أبواب تاريخية. من بين هذه الأبوا…
عن المؤلف
مرحبًا، أنا مدوّن تقني شغوف بصناعة المحتوى الرقمي، أشارككم شروحات ومراجعات في مجالات البرمجة والتكنولوجيا.
إرسال تعليق
// script.js
document.addEventListener('DOMContentLoaded', function() {
// عناصر DOM
const chatMessages = document.getElementById('chat-messages');
const messageInput = document.getElementById('message-input');
const sendBtn = document.getElementById('send-btn');
const clearChatBtn = document.getElementById('clear-chat');
const settingsBtn = document.getElementById('settings-btn');
const settingsModal = document.getElementById('settings-modal');
const saveSettingsBtn = document.getElementById('save-settings');
const cancelSettingsBtn = document.getElementById('cancel-settings');
const formattingButtons = document.querySelectorAll('.text-formatting button');
const chatStatus = document.getElementById('chat-status');
// إعدادات الروبوت
let botSettings = {
model: 'gpt-3.5',
temperature: 0.7,
saveChats: true
};
// تحميل الإعدادات والمحادثات المحفوظة
function loadSettings() {
const savedSettings = localStorage.getItem('chatbotSettings');
if (savedSettings) {
botSettings = JSON.parse(savedSettings);
document.getElementById('api-select').value = botSettings.model;
document.getElementById('temperature').value = botSettings.temperature;
document.getElementById('temp-value').textContent = botSettings.temperature;
document.getElementById('save-chats').checked = botSettings.saveChats;
}
if (botSettings.saveChats) {
const savedChat = localStorage.getItem('chatHistory');
if (savedChat) {
chatMessages.innerHTML = savedChat;
scrollToBottom();
}
}
}
// حفظ الإعدادات
function saveSettings() {
botSettings.model = document.getElementById('api-select').value;
botSettings.temperature = parseFloat(document.getElementById('temperature').value);
botSettings.saveChats = document.getElementById('save-chats').checked;
localStorage.setItem('chatbotSettings', JSON.stringify(botSettings));
settingsModal.style.display = 'none';
}
// إضافة رسالة إلى الدردشة
function addMessage(content, isUser) {
const messageDiv = document.createElement('div');
messageDiv.classList.add('message', isUser ? 'user-message' : 'bot-message');
messageDiv.innerHTML = content;
chatMessages.appendChild(messageDiv);
if (botSettings.saveChats) {
localStorage.setItem('chatHistory', chatMessages.innerHTML);
}
scrollToBottom();
}
// التمرير إلى الأسفل
function scrollToBottom() {
chatMessages.scrollTop = chatMessages.scrollHeight;
}
// معالجة إرسال الرسالة
async function sendMessage() {
const message = messageInput.value.trim();
if (!message) return;
// إضافة رسالة المستخدم
addMessage(message, true);
messageInput.value = '';
// عرض حالة "يكتب..."
chatStatus.textContent = 'الروبوت يكتب...';
try {
// استدعاء API الذكاء الاصطناعي
const response = await fetchAIResponse(message, botSettings);
// إضافة رد الروبوت
addMessage(response, false);
chatStatus.textContent = 'جاهز للرد...';
} catch (error) {
console.error('Error:', error);
addMessage('عذرًا، حدث خطأ أثناء معالجة طلبك. يرجى المحاولة مرة أخرى.', false);
chatStatus.textContent = 'حدث خطأ';
setTimeout(() => {
chatStatus.textContent = 'جاهز للرد...';
}, 3000);
}
}
// تكبير حقل الإدخال تلقائيًا
messageInput.addEventListener('input', function() {
this.style.height = 'auto';
this.style.height = (this.scrollHeight) + 'px';
});
// إرسال الرسالة عند الضغط على Enter
messageInput.addEventListener('keydown', function(e) {
if (e.key === 'Enter' !e.shiftKey) {
e.preventDefault();
sendMessage();
}
});
// أحداث الأزرار
sendBtn.addEventListener('click', sendMessage);
clearChatBtn.addEventListener('click', function() {
chatMessages.innerHTML = '';
if (botSettings.saveChats) {
localStorage.removeItem('chatHistory');
}
});
settingsBtn.addEventListener('click', function() {
settingsModal.style.display = 'flex';
});
saveSettingsBtn.addEventListener('click', saveSettings);
cancelSettingsBtn.addEventListener('click', function() {
settingsModal.style.display = 'none';
});
// إغلاق نافذة الإعدادات عند النقر خارجها
window.addEventListener('click', function(e) {
if (e.target === settingsModal) {
settingsModal.style.display = 'none';
}
});
// أزرار تنسيق النص
formattingButtons.forEach(button => {
button.addEventListener('click', function() {
const format = this.getAttribute('data-format');
formatText(format);
});
});
// وظيفة تنسيق النص
function formatText(format) {
const start = messageInput.selectionStart;
const end = messageInput.selectionEnd;
const selectedText = messageInput.value.substring(start, end);
let formattedText = '';
switch(format) {
case 'bold':
formattedText = `**${selectedText}**`;
break;
case 'italic':
formattedText = `*${selectedText}*`;
break;
case 'list':
formattedText = `\n- ${selectedText.replace(/\n/g, '\n- ')}`;
break;
}
messageInput.setRangeText(formattedText, start, end, 'end');
messageInput.focus();
}
// تحديث قيمة درجة الإبداع
document.getElementById('temperature').addEventListener('input', function() {
document.getElementById('temp-value').textContent = this.value;
});
// تحميل الإعدادات عند البدء
loadSettings();
});