diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..3d4886c --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,75 @@ +name: Deploy to Production + +on: + push: + branches: [main, master] + workflow_dispatch: # Ручной запуск из интерфейса + +jobs: + deploy: + runs-on: self-hosted # Используем ваш act_runner без Docker + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Show structure + run: | + echo "Структура проекта:" + ls -la + echo "Текущая директория: $(pwd)" + + - name: Backup current site + run: | + BACKUP_DIR="/var/backups/arseny-site/$(date +%Y%m%d-%H%M%S)" + mkdir -p $BACKUP_DIR + cp -r /var/www/arseny.ahtamov.ru/html/* $BACKUP_DIR/ 2>/dev/null || true + echo "Backup создан в: $BACKUP_DIR" + + - name: Deploy files + run: | + echo "Деплой файлов в /var/www/arseny.ahtamov.ru/html/" + + # Удаляем старые файлы (кроме скрытых системных) + find /var/www/arseny.ahtamov.ru/html/ -type f \ + ! -name '.htaccess' \ + ! -name '.user.ini' \ + ! -name '.well-known' \ + -delete 2>/dev/null || true + + # Копируем новые файлы + cp -r ./* /var/www/arseny.ahtamov.ru/html/ + + # Устанавливаем правильные права + chown -R www-data:www-data /var/www/arseny.ahtamov.ru/html/ + find /var/www/arseny.ahtamov.ru/html/ -type d -exec chmod 755 {} \; + find /var/www/arseny.ahtamov.ru/html/ -type f -exec chmod 644 {} \; + + # Для скриптов (если есть) даем права на выполнение + find /var/www/arseny.ahtamov.ru/html/ -name "*.php" -exec chmod 755 {} \; 2>/dev/null || true + find /var/www/arseny.ahtamov.ru/html/ -name "*.cgi" -exec chmod 755 {} \; 2>/dev/null || true + + - name: Restart nginx + run: | + echo "Проверяем конфигурацию nginx" + nginx -t + + echo "Перезагружаем nginx" + systemctl reload nginx || nginx -s reload + + echo "Проверяем статус nginx" + systemctl status nginx --no-pager || true + + - name: Verify deployment + run: | + echo "Проверка деплоя:" + echo "Количество файлов в целевой директории:" + find /var/www/arseny.ahtamov.ru/html/ -type f | wc -l + + echo "Размер директории:" + du -sh /var/www/arseny.ahtamov.ru/html/ + + echo "Последние измененные файлы:" + ls -lht /var/www/arseny.ahtamov.ru/html/ | head -10 diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..1a702ec --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "ms-vscode.vscode-typescript-next", + "ritwickdey.liveserver", + "ms-vscode.live-server" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a96e7f7 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "files.exclude": { + "**/.git": true, + "**/.gitea": true, + "**/.github": true, + "**/node_modules": true + }, + "editor.tabSize": 2, + "files.associations": { + "*.conf": "nginx", + "*.html": "html", + "*.css": "css", + "*.js": "javascript" + } +} diff --git a/WWW.csproj b/WWW.csproj new file mode 100644 index 0000000..24ec0e8 --- /dev/null +++ b/WWW.csproj @@ -0,0 +1,7 @@ + + + net8.0 + enable + enable + + diff --git a/WWW.sln b/WWW.sln new file mode 100644 index 0000000..427ec50 --- /dev/null +++ b/WWW.sln @@ -0,0 +1,19 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WWW", "WWW.csproj", "{UNIQUE-GUID-HERE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {UNIQUE-GUID-HERE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {UNIQUE-GUID-HERE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {UNIQUE-GUID-HERE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {UNIQUE-GUID-HERE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/html/api/counter.php b/html/api/counter.php new file mode 100644 index 0000000..f70caa6 --- /dev/null +++ b/html/api/counter.php @@ -0,0 +1,30 @@ + 'success', 'count' => $count]); + +} elseif ($_SERVER['REQUEST_METHOD'] === 'GET') { + // Возвращаем текущее значение + if (file_exists($counterFile)) { + $count = file_get_contents($counterFile); + } else { + $count = 0; + } + + echo json_encode(['count' => intval($count)]); +} +?> \ No newline at end of file diff --git a/html/api/counter.txt b/html/api/counter.txt new file mode 100644 index 0000000..e69de29 diff --git a/html/css/style.css b/html/css/style.css new file mode 100644 index 0000000..0de8d76 --- /dev/null +++ b/html/css/style.css @@ -0,0 +1,493 @@ +/* Базовые стили */ +:root { + --primary: #4361ee; + --secondary: #3a0ca3; + --accent: #f72585; + --light: #f8f9fa; + --dark: #212529; + --gray: #6c757d; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + line-height: 1.6; + color: var(--dark); + background-color: #fff; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; +} + +/* Навигация */ +.navbar { + background-color: white; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + position: fixed; + width: 100%; + top: 0; + z-index: 1000; +} + +.navbar .container { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 20px; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); + text-decoration: none; +} + +.nav-links { + display: flex; + gap: 2rem; +} + +.nav-links a { + text-decoration: none; + color: var(--dark); + font-weight: 500; + transition: color 0.3s; +} + +.nav-links a:hover { + color: var(--primary); +} + +.menu-toggle { + display: none; + background: none; + border: none; + font-size: 1.5rem; + cursor: pointer; + color: var(--dark); +} + +/* Герой-секция */ +.hero { + padding: 120px 0 60px; + background: linear-gradient(135deg, #4361ee 0%, #3a0ca3 100%); + color: white; +} + +.hero-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4rem; + align-items: center; +} + +.hero-text h1 { + font-size: 3rem; + margin-bottom: 1rem; +} + +.highlight { + color: var(--accent); +} + +.hero-text p { + font-size: 1.2rem; + margin-bottom: 2rem; + opacity: 0.9; +} + +.social-links { + display: flex; + gap: 1rem; +} + +.social-links a { + display: inline-flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + background: rgba(255, 255, 255, 0.1); + border-radius: 50%; + color: white; + font-size: 1.2rem; + transition: all 0.3s; +} + +.social-links a:hover { + background: var(--accent); + transform: translateY(-3px); +} + +.hero-image { + display: flex; + justify-content: center; + align-items: center; +} + +.avatar-img { + width: 300px; + height: 300px; + border-radius: 50%; + object-fit: cover; + border: 4px solid white; + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2); + transition: all 0.3s ease; +} + +.avatar-img:hover { + transform: scale(1.05); + box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3); +} + +/* Секции */ +.section { + padding: 80px 0; + animation: fadeIn 0.8s ease-out; +} + +.section h2 { + text-align: center; + font-size: 2.5rem; + margin-bottom: 3rem; + color: var(--secondary); +} + +.bg-light { + background-color: var(--light); +} + +/* Обо мне */ +.about-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4rem; + align-items: start; +} + +.about-text p { + margin-bottom: 1rem; + font-size: 1.1rem; + line-height: 1.8; +} + +.facts { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; +} + +.fact-card { + text-align: center; + padding: 2rem 1rem; + background: white; + border-radius: 10px; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); + transition: transform 0.3s; +} + +.fact-card:hover { + transform: translateY(-5px); +} + +.fact-card i { + font-size: 2.5rem; + color: var(--primary); + margin-bottom: 1rem; +} + +/* Интересы */ +.interests-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; +} + +.interest-card { + background: white; + padding: 2rem; + border-radius: 10px; + text-align: center; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); + transition: all 0.3s; +} + +.interest-card:hover { + transform: translateY(-10px); + box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2); +} + +.interest-icon { + width: 80px; + height: 80px; + background: linear-gradient(135deg, var(--primary), var(--secondary)); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin: 0 auto 1.5rem; + color: white; + font-size: 2rem; +} + +/* Проекты */ +.projects-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.project-card { + background: white; + border-radius: 10px; + overflow: hidden; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); + transition: all 0.3s; +} + +.project-card:hover { + transform: translateY(-10px); +} + +.project-image { + height: 200px; + background: linear-gradient(135deg, #4361ee, #3a0ca3); + display: flex; + align-items: center; + justify-content: center; + color: white; + font-size: 4rem; +} + +.project-card h3 { + padding: 1.5rem 1.5rem 0.5rem; +} + +.project-card p { + padding: 0 1.5rem; + color: var(--gray); + margin-bottom: 1.5rem; +} + +.btn { + display: inline-block; + background: var(--primary); + color: white; + padding: 0.8rem 1.5rem; + border-radius: 5px; + text-decoration: none; + font-weight: 600; + transition: all 0.3s; + border: none; + cursor: pointer; + margin: 1.5rem; +} + +.btn:hover { + background: var(--secondary); + transform: translateY(-2px); +} + +/* Блог */ +.blog-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.blog-card { + background: white; + padding: 2rem; + border-radius: 10px; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); +} + +.blog-date { + color: var(--accent); + font-weight: 600; + margin-bottom: 0.5rem; +} + +.blog-card h3 { + margin-bottom: 1rem; +} + +.blog-card p { + color: var(--gray); + margin-bottom: 1rem; +} + +.read-more { + color: var(--primary); + text-decoration: none; + font-weight: 600; +} + +.read-more:hover { + text-decoration: underline; +} + +/* Контакты */ +.contact-wrapper { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4rem; + max-width: 800px; + margin: 0 auto; +} + +.contact-info p { + display: flex; + align-items: center; + gap: 1rem; + margin-bottom: 1.5rem; + font-size: 1.1rem; +} + +.contact-info i { + color: var(--primary); + width: 24px; +} + +.contact-form input, +.contact-form textarea { + width: 100%; + padding: 1rem; + margin-bottom: 1rem; + border: 1px solid #ddd; + border-radius: 5px; + font-family: inherit; +} + +.contact-form button { + width: 100%; +} + +/* Футер */ +footer { + background: var(--dark); + color: white; + text-align: center; + padding: 2rem 0; +} + +footer p { + margin-bottom: 0.5rem; +} + +/* Анимации */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Стили для счетчика */ +[data-counter] { + transition: all 0.3s ease; + font-weight: bold; +} + +.counter-loaded { + color: #4CAF50; + animation: pulse 2s infinite; +} + +@keyframes pulse { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.05); + } + 100% { + transform: scale(1); + } +} + +/* Стиль для счетчика в навигации */ +.nav-counter { + background: linear-gradient(45deg, #FF6B6B, #4ECDC4); + color: white; + padding: 5px 12px; + border-radius: 20px; + font-size: 14px; + margin-left: 15px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); +} + +/* Стиль для счетчика в футере */ +.footer-counter { + font-size: 12px; + color: #666; + margin-top: 10px; +} + +/* Адаптивность */ +@media (max-width: 768px) { + .menu-toggle { + display: block; + } + + .nav-links { + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + background: white; + flex-direction: column; + padding: 1rem; + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1); + } + + .nav-links.active { + display: flex; + } + + .hero-content, + .about-content, + .contact-wrapper { + grid-template-columns: 1fr; + gap: 2rem; + } + + .hero-text h1 { + font-size: 2rem; + } + + .avatar-img { + width: 200px; + height: 200px; + } + + .hero-image { + order: -1; /* Переместить изображение выше текста на мобильных */ + } + + .facts { + grid-template-columns: 1fr; + } + + .section { + padding: 60px 0; + } +} \ No newline at end of file diff --git a/html/images/avatar.jpg b/html/images/avatar.jpg new file mode 100644 index 0000000..633e46c Binary files /dev/null and b/html/images/avatar.jpg differ diff --git a/html/index.html b/html/index.html new file mode 100644 index 0000000..84ec3ae --- /dev/null +++ b/html/index.html @@ -0,0 +1,209 @@ + + + + + + + + Арсений Ахтамов + + + + + + + + + + +
+
+
+
+

Привет, я

+

Арсений Ахтамов

+

Подросток, увлеченный технологиями, программированием и спортом

+ +
+
+ Арсений Ахтамов +
+
+
+
+ + +
+
+

Обо мне

+
+
+

Меня зовут Арсений Ахтамов, мне 10 лет. Я учусь в 4а классе гимназии "Пеленг" и активно + интересуюсь современными технологиями.

+

В свободное время занимаюсь программированием, изучаю веб-разработку и работаю над собственными + проектами.

+

Люблю спорт - особенно футбол и велоспорт. Верю, что баланс между технологиями и физической + активностью важен для развития.

+
+
+
+ +

Программирование

+

Изучаю Python и C#. Я ещё работал в Figma и Thunkable.

+
+
+ +

Спорт

+

Футбол, плавание, велоспорт

+
+
+ +

Гейминг

+

Люблю стратегии и RPG игры

+
+
+
+
+
+ + +
+
+

Мои интересы

+
+
+
+ +
+

IT технологии

+

Искусственный интеллект, кибербезопасность, разработка игр

+
+
+
+ +
+

Фотография

+

Люблю снимать природу и городские пейзажи

+
+
+
+ +
+

Музыка

+

Слушаю класическую музыку, фанк и неокласическую музыку.

+
+
+
+ +
+

Чтение

+

Фантастика, научпоп, техническая литература и детективы.

+
+
+
+
+ + +
+
+

Мои проекты

+
+
+
+ +
+

Персональный сайт

+

Сайт-портфолио на HTML/CSS/JavaScript

+ Посмотреть +
+
+
+ +
+

Телеграм-бот

+

Бот для помощи с домашними заданиями

+ Посмотреть +
+
+
+ +
+

2D игра

+

Простая игра на Python с PyGame

+ Посмотреть +
+
+
+
+ + +
+
+

Последние записи

+
+
+
15.11.2025
+

Мой первый сайт

+

Расскажу о том, как я создавал этот сайт...

+ Читать далее → +
+
+
10.11.2025
+

Изучаю Python

+

Поделюсь своими впечатлениями от изучения Python...

+ Читать далее → +
+
+
+
+ + +
+
+

Свяжись со мной

+
+
+

ascet.love@email.com

+

+7 (903)-953-59-XX

+

Россия Томск

+
+
+ + + + +
+
+
+
+ + + + + + + + + + diff --git a/html/index_oiginal.html b/html/index_oiginal.html new file mode 100644 index 0000000..0aef127 --- /dev/null +++ b/html/index_oiginal.html @@ -0,0 +1,216 @@ + + + + + + + Арсений Ахтамов + + + + + + + + + + + +
+
+
+
+

Привет, я

+

Арсений Ахтамов

+

Подросток, увлеченный технологиями, программированием и спортом

+ +
+
+
+ +
+
+
+
+
+ + +
+
+

Обо мне

+
+
+

Меня зовут Арсений Ахтамов, мне 10 лет. Я учусь в 4а классе гимназии "Пеленг" и активно + интересуюсь современными технологиями.

+

В свободное время занимаюсь программированием, изучаю веб-разработку и работаю над собственными + проектами.

+

Люблю спорт - особенно футбол и велоспорт. Верю, что баланс между технологиями и физической + активностью важен для развития.

+
+
+
+ +

Программирование

+

Изучаю Python и C#. Я ещё работал в Figma и Thunkable.

+
+
+ +

Спорт

+

Футбол, плавание, велоспорт

+
+
+ +

Гейминг

+

Люблю стратегии и RPG игры

+
+
+
+
+
+ + +
+
+

Мои интересы

+
+
+
+ +
+

IT технологии

+

Искусственный интеллект, кибербезопасность, разработка игр

+
+
+
+ +
+

Фотография

+

Люблю снимать природу и городские пейзажи

+
+
+
+ +
+

Музыка

+

Слушаю класическую музыку, фанк и неокласическую музыку.

+
+
+
+ +
+

Чтение

+

Фантастика, научпоп, техническая литература и детективы.

+
+
+
+
+ + +
+
+

Мои проекты

+
+
+
+ +
+

Персональный сайт

+

Сайт-портфолио на HTML/CSS/JavaScript

+ Посмотреть +
+
+
+ +
+

Телеграм-бот

+

Бот для помощи с домашними заданиями

+ Посмотреть +
+
+
+ +
+

2D игра

+

Простая игра на Python с PyGame

+ Посмотреть +
+
+
+
+ + +
+
+

Последние записи

+
+
+
15.11.2025
+

Мой первый сайт

+

Расскажу о том, как я создавал этот сайт...

+ Читать далее → +
+
+
10.11.2025
+

Изучаю Python

+

Поделюсь своими впечатлениями от изучения Python...

+ Читать далее → +
+
+
+
+ + +
+
+

Свяжись со мной

+
+
+

ascet.love@email.com

+

+7 (903)-953-59-XX

+

Россия Томск

+
+
+ + + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/html/js/counter.js b/html/js/counter.js new file mode 100644 index 0000000..b70f6e1 --- /dev/null +++ b/html/js/counter.js @@ -0,0 +1,87 @@ +// Простой счетчик посещений +class SimpleCounter { + constructor() { + this.storageKey = 'arseny_site_counter'; + this.serverFile = '/api/counter.txt'; // Файл для синхронизации + this.init(); + } + + async init() { + try { + // 1. Получаем локальное значение + let localCount = localStorage.getItem(this.storageKey); + if (!localCount) { + localCount = 1; + } else { + localCount = parseInt(localCount) + 1; + } + + // 2. Сохраняем локально + localStorage.setItem(this.storageKey, localCount); + + // 3. Пытаемся синхронизировать с сервером (в фоне, без ожидания) + this.syncWithServer(localCount); + + // 4. Показываем на странице + this.display(localCount); + + } catch (error) { + console.log('Счетчик работает в локальном режиме'); + this.displayFallback(); + } + } + + async syncWithServer(count) { + try { + // Отправляем данные на сервер + await fetch(this.serverFile, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ count: count }) + }); + } catch (error) { + // Игнорируем ошибки - работает локальная версия + } + } + + display(count) { + // Ищем все элементы для отображения счетчика + const elements = document.querySelectorAll('[data-counter]'); + + elements.forEach(element => { + const format = element.dataset.format || 'simple'; + + switch(format) { + case 'simple': + element.textContent = `Посетителей: ${this.formatNumber(count)}`; + break; + case 'number': + element.textContent = this.formatNumber(count); + break; + case 'message': + element.textContent = `Вы посетитель №${this.formatNumber(count)}`; + break; + } + + element.classList.add('counter-loaded'); + }); + } + + displayFallback() { + const elements = document.querySelectorAll('[data-counter]'); + elements.forEach(element => { + element.textContent = 'Счетчик загружается...'; + }); + } + + formatNumber(num) { + return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' '); + } +} + +// Автоматический запуск при загрузке страницы +document.addEventListener('DOMContentLoaded', () => { + new SimpleCounter(); +}); \ No newline at end of file diff --git a/html/js/script.js b/html/js/script.js new file mode 100644 index 0000000..8f05115 --- /dev/null +++ b/html/js/script.js @@ -0,0 +1,68 @@ +// Мобильное меню +document.addEventListener('DOMContentLoaded', function () { + const menuToggle = document.querySelector('.menu-toggle'); + const navLinks = document.querySelector('.nav-links'); + + menuToggle.addEventListener('click', function () { + navLinks.classList.toggle('active'); + }); + + // Закрытие меню при клике на ссылку + document.querySelectorAll('.nav-links a').forEach(link => { + link.addEventListener('click', () => { + navLinks.classList.remove('active'); + }); + }); + + // Плавная прокрутка + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + const targetId = this.getAttribute('href'); + if (targetId === '#') return; + + const targetElement = document.querySelector(targetId); + if (targetElement) { + window.scrollTo({ + top: targetElement.offsetTop - 80, + behavior: 'smooth' + }); + } + }); + }); + + // Форма обратной связи + const contactForm = document.querySelector('.contact-form'); + if (contactForm) { + contactForm.addEventListener('submit', function (e) { + e.preventDefault(); + + // Здесь можно добавить отправку формы на сервер + alert('Спасибо за сообщение! Я свяжусь с вами в ближайшее время.'); + this.reset(); + }); + } + + // Анимация появления элементов при скролле + const observerOptions = { + threshold: 0.1, + rootMargin: '0px 0px -50px 0px' + }; + + const observer = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + entry.target.style.opacity = '1'; + entry.target.style.transform = 'translateY(0)'; + } + }); + }, observerOptions); + + // Наблюдаем за карточками + document.querySelectorAll('.fact-card, .interest-card, .project-card, .blog-card').forEach(card => { + card.style.opacity = '0'; + card.style.transform = 'translateY(20px)'; + card.style.transition = 'opacity 0.6s ease, transform 0.6s ease'; + observer.observe(card); + }); +}); \ No newline at end of file diff --git a/html/robots.txt b/html/robots.txt new file mode 100644 index 0000000..70c2374 --- /dev/null +++ b/html/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/html/start.html b/html/start.html new file mode 100644 index 0000000..78c528c --- /dev/null +++ b/html/start.html @@ -0,0 +1,25 @@ + + + + + + Page Title + + + + + +
+

Welcome

+
+
+

This is the main content of the page.

+
+ + + + + + diff --git a/html/stop.html b/html/stop.html new file mode 100644 index 0000000..c85b507 --- /dev/null +++ b/html/stop.html @@ -0,0 +1,86 @@ + + + + + + + + Этот текст — заголовок документа + + + + + + +
+

Это главный заголовок веб-сайта

+
+ +
+
+
+
+

Заголовок статьи 1

+

подзаголовок статьи 1

+
+

опубликовано 10.12.2011

+
+ Это текст моей первой статьи + + I love the movie Temptations + +
+ JD Gauchat + + +
+ +
+ Это изображение для первой статьи +
+
+
+

комментарии (0)

+
+
+ + + + + +
+
+
+

Заголовок статьи 2

+

подзаголовок статьи 2

+
+

опубликовано 15.12.2011

+
+ Это текст моей второй статьи + +
+
+ + + + + \ No newline at end of file