JSON Content Generator

Genererer en struktureret, maskinlæsbar JSON-pakke, der beskriver formål, logik, input, output og lokalisering for SEO og integration.

Tool coming soon!

We're working hard to get this tool ready for you.

Request Feature / Support
1,308+
Total Calculations Run
< 15ms
Browser Execution Speed
100%
Client-Side Privacy
4.9 / 5.0
User Satisfaction

Worked Example & Common Values

Below is a sample worked calculation demonstrating how JSON Content Generator processes input data instantly inside your browser.

Sample Input Minified string: {"id":1,"status":"active","roles":["admin"]}
Computed Result { "id": 1, "status": "active", "roles": [ "admin" ] }
Execution Mode Client-Side In-Browser JS
AI Web Tool Generator

Build Your Own Custom Web Calculator in Seconds

Type what tool or calculator you need below. Our AI will build it instantly for your site.

Popular ideas:
100% FREE • No Credit Card Required

Om dette værktøj

Dette værktøj producerer et komplet, struktureret JSON-indholdspakke, der dokumenterer værktøjets formål, domænelogi, værdi, målgruppe og lokalisationsbehov for AI-aktører og SEO-systemer. Det henvender sig til produktteams, udviklere og vidensingeniører, der har brug for en maskinlæselig specifikation til katalogisering, test og integration. Leveransen følger et fast skema med tydeligt afgrænsede afsnit for formål, kernelogik, input, output, algoritmer og lokalisering, hvilket muliggør pålidelig brug af downstream-systemer.

Nøglefunktioner inkluderer eksplicit adskillelse mellem påkrævede og valgfrie elementer, et kanonisk sektion-set, automatisk slug- og meta-felter-generering samt en indlejret SVG-refererence til visuelle kataloger. Sprogblokken (en) indeholder navn, titel, slug, alt-tekst, beskrivelse, FAQs og brugsvejledning. Designet fokuserer på deterministisk formatering, valideringskroker og genanvendelighed på tværs af projekter.

Anvendelsesområder inkluderer værktøjsregistre, vidensgrafer, API-kataloger og udviklerportaler. Differentiatoren ligger i en streng, maskinvenlig struktur kombineret med lokalisationsklar metadata og en færdig FAQ for at reducere fortolkningsdrift. Typiske arbejdsflow omfatter at indtaste grundlæggende værktøjsdata, generere den fulde specifikation, validere JSON og eksportere til implementering eller indeksation.

Sådan bruges

  1. Angiv værktøjets metadata og begrænsninger.
  2. Kør generation for at få hele specifikationspayloaden.
  3. Valider de genererede felter (navn, url_slug, meta_description, beskrivelseslængde) og justér ved behov.
  4. Hent image_svg og sørg for, at og <desc> er til stede for tilgængelighed; brug i kataloger.</li><li class="pl-2 leading-relaxed">Integrer SEO-metadata (url_slug, meta_description, keywords) i mål-systemet og publicer.</li></ol> </div> </div> <div class="w-full md:w-1/2"> <img class="w-full rounded-2xl shadow-lg border border-gray-100" src="https://anyonlinetool.com/themes/tailwind/images/tool/how-to-use.png" alt="How to use generator json"> </div> </div> </section> <!-- FAQ Section --> <section class="mt-20 max-w-7xl mx-auto"> <h3 class="text-3xl font-extrabold text-[#030738] mb-2 text-center">Frequently Asked Questions</h3> <p class="text-center text-gray-500 mb-10 text-xl">Find hurtige svar</p> <div class="space-y-4"> <details class="group bg-white rounded-2xl border border-gray-200 p-6 transition-all hover:border-indigo-200 shadow-sm [&_summary::-webkit-details-marker]:hidden"> <summary class="flex justify-between items-center cursor-pointer font-bold text-lg text-[#030738]"> <span>Hvad er hovedformålet med denne generator?</span> <svg class="w-6 h-6 text-indigo-500 transform transition-transform group-open:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path> </svg> </summary> <div class="mt-4 text-gray-600 leading-relaxed pt-2 border-t border-gray-100"> Den skaber en struktureret, maskinlæsbar JSON-specifikation for et værktøj, hvilket muliggør konsistent integration, katalogisering og automatiseret behandling af AI-aktører og SEO-systemer. </div> </details> <details class="group bg-white rounded-2xl border border-gray-200 p-6 transition-all hover:border-indigo-200 shadow-sm [&_summary::-webkit-details-marker]:hidden"> <summary class="flex justify-between items-center cursor-pointer font-bold text-lg text-[#030738]"> <span>Hvordan er JSON-strukturen opbygget?</span> <svg class="w-6 h-6 text-indigo-500 transform transition-transform group-open:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path> </svg> </summary> <div class="mt-4 text-gray-600 leading-relaxed pt-2 border-t border-gray-100"> Topniveau-nøglerne inkluderer specification, category_id, type, image_svg og et language-block med enheder. En-blocket indeholder name, title_tag, url_slug, image_alt_text, meta_description, keywords, short_description, short_business_description, description, how_to_use og faq. </div> </details> <details class="group bg-white rounded-2xl border border-gray-200 p-6 transition-all hover:border-indigo-200 shadow-sm [&_summary::-webkit-details-marker]:hidden"> <summary class="flex justify-between items-center cursor-pointer font-bold text-lg text-[#030738]"> <span>Kan indhold lokaliseres?</span> <svg class="w-6 h-6 text-indigo-500 transform transition-transform group-open:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path> </svg> </summary> <div class="mt-4 text-gray-600 leading-relaxed pt-2 border-t border-gray-100"> Ja. Sprogblokken kan udvides med yderligere sprogblokke ved at angive lokaliserede værdier for hvert felt. Slug- og SEO-felter genereres pr. sprog. </div> </details> <details class="group bg-white rounded-2xl border border-gray-200 p-6 transition-all hover:border-indigo-200 shadow-sm [&_summary::-webkit-details-marker]:hidden"> <summary class="flex justify-between items-center cursor-pointer font-bold text-lg text-[#030738]"> <span>Hvordan afledes SEO-felterne?</span> <svg class="w-6 h-6 text-indigo-500 transform transition-transform group-open:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path> </svg> </summary> <div class="mt-4 text-gray-600 leading-relaxed pt-2 border-t border-gray-100"> url_slug afledes fra navnet ved at gøre det til små bogstaver og adskille med bindestreger; meta_description udformes for at opfylde længdekrav; keywords dedupliceres og vælges for at afspejle intention og løsning. </div> </details> </div> </section> <!-- High-converting CTA for free registration on tool page --> <section class="mt-16 max-w-7xl mx-auto bg-gradient-to-r from-blue-50 to-indigo-50 border border-blue-100 rounded-3xl p-8 md:p-12 flex flex-col items-start gap-6 shadow-sm"> <div class="text-left"> <h3 class="text-2xl md:text-3xl font-extrabold text-slate-900 mb-3"> Need to run multiple calculations? </h3> <p class="text-gray-600 text-lg leading-relaxed max-w-4xl"> Create a free account today to unlock unlimited daily runs, access advanced parameters, save your history, and request custom features. </p> </div> <div> <a href="https://anyonlinetool.com/register" class="inline-block px-8 py-3.5 text-white text-center font-bold text-lg rounded-xl shadow-md hover:shadow-lg transition-all duration-200" style="background-color: #2563eb; color: #ffffff; width: auto;"> Register Free Account </a> </div> </section> <!-- Related Tools Section --> <section class="mt-20 max-w-7xl mx-auto text-left"> <h3 class="text-3xl font-extrabold text-[#030738] mb-2 text-center">Related Tools</h3> <p class="text-center text-gray-500 mb-10 text-xl">Other useful calculators and utilities you might like</p> <div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-6"> <div class="bg-white rounded-2xl border border-gray-100 hover:border-indigo-100 shadow-sm hover:shadow-md p-6 flex flex-col gap-4 items-start relative transition-all duration-300"> <div class="w-12 h-12 flex items-center justify-center overflow-hidden shrink-0"> <img class="max-w-full max-h-full object-contain" src="https://anyonlinetool.com/storage/category/July2026/web-seo-tools.png" alt="Web & SEO Tools" loading="lazy" style="max-width: 100%; max-height: 100%; object-fit: contain;"> </div> <h4 class="text-lg font-bold text-[#030738] leading-tight"> Spotify til MP3-konverter </h4> <p class="text-gray-500 text-sm leading-normal"> Konverterer lokalt leverede lydefiler til MP3, muliggør offline-lytning og tvær-enheds-kompatibilite... </p> <a href="https://anyonlinetool.com/da/tool/spotify-mp3-konverter" class="absolute w-full h-full top-0 left-0 rounded-2xl"></a> </div> <div class="bg-white rounded-2xl border border-gray-100 hover:border-indigo-100 shadow-sm hover:shadow-md p-6 flex flex-col gap-4 items-start relative transition-all duration-300"> <div class="w-12 h-12 flex items-center justify-center overflow-hidden shrink-0"> <img class="max-w-full max-h-full object-contain" src="https://anyonlinetool.com/storage/category/July2026/web-seo-tools.png" alt="Web & SEO Tools" loading="lazy" style="max-width: 100%; max-height: 100%; object-fit: contain;"> </div> <h4 class="text-lg font-bold text-[#030738] leading-tight"> Vejafstandscalculator </h4> <p class="text-gray-500 text-sm leading-normal"> Et vejafstandscalculator til rejsende, logistikplanlæggere og chauffører til hurtigt at estimere afs... </p> <a href="https://anyonlinetool.com/da/tool/vejafstandscalculator" class="absolute w-full h-full top-0 left-0 rounded-2xl"></a> </div> <div class="bg-white rounded-2xl border border-gray-100 hover:border-indigo-100 shadow-sm hover:shadow-md p-6 flex flex-col gap-4 items-start relative transition-all duration-300"> <div class="w-12 h-12 flex items-center justify-center overflow-hidden shrink-0"> <img class="max-w-full max-h-full object-contain" src="https://anyonlinetool.com/storage/category/July2026/web-seo-tools.png" alt="Web & SEO Tools" loading="lazy" style="max-width: 100%; max-height: 100%; object-fit: contain;"> </div> <h4 class="text-lg font-bold text-[#030738] leading-tight"> Aldersberegner </h4> <p class="text-gray-500 text-sm leading-normal"> Beregn hurtigt en persons alder baseret på fødselsdato med vores gratis online calculator, egnet til... </p> <a href="https://anyonlinetool.com/da/tool/aldersberegner" class="absolute w-full h-full top-0 left-0 rounded-2xl"></a> </div> <div class="bg-white rounded-2xl border border-gray-100 hover:border-indigo-100 shadow-sm hover:shadow-md p-6 flex flex-col gap-4 items-start relative transition-all duration-300"> <div class="w-12 h-12 flex items-center justify-center overflow-hidden shrink-0"> <img class="max-w-full max-h-full object-contain" src="https://anyonlinetool.com/storage/category/July2026/web-seo-tools.png" alt="Web & SEO Tools" loading="lazy" style="max-width: 100%; max-height: 100%; object-fit: contain;"> </div> <h4 class="text-lg font-bold text-[#030738] leading-tight"> Valutaomregner </h4> <p class="text-gray-500 text-sm leading-normal"> Omregn hurtigt beløb mellem forskellige valutaer med vores gratis online valutakonverterer, ideel ti... </p> <a href="https://anyonlinetool.com/da/tool/valutaomregner" class="absolute w-full h-full top-0 left-0 rounded-2xl"></a> </div> </div> </section> <!-- Feedback Section --> <section class="mt-20 mb-20 max-w-3xl mx-auto bg-gray-50 rounded-3xl p-8 md:p-12 text-center" id="feedback"> <h3 class="text-2xl font-bold text-[#030738] mb-2">Din feedback betyder noget</h3> <p class="text-gray-500 mb-8">Hjælp os med at forbedre</p> <form method="POST" action="https://anyonlinetool.com/tool/feedback/31709" class="space-y-4 text-left"> <input type="hidden" name="_token" value="EyKjMUGFWJ033VjKaT4BWaU5vDZhKiXTPrVMjnGQ" autocomplete="off"> <div> <textarea name="issues" class="w-full rounded-xl border-gray-200 p-4 h-32 focus:border-indigo-500 focus:ring-indigo-100" placeholder="Write your thoughts here..."></textarea> </div> <div class="flex gap-4"> <div class="flex-grow"> <input type="email" name="reported_by_email" class="w-full rounded-xl border-gray-200 p-4 focus:border-indigo-500 focus:ring-indigo-100" placeholder="Din e-mail" value=""> </div> <button type="submit" class="text-white px-8 py-4 rounded-xl font-bold transition-all shadow-md hover:shadow-lg hover:opacity-95 whitespace-nowrap" style="background-color: #2563eb; color: #ffffff; min-width: 120px;">Indsend</button> </div> </form> </section> </main> <div class="embed-popup hidden fixed w-full h-full left-0 top-0 bg-black/30 z-50"> <div class="absolute w-[calc(100%-20px)] max-w-2xl aspect-[9/16] md:aspect-video bg-white rounded-lg shadow-md top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 px-6 py-8 flex flex-col gap-6 justify-center"> <div class="absolute right-3 top-3"> <svg xmlns="http://www.w3.org/2000/svg" class="close-popup cursor-pointer w-6" viewBox="0 0 512 512"> <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M368 368L144 144M368 144L144 368" /> </svg> </div> <div> <form action=""> <div class="flex flex-col md:flex-row gap-4"> <div class="w-full md:w-1/2"> <label for="lang" class="text-sm">Sprog</label> <select name="lang" id="lang" class="w-full lang-selectize"> <option value="ar" selected >Arabic</option> <option value="da" >Danish</option> <option value="de" >German</option> <option value="en" >English</option> <option value="es" >Spanish</option> <option value="fr" >French</option> <option value="he" >Hebrew</option> <option value="it" >Italian</option> <option value="nb" >Norwegian bokmål</option> <option value="nl" >Dutch</option> <option value="pt" >Portuguese</option> <option value="sv" >Swedish</option> </select> </div> <div class="w-full md:w-1/2"> </div> </div> <input type="hidden" name="language" value="en"> <input type="hidden" name="tool" value="generator json"> <input type="hidden" name="url" value="https://anyonlinetool.com"> <input type="hidden" name="license" value="guest_user"> </form> </div> <div class="relative"> <code class="code block px-4 py-3 pr-6 font-mono text-base font-medium text-gray-900 bg-accent/20 rounded-md"> <script src="https://anyonlinetool.com/embed-bucket/aot.js" data-license-key="guest_user" data-lang="ar" data-tool-key="generator json"></script> </code> <button data-copy="kopiér" data-copied="kopieret" class="copy-code absolute top-2.5 right-2.5 rtl:right-auto rtl:left-2.5 text-xs cursor-pointer shadow bg-white rounded py-1 px-2"> kopiér </button> </div> <div class="bg-yellow-100 rounded-md border border-yellow-400 px-2 py-3"> <div class="flex flex-col md:flex-row items-center gap-3"> <div class="flex items-center gap-y-2 gap-x-3"> <svg xmlns="http://www.w3.org/2000/svg" class="w-6 shrink-0" viewBox="0 0 512 512"> <path d="M248 64C146.39 64 64 146.39 64 248s82.39 184 184 184 184-82.39 184-184S349.61 64 248 64z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32" /> <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M220 220h32v116" /> <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M208 340h88" /> <path d="M248 130a26 26 0 1026 26 26 26 0 00-26-26z" /> </svg> <div class="flex-1"> <p>No website found! Please add a website and obtain a license for improved tracking. It's free! </p> </div> </div> <div class="shrink-0"> <a class="inline-block bg-accent/90 transition-colors duration-150 ease-out hover:bg-accent text-white text-sm px-4 py-2 rounded" href="https://anyonlinetool.com/dashboard/websites">Add Website</a> </div> </div> </div> </div> </div> </main> <!-- Modern Compact Footer --> <footer class="relative text-white overflow-hidden" style="background-color: rgb(22 88 245 / var(--tw-bg-opacity));"> <div class="relative z-10 px-6 pt-10 pb-6 mx-auto max-w-7xl"> <!-- Main footer content --> <div class="grid grid-cols-1 md:grid-cols-3 lg:grid-cols-12 gap-8 mb-8 border-b border-white/10 pb-8"> <!-- Brand Column (Wider on desktop) --> <div class="md:col-span-1 lg:col-span-5"> <a href="https://anyonlinetool.com/da" class="inline-block mb-4 group"> <img src="https://anyonlinetool.com/themes/tailwind/images/logo.png" alt="Any Online Tool" class="h-8 md:h-10 w-auto transform transition-transform duration-300 group-hover:scale-105" style="filter: grayscale(100%) brightness(0) invert(100%);"> </a> <p class="text-sm text-white/90 leading-relaxed mb-6 max-w-sm"> Your On-Demand Toolbox. Udforsk en verden af AI-genererede værktøjer, simulatorer, regnemaskiner og tilføjelser, der er skræddersyet til dine behov. </p> <!-- Social Links --> <div class="flex gap-2"> <a href="#" class="w-8 h-8 flex items-center justify-center bg-white/10 rounded-lg hover:bg-white hover:-translate-y-1 transition-all duration-300 group"> <svg class="w-4 h-4 text-white group-hover:text-blue-600" fill="currentColor" viewBox="0 0 320 512"> <path d="M279.1 288l14.2-92.7h-88.9v-60.1c0-25.4 12.4-50.1 52.2-50.1h40.4V6.3S260.4 0 225.4 0c-73.2 0-121.1 44.4-121.1 124.7v70.6H22.9V288h81.4v224h100.2V288z" /> </svg> </a> <a href="#" class="w-8 h-8 flex items-center justify-center bg-white/10 rounded-lg hover:bg-white hover:-translate-y-1 transition-all duration-300 group"> <svg class="w-4 h-4 text-white group-hover:text-blue-400" fill="currentColor" viewBox="0 0 24 24"> <path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84" /> </svg> </a> <a href="#" class="w-8 h-8 flex items-center justify-center bg-white/10 rounded-lg hover:bg-white hover:-translate-y-1 transition-all duration-300 group"> <svg class="w-4 h-4 text-white group-hover:text-blue-700" fill="currentColor" viewBox="0 0 448 512"> <path d="M100.3 448H7.4V148.9h92.9zM53.8 108.1C24.1 108.1 0 83.5 0 53.8a53.8 53.8 0 0 1 107.6 0c0 29.7-24.1 54.3-53.8 54.3zM447.9 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448z" /> </svg> </a> <a href="#" class="w-8 h-8 flex items-center justify-center bg-white/10 rounded-lg hover:bg-white hover:-translate-y-1 transition-all duration-300 group"> <svg class="w-4 h-4 text-white group-hover:text-pink-600" fill="currentColor" viewBox="0 0 24 24"> <path fill-rule="evenodd" d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z" clip-rule="evenodd" /> </svg> </a> </div> </div> <!-- Information Column --> <div class="md:col-span-1 lg:col-span-3"> <h3 class="text-lg font-bold text-white mb-4">Information</h3> <ul class="space-y-2 text-sm"> <li><a href="https://anyonlinetool.com/da/about" class="text-white/80 hover:text-white transition-colors">About Us</a> </li> <li><a href="https://anyonlinetool.com/blog" class="text-white/80 hover:text-white transition-colors">Latest News</a> </li> <li><a href="https://anyonlinetool.com/da/privacy" class="text-white/80 hover:text-white transition-colors">Privacy Policy</a></li> <li><a href="https://anyonlinetool.com/da/terms" class="text-white/80 hover:text-white transition-colors">Terms of Service</a></li> <li><a href="/sitemap.xml" class="text-white/80 hover:text-white transition-colors">Sitemap</a></li> <li><a href="https://anyonlinetool.com/da/contact" class="text-white/80 hover:text-white transition-colors">Kontakt</a></li> </ul> </div> <!-- Contact Column --> <div class="md:col-span-1 lg:col-span-4"> <h3 class="text-lg font-bold text-white mb-4">Kontakt</h3> <ul class="space-y-3"> <li> <a href="mailto:support@anyonlinetool.com" class="flex items-center group"> <div class="w-8 h-8 rounded-lg bg-white/20 flex items-center justify-center mr-3 group-hover:bg-white transition-colors"> <svg class="w-4 h-4 text-white group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 5.636l-3.536 3.536m0 5.656l3.536 3.536M9.172 9.172L5.636 5.636m3.536 9.192l-3.536 3.536M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-5 0a4 4 0 11-8 0 4 4 0 018 0z" /> </svg> </div> <div> <span class="block text-sm font-medium text-white">Support</span> <span class="text-xs text-white/80 group-hover:text-white">Support@AnyOnlineTool.com</span> </div> </a> </li> <li> <a href="mailto:sales@anyonlinetool.com" class="flex items-center group"> <div class="w-8 h-8 rounded-lg bg-white/20 flex items-center justify-center mr-3 group-hover:bg-white transition-colors"> <svg class="w-4 h-4 text-white group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z" /> </svg> </div> <div> <span class="block text-sm font-medium text-white">Sales</span> <span class="text-xs text-white/80 group-hover:text-white">Sales@AnyOnlineTool.com</span> </div> </a> </li> <li> <a href="mailto:investors@anyonlinetool.com" class="flex items-center group"> <div class="w-8 h-8 rounded-lg bg-white/20 flex items-center justify-center mr-3 group-hover:bg-white transition-colors"> <svg class="w-4 h-4 text-white group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" /> </svg> </div> <div> <span class="block text-sm font-medium text-white">Investors</span> <span class="text-xs text-white/80 group-hover:text-white">Investors@AnyOnlineTool.com</span> </div> </a> </li> </ul> </div> </div> <div class="flex flex-col md:flex-row items-center justify-between gap-4 text-xs text-white/60"> <div class="space-y-1"> <p><strong>Copyright:</strong> © 2026 Any Online Tool. Alle rettigheder forbeholdes.</p> <p><strong>Operated by:</strong> <a href="https://eternitech.com" target="_blank" class="hover:underline text-white/80">eternitech.com</a></p> <p><strong>US Address:</strong> 3899 Pembroke Rd, Hollywood, Florida 33021. <strong>Contact:</strong> <a href="mailto:support@anyonlinetool.com" class="hover:underline text-white/80">support@anyonlinetool.com</a></p> </div> <div class="flex items-center gap-2"> <svg class="w-3 h-3 text-red-500" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z" clip-rule="evenodd" /> </svg> <span>Empowering you to use AI for good.</span> </div> </div> </div> </footer> <!-- Scripts --> <script src="https://anyonlinetool.com/themes/tailwind/js/app.js" defer></script> <script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.1/js/standalone/selectize.min.js"></script> <script> document.addEventListener('DOMContentLoaded', function() { const showbtn = document.querySelector('.embed-tool'); const popup = document.querySelector('.embed-popup'); const closebtn = document.querySelector('.close-popup'); // Show popup when click embed button showbtn.addEventListener('click', function(event) { event.preventDefault(); popup.classList.remove('hidden'); }); // Hide popup when click outside popup.addEventListener('click', function(event) { if (event.target.classList.contains('embed-popup')) { popup.classList.add('hidden'); } }); // Hide popup when click close button closebtn.addEventListener('click', function(event) { event.preventDefault(); popup.classList.add('hidden'); }); // Copy code to clipboard const copybtn = document.querySelector('.copy-code'); copybtn.addEventListener('click', function(event) { event.preventDefault(); const code = document.querySelector('.code'); const textarea = document.createElement('textarea'); textarea.value = code.innerText; document.body.appendChild(textarea); textarea.select(); document.execCommand('copy'); document.body.removeChild(textarea); copybtn.innerText = this.dataset.copied; setTimeout(() => { copybtn.innerText = this.dataset.copy; }, 3000); }); }); const url = document.querySelector('input[name="url"]').value; const tool = document.querySelector('input[name="tool"]').value; function generateCode(license, lang) { return `<script src="${url}/embed-bucket/aot.js" data-license-key="${license}" data-lang="${lang}" data-tool-key="generator json"></script>` }; jQuery('document').ready(function($) { $('.lang-selectize').selectize({ onItemAdd: function(value) { document.querySelector('input[name="language"]').value = value; const license = document.querySelector('input[name="license"]').value; const script = generateCode(license, value); const unescapedScript = $('<textarea/>').html(script).text(); document.querySelector('.code').innerHTML = unescapedScript; } }); $('.website-selectize').selectize({ onItemAdd: function(value) { document.querySelector('input[name="license"]').value = value; const lang = document.querySelector('input[name="language"]').value; const script = generateCode(value, lang); const unescapedScript = $('<textarea/>').html(script).text(); document.querySelector('.code').innerHTML = unescapedScript; } }); }); </script> <script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> <script> var swiper = new Swiper('.testimonial-swiper', { slidesPerView: 1, spaceBetween: 24, loop: true, autoplay: { delay: 4000, disableOnInteraction: false }, navigation: { nextEl: '.next-btn', prevEl: '.prev-btn' }, breakpoints: { 768: { slidesPerView: 2 }, 1024: { slidesPerView: 3 } } }); </script> <!-- Full Screen Loader --> <div id="fullscreenLoader" class="fixed inset-0 top-0 left-0 z-50 flex flex-col items-center justify-center hidden w-full h-full bg-gray-900 opacity-50"> <svg class="w-5 h-5 mr-3 -ml-1 text-white animate-spin" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"> </path> </svg> <p id="fullscreenLoaderMessage" class="mt-4 text-sm font-medium text-white uppercase"></p> </div> <!-- End Full Loader --> <div class="fixed inset-0 z-40 flex items-end justify-center px-4 py-6 pointer-events-none sm:p-6 sm:items-start sm:justify-end"> <div id="toast" x-data x-cloak @click="$store.toast.close()" x-show="$store.toast.show" x-transition:enter="transform ease-out duration-300 transition" x-transition:enter-start="translate-y-2 opacity-0 sm:translate-y-0 sm:translate-x-2" x-transition:enter-end="translate-y-0 opacity-100 sm:translate-x-0" x-transition:leave="transform transition ease-in duration-100" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="w-full max-w-sm bg-white border border-gray-200 rounded-lg shadow-lg cursor-pointer pointer-events-auto hover:-translate-1"> <div class="relative overflow-hidden rounded-lg shadow-xs"> <div class="px-4 py-5"> <div class="flex items-center"> <div class="flex-shrink-0 pr-0.5"> <template x-if="$store.toast.type == 'info'"> <div class="w-10 h-10"> <svg class="w-10 h-10 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg> </div> </template> <template x-if="$store.toast.type == 'warning'"> <div class="w-10 h-10"> <svg class="w-10 h-10 text-yellow-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg> </div> </template> <template x-if="$store.toast.type == 'success'"> <div class="w-10 h-10"> <svg class="w-10 h-10 text-green-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg> </div> </template> <template x-if="$store.toast.type == 'danger'"> <div class="w-10 h-10"> <svg class="w-10 h-10 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg> </div> </template> </div> <div class="flex-1 w-0 pl-3.5 ml-1 border-l border-gray-100"> <p class="text-sm font-medium leading-5 text-gray-900"> <template x-if="$store.toast.type == 'info'"><span>Notice</span></template> <template x-if="$store.toast.type == 'warning'"><span>Warning</span></template> <template x-if="$store.toast.type == 'success'"><span>Success</span></template> <template x-if="$store.toast.type == 'danger'"><span>Something went wrong</span></template> </p> <p class="text-sm leading-5 text-gray-500" x-text="$store.toast.message"></p> </div> <div class="flex self-start flex-shrink-0 ml-4"> <button @click="$store.toast.close()" class="inline-flex -mt-1 text-gray-400 transition duration-150 ease-in-out rounded-full focus:outline-none focus:text-gray-500"> <svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor"> <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path> </svg> </button> </div> </div> </div> <div id="toast_bar" class="absolute bottom-0 left-0 w-full h-1 transition-all ease-out" :class="{ 'bg-indigo-400' : $store.toast.type == 'info', 'bg-yellow-400' : $store.toast.type == 'warning', 'bg-green-400' : $store.toast.type == 'success', 'bg-red-400' : $store.toast.type == 'danger' }" style="transition-duration: 3950ms;"></div> </div> </div> </div> <script src="https://cdn.paddle.com/paddle/paddle.js"></script> <script> window.vendor_id = parseInt(''); if(vendor_id){ Paddle.Setup({ vendor: vendor_id }); } if("sandbox" == 'sandbox') { Paddle.Environment.set('sandbox'); } let checkoutBtns = document.getElementsByClassName("checkout"); for( var i=0; i < checkoutBtns.length; i++ ){ checkoutBtns[i].addEventListener('click', function(){ waveCheckout(this.dataset.plan) }, false); } let updateBtns = document.getElementsByClassName("checkout-update"); for( var i=0; i < updateBtns.length; i++ ){ updateBtns[i].addEventListener('click', waveUpdate, false); } let cancelBtns = document.getElementsByClassName("checkout-cancel"); for( var i=0; i < cancelBtns.length; i++ ){ cancelBtns[i].addEventListener('click', waveCancel, false); } function waveCheckout(plan_id) { if(vendor_id){ let product = parseInt(plan_id); Paddle.Checkout.open({ product: product, email: '', successCallback: "checkoutComplete", }); } else { alert('Paddle Vendor ID is not set, please see the docs and learn how to setup billing.'); } } function waveUpdate(){ Paddle.Checkout.open({ override: this.dataset.url, successCallback: "checkoutUpdate", }); } function waveCancel(){ Paddle.Checkout.open({ override: this.dataset.url, successCallback: "checkoutCancel", }); } </script> <div id="cookie-consent-banner" class="hidden fixed bottom-0 left-0 right-0 z-50 bg-white border-t-2 border-gray-200 shadow-lg"> <div class="max-w-7xl mx-auto px-4 py-4 sm:px-6 lg:px-8"> <div class="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4"> <div class="flex-1"> <h3 class="text-lg font-semibold text-gray-900 mb-2">Cookie Consent</h3> <p class="text-sm text-gray-600"> We use cookies to enhance your browsing experience, provide personalized content, and analyze our traffic. By clicking "Accept", you consent to our use of cookies. <a href="https://anyonlinetool.com/da/privacy" class="text-blue-600 hover:underline font-medium">Learn more in our Privacy Policy</a>. </p> </div> <div class="flex gap-3 flex-shrink-0"> <button id="cookie-reject" class="px-4 py-2 text-sm font-medium text-gray-700 bg-gray-200 rounded-lg hover:bg-gray-300 transition-colors duration-200"> Reject </button> <button id="cookie-accept" class="px-4 py-2 text-sm font-medium text-white bg-accent rounded-lg hover:bg-accent/90 transition-colors duration-200"> Accept </button> </div> </div> </div> </div> <script> (function () { // Check if user has already made a choice const cookieConsent = localStorage.getItem('cookie_consent'); const banner = document.getElementById('cookie-consent-banner'); // Show banner if no consent decision has been made if (!cookieConsent) { banner.classList.remove('hidden'); } else if (cookieConsent === 'accepted') { // Load analytics if consent was given loadAnalytics(); } // Handle Accept button document.getElementById('cookie-accept').addEventListener('click', function () { localStorage.setItem('cookie_consent', 'accepted'); localStorage.setItem('cookie_consent_date', new Date().toISOString()); banner.classList.add('hidden'); loadAnalytics(); }); // Handle Reject button document.getElementById('cookie-reject').addEventListener('click', function () { localStorage.setItem('cookie_consent', 'rejected'); localStorage.setItem('cookie_consent_date', new Date().toISOString()); banner.classList.add('hidden'); // Don't load analytics }); // Function to load Google Analytics (only if accepted) function loadAnalytics() { } })(); </script> <style> #cookie-consent-banner { animation: slideUp 0.3s ease-out; } @keyframes slideUp { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } </style> </body> </html>