It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://z9n.net/

  1. <html lang="en">
  2.    <head>
  3.        <meta charset="utf-8">
  4.        <meta http-equiv="X-UA-patible" content="IE=edge">
  5.        <meta name="viewport" content="width=device-width, initial-scale=1">
  6.        <meta name="description" content="z9n.net’s Connections Platform is more than a free URL shortener, with robust link management software, and a Link-in-bio solution.">
  7.        <link rel="icon" href="/frontend/assets/img/favicon.ico">
  8.  
  9.        <title>URL Shortener - Short URLs & Custom Free Link Shortener | z9n.net</title>
  10.  
  11.        <link rel="stylesheet" href="/frontend/dist/styles.css">
  12.  
  13.                    <style>
  14.                body {
  15.                    background-color: #9c27b0;
  16.                }
  17.            </style>
  18.        
  19.        <style>
  20.            .btn-primary {
  21.                background-color: #9c27b0;
  22.                border-color: #9c27b0;
  23.            }
  24.  
  25.            .btn-primary:hover,
  26.            .btn-primary:focus,
  27.            .btn-primary:active {
  28.                background-color: #8d18a1;
  29.                border-color: #8d18a1;
  30.            }
  31.        </style>
  32.    </head>
  33. <body>
  34.  
  35. <style>ul#admin_menu li:not(.frontend_link) {display: none}</style>
  36. <div class="container-fluid h-100">
  37. <div class="row justify-content-center align-items-center h-100">
  38. <div class="col-12 col-lg-10 col-xl-8 col-xxl-5 mt-5">
  39. <div class="card border-0 mt-5">
  40. <div class="text-center">
  41. <img src="https://z9n.net/frontend/assets/img/logo-black.png" alt="Logo" width="95px" class="mt-n5">
  42. </div>
  43. <div class="card-body px-md-5">
  44. <p>z9n.net’s Connections Platform is more than a free URL shortener, with robust link management software, and a Link-in-bio solution.</p>
  45.  
  46. <form id="shortenlink" method="post" action="">
  47. <div class="input-group input-group-block mt-4 mb-3">
  48. <input type="url" name="url" id="url" class="form-control text-uppercase" placeholder="PASTE URL, SHORTEN &amp; SHARE" aria-label="PASTE URL, SHORTEN &amp; SHARE" aria-describedby="shorten-button" required>
  49. <input class="btn btn-primary text-uppercase py-2 px-4 mt-2 mt-md-0" type="submit" id="shorten-button" value="Shorten" />
  50. </div>
  51. <a class="btn btn-sm btn-white text-black-50 text-uppercase" data-bs-toggle="collapse" href="#customise-link" role="button" aria-expanded="false" aria-controls="customise-link">
  52. <img src="https://z9n.net/frontend/assets/svg/custom-url.svg" alt="Options"> Customise Link
  53. </a>
  54. <div class="collapse" id="customise-link">
  55. <div class="mt-2 card card-body">
  56. <div class="d-flex  align-items-center">
  57. <span class="me-2">z9n.net/</span>
  58. <input type="text" name="keyword" class="form-control form-control-sm text-uppercase" placeholder="CUSTOM URL" aria-label="CUSTOM URL">
  59. </div>
  60. </div>
  61. </div>
  62. </form>
  63. </div>
  64. </div>
  65. <div class="d-flex flex-column flex-md-row align-items-center my-3">
  66. <span class="text-white fw-light">&copy; 2024 z9n.net</span>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
  72.  
  73. <script>
  74. // From https://stackoverflow.com/a/30810322
  75. function fallbackCopyTextToClipboard(text) {
  76. var textArea = document.createElement("textarea");
  77. textArea.value = text;
  78. // Avoid scrolling to bottom
  79. textArea.style.top = "0";
  80. textArea.style.left = "0";
  81. textArea.style.position = "fixed";
  82.  
  83. document.body.appendChild(textArea);
  84. textArea.focus();
  85. textArea.select();
  86.  
  87. try {
  88. var successful = document.execCommand('copy');
  89. var msg = successful ? 'successful' : 'unsuccessful';
  90. console.log('Fallback: Copying text command was ' + msg);
  91. } catch (err) {
  92. console.error('Fallback: Oops, unable to copy', err);
  93. }
  94.  
  95. document.body.removeChild(textArea);
  96. }
  97.  
  98. function copyTextToClipboard(text) {
  99. if (!navigator.clipboard) {
  100. fallbackCopyTextToClipboard(text);
  101. return;
  102. }
  103. navigator.clipboard.writeText(text).then(function() {
  104. console.log('Async: Copying to clipboard was successful!');
  105. }, function(err) {
  106. console.error('Async: Could not copy text: ', err);
  107. });
  108. }
  109.  
  110. const copyBtn = document.querySelector('button#copy-button');
  111.  
  112. if (copyBtn) {
  113. copyBtn.addEventListener('click', function(event) {
  114. copyTextToClipboard(event.target.dataset.shorturl);
  115. });
  116. }
  117.  
  118. const closeShortenedLinkScreenButton = document.querySelector('button#close-shortened-screen');
  119.  
  120. if (closeShortenedLinkScreenButton) {
  121. closeShortenedLinkScreenButton.addEventListener('click', function(event) {
  122. window.location.href=window.location.href;
  123. });
  124. }
  125. </script>
  126.  
  127. <script src="https://www.google.com/recaptcha/api.js?render=6Le6MJEnAAAAAGnJkjCMfa905F2_bjJV962I_RDh"></script>
  128. <script>
  129. const shortenForm = document.querySelector("form#shortenlink");
  130.  
  131. if (shortenForm) {
  132. shortenForm.addEventListener("submit", function(e){
  133. e.preventDefault();
  134. grecaptcha.ready(function() {
  135. grecaptcha.execute('6Le6MJEnAAAAAGnJkjCMfa905F2_bjJV962I_RDh', {action: 'shorten_link'}).then(function(token) {
  136. const tokenInput = document.createElement("input");
  137. tokenInput.setAttribute("type", "hidden");
  138. tokenInput.setAttribute("name", "token");
  139. tokenInput.setAttribute("value", token);
  140. const actionInput = document.createElement("input");
  141. actionInput.setAttribute("type", "hidden");
  142. actionInput.setAttribute("name", "action");
  143. actionInput.setAttribute("value", "shorten_link");
  144. shortenForm.prepend(tokenInput);
  145. shortenForm.prepend(actionInput);
  146. shortenForm.submit();
  147. });
  148. });
  149. });
  150. }
  151. </script>
  152. </body>
  153. </html>
  154.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda