напиши код кнопок, код жс:
// Функции для кнопок
function nextChapter(currentChapterId) {
    fetch('/next_chapter', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ current_chapter_id: currentChapterId })
    })
    .then(response => response.json())
    .then(data => {
        if (data.chapter_id) {
            window.location.href = `/book/${data.book_id}/chapter/${data.chapter_number}`;
        } else {
            alert(data.message);
        }
    })
    .catch(error => console.error('Ошибка:', error));
}

function previousChapter(currentChapterId) {
    fetch('/previous_chapter', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ current_chapter_id: currentChapterId })
    })
    .then(response => response.json())
    .then(data => {
        if (data.chapter_id) {
            window.location.href = `/book/${data.book_id}/chapter/${data.chapter_number}`;
        } else {
            alert(data.message);
        }
    })
    .catch(error => console.error('Ошибка:', error));
}

function shortenText(chapterId) {
    fetch('/shorten_text', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ chapter_id: chapterId })
    })
    .then(response => response.json())
    .then(data => {
        document.querySelector('.chapter-content p').innerText = data.shortened_text;
    })
    .catch(error => console.error('Ошибка:', error));
}

function showEssence(chapterId) {
    fetch('/show_essence', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ chapter_id: chapterId })
    })
    .then(response => response.json())
    .then(data => {
        alert('Суть: ' + data.essence);
    })
    .catch(error => console.error('Ошибка:', error));
}

function testFunction() {
    fetch('/test_function')
        .then(response => response.json())
        .then(data => {
            alert(data.message);
        })
        .catch(error => console.error('Ошибка:', error));
}

function reportBug() {
    const bugDescription = prompt('Опишите проблему:');
    if (bugDescription) {
        fetch('/report_bug', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({ description: bugDescription })
        })
        .then(response => response.json())
        .then(data => {
            alert(data.message);
        })
        .catch(error => console.error('Ошибка:', error));
    }
}

function rate(bookId) {
    const userRating = prompt('Поставьте оценку от 1 до 5:');
    if (userRating) {
        fetch('/rate', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({ rating: userRating, book_id: bookId })
        })
        .then(response => response.json())
        .then(data => {
            alert(data.message);
        })
        .catch(error => console.error('Ошибка:', error));
    }
}


код сайта:

{% extends "base.html" %}
{% block content %}
<div class="main-content">
    <!-- Левая панель -->
    <div class="left-panel">
        <div class="text-content">
            <h2>Добро пожаловать, {{ username }}!</h2>
            <p>
                Здесь вы можете читать свои любимые книги, обсуждать их с другими пользователями и получать уведомления о новых анонсах.
                Используйте кнопки ниже для навигации между главами, сокращения текста или отправки отзывов и отчетов об ошибках.
            </p>
            <p>
                Наслаждайтесь чтением и взаимодействием с сообществом AIBook!
            </p>
        </div>
        <div class="buttons">
            <!-- Кнопки будут использоваться внутри страницы главы -->
        </div>
    </div>

    <!-- Правая панель -->
    <div class="right-panel">
        <div class="search-bar">
            <input type="text" placeholder="Поиск книг...">
        </div>
        <div class="cards-container">
            {% for book in books %}
            <div class="card">
                <h3><a href="{{ url_for('book_detail', book_id=book.id) }}">{{ book.title }}</a></h3>
                <p>{{ book.description }}</p>
                <span class="genre">{{ book.genre }}</span>
                <span class="rating">{{ book.rating }} ★</span>
            </div>
            {% endfor %}
        </div>
    </div>
</div>
{% endblock %}


стили:


        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body, html {
            height: 100%;
            width: 100%;
            font-family: Arial, sans-serif;
            overflow: hidden;
            background-color: #f0f2f5;
        }

        /* Верхняя панель */
        .top-bar {
            width: 100%;
            height: 60px;
            background-color: #4a90e2;
            color: white;
            display: flex;
            align-items: center;
            padding: 0 20px;
            justify-content: space-between;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }

        .top-bar .logo {
            font-size: 24px;
            font-weight: bold;
        }

        .top-bar .menu {
            display: flex;
            gap: 20px;
        }

        .top-bar .menu a {
            color: white;
            text-decoration: none;
            font-size: 16px;
            position: relative;
        }

        .top-bar .menu a:hover {
            text-decoration: underline;
        }

        /* Основной контент */
        .main-content {
            display: flex;
            height: calc(100% - 60px);
        }

        /* Левая панель */
        .left-panel {
            width: 30%;
            background-color: #ffffff;
            padding: 20px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            box-shadow: 2px 0 5px rgba(0,0,0,0.1);
            overflow: hidden;
        }

        .left-panel .text-content {
            overflow-y: auto;
            padding-right: 10px;
        }

        .left-panel .buttons {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-top: 20px;
        }

        .left-panel .buttons button {
            flex: 1 1 45%;
            padding: 10px;
            background-color: #4a90e2;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: background-color 0.3s;
            font-size: 14px;
        }

        .left-panel .buttons button:hover {
            background-color: #357ABD;
        }

        /* Правая панель */
        .right-panel {
            width: 70%;
            padding: 20px;
            overflow: hidden;
            display: flex;
            flex-direction: column;
        }

        .right-panel .search-bar {
            margin-bottom: 20px;
        }

        .right-panel .search-bar input {
            width: 100%;
            padding: 10px;
            border: 2px solid #4a90e2;
            border-radius: 4px;
            font-size: 16px;
        }

        .right-panel .cards-container {
            flex: 1;
            overflow-y: auto;
        }

        .card {
            background-color: #ffffff;
            padding: 15px;
            margin-bottom: 15px;
            border-radius: 8px;
            box-shadow: 0 1px 3px rgba(0,0,0,0.1);
            transition: transform 0.2s;
        }

        .card:hover {
            transform: scale(1.02);
        }

        .card h3 {
            margin-bottom: 10px;
            color: #333333;
        }

        .card p {
            margin-bottom: 8px;
            color: #555555;
        }

        .card .genre, .card .rating {
            display: inline-block;
            padding: 5px 10px;
            border-radius: 12px;
            background-color: #e1ecf4;
            color: #39739d;
            font-size: 12px;
            margin-right: 5px;
        }

        /* Прокрутка для внутренних элементов */
        .left-panel .text-content::-webkit-scrollbar,
        .right-panel .cards-container::-webkit-scrollbar {
            width: 8px;
        }

        .left-panel .text-content::-webkit-scrollbar-track,
        .right-panel .cards-container::-webkit-scrollbar-track {
            background: #f1f1f1;
            border-radius: 4px;
        }

        .left-panel .text-content::-webkit-scrollbar-thumb,
        .right-panel .cards-container::-webkit-scrollbar-thumb {
            background: #c1c1c1;
            border-radius: 4px;
        }

        /* Адаптивность */
        @media (max-width: 768px) {
            .main-content {
                flex-direction: column;
            }

            .left-panel, .right-panel {
                width: 100%;
                height: 50%;
            }
        }