При помощи этой библиотеки можно сгенерировать rss ленту для яндекс турбо страниц.
Для генерации самих страниц также реализован генератор контента со всей необходимой разметкой.
Добавление элементов в контент турбо страницы:
Документация Todo:
- CallbackForm
- Cards
- Carousel
- Comments
- Feed
- Feedback
- Fold
- Form
- Gallery
- Histogram
- Image
- InPage
- Link
- Rating
- Search
- Share
- Slider
- Snippet
- Video
- Item
- Turbo
composer require modulebz/yandex_turbo_rss_xml
Тут приведены все возможные функции для генерации
<?php
use ModuleBZ\YandexTurbo;
use ModuleBZ\YandexTurbo\Content;
use ModuleBZ\YandexTurbo\Element\Accordion;
use ModuleBZ\YandexTurbo\Element\Ad;
use ModuleBZ\YandexTurbo\Element\Audio;
use ModuleBZ\YandexTurbo\Element\Button;
use ModuleBZ\YandexTurbo\Element\CallbackForm;
use ModuleBZ\YandexTurbo\Element\Card;
use ModuleBZ\YandexTurbo\Element\Cards;
use ModuleBZ\YandexTurbo\Element\Carousel;
use ModuleBZ\YandexTurbo\Element\Comment;
use ModuleBZ\YandexTurbo\Element\Comments;
use ModuleBZ\YandexTurbo\Element\Feed;
use ModuleBZ\YandexTurbo\Element\Feedback;
use ModuleBZ\YandexTurbo\Element\FeedItem;
use ModuleBZ\YandexTurbo\Element\Fold;
use ModuleBZ\YandexTurbo\Element\Form;
use ModuleBZ\YandexTurbo\Element\FormRadioOption;
use ModuleBZ\YandexTurbo\Element\Gallery;
use ModuleBZ\YandexTurbo\Element\Histogram;
use ModuleBZ\YandexTurbo\Element\HistogramItem;
use ModuleBZ\YandexTurbo\Element\Image;
use ModuleBZ\YandexTurbo\Element\InPage;
use ModuleBZ\YandexTurbo\Element\Rating;
use ModuleBZ\YandexTurbo\Element\Search;
use ModuleBZ\YandexTurbo\Element\Share;
use ModuleBZ\YandexTurbo\Element\Slider;
use ModuleBZ\YandexTurbo\Element\Snippet;
use ModuleBZ\YandexTurbo\Element\Video;
use ModuleBZ\YandexTurbo\Enum\EFeedbackStick;
use ModuleBZ\YandexTurbo\Enum\EFeedItemThumbPosition;
use ModuleBZ\YandexTurbo\Enum\EFeedItemThumbRatio;
use ModuleBZ\YandexTurbo\Enum\EFeedLayout;
use ModuleBZ\YandexTurbo\Item;
include_once "../vendor/autoload.php";
$turbo = (new YandexTurbo())
// Добавление заголовка
->setTitle('Первый тест')
// Добавление описания
->setDescription('Описание канала')
// Указание ссылки на сайт
->setLink( 'https://gvozdikov.net/')
// Установка языка
->setLanguage( \ModuleBZ\ISO\enum\ISO639_1::_RU)
// Добавление различных метрик
// Добавление метрики: Яндекс.Метрика
->addYandexMetrica(5000,['a'=>'b'])
// Добавление метрики: LiveInternet
->addLiveInternet('hello')
// Добавление метрики: GoogleAnalytics
->addGoogleAnalytics(50005)
// Добавление метрики: Mail.ru
->addMailRu(7500)
// Добавление метрики: Rambler Top
->addRamblerTop(10000)
// Добавление метрики: Mediascope
->addMediascope(12000)
// Добавление метрики: Подключение собственной метрики
->addCustomMetric('https://ya.ru/')
// Подключение реклмного блока яндекса
->addAdNetworkYandex('идентификатор блока','first_ad_place')
// Подключение реклмного блока adfox
->addAdNetworkAdFox('second_ad_place',"<div id=\"идентификатор контейнера\"></div><script> window.Ya.adfoxCode.create({ ownerId: 123456, containerId: 'идентификатор контейнера', params: { pp: 'g', ps: 'cmic', p2: 'fqem' } }); </script>")
;
// Добавляем новую статью в RSS
$turbo->addItem(
(new Item())
// Указываем заголовок статьи
->setHeaderH1('Первая новость')
// Указываем подзаголовок статьи
->setHeaderH2('Подзаголовок')
// Указываем адрес картинки для статьи в заголовок
->setHeaderImg('https://gvozdikov.net/content/gvozdikov/pics/avatar.jpg')
// Указываем пункты меню
->addHeaderMenu('https://gvozdikov.net','Пукнт 1')
->addHeaderMenu('https://gvozdikov.net','Пукнт 2')
->addHeaderMenu('https://gvozdikov.net','Пукнт 3')
// Указываем хлебные крошки статьи
->addHeaderBreadcrumbs('https://gvozdikov.net','Главная')
->addHeaderBreadcrumbs('https://gvozdikov.net/usefull','Полезное')
->addHeaderBreadcrumbs('https://gvozdikov.net/usefull/page1','Страница 1')
// Указываем дату публикации
->setPubDate(time())
// Укаызваем ссылку на статью
->setLink('https://gvozdikov.net')
// Укаызваем автора статьи
->setAuthor('Виктор')
// Укзаываем, это турбо статья, по умолчанию true
->setIsTurbo(true)
// Указываем как подгружать схожие статьи
->setRelatedInfinity(true)
// Указываем схожие статьи
->addRelated('https://gvozdikov.net/about','Обо мне')
->addRelated('https://gvozdikov.net/portfolio','Портфолио','https://gvozdikov.net/content/gvozdikov/pics/avatar.jpg')
// указываем идентификатор статьи
->addMetricsYandexSchemaIdentifier(100)
// Указываем рубрики
->addMetricsBreadcrumb('https://gvozdikov.net','Главная')
// Указываем рубрики
->addMetricsBreadcrumb('https://gvozdikov.net/log','Разное')
// Указываем URL страницы-источника, который можно передать в Яндекс.Метрику.
->setTurboSource('https://source.ru')
// Указываем заголовок страницы, который можно передать в Яндекс.Метрику.
->setTurboTopic('topic')
// Задаём контент новости
->setContent( (new Content())
// Добавляем просто html inline-блоки
->addHtml('<p>Привет, меня зовут Виктор.</p>')
// Добавляем просто картинку без подписи
->addImage(new Image('https://gvozdikov.net/upload/images/acc1/1583066709_6113933_0500_95_0_1.png'))
// Добавляем просто картинку с подписью
->addImage(new Image(
'https://gvozdikov.net/upload/images/acc1/1583066709_6113933_0500_95_0_1.png'
,'Как во Flutter установить цвет текста для AppBar.'
)
)
// Добавляем просто картинку с подписью и дополнительными аттрибутыми для картинки и заголовка. Аттрибуты яндекс проигнорирует, но они могут быть нужны для версии статьи на сайте
->addImage(new Image(
'https://gvozdikov.net/upload/images/acc1/1583066709_6113933_0500_95_0_1.png'
,'Как во Flutter установить цвет текста для AppBar.'
,['alt'=>'Картинка','width'=>'200px']
,['style'=>'color:red']
)
)
// Добавляем галерею
->addGallery((new Gallery())
->addImage('https://clck.ru/FFAuR')
->addImage('https://clck.ru/FFAvn')
->setHeader('Заголовок галереи')
)
// Добавляем аудио
->addAudio(new Audio('https://clck.ru/MJY6J'))
// Добавляем видео
->addVideo((new Video(300,200,"https://clck.ru/Kiunj",15)))
// Добавляем аккардион
->addAccordion((new Accordion())
// Добавляем пункты в аккардеон
->addItem('О чём проект','<p>Это очень интересный проект</p>')
->addItem('Как оплатить','<p>Пока никак, но скоро как-нибудь можно будет</p>',true)
->addItem('Контакты','<p>Есть контакт</p>')
)
->addSlider((new Slider())
// Указываем заголовок слайдера
->setHeader('Заголовок слайдера')
// Добавляем картинку
->addImage((new Image('https://clck.ru/FFAuR')))
// Добавляем картинку с подписью
->addImage((new Image('https://clck.ru/FFAuR','Картинка с подписью')))
// Добавляем видео в слайдер. При добавлении видео в слайдер, превью картинки обязательно
->addVideo((new Video(300,200,"https://clck.ru/Kiunj",15,'https://clck.ru/FFAuR')))
// Добавляем видео с подпистб в слайдер. При добавлении видео в слайдер, превью картинки обязательно
->addVideo((new Video(300,200,"https://clck.ru/Kiunj",15,'https://clck.ru/FFAuR','Видео с подписью')))
// Добавляем рекламный блок РСЯ в слайдеры
->addTurboAdID('123456')
// Добавляем ссылку в слайдер
->addLink('https://gvozdikov.net','Читайте мой блог')
)
// Добавляем карточки на страницу
->addCards((new Cards())
// Добавляем карточку
->addCard((new Card())
// Указываем картинку в шапку
->setHeaderImage('https://clck.ru/FFAuR')
// Указываем текст в шапке
->setHeaderTitle('Заголовок карточки')
// Задаём контет в карточке
->setContent('<p>Это мой контент</p><p><b>А это </b><i>вторая </i><del>карточка</del> <ins>строка</ins></p>')
// Указываем ссылку в подвале
->setFooter('http://gvozdikov.net/','Продолжение')
// Указываем ссылку "читать ещё"
->setMore('http://gvozdikov.net/','Читать ещё')
)
// Добавляем вторую карточку для красоты примера
->addCard((new Card())
// Указываем картинку в шапку
->setHeaderImage('https://clck.ru/FFAuR')
// Указываем текст в шапке
->setHeaderTitle('Заголовок карточки')
// Задаём контет в карточке
->setContent('<p>Это мой контент</p><p><b>А это </b><i>вторая </i><del>карточка</del> <ins>строка</ins></p>')
// Указываем ссылку в подвале
->setFooter('http://gvozdikov.net/','Продолжение')
// Указываем ссылку "читать ещё"
->setMore('http://gvozdikov.net/','Читать ещё')
)
)
// Добавляем карусель
->addCarousel((new Carousel())
->setHeader('Заголовок карусели')
->addSnippet(new Snippet('Заголовок','https://clck.ru/FFAuR','https://gvozdikov.net/'))
->addSnippet(new Snippet('Второй заголовок','https://clck.ru/FFAvn','https://gvozdikov.net/'))
)
// Добавляем длинный текст, с кнопкой "читать ещё"
->addFold(new Fold('Сайт рыбатекст поможет дизайнеру, верстальщику, вебмастеру сгенерировать несколько абзацев более менее осмысленного текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях. При создании генератора мы использовали небезизвестный универсальный код речей. Текст генерируется абзацами случайным образом от двух до десяти предложений в абзаце, что позволяет сделать текст более привлекательным и живым для визуально-слухового восприятия.'))
// Добавляем вертикальный блок "Читайте также"
->addFeed((new Feed())
->setTitle('Читайте также')
->setLayout(EFeedLayout::VERTICAL)
->addItem(
(new FeedItem())
->setTitle('Заголовок')
->setDescription('Описание элемента')
->setHref('https://gvozdikov.net')
->setThumb('https://clck.ru/FFAvn')
->setThumbPosition(EFeedItemThumbPosition::TOP)
->setThumbRatio(EFeedItemThumbRatio::RATIO_4_3)
)
->addItem(
(new FeedItem())
->setTitle('Заголовок')
->setDescription('Описание элемента')
->setHref('https://gvozdikov.net')
->setThumb('https://clck.ru/FFAvn')
->setThumbPosition(EFeedItemThumbPosition::LEFT)
->setThumbRatio(EFeedItemThumbRatio::RATIO_1_1)
)
->addItem(
(new FeedItem())
->setTitle('Заголовок')
->setDescription('Описание элемента')
->setHref('https://gvozdikov.net')
->setThumb('https://clck.ru/FFAvn')
->setThumbPosition(EFeedItemThumbPosition::RIGHT)
->setThumbRatio(EFeedItemThumbRatio::RATIO_3_4)
)
)
// Добавляем горизонтальный блок "Читайте также" (элементы продублированы из предыдущего блока)
->addFeed((new Feed())
->setTitle('Читайте также горизонтально')
->setLayout(EFeedLayout::HORIZONTAL)
->addItem(
(new FeedItem())
->setTitle('Заголовок')
->setDescription('Описание элемента')
->setHref('https://gvozdikov.net')
->setThumb('https://clck.ru/FFAvn')
->setThumbRatio(EFeedItemThumbRatio::RATIO_4_3)
)
->addItem(
(new FeedItem())
->setTitle('Заголовок 2')
->setDescription('Описание элемента 2')
->setHref('https://gvozdikov.net')
->setThumb('https://clck.ru/FFAvn')
->setThumbRatio(EFeedItemThumbRatio::RATIO_4_3)
)
)
// Добавляем рекламу
->addAd((new Ad())
->setAdId('123456')
->setMobile(true)
->setDesktop(true)
)
// Добавляем рекламу InPage
->addInPage((new InPage())
->setAdId('123456')
->setInpageAdId('64654654')
)
// Добавляем кнопку, чтобы нам могли позвонить
->addButton((new Button())
->setText('Позвоните нам')
->setFormAction('tel:+7(495)77777777')
->setBackground('#222')
->setColor('#eee')
->setPrimary(true)
->setTurbo(true)
)
// Добавляем неактивную кнопку
->addButton((new Button())
->setText('Не пишите нам')
->setFormAction('mailto:[email protected]')
->setBackground('red')
->setColor('white')
->setDisabled(true)
)
// Добавляем кнопку с формой обратной связи
->addButton((new Button())
->setText('Напишите нам')
->setFormAction('mailto:[email protected]')
->setBackground('green')
->setColor('white')
->setSendTo('[email protected]')
->setAgreementCompany('ООО «Гвоздиков.нет»')
->setAgreementLink('https://gvozdikov.net/confidential/')
)
// Добавление формы поиска
->addSearch((new Search())
->setName('text')
->setPlaceholder('Давайте что-нибудь поищем')
->setAction('https://gvozdikov.net/search/?text={text}')
)
// Добавление звёздочек рейтинга
->addRating((new Rating())
->setValue(5)
->setBest(10)
)
// Добавление звёздочек рейтинга, их можно добавлять несколько
->addRating((new Rating())
->setValue(4)
->setBest(5)
)
// Добавляем кнпоку "поделиться" и расставляем кнопки в нужном нам порядке
->addShare((new Share())
->addVkontakte()
->addTelegram()
->addOdnoklassniki()
->addFacebook()
->addTwitter()
)
// Добавляем форму обратной связи
->addCallbackForm((new CallbackForm())
->setSendTo('[email protected]')
->setAgreementCompany('ООО «Гвоздиков.нет»')
->setAgreementLink('https://gvozdikov.net/confidential/')
)
// Добавляем гистограмму
->addHistogram((new Histogram())
->addItem((new HistogramItem())
->setValue(5)
->setHeight(5)
->setTitle('ПН')
->setColor('red')
->setIcon('https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg')
)
->addItem((new HistogramItem())
->setValue(50)
->setHeight(10)
->setTitle('ВТ')
->setColor('blue')
->setIcon('https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg')
)
->addItem((new HistogramItem())
->setValue(200)
->setHeight(15)
->setTitle('СР')
->setColor('green')
->setIcon('https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg')
)
->addItem((new HistogramItem())
->setValue(500)
->setHeight(20)
->setTitle('ЧТ')
->setColor('purple')
->setIcon('https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg')
)
)
// Добавляем комментарии
->addComments((new Comments())
->setUrl('https://gvozdikov.net/addComment.php')
->addComment((new Comment())
->setAuthor('Виктор')
->setSubtitle('вчера')
->setAvatarUrl('https://clck.ru/KyKNk')
->setHeader('Заголовок')
->setContent('<p>Первый комментарий на сайте</p>')
->setComments((new Comments())
->addComment((new Comment())
->setAuthor('Виктор')
->setSubtitle('сегодня')
->setAvatarUrl('https://clck.ru/KyKNk')
->setHeader('Заголовок')
->setContent('<p>Первый подкомментарий на сайте</p>')
)
->addComment((new Comment())
->setAuthor('Виктор')
->setSubtitle('сегодня')
->setAvatarUrl('https://clck.ru/KyKNk')
->setHeader('Заголовок')
->setContent('<p>Второй подкомментарий на сайте</p>')
)
)
)
->addComment((new Comment())
->setAuthor('Виктор')
->setSubtitle('вчера')
->setAvatarUrl('https://clck.ru/KyKNk')
->setHeader('Заголовок')
->setContent('<p>Второй комментарий на сайте</p>')
)
)
// Добавление кнопок обратной связи - незакреплённые
->addFeedback((new Feedback())
->setTitle("Давайте пообщаемся")
->setStick(EFeedbackStick::FALSE)
->addCall('+7123456789')
->addCallbackForm('[email protected]','ООО «Гвоздиков.нет»','https://gvozdikov.net/confidential/')
->addEmail('[email protected]')
->addChat()
->addFacebook('https://ya.ru/')
->addGoogle('https://ya.ru/')
->addOdnoklassniki('https://ya.ru/')
->addTelegram('https://ya.ru/')
->addTwitter('https://ya.ru/')
->addVkontakte('https://ya.ru/')
->addWhatsapp('https://ya.ru/')
)
// Добавление кнопок обратной связи - закреплённые слева
->addFeedback((new Feedback())
->setTitle("Давайте пообщаемся")
->addCall('+7123456789')
->addCallbackForm('[email protected]','ООО «Гвоздиков.нет»','https://gvozdikov.net/confidential/')
->addEmail('[email protected]')
->addChat()
)
// Добавляем динамическую форму
->addForm((new Form)
->setEndPoint('https://gvozdikov.net/endPoint.php')
->setSubmitText('Скорее отправить')
->addResultText('description')
->addResultLink('link')
->addInputText('name','Имя','Введите имя')
->addInputNumber('cats','Сколько у вас кошек','10')
->addInputDate('birth_date','Когда день рождение?','1970.01.01')
->addTextarea('comment','Ваш комментарий','Комментарий','Здравствуйте, ')
->addCheckbox('subscribe','yes','Подписаться на новости')
->addSelect('dogs','Сколько у вас собак','two',['one'=>'Одна','two'=>'Две','three'=>'Три','more'=>'Больше 3х'])
->addRadio('delivery','Как доставить?',[
new FormRadioOption('moscow','Москва','сегодня',true),
new FormRadioOption('spb','Санкт-Петербург','завтра'),
new FormRadioOption('Venus','Венера','3010 год'),
])
)
)
);
// Выводим сразу xml файл с необходимыми заголовками
$turbo->echoXml();
// Или сначала смотрим получившийся код в формате строки
///echo htmlspecialchars($turbo);
<?xml version="1.0" encoding="UTF-8"?>
<rss
xmlns:yandex="http://news.yandex.ru"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
<title>Первый тест</title>
<link>https://gvozdikov.net/</link>
<description>Описание канала</description>
<language>ru</language>
<turbo:analytics type="Yandex" id="5000" params='{"a":"b"}'></turbo:analytics>
<turbo:analytics type="LiveInternet" params="hello"></turbo:analytics>
<turbo:analytics type="Google" id="50005"></turbo:analytics>
<turbo:analytics type="MailRu" id="7500"></turbo:analytics>
<turbo:analytics type="Rambler" id="10000"></turbo:analytics>
<turbo:analytics type="Mediascope" id="12000"></turbo:analytics>
<turbo:analytics type="custom" url="https://ya.ru/"></turbo:analytics>
<turbo:adNetwork type="Yandex" id="идентификатор блока" turbo-ad-id="first_ad_place"></turbo:adNetwork>
<turbo:adNetwork type="AdFox" turbo-ad-id="second_ad_place">
<![CDATA[<div id="идентификатор контейнера"></div><script> window.Ya.adfoxCode.create({ ownerId: 123456, containerId: 'идентификатор контейнера', params: { pp: 'g', ps: 'cmic', p2: 'fqem' } }); </script>]]>
</turbo:adNetwork>
<item turbo="true">
<author>Виктор</author>
<turbo:source>https://source.ru</turbo:source>
<turbo:topic>topic</turbo:topic>
<link>https://gvozdikov.net</link>
<pubDate>Fri, 22 May 20 13:17:59 +0300</pubDate>
<yandex:related type="infinity">
<link url="https://gvozdikov.net/about">Обо мне</link>
<link url="https://gvozdikov.net/portfolio" img="https://gvozdikov.net/content/gvozdikov/pics/avatar.jpg">Портфолио</link>
</yandex:related>
<metrics>
<yandex schema_identifier="100">
<breadcrumblist>
<breadcrumb url="https://gvozdikov.net" text="Главная"/>
<breadcrumb url="https://gvozdikov.net/log" text="Разное"/>
</breadcrumblist>
</yandex>
</metrics>
<turbo:content>
<![CDATA[
<header>
<h1>Первая новость</h1>
<h2>Подзаголовок</h2>
<figure>
<img src="https://gvozdikov.net/content/gvozdikov/pics/avatar.jpg"/>
</figure>
<menu>
<a href="https://gvozdikov.net">Пукнт 1</a>
<a href="https://gvozdikov.net">Пукнт 2</a>
<a href="https://gvozdikov.net">Пукнт 3</a>
</menu>
<div data-block="breadcrumblist">
<a href="https://gvozdikov.net">Главная</a>
<a href="https://gvozdikov.net/usefull">Полезное</a>
<a href="https://gvozdikov.net/usefull/page1">Страница 1</a>
</div>
</header>
<p>Привет, меня зовут Виктор.</p>
<figure>
<img src="https://gvozdikov.net/upload/images/acc1/1583066709_6113933_0500_95_0_1.png" />
</figure>
<figure>
<img src="https://gvozdikov.net/upload/images/acc1/1583066709_6113933_0500_95_0_1.png" />
<figcaption >Как во Flutter установить цвет текста для AppBar.</figcaption>
</figure>
<figure>
<img src="https://gvozdikov.net/upload/images/acc1/1583066709_6113933_0500_95_0_1.png" alt="Картинка" width="200px"/>
<figcaption style="color:red">Как во Flutter установить цвет текста для AppBar.</figcaption>
</figure>
<div data-block="gallery">
<img src="https://clck.ru/FFAuR"/>
<img src="https://clck.ru/FFAvn"/>
<header>Заголовок галереи</header>
</div>
<div data-block="audio" src="https://clck.ru/MJY6J"></div>
<figure>
<video width="300" height="200">
<source src="https://clck.ru/Kiunj" type="video/mp4" data-duration="15" />
</video>
</figure>
<div data-block="accordion">
<div data-block="item" data-title="О чём проект">
<p>Это очень интересный проект</p>
</div>
<div data-block="item" data-title="Как оплатить" data-expanded="true">
<p>Пока никак, но скоро как-нибудь можно будет</p>
</div>
<div data-block="item" data-title="Контакты">
<p>Есть контакт</p>
</div>
</div>
<div data-block="slider" data-view="landscape" data-item-view="contain">
<header>Заголовок слайдера</header>
<figure>
<img src="https://clck.ru/FFAuR" />
</figure>
<figure>
<img src="https://clck.ru/FFAuR" />
<figcaption >Картинка с подписью</figcaption>
</figure>
<figure>
<video width="300" height="200">
<source src="https://clck.ru/Kiunj" type="video/mp4" data-duration="15" />
</video>
<img src="https://clck.ru/FFAuR"/>
</figure>
<figure>
<video width="300" height="200">
<source src="https://clck.ru/Kiunj" type="video/mp4" data-duration="15" />
</video>
<img src="https://clck.ru/FFAuR"/>
<figcaption>Видео с подписью</figcaption>
</figure>
<figure data-turbo-ad-id="123456"></figure>
<figure>
<a href="https://gvozdikov.net">Читайте мой блог</a>
</figure>
</div>
<div data-block="cards">
<div data-block="card">
<header>
<img src="https://clck.ru/FFAuR"/>
<h2>Заголовок карточки</h2>
</header>
<p>Это мой контент</p>
<p>
<b>А это </b>
<i>вторая </i>
<del>карточка</del>
<ins>строка</ins>
</p>
<footer>
<a data-block="button" href="http://gvozdikov.net/">Продолжение</a>
</footer>
<div data-block="more">
<a href="http://gvozdikov.net/">Читать ещё</a>
</div>
</div>
<div data-block="card">
<header>
<img src="https://clck.ru/FFAuR"/>
<h2>Заголовок карточки</h2>
</header>
<p>Это мой контент</p>
<p>
<b>А это </b>
<i>вторая </i>
<del>карточка</del>
<ins>строка</ins>
</p>
<footer>
<a data-block="button" href="http://gvozdikov.net/">Продолжение</a>
</footer>
<div data-block="more">
<a href="http://gvozdikov.net/">Читать ещё</a>
</div>
</div>
</div>
<div data-block="cards">
<div data-block="carousel">
<header>Заголовок карусели</header>
<div data-block="snippet" data-title="Заголовок" data-img="https://clck.ru/FFAuR" data-url="https://gvozdikov.net/"></div>
<div data-block="snippet" data-title="Второй заголовок" data-img="https://clck.ru/FFAvn" data-url="https://gvozdikov.net/"></div>
</div>
</div>
<div data-block="fold">
<p>Сайт рыбатекст поможет дизайнеру, верстальщику, вебмастеру сгенерировать несколько абзацев более менее осмысленного текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях. При создании генератора мы использовали небезизвестный универсальный код речей. Текст генерируется абзацами случайным образом от двух до десяти предложений в абзаце, что позволяет сделать текст более привлекательным и живым для визуально-слухового восприятия.</p>
</div>
<div data-block="feed" data-layout="vertical" data-title="Читайте также">
<div data-block="feed-item" data-title="Заголовок" data-description="Описание элемента" data-href="https://gvozdikov.net" data-thumb="https://clck.ru/FFAvn" data-thumb-position="top" data-thumb-ratio="4x3"></div>
<div data-block="feed-item" data-title="Заголовок" data-description="Описание элемента" data-href="https://gvozdikov.net" data-thumb="https://clck.ru/FFAvn" data-thumb-position="left" data-thumb-ratio="1x1"></div>
<div data-block="feed-item" data-title="Заголовок" data-description="Описание элемента" data-href="https://gvozdikov.net" data-thumb="https://clck.ru/FFAvn" data-thumb-position="right" data-thumb-ratio="3x4"></div>
</div>
<div data-block="feed" data-layout="horizontal" data-title="Читайте также горизонтально">
<div data-block="feed-item" data-title="Заголовок" data-description="Описание элемента" data-href="https://gvozdikov.net" data-thumb="https://clck.ru/FFAvn" data-thumb-ratio="4x3"></div>
<div data-block="feed-item" data-title="Заголовок 2" data-description="Описание элемента 2" data-href="https://gvozdikov.net" data-thumb="https://clck.ru/FFAvn" data-thumb-ratio="4x3"></div>
</div>
<figure data-turbo-ad-id="123456" data-platform-mobile="true" data-platform-desktop="true"></figure>
<figure inpage="true"data-turbo-ad-id="123456"data-turbo-inpage-ad-id="64654654"></figure>
<button formaction="tel:+7(495)77777777" data-background-color="#222" data-color="#eee" data-turbo="true" data-primary="true">Позвоните нам</button>
<button formaction="mailto:[email protected]" data-background-color="red" data-color="white" data-turbo="true" disabled>Не пишите нам</button>
<button formaction="mailto:[email protected]" data-background-color="green" data-color="white" data-turbo="true" data-send-to="[email protected]" data-agreement-company="ООО «Гвоздиков.нет»" data-agreement-link="https://gvozdikov.net/confidential/">Напишите нам</button>
<form action="https://gvozdikov.net/search/?text={text}" method="GET">
<input type="search" name="text" placeholder="Давайте что-нибудь поищем" />
</form>
<div itemscope itemtype="http://schema.org/Rating">
<meta itemprop="ratingValue" content="5"/>
<meta itemprop="bestRating" content="10"/>
</div>
<div itemscope itemtype="http://schema.org/Rating">
<meta itemprop="ratingValue" content="4"/>
<meta itemprop="bestRating" content="5"/>
</div>
<div data-block="share" data-network="vkontakte, telegram, odnoklassniki, facebook, twitter"></div>
<form data-type="callback" data-send-to="[email protected]" data-agreement-company="ООО «Гвоздиков.нет»" data-agreement-link="https://gvozdikov.net/confidential/"></form>
<div data-block="histogram">
<div data-block="histogram-item" data-title="ПН" data-value="5" data-height="5" data-color="red" data-icon="https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg"></div>
<div data-block="histogram-item" data-title="ВТ" data-value="50" data-height="10" data-color="blue" data-icon="https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg"></div>
<div data-block="histogram-item" data-title="СР" data-value="200" data-height="15" data-color="green" data-icon="https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg"></div>
<div data-block="histogram-item" data-title="ЧТ" data-value="500" data-height="20" data-color="purple" data-icon="https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg"></div>
</div>
<div data-block="comments" data-url="https://gvozdikov.net/addComment.php">
<div data-block="comment" data-author="Виктор" data-avatar-url="https://clck.ru/KyKNk" data-subtitle="вчера">
<div data-block="content">
<header>Заголовок</header>
<p>Первый комментарий на сайте</p>
</div>
<div data-block="comments" >
<div data-block="comment" data-author="Виктор" data-avatar-url="https://clck.ru/KyKNk" data-subtitle="сегодня">
<div data-block="content">
<header>Заголовок</header>
<p>Первый подкомментарий на сайте</p>
</div>
</div>
<div data-block="comment" data-author="Виктор" data-avatar-url="https://clck.ru/KyKNk" data-subtitle="сегодня">
<div data-block="content">
<header>Заголовок</header>
<p>Второй подкомментарий на сайте</p>
</div>
</div>
</div>
</div>
<div data-block="comment" data-author="Виктор" data-avatar-url="https://clck.ru/KyKNk" data-subtitle="вчера">
<div data-block="content">
<header>Заголовок</header>
<p>Второй комментарий на сайте</p>
</div>
</div>
</div>
<div data-block="widget-feedback" data-title="Давайте пообщаемся" data-stick="false">
<div data-type="call" data-url="+7123456789"></div>
<div data-type="callback" data-send-to="[email protected]" data-agreement-company="ООО «Гвоздиков.нет»" data-agreement-link="https://gvozdikov.net/confidential/"></div>
<div data-type="mail" data-url="mailto:[email protected]"></div>
<div data-type="chat"></div>
<div data-type="facebook" data-url="https://ya.ru/"></div>
<div data-type="google" data-url="https://ya.ru/"></div>
<div data-type="odnoklassniki" data-url="https://ya.ru/"></div>
<div data-type="telegram" data-url="https://ya.ru/"></div>
<div data-type="twitter" data-url="https://ya.ru/"></div>
<div data-type="vkontakte" data-url="https://ya.ru/"></div>
<div data-type="whatsapp" data-url="https://ya.ru/"></div>
</div>
<div data-block="widget-feedback" data-title="Давайте пообщаемся" data-stick="left">
<div data-type="call" data-url="+7123456789"></div>
<div data-type="callback" data-send-to="[email protected]" data-agreement-company="ООО «Гвоздиков.нет»" data-agreement-link="https://gvozdikov.net/confidential/"></div>
<div data-type="mail" data-url="mailto:[email protected]"></div>
<div data-type="chat"></div>
</div>
<form data-type="dynamic-form" end_point="https://gvozdikov.net/endPoint.php">
<div type="input-block">
<span label="Имя" type="input" name="name" required="false" placeholder="Введите имя" input-type="text"></span>
<span label="Сколько у вас кошек" type="input" name="cats" required="false" placeholder="10" input-type="number"></span>
<span label="Когда день рождение?" type="input" name="birth_date" required="false" placeholder="1970.01.01" input-type="date"></span>
<span value="Здравствуйте, " label="Ваш комментарий" type="textarea" name="comment" required="false" placeholder="Комментарий"></span>
<span value="yes" type="checkbox" name="subscribe" content="Подписаться на новости"></span>
<span value="two" label="Сколько у вас собак" type="select" name="dogs">
<span value="one" type="option" text="Одна"></span>
<span value="two" type="option" text="Две"></span>
<span value="three" type="option" text="Три"></span>
<span value="more" type="option" text="Больше 3х"></span>
</span>
<span label="Как доставить?" type="radio" name="delivery">
<span value="moscow" checked="1" label="Москва" meta="сегодня" type="option"></span>
<span value="spb" label="Санкт-Петербург" meta="завтра" type="option"></span>
<span value="Venus" label="Венера" meta="3010 год" type="option"></span>
</span>
<button type="submit" text="Скорее отправить"></button>
</div>
<div type="result-block">
<span type="text" field="description"></span>
<span type="text" field="link"></span>
</div>
</form>
]]>
</turbo:content>
</item>
</channel>
</rss>