this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

wip

+47 -35
+47 -35
index.html
··· 984 984 .filter-container { 985 985 display: flex; 986 986 align-items: center; 987 - margin-bottom: 15px; 988 - padding: 10px 15px; 987 + margin-bottom: 10px; 988 + padding: 5px 10px; 989 989 background-color: var(--card-bg); 990 990 border: 1px solid var(--border-color); 991 991 border-radius: 4px; 992 + align-self: flex-end; 993 + width: auto; 994 + margin-left: auto; 992 995 } 993 996 994 997 .filter-title { 995 998 font-family: 'JetBrains Mono', monospace; 996 999 color: var(--accent-color); 997 - font-size: 0.9rem; 998 - margin-right: 15px; 1000 + font-size: 0.8rem; 1001 + margin-right: 10px; 999 1002 } 1000 1003 1001 1004 .filter-options { 1002 1005 display: flex; 1003 - gap: 15px; 1006 + gap: 10px; 1004 1007 } 1005 1008 1006 1009 .filter-option { ··· 1021 1024 .checkbox-custom { 1022 1025 position: relative; 1023 1026 display: inline-block; 1024 - width: 16px; 1025 - height: 16px; 1027 + width: 14px; 1028 + height: 14px; 1026 1029 background-color: rgba(77, 250, 123, 0.05); 1027 1030 border: 1px solid var(--accent-alt); 1028 1031 border-radius: 3px; 1029 - margin-right: 8px; 1032 + margin-right: 6px; 1030 1033 transition: all 0.2s ease; 1031 1034 } 1032 1035 1033 1036 .filter-checkbox:checked + .checkbox-custom::after { 1034 1037 content: ''; 1035 1038 position: absolute; 1036 - top: 2px; 1037 - left: 5px; 1038 - width: 5px; 1039 - height: 8px; 1039 + top: 1px; 1040 + left: 4px; 1041 + width: 4px; 1042 + height: 7px; 1040 1043 border: solid var(--accent-color); 1041 1044 border-width: 0 2px 2px 0; 1042 1045 transform: rotate(45deg); ··· 1048 1051 } 1049 1052 1050 1053 .filter-label { 1051 - font-size: 0.85rem; 1054 + font-size: 0.8rem; 1052 1055 color: var(--text-color); 1053 1056 } 1054 1057 ··· 1056 1059 background-color: rgba(77, 250, 123, 0.1); 1057 1060 border-color: var(--accent-color); 1058 1061 } 1062 + 1063 + .links-header { 1064 + display: flex; 1065 + justify-content: flex-end; 1066 + margin-bottom: 10px; 1067 + width: 100%; 1068 + } 1059 1069 1060 1070 @media (max-width: 600px) { 1061 1071 .feed-item-author { ··· 1134 1144 </div> 1135 1145 <div id="feed-items" class="tab-content active feed-container" data-tab="posts"></div> 1136 1146 <div class="tab-content" data-tab="links"> 1137 - <div class="filter-container"> 1138 - <div class="filter-title">Filter:</div> 1139 - <div class="filter-options"> 1140 - <label class="filter-option"> 1141 - <input type="checkbox" id="filter-papers" class="filter-checkbox" data-filter="academic"> 1142 - <span class="checkbox-custom"></span> 1143 - <span class="filter-label">Papers</span> 1144 - </label> 1145 - <label class="filter-option"> 1146 - <input type="checkbox" id="filter-videos" class="filter-checkbox" data-filter="youtube"> 1147 - <span class="checkbox-custom"></span> 1148 - <span class="filter-label">Videos</span> 1149 - </label> 1147 + <div class="links-header"> 1148 + <div class="filter-container"> 1149 + <div class="filter-title">Filter:</div> 1150 + <div class="filter-options"> 1151 + <label class="filter-option"> 1152 + <input type="checkbox" id="filter-papers" class="filter-checkbox" data-filter="academic"> 1153 + <span class="checkbox-custom"></span> 1154 + <span class="filter-label">Papers</span> 1155 + </label> 1156 + <label class="filter-option"> 1157 + <input type="checkbox" id="filter-videos" class="filter-checkbox" data-filter="youtube"> 1158 + <span class="checkbox-custom"></span> 1159 + <span class="filter-label">Videos</span> 1160 + </label> 1161 + </div> 1150 1162 </div> 1151 1163 </div> 1152 1164 <div id="link-items" class="feed-container"></div> ··· 2033 2045 // Try to extract arXiv ID 2034 2046 const arxivIdMatch = url.pathname.match(/\d+\.\d+/); 2035 2047 if (arxivIdMatch) { 2036 - displayText = `<img src="free-icons/svgs/regular-file-pdf.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> ${arxivIdMatch[0]}`; 2048 + displayText = `<img src="solid-book-open.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> ${arxivIdMatch[0]}`; 2037 2049 } else { 2038 - displayText = `<img src="free-icons/svgs/regular-file-pdf.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Paper`; 2050 + displayText = `<img src="solid-book-open.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Paper`; 2039 2051 } 2040 2052 } else if (url.hostname.includes('nature.com')) { 2041 - displayText = `<img src="free-icons/svgs/regular-file-pdf.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Paper`; 2053 + displayText = `<img src="solid-book-open.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Paper`; 2042 2054 } else if (url.hostname.includes('science.org')) { 2043 - displayText = `<img src="free-icons/svgs/regular-file-pdf.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Paper`; 2055 + displayText = `<img src="solid-book-open.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Paper`; 2044 2056 } else if (url.hostname.includes('mdpi.com')) { 2045 - displayText = `<img src="free-icons/svgs/regular-file-pdf.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Paper`; 2057 + displayText = `<img src="solid-book-open.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Paper`; 2046 2058 } else if (link.url.toLowerCase().endsWith('.pdf')) { 2047 2059 // For direct PDF links, try to get a meaningful filename 2048 2060 const pathParts = url.pathname.split('/'); 2049 2061 const filename = pathParts[pathParts.length - 1]; 2050 2062 if (filename) { 2051 - displayText = `<img src="free-icons/svgs/regular-file-pdf.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> ${decodeURIComponent(filename)}`; 2063 + displayText = `<img src="solid-book-open.svg" width="13https://www.blogger.com/feeds/19062127/posts/default" height="14" style="vertical-align: middle; margin-right: 4px;"> ${decodeURIComponent(filename)}`; 2052 2064 } else { 2053 - displayText = `<img src="free-icons/svgs/regular-file-pdf.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Document`; 2065 + displayText = `<img src="solid-book-open.svg" width="14" height="14" style="vertical-align: middle; margin-right: 4px;"> Document`; 2054 2066 } 2055 2067 } 2056 2068 } ··· 2464 2476 url.hostname.includes('mdpi.com') || 2465 2477 url.hostname.includes('doi.org') 2466 2478 ) { 2467 - iconPath = 'free-icons/svgs/regular-file-pdf.svg'; 2479 + iconPath = 'solid-book-open.svg'; 2468 2480 2469 2481 // Set display text based on source 2470 2482 if (url.hostname.includes('arxiv.org')) { ··· 2688 2700 // Papers filter - check for PDF icon 2689 2701 if (activeFilters.includes('academic')) { 2690 2702 const hasPdfIcon = linkUrl && ( 2691 - linkUrl.innerHTML.includes('regular-file-pdf.svg') || 2703 + linkUrl.innerHTML.includes('solid-book-open.svg') || 2692 2704 (linkUrl.getAttribute('data-link-type') === 'academic') 2693 2705 ); 2694 2706 if (hasPdfIcon) shouldShow = true;