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: https://riseuphiring.com/

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <link rel="icon" type="image/svg+xml" href="/vite.svg" />
  6. <meta name="generator" content="Hostinger Horizons" />
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  8. <title>Hostinger Horizons</title>
  9. <script type="module" crossorigin src="/assets/index-b960e08a.js"></script>
  10. <link rel="stylesheet" href="/assets/index-d172bf61.css">
  11. <script type="module">
  12. window.onerror = (message, source, lineno, colno, errorObj) => {
  13. const errorDetails = errorObj ? JSON.stringify({
  14. name: errorObj.name,
  15. message: errorObj.message,
  16. stack: errorObj.stack,
  17. source,
  18. lineno,
  19. colno,
  20. }) : null;
  21.  
  22. window.parent.postMessage({
  23. type: 'horizons-runtime-error',
  24. message,
  25. error: errorDetails
  26. }, '*');
  27. };
  28. </script>
  29. <script type="module">
  30. const observer = new MutationObserver((mutations) => {
  31. for (const mutation of mutations) {
  32. for (const addedNode of mutation.addedNodes) {
  33. if (
  34. addedNode.nodeType === Node.ELEMENT_NODE &&
  35. (
  36. addedNode.tagName?.toLowerCase() === 'vite-error-overlay' ||
  37. addedNode.classList?.contains('backdrop')
  38. )
  39. ) {
  40. handleViteOverlay(addedNode);
  41. }
  42. }
  43. }
  44. });
  45.  
  46. observer.observe(document.documentElement, {
  47. childList: true,
  48. subtree: true
  49. });
  50.  
  51. function handleViteOverlay(node) {
  52. if (!node.shadowRoot) {
  53. return;
  54. }
  55.  
  56. const backdrop = node.shadowRoot.querySelector('.backdrop');
  57.  
  58. if (backdrop) {
  59. const overlayHtml = backdrop.outerHTML;
  60. const parser = new DOMParser();
  61. const doc = parser.parseFromString(overlayHtml, 'text/html');
  62. const messageBodyElement = doc.querySelector('.message-body');
  63. const fileElement = doc.querySelector('.file');
  64. const messageText = messageBodyElement ? messageBodyElement.textContent.trim() : '';
  65. const fileText = fileElement ? fileElement.textContent.trim() : '';
  66. const error = messageText + (fileText ? ' File:' + fileText : '');
  67.  
  68. window.parent.postMessage({
  69. type: 'horizons-vite-error',
  70. error,
  71. }, '*');
  72. }
  73. }
  74. </script>
  75. <script type="module">
  76. const originalConsoleError = console.error;
  77. console.error = function(...args) {
  78. originalConsoleError.apply(console, args);
  79.  
  80. let errorString = '';
  81.  
  82. for (let i = 0; i < args.length; i++) {
  83. const arg = args[i];
  84. if (arg instanceof Error) {
  85. errorString = arg.stack || `${arg.name}: ${arg.message}`;
  86. break;
  87. }
  88. }
  89.  
  90. if (!errorString) {
  91. errorString = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg) : String(arg)).join(' ');
  92. }
  93.  
  94. window.parent.postMessage({
  95. type: 'horizons-console-error',
  96. error: errorString
  97. }, '*');
  98. };
  99. </script>
  100. <script type="module">
  101. const originalFetch = window.fetch;
  102.  
  103. window.fetch = function(...args) {
  104. const url = args[0] instanceof Request ? args[0].url : args[0];
  105.  
  106. // Skip WebSocket URLs
  107. if (url.startsWith('ws:') || url.startsWith('wss:')) {
  108. return originalFetch.apply(this, args);
  109. }
  110.  
  111. return originalFetch.apply(this, args)
  112. .then(async response => {
  113. const contentType = response.headers.get('Content-Type') || '';
  114.  
  115. // Exclude HTML document responses
  116. const isDocumentResponse =
  117. contentType.includes('text/html') ||
  118. contentType.includes('application/xhtml+xml');
  119.  
  120. if (!response.ok && !isDocumentResponse) {
  121. const responseClone = response.clone();
  122. const errorFromRes = await responseClone.text();
  123. const requestUrl = response.url;
  124. console.error(`Fetch error from ${requestUrl}: ${errorFromRes}`);
  125. }
  126.  
  127. return response;
  128. })
  129. .catch(error => {
  130. if (!url.match(/.html?$/i)) {
  131. console.error(error);
  132. }
  133.  
  134. throw error;
  135. });
  136. };
  137. </script>
  138. </head>
  139. <body>
  140. <div id="root"></div>
  141. </body>
  142. </html>
  143.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda