PageSourceSearch

https://gvozdik.base44.app/stories

html gvozdik.base44.app collected 2026-10-03 03:14:10 UTC 14,808 bytes, 183 lines download raw bytes

1<!DOCTYPE html>
2<html lang="ru">
3 <head>
4  <meta charset="utf-8"/>
5  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
6  <meta content="Stories on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает." name="description"/>
7  <meta content="noindex, follow, max-image-preview:large" name="robots"/>
8  <meta content="ru_RU" property="og:locale"/>
9  <meta content="website" property="og:type"/>
10  <meta content="Свадебный фотограф Гвоздик Дмитрий Москва Смоленск " property="og:site_name"/>
11  <link href="/manifest.json" rel="manifest"/>
12  <title>
13   Stories | Свадебный фотограф Гвоздик Дмитрий Москва Смоленск
14  </title>
15  
15<script crossorigin="" src="/assets/index-YnQurNO1.js" type="module">
16  </script>
16
17  <link crossorigin="" href="/assets/index-ufcU50FU.css" rel="stylesheet"/>
18  <meta content="Stories | Свадебный фотограф Гвоздик Дмитрий Москва Смоленск" property="og:title"/>
19  <meta content="Stories on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает." property="og:description"/>
20  <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/68d1708393190cd797d55453/189c84140_XXXL.webp?width=1200&amp;height=630&amp;resize=contain" property="og:image"/>
21  <meta content="https://gvozdik.base44.app/stories" property="og:url"/>
22  <meta content="Stories | Свадебный фотограф Гвоздик Дмитрий Москва Смоленск" name="twitter:title"/>
23  <meta content="Stories on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает." name="twitter:description"/>
24  <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/68d1708393190cd797d55453/189c84140_XXXL.webp?width=1200&amp;height=630&amp;resize=contain" name="twitter:image"/>
25  <meta content="summary_large_image" name="twitter:card"/>
26  <meta content="https://gvozdik.base44.app/stories" name="twitter:url"/>
27  
27<script>
28   (function () {
29  var titles = {"/": "\u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a ", "/about": "About | \u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a ", "/contacts": "Contacts | \u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d\u0441", "/services": "Services | \u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d\u0441", "/stories": "Stories | \u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a", "/portfolio": "Portfolio | \u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d", "/story": "Story | \u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a ", "/clients": "Clients | \u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a", "/clientgallery": "Client Gallery | \u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421", "/admin": "Admin | \u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a ", "/home": "\u0421\u0432\u0430\u0434\u0435\u0431\u043d\u044b\u0439 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444 \u0413\u0432\u043e\u0437\u0434\u0438\u043a \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041c\u043e\u0441\u043a\u0432\u0430 \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a "};
30  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
31  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
32  var dashed = function (s) {
33    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
34  };
35  var decode = function (s) {
36    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
37    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
38    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
39  };
40  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
41  var norm = function (path) {
42    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
43    return parts.length ? "/" + parts.join("/") : "/";
44  };
45  var lastPath = location.pathname, written = document.title, on = true;
46  var sync = function () {
47    // Path only: a hash/query change is the same page, and the SDK strips its own auth
48    // params with replaceState -- neither must clobber a server-rendered title in place.
49    if (!on || location.pathname === lastPath) return;
50    lastPath = location.pathname;
51    if (document.title !== written) { on = false; return; }
52    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
53    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
54    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
55    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
56    // a redirect landing on an unmapped path would bake the placeholder into the stored
57    // snapshot. Leaving the title alone degrades to today's behavior instead.
58    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
59    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
60    // dashes there, and the client cannot tell the two apart. The map emits every reachable
61    // shape per segment instead (_client_url_variants).
62    var title = titles[norm(location.pathname)];
63    if (title === undefined) return;
64    document.title = title;
65    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
66    // keeping the assigned string would make the next sync() read our own write as the app's.
67    written = document.title;
68  };
69  var wrap = function (fn) {
70    // The history entry is already pushed by the time sync() runs, so a throw here would
71    // surface inside the host app's router and break navigation. This is injected into apps
72    // we cannot test, so it swallows rather than trusting the trace.
73    return function () {
74      var r = fn.apply(this, arguments);
75      try { sync(); } catch (e) {}
76      return r;
77    };
78  };
79  history.pushState = wrap(history.pushState);
80  history.replaceState = wrap(history.replaceState);
81  window.addEventListener("popstate", sync);
82})();
83  </script>
83
84  <meta content="yes" name="mobile-web-app-capable"/>
85  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
86  <meta content="Свадебный фотограф Гвоздик Дмитрий Москва Смоленск " name="apple-mobile-web-app-title"/>
87  <link href="https://gvozdik.base44.app/stories" rel="canonical"/>
88  
88<script data-seo-source="builder" type="application/ld+json">
89   {"name": "Свадебный фотограф Гвоздик Дмитрий Москва Смоленск ", "@context": "https://schema.org", "@type": "WebSite", "url": "https://gvo3d.com"}
90  </script>
90
91  
91<script data-seo-source="builder" type="application/ld+json">
92   {"name": "Свадебный фотограф Гвоздик Дмитрий Москва Смоленск ", "logo": "https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/68d1708393190cd797d55453/189c84140_XXXL.webp", "@context": "https://schema.org", "@type": "Organization", "url": "https://gvo3d.com"}
93  </script>
93
94  
94<script data-seo-source="builder" type="application/ld+json">
95   {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://gvozdik.base44.app/"}, {"@type": "ListItem", "position": 2, "name": "Stories | Свадебный фотограф Гвоздик Дмитрий Москва Смоленск", "item": "https://gvozdik.base44.app/stories"}]}
96  </script>
96
97 </head>
98 <body>
99  <div id="root">
100   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
101    <main>
102     <header>
103      <h1>
104       Stories | Свадебный фотограф Гвоздик Дмитрий Москва Смоленск
105      </h1>
106      <p>
107       Stories on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
108      </p>
109     </header>
110     <nav aria-label="Pages">
111      <h2>
112       Pages
113      </h2>
114      <ul>
115       <li>
116        <a href="/">
117         Home
118        </a>
119       </li>
120       <li>
121        <a href="/about">
122         About
123        </a>
124        — About on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
125       </li>
126       <li>
127        <a href="/contacts">
128         Contacts
129        </a>
130        — Contacts on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
131       </li>
132       <li>
133        <a href="/services">
134         Services
135        </a>
136        — Services on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
137       </li>
138       <li>
139        <a href="/stories">
140         Stories
141        </a>
142        — Stories on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
143       </li>
144       <li>
145        <a href="/portfolio">
146         Portfolio
147        </a>
148        — Portfolio on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
149       </li>
150       <li>
151        <a href="/story">
152         Story
153        </a>
154        — Story on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
155       </li>
156       <li>
157        <a href="/clients">
158         Clients
159        </a>
160        — Clients on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
161       </li>
162       <li>
163        <a href="/clientgallery">
164         Client Gallery
165        </a>
166        — Client Gallery on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
167       </li>
168       <li>
169        <a href="/admin">
170         Admin
171        </a>
172        — Admin on Свадебный фотограф Гвоздик Дмитрий Москва Смоленск . Ищете свадебного фотографа в Москве, Смоленске и Питере? Дмитрий Гвоздик снимает.
173       </li>
174      </ul>
175     </nav>
176    </main>
177   </div>
178  </div>
179  <!-- ChatBot.AI Widget -->
180  
180<script async="" src="https://preview--agent-craft-ai.base44.app/api/functions/serveWidget?agentId=6a725440fcaea9a5ea889f69&amp;v=1785877573581">
181  </script>
181
182 </body>
183</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.