- 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
416 lines
22 KiB
JSON
416 lines
22 KiB
JSON
{
|
||
"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;\">«Мне просто повезло»</span><br>Ты выиграл клатч 1v3, но искренне считаешь, что противники были «слепыми» или у них лаги, и твой скилл тут вообще ни при чем.\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;\">«Я не заслужил этот ранг»</span><br>Ты поднялся на новый уровень, но каждую игру ждешь, что «вот сейчас все поймут, что я тут случайно», и каждая ошибка воспринимается как доказательство.\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;\">«Они просто меня переоценивают»</span><br>Тиммейты хвалят, друзья зовут в пати, но внутри — страх, что ты их подведешь, и они увидят «настоящего тебя».",
|
||
"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 Мой друг, в таких случаях ты имеешь дело с синдромом самозванца. Хорошая новость: с ним можно и нужно бороться!",
|
||
"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 Вот тебе советы от Баззи, чтобы перестать себя недооценивать.\n +spacerLine(20)\n tr\n td\n span.text.groceryText 1. После каждой игры (даже проигранной!) запиши ОДНО конкретное действие, которое ты сделал хорошо. Через неделю перечитай — это твой реальный скилл-лист.\n +spacerLine(20)\n tr\n td\n span.text.groceryText 2. Пересмотри свой проигрыш, но не с позиции «где я облажался?», а «что я пытался сделать, и почему это не сработало?». Самый частый ответ: не «я тупой», а «я рискнул, но соперник сыграл лучше».\n +spacerLine(20)\n tr\n td\n span.text.groceryText 3. Забудь фразы: «мне повезло», «я случайно», «это не считается», «они просто слабые». Замени их на: «я справился», «я выбрал правильно», «я готов к следующему вызову». Это изменит твою менталку, вот увидишь!",
|
||
"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 Стало лучше? Задышалось легче? Потому что мы избавились от главного душнилы!\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 '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 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;\">Первоклассные и надежные продукты</span><br />Из качественных, инопланетных и безопасных материалов для себя, родных и друзей. Не понравилось? Можешь вернуть в течение 28 дней с даты приобретения\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 />Я постоянно потею над новыми товарами, которые можно приобрести только здесь\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 лет гарантии на свой товар +1 год за покупку в фирменном магазине ZONE 51 (онлайн и офлайн), а человеки у трубки помогут быстро обкашлять любые вопросы\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
|
||
}
|
||
]
|
||
} |