CINXE.COM
Easy image upload using render hooks - tips & tricks - HUGO
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Easy image upload using render hooks - tips & tricks - HUGO</title> <meta name="description" content="I’ve been playing around with Hugo’s markdown render hooks recently to do some increasingly convoluted things. My most successful project is this: Hugo Image Uploader It’s a way to upload images to static while writing&hellip;"> <meta name="generator" content="Discourse 3.4.0.beta3-dev - https://github.com/discourse/discourse version 5bf5d1335680f28a8eb65c488353be9585eed08e"> <link rel="icon" type="image/png" href="https://global.discourse-cdn.com/flex036/uploads/gohugo/optimized/2X/6/66a05218f64425b2fa59ede30c1b4b7dc1fdf5f9_2_32x32.ico"> <link rel="apple-touch-icon" type="image/png" href="https://global.discourse-cdn.com/flex036/uploads/gohugo/optimized/2X/c/c2d3414c64e766d814100b32063948e604298a70_2_180x180.png"> <meta name="theme-color" media="all" content="#0a1922"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover"> <link rel="canonical" href="https://discourse.gohugo.io/t/easy-image-upload-using-render-hooks/52026" /> <link rel="search" type="application/opensearchdescription+xml" href="https://discourse.gohugo.io/opensearch.xml" title="HUGO Search"> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/color_definitions_hugo-light_1_3_09733212c5bcbf3d2262e9135364889a94410a8e.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" class="light-scheme"/> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/desktop_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="desktop" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/checklist_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="checklist" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-adplugin_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-adplugin" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-ai_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-ai" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-akismet_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-akismet" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-cakeday_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-cakeday" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-details_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-details" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-lazy-videos_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-lazy-videos" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-local-dates_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-local-dates" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-narrative-bot_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-narrative-bot" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-presence_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-presence" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-solved_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-solved" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/footnote_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="footnote" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/hosted-site_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="hosted-site" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/poll_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="poll" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/spoiler-alert_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="spoiler-alert" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/discourse-ai_desktop_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="discourse-ai_desktop" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/poll_desktop_d02c2ac443d5119470bb87ccc1761df2dc8dc4ce.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="poll_desktop" /> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/desktop_theme_2_554e2f649b5332218939d027878568e9fb5cb3e9.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="2" data-theme-name="custom header links"/> <link href="https://yyz2.discourse-cdn.com/flex036/stylesheets/desktop_theme_3_ba320989966c049743dec43ab8cc84324bf2a254.css?__ws=discourse.gohugo.io" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="3" data-theme-name="hugo light"/> <meta id="data-ga-universal-analytics" data-tracking-code="UA-7131036-7" data-json="{"cookieDomain":"auto"}" data-auto-link-domains=""> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-7131036-7" nonce="lwC54glepERwf2O86oGF2dpNK"></script> <script defer src="https://global.discourse-cdn.com/flex036/assets/google-universal-analytics-v4-e154af4adb3c483a3aba7f9a7229b8881cdc5cf369290923d965a2ad30163ae8.gz.js" data-discourse-entrypoint="google-universal-analytics-v4" nonce="lwC54glepERwf2O86oGF2dpNK"></script> <link rel="alternate nofollow" type="application/rss+xml" title="RSS feed of 'Easy image upload using render hooks'" href="https://discourse.gohugo.io/t/easy-image-upload-using-render-hooks/52026.rss" /> <meta property="og:site_name" content="HUGO" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:image" content="https://global.discourse-cdn.com/flex036/uploads/gohugo/original/2X/b/b91c8ab3a3c1c8679127cf049b46fa919e9e0e5c.png" /> <meta property="og:image" content="https://global.discourse-cdn.com/flex036/uploads/gohugo/original/2X/b/b91c8ab3a3c1c8679127cf049b46fa919e9e0e5c.png" /> <meta property="og:url" content="https://discourse.gohugo.io/t/easy-image-upload-using-render-hooks/52026" /> <meta name="twitter:url" content="https://discourse.gohugo.io/t/easy-image-upload-using-render-hooks/52026" /> <meta property="og:title" content="Easy image upload using render hooks" /> <meta name="twitter:title" content="Easy image upload using render hooks" /> <meta property="og:description" content="I’ve been playing around with Hugo’s markdown render hooks recently to do some increasingly convoluted things. My most successful project is this: Hugo Image Uploader It’s a way to upload images to static while writing a blog post, directly from the browser. It works by changing the HTML for images with empty paths and injecting some JavaScript when Hugo’s in dev mode + running a NodeJS upload server. The repo has a video demonstration. The upload directory scheme is hard-coded to according t..." /> <meta name="twitter:description" content="I’ve been playing around with Hugo’s markdown render hooks recently to do some increasingly convoluted things. My most successful project is this: Hugo Image Uploader It’s a way to upload images to static while writing a blog post, directly from the browser. It works by changing the HTML for images with empty paths and injecting some JavaScript when Hugo’s in dev mode + running a NodeJS upload server. The repo has a video demonstration. The upload directory scheme is hard-coded to according t..." /> <meta property="og:article:section" content="tips & tricks" /> <meta property="og:article:section:color" content="ED207B" /> <meta name="twitter:label1" value="Reading time" /> <meta name="twitter:data1" value="1 mins 🕑" /> <meta name="twitter:label2" value="Likes" /> <meta name="twitter:data2" value="6 ❤" /> <meta property="article:published_time" content="2024-10-19T04:59:20+00:00" /> <meta property="og:ignore_canonical" content="true" /> <script type="application/ld+json">{"@context":"http://schema.org","@type":"QAPage","name":"Easy image upload using render hooks","mainEntity":{"@type":"Question","name":"Easy image upload using render hooks","text":"I’ve been <a href=\"https://davidyat.es/2024/10/06/deprecating-shortcodes/\" rel=\"noopener nofollow ugc\">playing<\/a> <a href=\"https://davidyat.es/2024/10/18/render-hook-syntax-highlighting/\" rel=\"noopener nofollow ugc\">around<\/a> <a href=\"https://davidyat.es/2024/10/19/render-hook-image-upload/\" rel=\"noopener nofollow ugc\">with<\/a> Hugo’s markdown render hooks recently to do some increasingly convoluted things. My most successful project is this:\n\n<a href=\"https://github.com/dmyates/hugo-image-uploader\" rel=\"noopener nofollow ugc\">Hugo Image Uploader<\/a>\n\nIt’s a way to upload images to static while writing a blog post, directly from the browser. It works by changing the HTML for image…","upvoteCount":4,"answerCount":0,"datePublished":"2024-10-19T04:59:20.516Z","author":{"@type":"Person","name":"dmyates","url":"https://discourse.gohugo.io/u/dmyates"}}}</script> </head> <body class="crawler browser-update"> <script defer="" src="https://yyz2.discourse-cdn.com/flex036/theme-javascripts/417061e7eee24be4fb6a457975f0dce96a82d9e6.js?__ws=discourse.gohugo.io" data-theme-id="5" nonce="lwC54glepERwf2O86oGF2dpNK"></script> <header> <a href="/"> HUGO </a> </header> <div id="main-outlet" class="wrap" role="main"> <div id="topic-title"> <h1> <a href="/t/easy-image-upload-using-render-hooks/52026">Easy image upload using render hooks</a> </h1> <div class="topic-category" itemscope itemtype="http://schema.org/BreadcrumbList"> <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a href="/c/tips-tricks/38" class="badge-wrapper bullet" itemprop="item"> <span class='badge-category-bg' style='background-color: #ED207B'></span> <span class='badge-category clear-badge'> <span class='category-name' itemprop='name'>tips & tricks</span> </span> </a> <meta itemprop="position" content="1" /> </span> </div> </div> <div itemscope itemtype='http://schema.org/DiscussionForumPosting'> <meta itemprop='headline' content='Easy image upload using render hooks'> <link itemprop='url' href='https://discourse.gohugo.io/t/easy-image-upload-using-render-hooks/52026'> <meta itemprop='datePublished' content='2024-10-19T04:59:20Z'> <meta itemprop='articleSection' content='tips & tricks'> <meta itemprop='keywords' content=''> <div itemprop='publisher' itemscope itemtype="http://schema.org/Organization"> <meta itemprop='name' content='HUGO'> </div> <div id='post_1' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://discourse.gohugo.io/u/dmyates'><span itemprop='name'>dmyates</span></a> </span> <link itemprop="mainEntityOfPage" href="https://discourse.gohugo.io/t/easy-image-upload-using-render-hooks/52026"> <span class="crawler-post-infos"> <time datetime='2024-10-19T04:59:20Z' class='post-time'> October 19, 2024, 4:59am </time> <meta itemprop='dateModified' content='2024-10-19T04:59:20Z'> <span itemprop='position'>1</span> </span> </div> <div class='post' itemprop='text'> <p>I’ve been <a href="https://davidyat.es/2024/10/06/deprecating-shortcodes/" rel="noopener nofollow ugc">playing</a> <a href="https://davidyat.es/2024/10/18/render-hook-syntax-highlighting/" rel="noopener nofollow ugc">around</a> <a href="https://davidyat.es/2024/10/19/render-hook-image-upload/" rel="noopener nofollow ugc">with</a> Hugo’s markdown render hooks recently to do some increasingly convoluted things. My most successful project is this:</p> <p><a href="https://github.com/dmyates/hugo-image-uploader" rel="noopener nofollow ugc">Hugo Image Uploader</a></p> <p>It’s a way to upload images to <code>static</code> while writing a blog post, directly from the browser. It works by changing the HTML for images with empty paths and injecting some JavaScript when Hugo’s in dev mode + running a NodeJS upload server. The repo has a video demonstration.</p> <p>The upload directory scheme is hard-coded to according to my own blog’s peculiarities and there’s no support for e.g. page bundles.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="4" /> <span class='post-likes'>4 Likes</span> </div> </div> <div id='post_2' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://discourse.gohugo.io/u/frjo'><span itemprop='name'>frjo</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-10-19T08:05:50Z' class='post-time'> October 19, 2024, 8:05am </time> <meta itemprop='dateModified' content='2024-10-19T08:05:50Z'> <span itemprop='position'>2</span> </span> </div> <div class='post' itemprop='text'> <p>That is some pretty neat functionality. Really like that there are no dependencies!</p> <p>Instead of adding it as a git submodule I would point people to add it as a Hugo module. A personal preference, but I have never liked git submodules. Hugo modules on the other hand are a pleasure to use.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="1" /> <span class='post-likes'>1 Like</span> </div> </div> <div id='post_3' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://discourse.gohugo.io/u/divinerites'><span itemprop='name'>divinerites</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-10-19T08:27:12Z' class='post-time'> October 19, 2024, 8:27am </time> <meta itemprop='dateModified' content='2024-10-19T08:27:12Z'> <span itemprop='position'>3</span> </span> </div> <div class='post' itemprop='text'> <p>brillant. thanks</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="1" /> <span class='post-likes'>1 Like</span> </div> </div> <div id='post_4' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://discourse.gohugo.io/u/dmyates'><span itemprop='name'>dmyates</span></a> </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2024-10-19T12:19:38Z' class='post-time'> October 19, 2024, 12:19pm </time> <meta itemprop='dateModified' content='2024-10-19T12:19:38Z'> <span itemprop='position'>4</span> </span> </div> <div class='post' itemprop='text'> <p>Thank you! It does depend on nodejs, but I strove to avoid making anyone run <code>npm i</code> in their Hugo site directory. Thanks for the tip on Hugo modules, I’ve updated the readme with some alternatives for managing the dependency.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> </div> <div id="related-topics" class="more-topics__list " role="complementary" aria-labelledby="related-topics-title"> <h3 id="related-topics-title" class="more-topics__list-title"> Related topics </h3> <div class="topic-list-container" itemscope itemtype='http://schema.org/ItemList'> <meta itemprop='itemListOrder' content='http://schema.org/ItemListOrderDescending'> <table class='topic-list'> <thead> <tr> <th>Topic</th> <th></th> <th class="replies">Replies</th> <th class="views">Views</th> <th>Activity</th> </tr> </thead> <tbody> <tr class="topic-list-item" id="topic-list-item-22543"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='1'> <span class="link-top-line"> <a itemprop='url' href='https://discourse.gohugo.io/t/markdown-render-hooks-github-and-hugo-compatible-links/22543' class='title raw-link raw-topic-link'>Markdown Render Hooks - GitHub and Hugo compatible links</a> </span> <div class="link-bottom-line"> <a href='/c/support/34' class='badge-wrapper bullet'> <span class='badge-category-bg' style='background-color: #652D90'></span> <span class='badge-category clear-badge'> <span class='category-name'>support</span> </span> </a> <div class="discourse-tags"> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>13</span> </td> <td class="views"> <span class='views' title='views'>2460</span> </td> <td> February 28, 2020 </td> </tr> <tr class="topic-list-item" id="topic-list-item-35015"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='2'> <span class="link-top-line"> <a itemprop='url' href='https://discourse.gohugo.io/t/all-about-images-is-there-a-better-tutorial-or-guide/35015' class='title raw-link raw-topic-link'>All about images - is there a better tutorial or guide?</a> </span> <div class="link-bottom-line"> <a href='/c/support/34' class='badge-wrapper bullet'> <span class='badge-category-bg' style='background-color: #652D90'></span> <span class='badge-category clear-badge'> <span class='category-name'>support</span> </span> </a> <div class="discourse-tags"> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>2</span> </td> <td class="views"> <span class='views' title='views'>950</span> </td> <td> October 6, 2021 </td> </tr> <tr class="topic-list-item" id="topic-list-item-20126"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='3'> <span class="link-top-line"> <a itemprop='url' href='https://discourse.gohugo.io/t/can-a-website-with-image-uploading-support-be-built-with-hugo/20126' class='title raw-link raw-topic-link'>Can a website with image uploading support be built with Hugo?</a> </span> <div class="link-bottom-line"> <a href='/c/tips-tricks/38' class='badge-wrapper bullet'> <span class='badge-category-bg' style='background-color: #ED207B'></span> <span class='badge-category clear-badge'> <span class='category-name'>tips & tricks</span> </span> </a> <div class="discourse-tags"> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>1</span> </td> <td class="views"> <span class='views' title='views'>786</span> </td> <td> August 13, 2019 </td> </tr> <tr class="topic-list-item" id="topic-list-item-36121"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='4'> <span class="link-top-line"> <a itemprop='url' href='https://discourse.gohugo.io/t/moving-to-hugo-github-and-image-management-guidelines-please/36121' class='title raw-link raw-topic-link'>Moving to hugo - GitHub and image management guidelines please</a> </span> <div class="link-bottom-line"> <a href='/c/support/34' class='badge-wrapper bullet'> <span class='badge-category-bg' style='background-color: #652D90'></span> <span class='badge-category clear-badge'> <span class='category-name'>support</span> </span> </a> <div class="discourse-tags"> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>6</span> </td> <td class="views"> <span class='views' title='views'>1759</span> </td> <td> December 21, 2021 </td> </tr> <tr class="topic-list-item" id="topic-list-item-14989"> <td class="main-link" itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'> <meta itemprop='position' content='5'> <span class="link-top-line"> <a itemprop='url' href='https://discourse.gohugo.io/t/relative-image-paths-in-hugo-in-markdowns-files/14989' class='title raw-link raw-topic-link'>Relative image paths in Hugo in markdowns files</a> </span> <div class="link-bottom-line"> <a href='/c/support/34' class='badge-wrapper bullet'> <span class='badge-category-bg' style='background-color: #652D90'></span> <span class='badge-category clear-badge'> <span class='category-name'>support</span> </span> </a> <div class="discourse-tags"> </div> </div> </td> <td class="replies"> <span class='posts' title='posts'>2</span> </td> <td class="views"> <span class='views' title='views'>2399</span> </td> <td> October 30, 2018 </td> </tr> </tbody> </table> </div> </div> </div> <footer class="container wrap"> <nav class='crawler-nav'> <ul> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/' itemprop="url">Home </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/categories' itemprop="url">Categories </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/guidelines' itemprop="url">Guidelines </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/tos' itemprop="url">Terms of Service </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/privacy' itemprop="url">Privacy Policy </a> </span> </li> </ul> </nav> <p class='powered-by-link'>Powered by <a href="https://www.discourse.org">Discourse</a>, best viewed with JavaScript enabled</p> </footer> <div class="buorg"><div>Unfortunately, <a href="https://www.discourse.org/faq/#browser">your browser is unsupported</a>. Please <a href="https://browsehappy.com">switch to a supported browser</a> to view rich content, log in and reply.</div></div> </body> </html>