{"id":177,"date":"2024-03-05T13:01:01","date_gmt":"2024-03-05T10:01:01","guid":{"rendered":"http:\/\/palekseev.ru\/?page_id=177"},"modified":"2024-08-23T20:23:17","modified_gmt":"2024-08-23T17:23:17","slug":"my_articles","status":"publish","type":"page","link":"https:\/\/palekseev.ru\/?page_id=177","title":{"rendered":"\u041c\u043e\u0438 \u0441\u0442\u0430\u0442\u044c\u0438"},"content":{"rendered":"    <style>\n    body {\n      font-family: Arial, sans-serif;\n      line-height: 1.6;\n      margin: 0;\n      padding: 0;\n      background-color: #f4f4f4;\n    }\n    .container {\n      width: 100%;\n      max-width: 1200px;\n      margin: 0 auto;\n      padding: 20px;\n      background: #fff;\n      border-radius: 8px;\n      box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n    }\n    .header {\n      text-align: center;\n      margin-bottom: 20px;\n    }\n    .search-bar {\n      margin-bottom: 20px;\n      text-align: center;\n    }\n    .search-bar input {\n      padding: 10px;\n      width: 100%;\n      max-width: 600px;\n      border: 1px solid #ddd;\n      border-radius: 4px;\n    }\n    .publication-card {\n      border: 1px solid #ddd;\n      padding: 15px;\n      margin: 10px 0;\n      border-radius: 5px;\n      background: #f9f9f9;\n      line-height: 1.4; \/* \u0423\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 *\/\n    }\n    .publication-card h3 {\n      margin: 0;\n      font-size: 1.5em;\n    }\n    .publication-card h3 a {\n      color: #0073e6;\n      text-decoration: none;\n    }\n    .publication-card h3 a:hover {\n      text-decoration: underline;\n    }\n    .publication-card p {\n      margin: 5px 0;\n      font-size: 0.9em; \/* \u0423\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 *\/\n    }\n    .filter-bar {\n      text-align: center;\n      margin-bottom: 20px;\n    }\n    .filter-bar select {\n      padding: 10px;\n      border: 1px solid #ddd;\n      border-radius: 4px;\n      font-size: 1em;\n    }\n    <\/style>\n    <div class=\"container\">\n        <div class=\"header\">\n            <h1>\u0421\u0442\u0430\u0442\u044c\u0438 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0445 \u0438 \u0441\u0431\u043e\u0440\u043d\u0438\u043a\u0430\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439<\/h1>\n        <\/div>\n        \n        <!-- \u041f\u043e\u0438\u0441\u043a\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 -->\n        <div class=\"search-bar\">\n            <input type=\"text\" id=\"publication-search\" placeholder=\"\u041f\u043e\u0438\u0441\u043a \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439...\">\n        <\/div>\n        \n        <!-- \u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u043e\u0434\u0430\u043c -->\n        <div class=\"filter-bar\">\n            <select id=\"publication-filter\">\n                <option value=\"all\">\u0412\u0441\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/option>\n            <\/select>\n        <\/div>\n     <\/div>\n        <!-- \u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 -->\n        <div id=\"publication-list\"><\/div>\n    <\/div>\n    <script>\n    document.addEventListener('DOMContentLoaded', function () {\n        const searchInput = document.getElementById('publication-search');\n        const filterSelect = document.getElementById('publication-filter');\n        const publicationList = document.getElementById('publication-list');\n\n        \/\/ URL \u0432\u0430\u0448\u0435\u0433\u043e CSV \u0444\u0430\u0439\u043b\u0430\n        const csvURL = 'https:\/\/docs.google.com\/spreadsheets\/d\/1A144BtxYqsaSy05RWrgJi1L91tCsomiR6dRRQyF7XYM\/pub?output=csv';\n\n        fetch(csvURL)\n            .then(response => response.text())\n            .then(data => {\n                const rows = data.split('\\n').slice(1); \/\/ \u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\n                const publications = rows.map(row => {\n                    const columns = row.split(\/,(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)\/).map(col => col.replace(\/(^\"|\"$)\/g, '').trim());\n                    const [ , title, authors, description, year, url, index, publisher, doi] = columns;\n                    return { title, authors, description, year, url, index, publisher, doi };\n                });\n\n                \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0433\u043e\u0434\u044b \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\n                const years = [...new Set(publications.map(pub => pub.year))].filter(year => year !== '').sort((a, b) => b - a);\n                renderFilterOptions(years);\n\n                function renderFilterOptions(years) {\n                    years.forEach(year => {\n                        const option = document.createElement('option');\n                        option.value = year;\n                        option.textContent = year + \" \u0433\u043e\u0434\";\n                        filterSelect.appendChild(option);\n                    });\n                }\n\n                function renderPublications(publications) {\n                    publicationList.innerHTML = '';\n                    publications.forEach(pub => {\n                        const card = document.createElement('div');\n                        card.classList.add('publication-card');\n\n                        let cardContent = `\n                            <h3><a href=\"${pub.url}\" target=\"_blank\" rel=\"noopener\">${pub.title}<\/a><\/h3>\n                            <p><strong>\u0410\u0432\u0442\u043e\u0440\u044b:<\/strong> ${pub.authors}<\/p>\n                            <p><strong>\u0416\u0443\u0440\u043d\u0430\u043b (\u043a\u043d\u0438\u0433\u0430):<\/strong> ${pub.description}<\/p>`;\n                        \n                        \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0431\u044b\u043b\u0438 \u043f\u0443\u0441\u0442\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c\n                        if (pub.publisher && pub.publisher !== '') cardContent += `<p><strong>\u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e:<\/strong> ${pub.publisher}<\/p>`;\n                        if (pub.doi && pub.doi !== '') cardContent += `<p><strong>DOI:<\/strong> ${pub.doi}<\/p>`;\n                        cardContent += `<p><strong>\u0413\u043e\u0434:<\/strong> ${pub.year}<\/p>`;\n                        if (pub.index && pub.index !== '') cardContent += `<p><strong>\u0418\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432:<\/strong> ${pub.index}<\/p>`;\n\n                        card.innerHTML = cardContent;\n                        publicationList.appendChild(card);\n                    });\n                }\n\n                function filterPublications() {\n                    const search = searchInput.value.toLowerCase();\n                    const year = filterSelect.value;\n\n                    const filtered = publications.filter(pub => {\n                        const matchesSearch = pub.title.toLowerCase().includes(search) || pub.authors.toLowerCase().includes(search);\n                        const matchesYear = year === 'all' || pub.year === year;\n                        return matchesSearch && matchesYear;\n                    });\n\n                    renderPublications(filtered);\n                }\n\n                searchInput.addEventListener('input', filterPublications);\n                filterSelect.addEventListener('change', filterPublications);\n\n                renderPublications(publications); \/\/ Initial render\n            })\n            .catch(error => console.error('\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:', error));\n    });\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"class_list":["post-177","page","type-page","status-publish","hentry"],"aioseo_notices":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false,"minimalistblogger-grid":false,"minimalistblogger-slider":false,"minimalistblogger-small":false,"mailpoet_newsletter_max":false},"uagb_author_info":{"display_name":"pavel","author_link":"https:\/\/palekseev.ru\/?author=1"},"uagb_comment_info":0,"uagb_excerpt":null,"_links":{"self":[{"href":"https:\/\/palekseev.ru\/index.php?rest_route=\/wp\/v2\/pages\/177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/palekseev.ru\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/palekseev.ru\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/palekseev.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/palekseev.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=177"}],"version-history":[{"count":48,"href":"https:\/\/palekseev.ru\/index.php?rest_route=\/wp\/v2\/pages\/177\/revisions"}],"predecessor-version":[{"id":1798,"href":"https:\/\/palekseev.ru\/index.php?rest_route=\/wp\/v2\/pages\/177\/revisions\/1798"}],"wp:attachment":[{"href":"https:\/\/palekseev.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}