{"id":25815,"date":"2025-01-25T06:24:08","date_gmt":"2025-01-24T21:24:08","guid":{"rendered":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25815"},"modified":"2025-01-25T06:24:09","modified_gmt":"2025-01-24T21:24:09","slug":"artbook","status":"publish","type":"post","link":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25815","title":{"rendered":"ARTBOOK"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"ja\">\n&lt;head>\n    &lt;meta charset=\"UTF-8\">\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    &lt;title>ARTBOOK - \u30a2\u30fc\u30c8SNS&lt;\/title>\n    &lt;style>\n        body {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            margin: 0;\n            padding: 0;\n            background-color: #f9fafb;\n            color: #333;\n        }\n        header {\n            background-color: #4a5568;\n            color: white;\n            padding: 1.5rem;\n            text-align: center;\n            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        }\n        header h1 {\n            margin: 0;\n            font-size: 2.5rem;\n        }\n        header p {\n            margin: 0.5rem 0;\n            font-size: 1.2rem;\n        }\n        header nav {\n            margin-top: 1rem;\n        }\n        header nav a {\n            color: white;\n            text-decoration: none;\n            margin: 0 1rem;\n            font-weight: bold;\n            font-size: 1.1rem;\n            padding: 0.5rem 1rem;\n            border-radius: 5px;\n            transition: background-color 0.3s;\n        }\n        header nav a:hover {\n            background-color: #2d3748;\n        }\n        .container {\n            max-width: 1200px;\n            margin: 2rem auto;\n            padding: 1rem;\n        }\n        .form-group {\n            margin-bottom: 1rem;\n        }\n        .form-group label {\n            display: block;\n            margin-bottom: 0.5rem;\n            font-weight: bold;\n        }\n        .form-group input, .form-group textarea {\n            width: 100%;\n            padding: 0.8rem;\n            border: 1px solid #d2d6dc;\n            border-radius: 6px;\n            background-color: #f7fafc;\n            font-size: 1rem;\n        }\n        .form-group button {\n            background-color: #3182ce;\n            color: white;\n            border: none;\n            padding: 0.8rem 1.5rem;\n            font-size: 1rem;\n            border-radius: 6px;\n            cursor: pointer;\n            transition: background-color 0.3s;\n        }\n        .form-group button:hover {\n            background-color: #2b6cb0;\n        }\n        .profile {\n            text-align: center;\n        }\n        .profile img {\n            width: 150px;\n            height: 150px;\n            border-radius: 50%;\n            object-fit: cover;\n            margin-bottom: 1rem;\n        }\n        footer {\n            text-align: center;\n            padding: 1.5rem;\n            background-color: #4a5568;\n            color: white;\n            margin-top: 2rem;\n        }\n        footer p {\n            margin: 0;\n            font-size: 1rem;\n        }\n    &lt;\/style>\n&lt;\/head>\n&lt;body>\n    &lt;header>\n        &lt;h1>ARTBOOK&lt;\/h1>\n        &lt;p>\u3042\u306a\u305f\u306e\u30a2\u30fc\u30c8\u3092\u30b7\u30a7\u30a2\u3057\u3088\u3046\uff01&lt;\/p>\n        &lt;nav>\n            &lt;a href=\"#home\" onclick=\"navigateTo('home')\">\u30db\u30fc\u30e0&lt;\/a>\n            &lt;a href=\"#gallery\" onclick=\"navigateTo('gallery')\">\u4f5c\u54c1\u4e00\u89a7&lt;\/a>\n            &lt;a href=\"#post\" onclick=\"navigateTo('post')\">\u6295\u7a3f\u3059\u308b&lt;\/a>\n            &lt;a href=\"#profile\" onclick=\"navigateTo('profile')\">\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb&lt;\/a>\n        &lt;\/nav>\n    &lt;\/header>\n\n    &lt;div id=\"content\" class=\"container\">\n        &lt;!-- \u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u3053\u3053\u306b\u52d5\u7684\u306b\u633f\u5165\u3055\u308c\u307e\u3059 -->\n    &lt;\/div>\n\n    &lt;footer>\n        &lt;p>&amp;copy; 2025 ARTBOOK. All Rights Reserved.&lt;\/p>\n    &lt;\/footer>\n\n    &lt;script>\n        let posts = JSON.parse(localStorage.getItem('posts')) || &#91;];\n        let profile = JSON.parse(localStorage.getItem('profile')) || {\n            name: \"\u672a\u8a2d\u5b9a\",\n            bio: \"\u3053\u3053\u306b\u81ea\u5df1\u7d39\u4ecb\u304c\u8868\u793a\u3055\u308c\u307e\u3059\",\n            image: \"https:\/\/via.placeholder.com\/150\"\n        };\n\n        function navigateTo(section) {\n            const content = document.getElementById('content');\n            content.innerHTML = '';\n\n            if (section === 'home') {\n                content.innerHTML = `&lt;h2>\u30db\u30fc\u30e0&lt;\/h2>&lt;p>\u3088\u3046\u3053\u305d\u3001ARTBOOK\u3078\uff01\u6700\u65b0\u306e\u30a2\u30fc\u30c8\u4f5c\u54c1\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002&lt;\/p>`;\n            } else if (section === 'gallery') {\n                content.innerHTML = `&lt;h2>\u4f5c\u54c1\u4e00\u89a7&lt;\/h2>&lt;div id='gallery'>${renderPosts()}&lt;\/div>`;\n            } else if (section === 'post') {\n                content.innerHTML = `\n                    &lt;h2>\u6295\u7a3f\u3059\u308b&lt;\/h2>\n                    &lt;form id=\"postForm\">\n                        &lt;div class=\"form-group\">\n                            &lt;label for=\"title\">\u30bf\u30a4\u30c8\u30eb&lt;\/label>\n                            &lt;input type=\"text\" id=\"title\" name=\"title\" required>\n                        &lt;\/div>\n                        &lt;div class=\"form-group\">\n                            &lt;label for=\"description\">\u8aac\u660e&lt;\/label>\n                            &lt;textarea id=\"description\" name=\"description\" rows=\"4\" required>&lt;\/textarea>\n                        &lt;\/div>\n                        &lt;div class=\"form-group\">\n                            &lt;label for=\"upload\">\u753b\u50cf\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9&lt;\/label>\n                            &lt;input type=\"file\" id=\"upload\" name=\"upload\" accept=\"image\/*\" required>\n                        &lt;\/div>\n                        &lt;div class=\"form-group\">\n                            &lt;button type=\"button\" onclick=\"submitPost()\">\u6295\u7a3f\u3059\u308b&lt;\/button>\n                        &lt;\/div>\n                    &lt;\/form>`;\n            } else if (section === 'profile') {\n                content.innerHTML = `\n                    &lt;h2>\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb&lt;\/h2>\n                    &lt;div class=\"profile\">\n                        &lt;img src=\"${profile.image}\" alt=\"\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u753b\u50cf\">\n                        &lt;h3>${profile.name}&lt;\/h3>\n                        &lt;p>${profile.bio}&lt;\/p>\n                        &lt;form id=\"profileForm\">\n                            &lt;div class=\"form-group\">\n                                &lt;label for=\"name\">\u540d\u524d&lt;\/label>\n                                &lt;input type=\"text\" id=\"name\" value=\"${profile.name}\" required>\n                            &lt;\/div>\n                            &lt;div class=\"form-group\">\n                                &lt;label for=\"bio\">\u81ea\u5df1\u7d39\u4ecb&lt;\/label>\n                                &lt;textarea id=\"bio\" rows=\"4\" required>${profile.bio}&lt;\/textarea>\n                            &lt;\/div>\n                            &lt;div class=\"form-group\">\n                                &lt;label for=\"profileImage\">\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u753b\u50cf&lt;\/label>\n                                &lt;input type=\"file\" id=\"profileImage\" accept=\"image\/*\">\n                            &lt;\/div>\n                            &lt;div class=\"form-group\">\n                                &lt;button type=\"button\" onclick=\"updateProfile()\">\u66f4\u65b0\u3059\u308b&lt;\/button>\n                            &lt;\/div>\n                        &lt;\/form>\n                    &lt;\/div>`;\n            }\n        }\n\n        function submitPost() {\n            const title = document.getElementById('title').value;\n            const description = document.getElementById('description').value;\n            const upload = document.getElementById('upload').files&#91;0];\n\n            if (title &amp;&amp; description &amp;&amp; upload) {\n                const reader = new FileReader();\n\n                reader.onload = function(event) {\n                    posts.push({ title, description, image: event.target.result });\n                    localStorage.setItem('posts', JSON.stringify(posts));\n                    alert('\u6295\u7a3f\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\uff01');\n                    navigateTo('gallery');\n                };\n\n                reader.readAsDataURL(upload);\n            } else {\n                alert('\u3059\u3079\u3066\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002');\n            }\n        }\n\n        function updateProfile() {\n            const name = document.getElementById('name').value;\n            const bio = document.getElementById('bio').value;\n            const profileImage = document.getElementById('profileImage').files&#91;0];\n\n            if (name &amp;&amp; bio) {\n                if (profileImage) {\n                    const reader = new FileReader();\n                    reader.onload = function(event) {\n                        profile.image = event.target.result;\n                        saveProfile(name, bio);\n                    };\n                    reader.readAsDataURL(profileImage);\n                } else {\n                    saveProfile(name, bio);\n                }\n            } else {\n                alert('\u3059\u3079\u3066\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002');\n            }\n        }\n\n        function saveProfile(name, bio) {\n            profile.name = name;\n            profile.bio = bio;\n            localStorage.setItem('profile', JSON.stringify(profile));\n            alert('\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u304c\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\uff01');\n            navigateTo('profile');\n        }\n\n        function renderPosts() {\n            if (posts.length === 0) {\n                return '&lt;p>\u307e\u3060\u6295\u7a3f\u304c\u3042\u308a\u307e\u305b\u3093\u3002&lt;\/p>';\n            }\n\n            return posts.map(post => `\n                &lt;div class=\"art-card\">\n                    &lt;img src=\"${post.image}\" alt=\"${post.title}\">\n                    &lt;h2>${post.title}&lt;\/h2>\n                    &lt;p>${post.description}&lt;\/p>\n                &lt;\/div>`).join('');\n        }\n\n        \/\/ \u521d\u671f\u8868\u793a\n        navigateTo('home');\n    &lt;\/script>\n&lt;\/body>\n&lt;\/html><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_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":""},"categories":[80,6],"tags":[],"class_list":["post-25815","post","type-post","status-publish","format-standard","hentry","category-html","category-web"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25815"}],"version-history":[{"count":2,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25815\/revisions"}],"predecessor-version":[{"id":25817,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25815\/revisions\/25817"}],"wp:attachment":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25815"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}