diff --git a/package-lock.json b/package-lock.json index 43902175..4c6d6560 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,6 +33,9 @@ "react-use": "^17.5.1", "web-vitals": "^2.1.4", "yaml": "^2.5.1" + }, + "engines": { + "node": ">=22.0.0" } }, "node_modules/@adobe/css-tools": { diff --git a/src/components/Header.css b/src/components/Header.css index a8375adf..386b275a 100644 --- a/src/components/Header.css +++ b/src/components/Header.css @@ -39,6 +39,20 @@ margin-left: 0.5rem; } +.header-language-toggle { + font-size: 14px; + padding: 0.4rem 0.6rem; + border: 1px solid var(--foreground2); + border-radius: 4px; + background-color: var(--background1); + transition: all 0.2s ease; +} + +.header-language-toggle:hover { + background-color: var(--background2); + border-color: var(--foreground1); +} + @media (min-width: 768px) { .header { display: none; diff --git a/src/components/Header.js b/src/components/Header.js index fbffb503..95b7e519 100644 --- a/src/components/Header.js +++ b/src/components/Header.js @@ -1,9 +1,11 @@ import { useContext, useState } from 'react'; import SidebarContext from '../context/SidebarContext'; +import LanguageContext from '../context/LanguageContext'; import './Header.css'; export default function Header() { const { toggleSidebar } = useContext(SidebarContext); + const { language, toggleLanguage } = useContext(LanguageContext); const [isThree, setIsThree] = useState(true); const handlePlusClick = () => { @@ -22,6 +24,13 @@ export default function Header() { + diff --git a/src/components/SearchResult.js b/src/components/SearchResult.js index 91a3ab8e..272dcd7d 100644 --- a/src/components/SearchResult.js +++ b/src/components/SearchResult.js @@ -97,19 +97,7 @@ function searchPostsByTags(posts, tags) { }, posts); } -function findHighlightedText(content, query) { - const isMatch = content.toLowerCase().includes(query.toLowerCase()); - const index = content.toLowerCase().indexOf(query.toLowerCase()); - const start = Math.max(0, index - 10); - const end = Math.min(content.length, index + query.length + 100); - const before = content.slice(start, index); - - const match = content.slice(index, index + query.length); - const after = content.slice(index + query.length, end); - - return { isMatch, before, match, after }; -} // ドメイン名を抽出する関数 function extractDomain(url) {