Trouve-KA — moteur de recherche web indépendant, Québec-first. Crawler distribué, index OpenSearch, ranking bilingue, galerie d'images. En prod : www.trouve-ka.com
Python 51.9%
TypeScript 32.7%
JavaScript 4.8%
CSS 4.1%
Shell 2.9%
HTML 1.8%
SQL 1.5%
1/**2 * Trouve-KA — les 14 sites indexés de l'écosystème Groupe KA3 * Author: Simon-Pierre Boucher4 * Contact: contact@spboucher.ai5 *6 * Source des pilules de filtre « par site » de la page de recherche et du7 * wordmark affiché sur chaque résultat (dérivé du champ `domain`).8 */910export interface KaSite {11 /** Wordmark officiel (ex. « Lou·Ka »). */12 wordmark: string;13 /** Domaine canonique indexé (avec www). */14 domain: string;15}1617export const KA_SITES: readonly KaSite[] = [18 { wordmark: "Groupe KA", domain: "www.groupe-ka.com" },19 { wordmark: "Trouve·Ka", domain: "www.trouve-ka.com" },20 { wordmark: "Lou·Ka", domain: "www.lou-ka.com" },21 { wordmark: "Immo·Ka", domain: "www.immo-ka.com" },22 { wordmark: "Vrai-Prix", domain: "www.vrai-prix.com" },23 { wordmark: "Toit·Ka", domain: "www.toit-ka.com" },24 { wordmark: "Valoplex", domain: "www.valoplex.com" },25 { wordmark: "Auto·Ka", domain: "www.auto-ka.com" },26 { wordmark: "Fabri·Ka", domain: "www.fabri-ka.com" },27 { wordmark: "Food·Ka", domain: "www.food-ka.com" },28 { wordmark: "Resto·Ka", domain: "www.resto-ka.com" },29 { wordmark: "Sorti·Ka", domain: "www.sorti-ka.com" },30 { wordmark: "Créa·Ka", domain: "www.crea-ka.com" },31 { wordmark: "Job·Ka", domain: "www.job-ka.com" },32];3334/** Normalise un domaine pour la comparaison (retire le préfixe www.). */35function bareDomain(domain: string): string {36 return domain.trim().toLowerCase().replace(/^www\./, "");37}3839/**40 * Wordmark du site KA correspondant à un domaine (`www.lou-ka.com` ou41 * `lou-ka.com`). Domaine inconnu → le domaine tel quel.42 */43export function siteWordmark(domain: string): string {44 const bare = bareDomain(domain);45 const site = KA_SITES.find((s) => bareDomain(s.domain) === bare);46 return site ? site.wordmark : domain;47}48