Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | 2x 2x 8x 64x 32x 32x 16x 16x 2x 8x 8x 2x | // Auto-generated from index.html
// Do not edit this file directly - edit the template file instead
/* eslint-disable */
// @ts-nocheck
/**
* Precompiled Handlebars template for index
* This template function works without requiring Handlebars at runtime
*/
// Minimal Handlebars runtime for precompiled templates
const HandlebarsRuntime = {
template: function(spec: any) {
return function(context: any) {
return spec.main(HandlebarsRuntime, context, {}, {}, {});
};
},
hooks: {
helperMissing: function() {
return '';
}
},
lookupProperty: function(parent: any, propertyName: string) {
if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
return parent[propertyName];
}
return undefined;
},
escapeExpression: function(string: any) {
Iif (typeof string !== 'string') {
if (string && string.toHTML) {
return string.toHTML();
} else if (string == null) {
return '';
} else Iif (!string) {
return string + '';
}
string = '' + string;
}
return string.replace(/[&<>"']/g, function(match: string) {
const escape: { [key: string]: string } = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return escape[match];
});
}
};
// Precompiled template function
const templateSpec: any = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) {
var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
Iif (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
return parent[propertyName];
}
return undefined
};
return "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>"
+ alias4(((helper = (helper = lookupProperty(helpers,"title") || (depth0 != null ? lookupProperty(depth0,"title") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"title","hash":{},"data":data,"loc":{"start":{"line":6,"column":11},"end":{"line":6,"column":20}}}) : helper)))
+ "</title>\n <style>\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n \n body {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n line-height: 1.6;\n color: #333;\n background-color: #f8f9fa;\n padding: 20px;\n }\n \n .container {\n max-width: 1200px;\n margin: 0 auto;\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n overflow: hidden;\n }\n \n .header {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n padding: 20px 30px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 20px;\n }\n \n .header h1 {\n font-size: 1.8rem;\n margin: 0;\n font-weight: 400;\n }\n \n .metadata {\n background: #f8f9fa;\n padding: 15px 30px;\n border-bottom: 1px solid #e9ecef;\n font-size: 0.9rem;\n color: #6c757d;\n text-align: center;\n }\n \n .metadata span {\n margin-right: 20px;\n }\n \n .metadata span:last-child {\n margin-right: 0;\n }\n \n .content {\n padding: 30px;\n }\n \n .search-container {\n margin-bottom: 25px;\n padding: 20px;\n background: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #e9ecef;\n }\n \n .search-input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 300px;\n max-width: 400px;\n }\n \n .search-input {\n width: 100%;\n padding: 8px 12px;\n padding-right: 35px;\n font-size: 0.9rem;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n background: white;\n transition: border-color 0.15s ease;\n font-family: inherit;\n }\n \n .search-clear-btn {\n position: absolute;\n right: 12px;\n background: none;\n border: none;\n font-size: 1.2rem;\n color: #6c757d;\n cursor: pointer;\n padding: 4px;\n border-radius: 3px;\n transition: all 0.15s ease;\n display: none;\n }\n \n .search-clear-btn:hover {\n background: #e9ecef;\n color: #495057;\n }\n \n .search-clear-btn.visible {\n display: block;\n }\n \n .search-input:focus {\n outline: none;\n border-color: #007bff;\n box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);\n }\n \n .search-info {\n margin-top: 10px;\n font-size: 0.9rem;\n color: #6c757d;\n }\n \n .file-tree {\n background: #f8f9fa;\n border-radius: 6px;\n padding: 20px;\n margin-bottom: 30px;\n }\n \n .file-item.hidden {\n display: none;\n }\n \n .directory-section.hidden {\n display: none;\n }\n \n .file-list {\n list-style: none;\n }\n \n .file-item {\n margin: 2px 0;\n padding: 6px 12px;\n background: white;\n border-radius: 4px;\n border-left: 3px solid #007bff;\n box-shadow: 0 1px 2px rgba(0,0,0,0.08);\n transition: all 0.15s ease;\n }\n \n .file-item:hover {\n transform: translateY(-1px);\n box-shadow: 0 2px 6px rgba(0,0,0,0.12);\n border-left-width: 4px;\n }\n \n .file-item.directory {\n border-left-color: #28a745;\n background: #f8fff9;\n }\n \n .file-item a {\n text-decoration: none;\n color: #333;\n font-weight: 500;\n display: flex;\n align-items: center;\n min-height: 24px;\n }\n \n .file-item a:hover {\n color: #007bff;\n }\n \n .file-icon {\n margin-right: 8px;\n font-size: 1rem;\n flex-shrink: 0;\n }\n \n .file-info {\n flex: 1;\n min-width: 0;\n }\n \n .file-name {\n font-size: 0.9rem;\n line-height: 1.3;\n margin: 0;\n }\n \n .file-path {\n font-size: 0.75rem;\n color: #6c757d;\n margin-top: 1px;\n line-height: 1.2;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n \n .directory-section {\n margin-bottom: 25px;\n }\n \n .directory-title {\n font-size: 1.3rem;\n font-weight: 600;\n color: #495057;\n margin-bottom: 15px;\n padding-bottom: 8px;\n border-bottom: 2px solid #e9ecef;\n }\n \n .footer {\n text-align: center;\n padding: 20px;\n color: #6c757d;\n font-size: 0.9rem;\n border-top: 1px solid #e9ecef;\n }\n \n @media (max-width: 768px) {\n body {\n padding: 10px;\n }\n \n .header {\n flex-direction: column;\n align-items: stretch;\n gap: 15px;\n text-align: center;\n }\n \n .header h1 {\n font-size: 1.5rem;\n }\n \n .content {\n padding: 20px;\n }\n \n .search-input-wrapper {\n min-width: auto;\n max-width: none;\n }\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"header\">\n <h1>"
+ alias4(((helper = (helper = lookupProperty(helpers,"title") || (depth0 != null ? lookupProperty(depth0,"title") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"title","hash":{},"data":data,"loc":{"start":{"line":262,"column":16},"end":{"line":262,"column":25}}}) : helper)))
+ "</h1>\n <div class=\"search-input-wrapper\">\n <input type=\"text\" id=\"searchInput\" placeholder=\"Filter files by path...\" class=\"search-input\">\n <button type=\"button\" id=\"searchClearBtn\" class=\"search-clear-btn\" title=\"Clear search (ESC)\">×</button>\n </div>\n </div>\n \n <div class=\"metadata\">\n "
+ ((stack1 = ((helper = (helper = lookupProperty(helpers,"metadata") || (depth0 != null ? lookupProperty(depth0,"metadata") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"metadata","hash":{},"data":data,"loc":{"start":{"line":270,"column":12},"end":{"line":270,"column":26}}}) : helper))) != null ? stack1 : "")
+ "\n </div>\n \n <div class=\"content\">\n "
+ ((stack1 = ((helper = (helper = lookupProperty(helpers,"fileList") || (depth0 != null ? lookupProperty(depth0,"fileList") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"fileList","hash":{},"data":data,"loc":{"start":{"line":274,"column":12},"end":{"line":274,"column":26}}}) : helper))) != null ? stack1 : "")
+ "\n </div>\n \n <div class=\"footer\">\n Generated by <strong>GitHub Pages Quick Index</strong> \n <a href=\"https://github.com/ykmr1224/github-pages-quick-index\" target=\"_blank\" style=\"color: #6c757d; text-decoration: none; margin-left: 8px;\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" style=\"vertical-align: middle; margin-right: 4px;\">\n <path d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"/>\n </svg>\n </a>\n </div>\n </div>\n \n <script>\n document.addEventListener('DOMContentLoaded', function() {\n const searchInput = document.getElementById('searchInput');\n const searchClearBtn = document.getElementById('searchClearBtn');\n const fileItems = document.querySelectorAll('.file-item');\n const directorySections = document.querySelectorAll('.directory-section');\n \n function filterFiles() {\n const searchTerm = searchInput.value.toLowerCase().trim();\n \n // Show/hide clear button based on input content\n if (searchTerm === '') {\n searchClearBtn.classList.remove('visible');\n } else {\n searchClearBtn.classList.add('visible');\n }\n \n // Show/hide individual file items\n fileItems.forEach(function(item) {\n const filePath = item.getAttribute('data-path').toLowerCase();\n const isVisible = searchTerm === '' || filePath.includes(searchTerm);\n \n if (isVisible) {\n item.classList.remove('hidden');\n } else {\n item.classList.add('hidden');\n }\n });\n \n // Show/hide directory sections based on whether they have visible files\n directorySections.forEach(function(section) {\n const visibleFilesInSection = section.querySelectorAll('.file-item:not(.hidden)');\n if (visibleFilesInSection.length > 0) {\n section.classList.remove('hidden');\n } else {\n section.classList.add('hidden');\n }\n });\n \n // Handle root level files (not in directory sections)\n const rootFileList = document.querySelector('.file-list');\n if (rootFileList && !rootFileList.closest('.directory-section')) {\n const visibleRootFiles = rootFileList.querySelectorAll('.file-item:not(.hidden)');\n if (visibleRootFiles.length === 0 && searchTerm !== '') {\n rootFileList.style.display = 'none';\n } else {\n rootFileList.style.display = '';\n }\n }\n }\n \n function clearSearch() {\n searchInput.value = '';\n filterFiles();\n searchInput.focus();\n }\n \n // Add event listener for real-time filtering\n searchInput.addEventListener('input', filterFiles);\n \n // Add clear button click handler\n searchClearBtn.addEventListener('click', clearSearch);\n \n // Add keyboard shortcuts\n document.addEventListener('keydown', function(e) {\n // Ctrl/Cmd + K to focus search\n if ((e.ctrlKey || e.metaKey) && e.key === 'k') {\n e.preventDefault();\n searchInput.focus();\n searchInput.select();\n }\n // ESC to clear search (only when search input is focused)\n else if (e.key === 'Escape' && document.activeElement === searchInput) {\n e.preventDefault();\n clearSearch();\n }\n });\n });\n </script>\n</body>\n</html>\n";
},"useData":true};
// Export the template function
export const indexTemplate = HandlebarsRuntime.template(templateSpec);
|