1<!DOCTYPE html><html lang="en" dir="ltr" class="2xl:text-[20px]"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="shortcut icon" href="/_astro/favicon.KvuiACxo.ico"><link rel="icon" type="image/svg+xml" href="/_astro/favicon.nk1Il4nb.svg"><link rel="mask-icon" href="/_astro/favicon.nk1Il4nb.svg" color="#8D46E7"><link rel="apple-touch-icon" sizes="180x180" href="/_astro/apple-touch-icon.49j0K5zX.png"><style is:global> 2 :root { 3 --aw-font-sans: 'Inter Variable'; 4 --aw-font-serif: var(--aw-font-sans); 5 --aw-font-heading: var(--aw-font-sans); 6 7 --aw-color-primary: rgb(0, 0, 0); 8 --aw-color-secondary: rgb(30 58 138); 9 --aw-color-accent: rgb(233, 109, 26); 10 11 --aw-color-text-heading: rgb(0 0 0); 12 --aw-color-text-default: rgb(16 16 16); 13 --aw-color-text-muted: rgb(16 16 16 / 66%); 14 --aw-color-bg-page: rgb(255 255 255); 15 16 --aw-color-bg-page-dark: rgb(3 6 32); 17 18 ::selection {background-color: rgb(251, 214, 255);} 19 } 20</style><title>Cookie Policy â Smart Hugo</title> 21<meta name="description" content="Smart Hugo is an IntelliJ IDEA plugin that will improve your Hugo static site generator development team's productivity, quality and happiness." /> 22<meta name="robots" content="index,follow" /> 23<link rel="canonical" href="https://smarthugo.dev/cookies" /> 24<meta property="og:title" content="Cookie Policy" /> 25<meta property="og:description" content="Smart Hugo is an IntelliJ IDEA plugin that will improve your Hugo static site generator development team's productivity, quality and happiness." /> 26<meta property="og:url" content="https://smarthugo.dev/cookies" /> 27<meta property="og:type" content="website" /> 28<meta property="og:image" content="https://smarthugo.dev/_astro/smart-hugo-logo-og-image.QuYGp5Lx_Z29WLPg.webp" /> 29 30<meta property="og:locale" content="en" /> 31<meta property="og:site_name" content="Smart Hugo" /> 32<meta name="twitter:card" content="summary" /> 33<meta name="twitter:site" content="@SmartHugoDev" /> 34<meta name="twitter:creator" content="@SmartHugoDev" /><meta name="google-site-verification" content="orcPxI47GSa-cRvY11tUe6iGg2IO_RPvnA1q95iEM3M">
vendor: 63 bytes, line 34
34<script async src="https://www.googletagmanager.com/gtag/js?id=
34G-2J99XS7TC1
vendor: 33 bytes, line 34
34" type="text/partytown"></script>
34<script type="text/partytown">(function(){const id = "G-2J99XS7TC1"; 35 36 window.dataLayer = window.dataLayer || []; 37 function gtag() { 38 window.dataLayer.push(arguments); 39 } 40 gtag("js", new Date()); 41 gtag("config", id); 42})();</script>
42<link rel="stylesheet" href="/_astro/cookies.vcuajKnd.css" />
42<script>!(function(w,p,f,c){if(!window.crossOriginIsolated && !navigator.serviceWorker) return;c=w[p]=Object.assign(w[p]||{},{"lib":"/~partytown/","debug":false});c[f]=(c[f]||[]).concat(["dataLayer.push"])})(window,'partytown','forward');/* Partytown 0.8.2 - MIT builder.io */ 43!function(t,e,n,i,o,r,a,s,d,c,l,p){function u(){p||(p=1,"/"==(a=(r.lib||"/~partytown/")+(r.debug?"debug/":""))[0]&&(d=e.querySelectorAll('script[type="text/partytown"]'),i!=t?i.dispatchEvent(new CustomEvent("pt1",{detail:t})):(s=setTimeout(f,1e4),e.addEventListener("pt0",w),o?h(1):n.serviceWorker?n.serviceWorker.register(a+(r.swPath||"partytown-sw.js"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener("statechange",(function(t){"activated"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?"script":"iframe"),t||(c.style.display="block",c.style.width="0",c.style.height="0",c.style.border="0",c.style.visibility="hidden",c.setAttribute("aria-hidden",!0)),c.src=a+"partytown-"+(t?"atomics.js?v=0.8.2":"sandbox-sw.html?"+Date.now()),e.querySelector(r.sandboxParent||"body").appendChild(c)}function f(n,o){for(w(),i==t&&(r.forward||[]).map((function(e){delete t[e.split(".")[0]]})),n=0;n<d.length;n++)(o=e.createElement("script")).innerHTML=d[n].innerHTML,o.nonce=r.nonce,e.head.appendChild(o);c&&c.parentNode.removeChild(c)}function w(){clearTimeout(s)}r=t.partytown||{},i==t&&(r.forward||[]).map((function(e){l=t,e.split(".").map((function(e,n,i){l=l[i[n]]=n+1<i.length?"push"==i[n+1]?[]:l[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),"complete"==e.readyState?u():(t.addEventListener("DOMContentLoaded",u),t.addEventListener("load",u))}(window,document,navigator,top,window.crossOriginIsolated);;((d,s)=>(s=d.currentScript,d.addEventListener('astro:before-swap',()=>s.remove(),{once:true})))(document);</script>
43</head> <body class="antialiased text-default bg-page tracking-tight"> <header class="mt-4 top-0 z-40 flex-none mx-auto w-full border-b border-gray-50/0 transition-[opacity] ease-in-out" id="header"> <div class="flex py-3 w-full justify-center"> <a class="flex items-center" href="/" aria-label="Smart Hugo Logo"> <span class="self-center"> <svg xmlns="http://www.w3.org/2000/svg" x="0" y="0" width="120" height="120" viewBox="0, 0, 200, 200"> <g id="Background"> <rect x="0" y="0" width="200" height="200" fill="#000000" fill-opacity="0"></rect> </g> <defs> <linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="123.37" y1="196.595" x2="76.63" y2="3.405"> <stop offset="0" stop-color="#FF5B99"></stop> <stop offset="1" stop-color="#BF1678"></stop> </linearGradient> </defs> <g id="Layer_1"> <path d="M190.3,63.77 L190.3,136.23 C190.3,146.04 185.025,155.18 176.525,160.09 L113.775,196.32 C109.525,198.775 104.765,200 100,200 C95.235,200 90.475,198.775 86.225,196.32 L23.475,160.09 C14.975,155.18 9.7,146.04 9.7,136.23 L9.7,63.77 C9.7,53.96 14.975,44.815 23.475,39.91 L86.225,3.68 C94.725,-1.225 105.275,-1.225 113.775,3.68 L176.525,39.91 C185.025,44.815 190.3,53.96 190.3,63.77" fill="url(#Gradient_1)"></path> <path d="M58.97,153.555 L58.97,46.445 L81.38,46.445 L81.38,85.46 L118.555,85.46 L118.555,46.445 L141.03,46.445 L141.03,153.555 L118.555,153.555 L118.555,107 L81.38,107 L81.38,153.555 L58.97,153.555 z" fill="#FFFFFF"></path> </g> </svg> </span> </a> </div> </header> <main> <section class="px-4 py-16 sm:px-6 mx-auto lg:px-8 lg:py-20 max-w-4xl"> <h1 class="font-bold font-heading text-4xl md:text-5xl leading-tighter tracking-tighter">Cookie Policy</h1> <div class="mx-auto prose prose-lg max-w-4xl prose-md prose-headings:font-heading prose-headings:leading-tighter prose-headings:tracking-tighter prose-headings:font-bold prose-a:text-blue-600 prose-img:rounded-md prose-img:shadow-lg mt-8"> <p>We use cookies to help improve your experience of <a href="https://smarthugo.dev">https://smarthugo.dev</a>. 44This cookie policy is part of Exprunâs privacy policy, and covers the use of cookies between your device and our site.</p> 45<p>If you donât wish to accept cookies from us, you should instruct your browser to refuse cookies from <a href="https://smarthugo.dev">https://smarthugo.dev</a>, 46with the understanding that we may be unable to provide you with some of your desired content and services.</p> 47<h2 id="what-is-a-cookie">What is a cookie?</h2> 48<p>A cookie is a small piece of data that a website stores on your device when you visit, 49typically containing information about the website itself, a unique identifier that allows the site to recognize your web browser when you return, 50additional data that serves the purpose of the cookie, and the lifespan of the cookie itself.</p> 51<p>Cookies are used to enable certain features (e.g. logging in), to track site usage (e.g. analytics), 52to store your user settings (e.g. timezone, notification preferences), and to personalize your content (e.g. advertising, language).</p> 53<p>Cookies set by the website you are visiting are normally referred to as âfirst-party cookiesâ, and typically only track your activity on that particular site. 54Cookies set by other sites and companies (e.g. third parties) are called âthird-party cookiesâ, and can be used to track you on other websites that use the same third-party service.</p> 55<h2 id="how-you-can-control-or-opt-out-of-cookies">How you can control or opt out of cookies</h2> 56<p>If you do not wish to accept cookies from us, you can instruct your browser to refuse cookies from our website. 57Most browsers are configured to accept cookies by default, but you can update these settings to either refuse cookies altogether, 58or to notify you when a website is trying to set or update a cookie.</p> 59<p>If you browse websites from multiple devices, you may need to update your settings on each individual device.</p> 60<p>Although some cookies can be blocked with little impact on your experience of a website, 61blocking all cookies may mean you are unable to access certain features and content across the sites you visit.</p> </div> </section> </main> <footer class="bg-gray-50"> <hr class="my-4 border-gray-200 sm:mx-auto lg:my-4"> <div class="mx-auto w-full max-w-screen-xl p-4 py-6 lg:py-8"> <div class="md:flex md:justify-between"> <div class="grid grid-cols-3 gap-8 sm:gap-20"> <div class="text-sm"> <h2 class="mb-6 font-semibold text-gray-900 uppercase">Legal</h2> <ul class="text-gray-500 font-medium"> <li class="mb-4"><a href="/eula" class="hover:underline">EULA</a></li><li class="mb-4"><a href="/cookies" class="hover:underline">Cookie Policy</a></li><li class="mb-4"><a href="/privacy" class="hover:underline">Privacy</a></li><li class="mb-4"><a href="/terms" class="hover:underline">Terms</a></li> </ul> </div><div class="text-sm"> <h2 class="mb-6 font-semibold text-gray-900 uppercase">Resources</h2> <ul class="text-gray-500 font-medium"> <li class="mb-4"><a href="https://plugins.jetbrains.com/plugin/23694-smart-hugo" target="_blank" class="hover:underline">Marketplace</a></li><li class="mb-4"><a href="https://plugins.jetbrains.com/plugin/23694-smart-hugo/versions" target="_blank" class="hover:underline">Changelogs</a></li><li class="mb-4"><a href="https://www.jetbrains.com/idea/" target="_blank" class="hover:underline">IntelliJ IDEA</a></li> </ul> </div><div class="text-sm"> <h2 class="mb-6 font-semibold text-gray-900 uppercase">Contact</h2> <ul class="text-gray-500 font-medium"> <li class="mb-4"><a href="mailto:[email protected]" target="_blank" class="hover:underline">Email</a></li><li class="mb-4"><a href="https://github.com/smart-hugo/issue-tracker/issues" target="_blank" class="hover:underline">Issue Tracker</a></li> </ul> </div> </div> <div class="mb-6 md:mb-0 grid content-end text-left mt-6 sm:mt-0"> <div class="sm:flex sm:items-center justify-center"> <div class="mr-2 w-[50px]"> <svg xmlns="http://www.w3.org/2000/svg" x="0" y="0" width="50" height="50" viewB
61ox="0, 0, 200, 200"> <g id="Background"> <rect x="0" y="0" width="200" height="200" fill="#000000" fill-opacity="0"></rect> </g> <defs> <linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="123.37" y1="196.595" x2="76.63" y2="3.405"> <stop offset="0" stop-color="#FF5B99"></stop> <stop offset="1" stop-color="#BF1678"></stop> </linearGradient> </defs> <g id="Layer_1"> <path d="M190.3,63.77 L190.3,136.23 C190.3,146.04 185.025,155.18 176.525,160.09 L113.775,196.32 C109.525,198.775 104.765,200 100,200 C95.235,200 90.475,198.775 86.225,196.32 L23.475,160.09 C14.975,155.18 9.7,146.04 9.7,136.23 L9.7,63.77 C9.7,53.96 14.975,44.815 23.475,39.91 L86.225,3.68 C94.725,-1.225 105.275,-1.225 113.775,3.68 L176.525,39.91 C185.025,44.815 190.3,53.96 190.3,63.77" fill="url(#Gradient_1)"></path> <path d="M58.97,153.555 L58.97,46.445 L81.38,46.445 L81.38,85.46 L118.555,85.46 L118.555,46.445 L141.03,46.445 L141.03,153.555 L118.555,153.555 L118.555,107 L81.38,107 L81.38,153.555 L58.97,153.555 z" fill="#FFFFFF"></path> </g> </svg> </div> <div> <span class="text-xs text-gray-500">© <span class="copyright-date">2025</span> <a href="https://smarthugo.dev" class="hover:underline">Smart Hugo</a>.<br> 62All Rights Reserved. 63</span> </div> </div> </div> </div> </div> </footer>
63<script> 64 function attachEvent(selector, event, fn) { 65 const matches = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; 66 if (matches && matches.length) { 67 matches.forEach((element) => { 68 element.addEventListener(event, (e) => fn(e, element), false); 69 }); 70 } 71 } 72 73 const onLoad = function () { 74 function attachHashLinkClickEvent() { 75 attachEvent('a', 'click', function (event, element) { 76 if (element.hash) { 77 event.preventDefault(); 78 const linkedElement = document.querySelector(element.hash); 79 linkedElement.scrollIntoView(); 80 } 81 }); 82 } 83 84 function attachCarouselClickEvents() { 85 const carousel = document.querySelector('#screenshot-carousel'); 86 let currentItemIndex = 0; 87 const imageItems = carousel.querySelectorAll('[data-carousel-item]'); 88 const prevButton = carousel.querySelector('[data-carousel-prev]'); 89 const nextButton = carousel.querySelector('[data-carousel-next]'); 90 prevButton.addEventListener('click', () => { 91 const prevIndex = (currentItemIndex - 2 + imageItems.length) % imageItems.length; 92 const currentIndex = (currentItemIndex - 1 + imageItems.length) % imageItems.length; 93 const nextIndex = currentItemIndex; 94 showItem(prevIndex, currentIndex, nextIndex); 95 currentItemIndex = currentIndex; 96 }); 97 nextButton.addEventListener('click', () => { 98 const prevIndex = currentItemIndex; 99 const currentIndex = (currentItemIndex + 1 + imageItems.length) % imageItems.length; 100 const nextIndex = (currentItemIndex + 2 + imageItems.length) % imageItems.length; 101 showItem(prevIndex, currentIndex, nextIndex); 102 currentItemIndex = currentIndex; 103 }); 104 105 const commonItemClasses = 'duration-500 ease-in-out absolute inset-0 transition-transform transform'; 106 107 function showItem(prevIndex, currentIndex, nextIndex) { 108 for (let i = 0; i < imageItems.length; i++) { 109 const itemClasses = imageItems[i].classList; 110 switch (i) { 111 case prevIndex: 112 itemClasses.value = `${commonItemClasses} z-30 -translate-x-full z-10`; 113 break; 114 case currentIndex: 115 itemClasses.value = `${commonItemClasses} z-20 translate-x-0 z-30`; 116 break; 117 case nextIndex: 118 itemClasses.value = `${commonItemClasses} z-10 translate-x-full z-20`; 119 break; 120 default: 121 itemClasses.value = `${commonItemClasses} z-30 -translate-x-full z-10 hidden`; 122 } 123 } 124 } 125 } 126 127 function attachTogglePricingTypeClickEvent() { 128 let isOrganizations = true; 129 const organizationsEnabledClass = 'translate-x-0'; 130 const individualsEnabledClass = 'translate-x-full'; 131 const disabledSwitcherButtonClasses = 'text-slate-500'; 132 attachEvent('.pricing-switcher button', 'click', function (event, element) { 133 let organizationsButtonClicked = element.classList.contains('organizations-button'); 134 if (organizationsButtonClicked && isOrganizations || !organizationsButtonClicked && !isOrganizations) { 135 return; 136 } 137 const pricingElements = document.querySelectorAll('.pricing'); 138 pricingElements.forEach((pricingElement) => { 139 const switcherMarkerClasses = pricingElement.querySelector('.switcher-marker').classList; 140 const organizationsButtonClasses = pricingElement.querySelector('.organizations-button').classList; 141 const individualsButtonClasses = pricingElement.querySelector('.individuals-button').classList; 142 const organizationsPricingClasses = pricingElement.querySelector('.pricing-organizations').classList; 143 const individualsPricingClasses = pricingElement.querySelector('.pricing-individuals').classList; 144 if (organizationsButtonClicked) { 145 isOrganizations = true; 146 switcherMarkerClasses.remove(individualsEnabledClass); 147 switcherMarkerClasses.add(organizationsEnabledClass);
148 organizationsButtonClasses.remove(disabledSwitcherButtonClasses); 149 individualsButtonClasses.add(disabledSwitcherButtonClasses); 150 organizationsPricingClasses.remove('hidden'); 151 individualsPricingClasses.add('hidden'); 152 } else { 153 isOrganizations = false; 154 switcherMarkerClasses.remove(organizationsEnabledClass); 155 switcherMarkerClasses.add(individualsEnabledClass); 156 organizationsButtonClasses.add(disabledSwitcherButtonClasses); 157 individualsButtonClasses.remove(disabledSwitcherButtonClasses); 158 individualsPricingClasses.remove('hidden'); 159 organizationsPricingClasses.add('hidden'); 160 } 161 }); 162 }); 163 } 164 165 function attachSelectLicenseNumberEvent() { 166 attachEvent('.license-number-selector', 'change', function (event, element) { 167 const ctaBlock = element.closest('.call-to-action'); 168 if (ctaBlock) { 169 const link = ctaBlock.querySelector('a'); 170 const oldLink = link.href; 171 link.href = oldLink.replace(/quantity=\d+/g, `quantity=${element.value}`); 172 } 173 }); 174 } 175 176 attachHashLinkClickEvent(); 177 attachTogglePricingTypeClickEvent(); 178 attachSelectLicenseNumberEvent(); 179 attachCarouselClickEvents(); 180 }; 181 window.onload = onLoad; 182 document.addEventListener('astro:after-swap', () => { 183 onLoad(); 184 }); 185</script>
185 </body> </html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.