Files
aspekter/z51-pug-builder/data-dev.backup.20260220_004027/z51/letters/aeec6267-cbab-4381-a6f9-ad3f19867dbd.json
s.zotov 718821fdd6 Initial commit: ASPEKTER — визуальный конструктор email-рассылок
- z51-pug-builder: Svelte 5 SPA, визуальный редактор Pug-писем
- email-gen: Node.js рендерер Pug→HTML через email-templates + Juice
- email-gen-api: HTTP сервер рендеринга (порт 8787)
- coin-scout: сервис подбора монет из фидов
- Docker Compose для dev/prod
- Nginx конфиг с SSL для app.aspekter.ru
2026-04-13 11:36:39 +05:00

416 lines
22 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"id": "aeec6267-cbab-4381-a6f9-ad3f19867dbd",
"name": "19-02-2026 Э-э-э, ты кто такой?",
"title": "Э-э-э, ты кто такой?",
"date": "2026-02-19",
"createdAt": "2026-02-16T15:28:03.855Z",
"updatedAt": "2026-02-18T11:08:57.426Z",
"blocks": [
{
"name": "Заголовок зеленый",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td(align=\"center\")\n span.text.smallHeader.bold.greenText Здаров, легенда!",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5
}
],
"addSpacing": true,
"spacing": 20
},
{
"name": "Текст",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td \n span.text.groceryText Ситуация: ты опять забрал MVP раунда, законтрил сложнейший мув или поднялся на новый ранг, а в голове вместо «красава, я крут» — «Повезло», «Я тут случайно» и т.д. Знакомо?",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5,
"paragraphIndex": 1,
"removable": false
}
],
"addSpacing": true
},
{
"name": "Банер",
"content": "tr \n td(align=\"center\") \n a(href=\"https://z51.ru\" target=\"_blank\")\n img(src=\"https://z51.ru/upload/email/newsletter-2026/02-19/1.png\" alt=\"pic\" style=\"display: block\" width=\"600\")",
"collapsed": false,
"schema": [
{
"type": "href",
"label": "Ссылка",
"lineIndex": 2,
"occurrence": 0
},
{
"type": "src",
"label": "Картинка",
"lineIndex": 3,
"occurrence": 0
}
],
"addSpacing": true
},
{
"name": "Текст",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td \n span.text.groceryText Поздравляю! Ты не кривой и косой нуб, хотя... Нет! У тебя синдром самозванца, и сегодня папочка Баззи его вылечит!\n +spacerLine(20)\n tr\n td\n span.text.groceryText А ты пока креслица глянь, я старался:",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5,
"paragraphIndex": 1,
"removable": false
},
{
"type": "text",
"label": "Текст",
"lineIndex": 9,
"paragraphIndex": 2,
"removable": true
}
],
"addSpacing": true
},
{
"name": "Кнопка",
"content": "tr \n td(align=\"center\").paddingWrapper \n +buttonRounded(\"Кресла чееек!\", \"https://z51.ru/catalog/\", 525, 42, \"#c9e905\", 18, \"#000000\", 4, \"#c9e905\").bold.text",
"collapsed": false,
"schema": [
{
"type": "mixin-text",
"label": "Текст кнопки",
"lineIndex": 2,
"argIndex": 0
},
{
"type": "mixin-href",
"label": "Ссылка кнопки",
"lineIndex": 2,
"argIndex": 1
}
],
"addSpacing": true
},
{
"name": "3 товара в ряд",
"content": "+products3inRow({\n '148688': {\n imageSrc: '',\n name: 'ARENA PRO',\n category: 'Только для ПРО',\n oldprice: '25990',\n price: '20012',\n discount: '23',\n },\n '143807': {\n imageSrc: '',\n name: 'ARMADA Royal',\n category: 'Для настоящих ценителей',\n oldprice: '30990',\n price: '24792',\n discount: '20',\n },\n '143771': {\n imageSrc: '',\n name: 'BASTION',\n category: 'Мягкое и приятное',\n oldprice: '24490',\n price: '18857',\n discount: '23',\n },\n})",
"collapsed": false,
"schema": [
{
"type": "raw",
"label": "Код блока"
}
],
"addSpacing": true
},
{
"name": "Разделитель",
"content": "+dividerZ(525, 2)\n+spacerLine(40)",
"collapsed": false,
"schema": [],
"addSpacing": true
},
{
"name": "Заголовок зеленый",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td(align=\"center\")\n span.text.smallHeader.bold.greenText Для начала",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5
}
],
"addSpacing": true,
"spacing": 20
},
{
"name": "Текст",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td \n span.text.groceryText Если ты узнаешь себя в этих ситуациях:\n",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5,
"paragraphIndex": 1,
"removable": false
}
],
"addSpacing": true,
"spacing": 20
},
{
"name": "Маркированный список",
"content": "\ntr \n td.paddingWrapper\n +defaultTable(\"100%\")\n tr \n +tdFixed(12, \"center\", \"top\").markerPadding\n img(src=\"https://z51.ru/upload/email/master-template/markers/marker.png\" alt=\"\" width=\"12\")\n +tdFixed(16)\n td \n span.text.groceryText <span style=\"font-weight: 700;\">&laquo;Мне просто повезло&raquo;</span><br>Ты&nbsp;выиграл клатч 1v3, но&nbsp;искренне считаешь, что противники были &laquo;слепыми&raquo; или у&nbsp;них лаги, и&nbsp;твой скилл тут вообще ни&nbsp;при чем.\n tr \n +tdFixed(12, \"center\", \"top\").markerPadding\n img(src=\"https://z51.ru/upload/email/master-template/markers/marker.png\" alt=\"\" width=\"12\")\n +tdFixed(16)\n td \n span.text.groceryText <span style=\"font-weight: 700;\">&laquo;Я&nbsp;не&nbsp;заслужил этот ранг&raquo;</span><br>Ты&nbsp;поднялся на&nbsp;новый уровень, но&nbsp;каждую игру ждешь, что &laquo;вот сейчас все поймут, что я&nbsp;тут случайно&raquo;, и&nbsp;каждая ошибка воспринимается как доказательство.\n tr \n +tdFixed(12, \"center\", \"top\").markerPadding\n img(src=\"https://z51.ru/upload/email/master-template/markers/marker.png\" alt=\"\" width=\"12\")\n +tdFixed(16)\n td \n span.text.groceryText <span style=\"font-weight: 700;\">&laquo;Они просто меня переоценивают&raquo;</span><br>Тиммейты хвалят, друзья зовут в&nbsp;пати, но&nbsp;внутри&nbsp;&mdash; страх, что ты&nbsp;их&nbsp;подведешь, и&nbsp;они увидят &laquo;настоящего тебя&raquo;.",
"collapsed": false,
"schema": [
{
"type": "list-item",
"label": "Пункт",
"lineIndex": 9,
"itemIndex": 0,
"removable": false
},
{
"type": "list-item",
"label": "Пункт",
"lineIndex": 15,
"itemIndex": 1,
"removable": true
},
{
"type": "list-item",
"label": "Пункт",
"lineIndex": 21,
"itemIndex": 2,
"removable": true
}
],
"addSpacing": true,
"spacing": 20
},
{
"name": "Текст",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td \n span.text.groceryText Мой друг, в&nbsp;таких случаях ты&nbsp;имеешь дело с&nbsp;синдромом самозванца. Хорошая новость: с&nbsp;ним можно и&nbsp;нужно бороться!",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5,
"paragraphIndex": 1,
"removable": false
}
],
"addSpacing": true
},
{
"name": "Банер",
"content": "tr \n td(align=\"center\") \n a(href=\"https://z51.ru\" target=\"_blank\")\n img(src=\"https://z51.ru/upload/email/newsletter-2026/02-19/2.png\" alt=\"pic\" style=\"display: block\" width=\"600\")",
"collapsed": false,
"schema": [
{
"type": "href",
"label": "Ссылка",
"lineIndex": 2,
"occurrence": 0
},
{
"type": "src",
"label": "Картинка",
"lineIndex": 3,
"occurrence": 0
}
],
"addSpacing": true
},
{
"name": "Разделитель",
"content": "+dividerZ(525, 2)\n+spacerLine(40)",
"collapsed": false,
"schema": [],
"addSpacing": true
},
{
"name": "Заголовок зеленый",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td(align=\"center\")\n span.text.smallHeader.bold.greenText Инструменты",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5
}
],
"addSpacing": true,
"spacing": 20
},
{
"name": "Текст",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td \n span.text.groceryText Вот тебе советы от&nbsp;Баззи, чтобы перестать себя недооценивать.\n +spacerLine(20)\n tr\n td\n span.text.groceryText 1. После каждой игры (даже проигранной!) запиши ОДНО конкретное действие, которое ты&nbsp;сделал хорошо. Через неделю перечитай&nbsp;&mdash; это твой реальный скилл-лист.\n +spacerLine(20)\n tr\n td\n span.text.groceryText 2. Пересмотри свой проигрыш, но&nbsp;не&nbsp;с&nbsp;позиции &laquo;где я&nbsp;облажался?&raquo;, а&nbsp;&laquo;что я&nbsp;пытался сделать, и&nbsp;почему это не&nbsp;сработало?&raquo;. Самый частый ответ: не&nbsp;&laquo;я&nbsp;тупой&raquo;, а&nbsp;&laquo;я&nbsp;рискнул, но&nbsp;соперник сыграл лучше&raquo;.\n +spacerLine(20)\n tr\n td\n span.text.groceryText 3. Забудь фразы: &laquo;мне повезло&raquo;, &laquo;я&nbsp;случайно&raquo;, &laquo;это не&nbsp;считается&raquo;, &laquo;они просто слабые&raquo;. Замени их&nbsp;на: &laquo;я&nbsp;справился&raquo;, &laquo;я&nbsp;выбрал правильно&raquo;, &laquo;я&nbsp;готов к&nbsp;следующему вызову&raquo;. Это изменит твою менталку, вот увидишь!",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5,
"paragraphIndex": 1,
"removable": false
},
{
"type": "text",
"label": "Текст",
"lineIndex": 9,
"paragraphIndex": 2,
"removable": true
},
{
"type": "text",
"label": "Текст",
"lineIndex": 13,
"paragraphIndex": 3,
"removable": true
},
{
"type": "text",
"label": "Текст",
"lineIndex": 17,
"paragraphIndex": 4,
"removable": true
}
],
"addSpacing": true
},
{
"name": "Разделитель",
"content": "+dividerZ(525, 2)\n+spacerLine(40)",
"collapsed": false,
"schema": [],
"addSpacing": true
},
{
"name": "Заголовок зеленый",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td(align=\"center\")\n span.text.smallHeader.bold.greenText Ну вот!",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5
}
],
"addSpacing": true,
"spacing": 20
},
{
"name": "Текст",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td \n span.text.groceryText Стало лучше? Задышалось легче? Потому что мы&nbsp;избавились от&nbsp;главного душнилы!\n +spacerLine(20)\n tr\n td\n span.text.groceryText А&nbsp;в&nbsp;награду твоему зеленому психологу кресла глянь:",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5,
"paragraphIndex": 1,
"removable": false
},
{
"type": "text",
"label": "Текст",
"lineIndex": 9,
"paragraphIndex": 2,
"removable": true
}
],
"addSpacing": true
},
{
"name": "Кнопка",
"content": "tr \n td(align=\"center\").paddingWrapper \n +buttonRounded(\"одним глазком...\", \"https://z51.ru/catalog/\", 525, 42, \"#c9e905\", 18, \"#000000\", 4, \"#c9e905\").bold.text",
"collapsed": false,
"schema": [
{
"type": "mixin-text",
"label": "Текст кнопки",
"lineIndex": 2,
"argIndex": 0
},
{
"type": "mixin-href",
"label": "Ссылка кнопки",
"lineIndex": 2,
"argIndex": 1
}
],
"addSpacing": true
},
{
"name": "3 товара в ряд",
"content": "+products3inRow({\n '146596': {\n imageSrc: '',\n name: 'Monarch X-Weave',\n category: '№1 по стилю',\n },\n '141259': {\n imageSrc: '',\n name: 'CORE Light X-Weave',\n category: 'Базовый уровень комфорта',\n oldprice: '19990',\n price: '15392',\n discount: '23',\n },\n '142511': {\n imageSrc: '',\n name: 'FREELANCER W8',\n category: 'Флагманский уровень комфорта',\n oldprice: '69990',\n price: '53892',\n discount: '23',\n },\n})",
"collapsed": false,
"schema": [
{
"type": "raw",
"label": "Код блока"
}
],
"addSpacing": true
},
{
"name": "Блок преимуществ",
"content": "tr \n td.paddingWrapperBig\n +defaultTable(\"100%\")\n tr \n td(align=\"center\")\n span.text.smallHeader.bold.greenText Почему выбирают товары у Баззи?\n\n+spacerLine(40)\n\ntr \n td.paddingWrapper \n +defaultTable(\"100%\")\n tr \n td(width=\"250\" valign=\"top\")\n +defaultTable(\"250\")\n //Unordered List\n tr \n td\n +defaultTable(\"100%\")\n tr \n +tdFixed(12, \"center\", \"top\").markerPadding\n img(src=\"https://z51.ru/upload/email/master-template/markers/marker.png\" alt=\"pic\" width=\"12\")\n +tdFixed(10)\n td \n span.groceryText <span style=\"font-weight: 700; color: #DAFD04;\">Официальный магазин</span><br />В наличии всё самое вкусное от ZONE&nbsp;51 — кресла, столы, периферия и аксессуары\n +spacerLine(20)\n tr \n +tdFixed(12, \"center\", \"top\").markerPadding\n img(src=\"https://z51.ru/upload/email/master-template/markers/marker.png\" alt=\"pic\" width=\"12\")\n +tdFixed(10)\n td \n span.groceryText <span style=\"font-weight: 700; color: #DAFD04;\">Первоклассные и&nbsp;надежные продукты</span><br />Из качественных, инопланетных и безопасных материалов для себя, родных и&nbsp;друзей. Не&nbsp;понравилось? Можешь вернуть в&nbsp;течение 28 дней с&nbsp;даты приобретения\n +tdFixed(36)\n td(width=\"250\" valign=\"top\")\n +defaultTable(\"250\")\n tr \n td\n +defaultTable(\"100%\")\n tr \n +tdFixed(12, \"center\", \"top\").markerPadding\n img(src=\"https://z51.ru/upload/email/master-template/markers/marker.png\" alt=\"pic\" width=\"12\")\n +tdFixed(10)\n td \n span.groceryText <span style=\"font-weight: 700; color: #DAFD04;\">Новинки и эксклюзивы</span><br />Я постоянно потею над&nbsp;новыми товарами, которые можно приобрести только здесь\n +spacerLine(20)\n tr \n +tdFixed(12, \"center\", \"top\").markerPadding\n img(src=\"https://z51.ru/upload/email/master-template/markers/marker.png\" alt=\"pic\" width=\"12\")\n +tdFixed(10)\n td \n span.groceryText <span style=\"font-weight: 700; color: #DAFD04;\">Клиенто-ориентированность</span><br />Даю до 3 лет гарантии на&nbsp;свой товар +1 год за&nbsp;покупку в&nbsp;фирменном магазине ZONE&nbsp;51 (онлайн и&nbsp;офлайн), а&nbsp;человеки у&nbsp;трубки помогут быстро обкашлять любые вопросы\n+spacerLine(40)\n\ntr \n td(align=\"center\").paddingWrapper \n +buttonRounded(\"Залетай к нам!\", \"https://z51.ru/\", 300, 42, \"#c9e905\", 18, \"#000000\", 4, \"#c9e905\").bold.text",
"collapsed": false,
"schema": [
{
"type": "text",
"label": "Текст",
"lineIndex": 5
},
{
"type": "src",
"label": "Картинка",
"lineIndex": 21,
"occurrence": 0
},
{
"type": "text",
"label": "Текст",
"lineIndex": 24
},
{
"type": "src",
"label": "Картинка",
"lineIndex": 28,
"occurrence": 0
},
{
"type": "text",
"label": "Текст",
"lineIndex": 31
},
{
"type": "src",
"label": "Картинка",
"lineIndex": 40,
"occurrence": 0
},
{
"type": "text",
"label": "Текст",
"lineIndex": 43
},
{
"type": "src",
"label": "Картинка",
"lineIndex": 47,
"occurrence": 0
},
{
"type": "text",
"label": "Текст",
"lineIndex": 50
},
{
"type": "mixin-text",
"label": "Текст кнопки",
"lineIndex": 55,
"argIndex": 0
},
{
"type": "mixin-href",
"label": "Ссылка кнопки",
"lineIndex": 55,
"argIndex": 1
}
],
"addSpacing": false
}
]
}