opening urls directly

This commit is contained in:
Hazel Noack 2025-07-11 12:26:20 +02:00
parent e4274d1107
commit e94199f9eb
2 changed files with 40 additions and 3 deletions

View File

@ -7,14 +7,14 @@
<link rel="stylesheet" type="text/css" href="assets/style.css"> <link rel="stylesheet" type="text/css" href="assets/style.css">
</head> </head>
<body> <body>
<form class="search-grid" action="{{ .SearchFormAction }}"> <form id="search-form" class="search-grid" action="{{ .SearchFormAction }}">
<div class="search-logo"> <div class="search-logo">
<img als="girl_juice" src="assets/girl_juice.png" /> <img als="girl_juice" src="assets/girl_juice.png" />
<h2 class="phrases"></h2> <h2 class="phrases"></h2>
<img als="girl_juice" src="assets/girl_juice.png" /> <img als="girl_juice" src="assets/girl_juice.png" />
</div> </div>
<input name="{{ .SearchInputName }}" type="text" class="grid-item" class="search" placeholder="{{ .SearchPlaceholder }}" /> <input id="search-input" name="{{ .SearchInputName }}" type="text" class="grid-item" class="search" placeholder="{{ .SearchPlaceholder }}" />
<div class="cards" id="stores"> <div class="cards" id="stores">
{{range $Store := .Stores }} {{range $Store := .Stores }}

View File

@ -1 +1,38 @@
console.log("included search") console.log("adding features to search...");
const form = document.getElementById("search-form");
const input = document.getElementById("search-input");
const searchEngines = {
"g": {
action: "https://www.google.com/search/",
name: "q",
},
"d": {
action: "https://duckduckgo.com/",
name: "q",
},
"y": {
action: "https://yandex.com/search/",
name: "text",
},
"lure": {
action: "https://lure.sh/pkgs",
name: "q",
},
};
// https://stackoverflow.com/a/3809435/16804841
const expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/gi;
const urlRegex = new RegExp(expression);
form.addEventListener("submit", event => {
s = input.value;
// check if url
if (s.match(urlRegex)) {
event.preventDefault();
window.open(s, "_self");
return
}
});