Serein
Rust로 만든 가볍고 성능 좋은 Discord 전용 네이티브 클라이언트
많은 기독교 싱글이 우리와 파트너를 찾습니다. “Christ sucht Christ”는 신앙이 연결한다는 뜻이며 지금 무료 가입
Viele christliche Singles gehen mit uns auf Partnersuche. "Christ sucht Christ" ist dabei unsere Devise, denn Glaube verbindet. Melde dich jetzt kostenlos an!
소셜TypeScript · JavaScriptGitHub @datingnischen온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Christliche Singlebörse(n) - DE, AT, CH
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Gemeinsames Next.js/Vercel-Frontend für die öffentlichen redaktionellen Inhalte der drei christlich-verliebt-Märkte. Next.js: öffentliche Start-, Ratgeber-, Magazin- und regionale Partnersuche-Seiten, Canonicals, marktbezogene Sitemaps und Robots-Dateien. ICONY/Legacy: Registrierung, Login, Suche, Mitglieder/Profile, Nachrichten, Formulare, Hilfe/Support, Vertragsfunktionen sowie Impressum, Datenschutz und AGB. Es werden weder Mitgliederdaten noch Profilbilder importiert.README 전문 보기 ↗
Gemeinsames Next.js/Vercel-Frontend für die öffentlichen redaktionellen Inhalte der drei christlich-verliebt-Märkte.
Next.js: öffentliche Start-, Ratgeber-, Magazin- und regionale Partnersuche-Seiten, Canonicals, marktbezogene Sitemaps und Robots-Dateien.
ICONY/Legacy: Registrierung, Login, Suche, Mitglieder/Profile, Nachrichten, Formulare, Hilfe/Support, Vertragsfunktionen sowie Impressum, Datenschutz und AGB. Es werden weder Mitgliederdaten noch Profilbilder importiert.
Die Preview kann bereitgestellt werden. DNS-/Domain-Cutover bleibt gesperrt, bis für alle drei Domains ein separat erreichbarer Legacy-Origin für die ICONY-Routen nachgewiesen und der Migration-Contract vollständig validiert ist.
/de → Deutschland/at → Österreich/ch → SchweizProduktionshosts werden ohne sichtbaren Länderpräfix auf die jeweilige Marktansicht umgeschrieben. Interne Links stehen im HTML darum absolut auf der Live-Domain ohne Präfix (previewPath → publicUrl); auf Vorschau-Hosts (localhost, *.vercel.app) biegt components/preview-links.tsx sie nach dem Laden auf /de/…, /at/…, /ch/… um, damit Klicks in der Vorschau bleiben.
npm install
npm run import
Der Importer liest ausschließlich definierte HTTPS-Quellen, entfernt ausführbares Markup und private Mitgliederbereiche, lädt erlaubte redaktionelle Bilder lokal herunter und erzeugt:
data/public-pages.jsondata/route-ownership.jsondata/asset-provenance.jsonpublic/imported/<market>/…Jedes lokale Asset hat einen SHA-256-Eintrag. Der Rechtestatus bleibt bis zur Produktionsfreigabe bewusst als zu verifizieren markiert.
npm test
npm run lint
npm run typecheck
npm run build
npm audit --omit=dev
aid=locationaid=magazinpython scripts/validate_migration_contract.py migration-contract.yaml
python scripts/validate_migration_contract.py --require-cutover-ready migration-contract.yaml
Der zweite Befehl muss unmittelbar vor einer Domain- oder DNS-Änderung erfolgreich sein. Der Vertrag liegt in migration-contract.yaml und ist bewusst noch ungültig: offene Nachweise stehen dort als [REQUIRED] … bzw. false (u. a. Legacy-Origin, Rollback-DNS, Routenprüfung, Review-Range, Roh-Quellen-Hash). Bis Legacy-Origin, Sessions, Formulare, rechtliche Routen, Rollback-Daten und unabhängige Prüfung belegt sind, bleibt der Cutover blockiert.
ICONY liest auf den Plattform-Startseiten drei Magazin-Teaser im WordPress-Format. Der Endpunkt bleibt unter der alten Adresse erreichbar, wird aber aus den Repo-Dateien erzeugt (lib/wp-rest-compat.ts). Je Markt ein eigener Endpunkt (intern /<market>/magazin/wp-json/..., auf den Produktionshosts ohne Präfix):
https://christlich-verliebt.de/magazin/wp-json/wp/v2/posts (auch .at und .ch; Vorschau: https://christlich-verliebt.vercel.app/magazin/wp-json/wp/v2/posts bzw. /at/magazin/wp-json/...)/wp/v2/posts/<id>, categories, tags, media/<id>; dazu /magazin/?rest_route=/wp/v2/posts und /magazin/index.php?rest_route=/wp/v2/postsper_page (max. 100), page, _embed (wp:featuredmedia, wp:term), _fields, orderby, order, categories, slug, search, include, after, before. Header: CORS *, X-WP-Total, X-WP-TotalPages, Cache-Control (s-maxage 3600), X-Robots-Tag: noindex; OPTIONS und HEAD funktionieren..at und .ch antworten mit einer leeren Liste (200, X-WP-Total: 0). /wp/v2/users, /wp/v2/pages und alles Unbekannte antworten 404; author ist nur eine ID.link ist die kanonische Live-URL des Marktes. Beitragsbild, Bilder und Audio im Fließtext liegen absolut auf dem Asset-Host (/app-assets/...), verkleinerte Größen laufen über /_next/image/ des Asset-Hosts. excerpt.rendered ist die Meta-Description des Artikels.nginx/ICONY: /magazin/wp-json/*, /magazin/index.php und /magazin/ mit ?rest_route= müssen je Domain an Vercel durchgereicht werden (wie die übrigen Seitenrouten, bei .at/.ch mit dem Länderpräfix des Upstreams). Aufruf ohne Slash am Ende liefert 200 JSON: proxy.ts nimmt diese Pfade von der Slash-Umleitung aus.
Magazin in AT und CH (gleiche Pfadstruktur je Land): /at/magazin/… und /ch/magazin/… spiegeln das deutsche Magazin (Index und alle Artikel, lib/content.ts, Feld mirrorOf). Canonical bleibt die deutsche Fassung, die Spiegelseiten stehen auf noindex, follow und fehlen in den AT/CH-Sitemaps. Das Autorenprofil /magazin/christian-m-haas/ gibt es nur auf .de. Der WP-REST-Endpunkt bleibt unberührt (AT/CH leere Liste).
IDs und Daten: Der Seitenimport kennt weder WordPress-IDs noch Veröffentlichungsdaten. data/wp-posts.json enthält deshalb einen Abzug der echten Werte (Beitrags-ID, Datum, Änderungsdatum, Autor-ID, Kategorien, Schlagwörter, Beitragsbild-ID) aus dem damals noch erreichbaren WordPress-REST (python scripts/fetch_wp_post_meta.py, nur solange /magazin/wp-json/ noch WordPress ist). Eigene Artikel ohne WordPress-Quelle (data/editorial-pages.json) bekommen 100000 + FNV-1a(Slug) mod 900000, ihr Beitragsbild 1000000 + Beitrags-ID und als Datum ihr updated (00:00 Uhr). Bildmaße stehen in data/wp-media.json (python scripts/build_wp_media.py nach jedem Import). Autoren- und Werkzeugseiten unter /magazin/ ohne WordPress-Beitrag (christian-m-haas, christen-fit-faktor) sind keine Beiträge.