JSON Content Generator

Génère un paquet JSON structuré et lisible par machine décrivant l’objectif, la logique, les entrées, les sorties et la localisation pour le SEO et l’intégration.

Tool coming soon!

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

Request Feature / Support
1,296+
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

À propos de cet outil

Cet outil produit un paquet de contenu JSON complet et structuré qui documente l’objectif d’un outil, sa logique métier, sa valeur, son public cible et ses besoins de localisation pour les agents IA et les systèmes SEO. Il s’adresse aux équipes produit, développeurs et ingénieurs de connaissance qui ont besoin d’une spécification lisible par machine pour le catalogage, les tests et l’intégration. Les livrables suivent un schéma fixe avec des sections clairement délimitées pour le but, la logique, les entrées, les sorties, les algorithmes et la localisation, permettant une utilisation fiable par les systèmes en aval.

Les fonctionnalités clés incluent la séparation explicite des éléments obligatoires et optionnels, un ensemble canonique de sections, la génération automatique du slug et des champs méta, ainsi qu’une référence SVG intégrée pour les catalogues visuels. Le bloc linguistique (en) contient le nom, le titre, le slug, l’alt text, la description, les FAQ et les instructions d’utilisation. Le design met l’accent sur un formatage déterministe, des hooks de validation et la réutilisabilité à travers les projets.

Les cas d’utilisation couvrent les répertoires d’outils, les graphes de connaissance, les catalogues d’API et les portails développeurs. Le différenciateur réside dans une structure strictement compatible-machine associée à des métadonnées prêtes à la localisation et à une FAQ prête à l’emploi pour réduire les ambiguïtés d’interprétation. Les flux typiques incluent la saisie des données de base de l’outil, la génération de la spécification complète, la validation JSON et l’export pour déploiement ou indexation.

Comment utiliser

  1. Fournir les métadonnées et contraintes de l’outil.
  2. Lancer la génération pour obtenir le payload de spécification complet.
  3. Valider les champs générés (nom, url_slug, meta_description, longueur de la description) et ajuster si nécessaire.
  4. Récupérer image_svg et s’assurer que le et le <desc> sont présents pour l’accessibilité; utiliser dans les catalogues.</li><li class="pl-2 leading-relaxed">Intégrer les métadonnées SEO (url_slug, meta_description, keywords) dans le système cible et publier.</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">Trouvez des réponses rapides</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>Quel est le but principal de ce générateur ?</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"> Il crée une spécification JSON structurée et lisible par machine pour un outil, facilitant l’intégration cohérente, le catalogage et le traitement automatisé par les agents IA et les systèmes SEO. </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>Comment la JSON est-elle structurée ?</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"> Les clés principales incluent specification, category_id, type, image_svg et un bloc languages avec des champs en. Le bloc en contient name, title_tag, url_slug, image_alt_text, meta_description, keywords, short_description, short_business_description, description, how_to_use et 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>Le contenu peut-il être localisé ?</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"> Oui. Le design comporte un bloc de langue en et peut être étendu avec des blocs de langue supplémentaires en fournissant les valeurs localisées pour chaque champ. Le slug et les métadonnées SEO sont générés par langue. </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>Comment les champs SEO sont-ils dérivés ?</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"> Le url_slug est dérivé du nom en minuscules et avec des tirets; la meta_description est rédigée pour respecter la longueur; les keywords sont dédupliqués et choisis pour refléter l’intention et les problèmes résolus. </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"> Convertisseur Spotify vers MP3 </h4> <p class="text-gray-500 text-sm leading-normal"> Convertit des fichiers audio fournis localement en MP3, permettant l’écoute hors ligne et la compati... </p> <a href="https://anyonlinetool.com/fr/tool/spotify-mp3-convertisseur" 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"> Calculateur de distance routière </h4> <p class="text-gray-500 text-sm leading-normal"> Calculateur de distance routière pour voyageurs, planificateurs logistiques et conducteurs pour esti... </p> <a href="https://anyonlinetool.com/fr/tool/calculateur-distance-routiere" 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"> Calculateur d’âge </h4> <p class="text-gray-500 text-sm leading-normal"> Déterminez rapidement l’âge d’une personne à partir de sa date de naissance avec notre calculateur e... </p> <a href="https://anyonlinetool.com/fr/tool/calculateur-d-age" 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"> Convertisseur de devises </h4> <p class="text-gray-500 text-sm leading-normal"> Convertissez rapidement des montants entre différentes monnaies avec notre convertisseur de devises... </p> <a href="https://anyonlinetool.com/fr/tool/convertisseur-de-devises" 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">Votre avis compte</h3> <p class="text-gray-500 mb-8">Aidez-nous à nous améliorer</p> <form method="POST" action="https://anyonlinetool.com/tool/feedback/31709" class="space-y-4 text-left"> <input type="hidden" name="_token" value="jht4DTeE77XBcKXkj8zWedoZeBQATFnTpN6Vl2qz" 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="Votre 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;">Soumettre</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">Langue</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="copier" data-copied="copié" 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"> copier </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/fr" 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. Découvrez un monde d'outils, de simulateurs, de calculateurs et d'extensions générés par l'IA et adaptés à vos besoins. </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/fr/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/fr/privacy" class="text-white/80 hover:text-white transition-colors">Privacy Policy</a></li> <li><a href="https://anyonlinetool.com/fr/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/fr/contact" class="text-white/80 hover:text-white transition-colors">Contact</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">Contact</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. Tous droits réservés.</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/fr/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>