PageSourceSearch

https://www.smarthugo.dev/cookies

html smarthugo.dev collected 2026-10-05 10:30:28 UTC 17,571 bytes, 185 lines download raw bytes

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&#39;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&#39;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.