Товаров: 0 (0р.)

Css облако тегов: Как реализовать облако тэгов/меню как на примере? — Хабр Q&A

Содержание

Как стилизовать облако тегов с помощью CSS на вашем сайте

Автор Глеб Захаров На чтение 4 мин. Просмотров 103 Опубликовано

Облако тегов – это визуальное отображение списка элементов. Вы часто будете видеть облака тегов в блогах. Это стало популярным на таких сайтах, как Flickr.

Облака тегов – это список ссылок, которые меняются по размеру и весу (иногда тоже по цвету) в зависимости от какого-то измеримого атрибута. Большинство облаков тегов создаются на основе популярности или количества страниц, помеченных этим конкретным тегом. Но вы можете создать облако тегов из любого списка элементов на вашем сайте, которые имеют как минимум два способа их отображения. Например:

  • Список статей в алфавитном порядке со стилями, указывающими на популярность статей.
  • Список веб-сайтов в алфавитном порядке со стилями, указывающими, какие из них вам нравятся больше всего.
  • Список веб-редакторов, перечисленных в ценовом порядке, со стилями, указывающими, насколько близко каждый из них подходит к заранее определенному набору критериев.
  • Список друзей со стилями, указывающими расстояние от вашего дома до их.

Что нужно для создания облака тегов?


Создать облако тегов легко, нужно всего две вещи:

  • Список элементов (например, веб-статьи, веб-сайты или ваши друзья)
  • Измерение для каждого из элементов (например, просмотров страниц в день, вашего рейтинга 1-10 или расстояния до вашего дома).

Большинство облаков тегов представляют собой списки ссылок, поэтому полезно, если с каждым элементом связан URL-адрес. Но это не обязательно для создания визуальной иерархии.

Шаги по созданию облака тегов из популярных ссылок


На нашем сайте есть статьи, которые просматривают страницы каждый день, и это простой показатель, который мы можем использовать для создания облака тегов. Поэтому для этого примера мы создадим облако тегов из списка статей, 25 лучших статей на моем сайте за неделю с 1 января 2007 года.

  1. Определите, сколько уровней вы хотите в своей иерархии.

    Хотя в вашем облаке может быть столько уровней, сколько есть элементов в списке, это становится утомительным для кода, и различия могут быть очень минимальными. Я рекомендую иметь не более 10 уровней в вашей иерархии.

  2. Определите точки отсечения для каждого уровня.

    Это может быть так же просто, как разрезать ваши просмотры страниц в день на 1/10 срезов – т.е. если самая большая страница на вашем сайте получает 100 просмотров в день, вы можете нарезать ее на 100+, 90-100, 80-90, 70-80 и т. д. Я таким образом увеличил количество просмотров страниц.

  3. Перечислите свои элементы в порядке просмотра страниц и присвойте им рейтинг в соответствии с шагом 2

    Не беспокойтесь, если в некоторых слотах нет предметов, это просто делает облако более интересным.

  4. Используйте список в алфавитном порядке (или в другом порядке, который вы хотите использовать).

    Это то, что делает облако интересным. Если вы оставите его отсортированным по рангу, то это будет просто список с самыми большими элементами сверху вниз и самыми маленькими снизу.

  5. Напишите свой HTML-код, чтобы ранг был номером класса.

     class = "tag4"> Добавление потоковых аудиофайлов 
  6. Это оно!

Как только у вас есть HTML для каждого отдельного элемента списка и порядок, в котором вы хотите их отобразить, вам нужно принять решение. Вы можете разместить ссылки в абзаце, и все готово. Но это не будет семантически размечено, и любой, кто не использует CSS в вашем облаке тегов, просто увидит большой абзац ссылок. HTML-код для этого типа списка будет выглядеть следующим образом:

Вместо этого мы рекомендуем вам создать облако тегов, используя неупорядоченный список. Это еще несколько строк кода HTML и CSS, но они гарантируют, что контент будет читаемым независимо от того, кто его просматривает. HTML будет выглядеть так:

Но где стили для облака тегов


Теперь перейдем к интересной части – стилям CSS. Когда вы стилизуете облако тегов, вы обычно меняете размер шрифта и вес шрифта. Вы также можете изменить цвет шрифта, фона или любого другого атрибута стиля, но размер и вес являются традиционными.

Вам нужно 10 стилевых классов, по одному на каждый ранг тега:

Мы хотели бы включить некоторые стили вокруг самого облака: отцентрировать текст облака, установить высоту строки, чтобы облако было читаемым, и убедиться, что у тегов привязки нет отступов:

Наконец, если вы используете метод семантической стилизации (т.е. неупорядоченный список), вам нужно добавить еще две строки CSS, чтобы в списке не было маркеров и не было отступа:

Oблако тегов на CSS

Создание красивого облака тегов при помощи стилей совсем не сложный процесс. В этой статье я объясню как придать тегам в облаке свой индивидуальный стиль.

Описанный здесь пример в большей степени предназначен для блогового движка «Litepublisher», но я постараюсь разъяснить те участки кода, которые относятся только к нему, для того чтобы вы смогли легко адаптировать его под вашу CMS.

Стильное облако тегов

HTML облака

Для Lite publisher:
Находим в theme.txt вашей темы, в шаблоне нужного сайдбаре кусок кода, который отвечает за виджет с тегами и заменяем его на:

sidebar.tags.items = [<div>*item = [<a href="*options.url*url" title="*title *subcount">*title</a> &nbsp;]</div>]

* — Заменить на символ — $, иначе не могу опубликовать код, движок ругается.
И не забываем, что sidebar это 1 сайдбар, если вставляете код во второй необходимо заменить на sidebar1.

Для остальных движков объясняю:
Вам нужен только участок кода заключенный в квадратные скобки. Вставляете его в нужное место шаблона вашей темы.

  • *item

    — Шаблон для отображения одного тега.

  • *itemscount

    — Цифра означающая количество статей в которых упоминается тег.

  • *options.url*url

    — Адрес страницы тега.

  • *title *subcount

    — Название тега и количество статей.

  • *title

    — Название тега.

CSS стили облака

Для всех:
Добавляем в самый низ файла стилей style.css следующий код:

/*TAGS*/
div#widgettags{margin:0 10px 10px;}
a.t1{font-size:.8em;color:#808080;font-weight:100;}
a.t2{font-size:.9em;color:#0f0;font-weight:200;}
a.t3{font-size:1em;color:#008000;font-weight:300;}
a.t4{font-size:1.1em;color:#f0f;font-weight:400;}
a.t5{font-size:1.2em;color:#00f;font-weight:500;}
a.t6{font-size:1.3em;color:#ff4500;font-weight:600;}
a.t7{font-size:1.4em;color:#f00;font-weight:700;}
a.t8{font-size:1.5em;color:#a52a2a;font-weight:800;}
a.t9{font-size:1.6em;color:#000;font-weight:900;}

Приведенные стили оформляют в облаке теги, которые встречаются не более 9 раз, но на основании этого примера, вы легко сможете продолжить этот список стилей.
Кроме того вы так же можете изменить под свой вкус цвета, и ваш сайт будет выделяться оригинальным и самостоятельно оформленным облаком с красивыми тегами.

КАК: Как создать облако тегов с помощью CSS на вашем сайте

Облако тегов — это визуальное изображение списка элементов. Вы часто увидите облака тегов в блогах. Он был популярен на таких сайтах, как Flickr.

Облака тегов — это список ссылок, которые изменяются по размеру и весу (иногда также цвет) в зависимости от некоторого измеряемого атрибута. Большинство облаков тегов построены на основе популярности или количества страниц, помеченных этим конкретным тегом. Но вы можете создать облако тегов из любого списка элементов вашего сайта, которые имеют как минимум два способа их отображения. Например:

  • Список статей в алфавитном порядке со стилями, указывающими на популярность статей.
  • Список веб-сайтов в алфавитном порядке со стилями, указывающими, какие из них вам больше всего нравятся.
  • Список веб-редакторов, перечисленных в ценовом заказе, со стилями, указывающими, насколько близко каждый из них подходит к заранее определенному набору критериев.
  • Список друзей со стилями, указывающими расстояние от вашего дома до их.

Что вам нужно для создания облака тегов?

Легко построить облако тегов, вам нужно всего две вещи:

  • Список элементов (например, веб-статей, веб-сайтов или ваших друзей)
  • Измерение для каждого из предметов (например, просмотр страниц в день, ваш рейтинг 1-10 или расстояние до вашего дома).

Большинство облаков тегов — это списки ссылок, поэтому это помогает, если каждый элемент имеет связанный с ним URL. Но это не требуется для создания визуальной иерархии.

Шаги по созданию облака тегов популярных ссылок

Наш сайт имеет статьи, которые ежедневно просматривают просмотры страниц, и это простой показатель, который мы можем использовать для создания облака тегов. Итак, для этого примера мы создадим облако тегов из списка статей, 25 лучших статей на моем сайте за неделю с 1 января 2007 года.

  1. Определите, сколько уровней вы хотите в своей иерархии.

    Хотя в облаке можно обладать как можно большим количеством уровней, поскольку у вас есть элементы в вашем списке, это становится утомительным для кода, и различия могут быть очень минимальными. Я рекомендую иметь не более 10 уровней в вашей иерархии.

  2. Определите точки отсечки для каждого уровня.

    Это может быть так же просто, как сокращение просмотров страниц в день на 1/10 ломтиков — т.е. если самая большая страница на вашем сайте получает 100 просмотров страниц в день, вы можете нарезать ее как 100 +, 90-100, 80-90, 70-80 и т. д. Я прервал мои просмотры страниц таким образом.

  3. Перечислите свои позиции в порядке просмотра страниц и дайте им ранг, основанный на шаге 2

    Не беспокойтесь, если у вас нет предметов в некоторых слотах, что делает облако более интересным.

  4. Назовите свой список в алфавитном порядке (или любой другой вид, который вы хотите использовать).

    Это то, что делает облако интересным. Если вы оставите его отсортированным по рангу, тогда это будет список с наибольшими элементами сверху вниз до самого маленького в нижней части.

  5. Напишите свой HTML так, чтобы ранг был номером класса.

    class = «tag4»> Добавление потоковых аудиофайлов

  6. Это оно!

Когда у вас есть HTML для каждого отдельного элемента списка и порядок, который вы хотите отобразить, вам необходимо принять решение. Вы можете поместить ссылки в абзаце, и все будет готово. Но это не было бы семантически выделено, и любой, кто не добавит CSS в облако тегов, просто увидит большой абзац ссылок. HTML для этого типа списка будет выглядеть так:

Вместо этого мы рекомендуем создать облако тегов с помощью неупорядоченного списка. Это еще несколько строк кода HTML и CSS, но это гарантирует, что контент будет доступен для чтения независимо от того, кто его просмотрит. HTML будет выглядеть так:

Но где стили для облака тегов

Теперь мы добираемся до забавной части — стилей CSS. Когда вы создаете облако тегов, вы обычно меняете размер шрифта и размер шрифта. Вы также можете изменить цвет шрифта, фона или любого другого атрибута стиля, но размер и вес являются традиционными.

Вам нужно 10 классов стиля, по одному для каждого ранга тега:

Нам нравится включать некоторые стили вокруг самого облака: центрируйте текст облака, задайте высоту строки, чтобы облако было читаемым, и убедитесь, что на ярлыках привязки нет наложения:

Наконец, если вы используете метод семантического стиля (т. Е. Неупорядоченный список), вам нужно добавить еще две строки CSS, чтобы список не имел пули и не был отступом:

Облако тегов в MODX revolution

Сегодня пойдет разговор, как можно вывести «Облако тегов» в MODX revolution.

Cоздадим страницу для вывода результатов при обращении к тегу или метке, выбор за Вами. Выводить облако тегов мы будем с помощью сниппета tagLister. Если он у Вас еще не установлен, скачивайте и устанавливайте.

Скачанный Вами сниппет tagLister включает в себя три сниппета:

  • tagLister — Показывает облако тегов, т.е. список всех имеющихся тегов.

  • tolinks — Показывает теги для одной страницы.

  • getResourcesTag — Показывает все страницы помеченные определенным тегом, при обращении к этому тегу. Это расширение сниппета getResources, поэтому он делит те же параметры и добавлены свои.

    Для того что бы теги выводились, их нужно откуда-то брать. Поэтому, создаем новое дополнительное поле (TV). На вкладке «Общая информация» заполняем поля:

  • имя: tags (Не рекомендую менять название, т.к. в параметрах tagLister это название для обращения к TV установлено по умолчанию.).

  • заголовок: tags

  • описание: Для отображения тегов

На вкладке «Параметры ввода», в строке «тип ввода» выберите «авто-метка», это исключит такие ошибки при перечислении тегов типа: Тег, тег, ТЕГ, тег и т.д. Кроме этого очень удобно, вкладка «Параметры вывода» — по умолчанию.

«Доступно для шаблонов» — отметьте все шаблоны, где Вы будете прописывать теги. Сохраняем.

Далее создаем чанк с шаблоном и вызовом сниппета .


	
<div>
    <h3>Облако тегов</h3>
    <ul>
        [[tagLister?
            &parent=`0`
            &sortBy=`tag`
            &target=`32`
            &limit=`50`
        ]]
    </ul>
</div>
	

Чанк Вы можете назвать, как угодно, главное Вам понятно было. Разберем вызов сниппета:

  • — Кэшируемый вызов сниппета.

  • &parent=`0` — ID родительского ресурса, в данном случае отбор по всем документам.

  • &sortBy=`tag` — Сортировка по тегам (в алфавитном порядке), по умолчанию `count` — по количеству.

  • &target=`32` — ID ресурса с вызовом сниппета getResourcesTag, страница результатов запроса. У Вас скорее всего будет будет другая.

  • &limit=`50` — Количество выводимых тегов, по умолчанию `10`.

  • &tv=`myTvName` — Добавить в том случае, если вы назвали (TV) с тегами по своему. По умолчанию `tags`.

Теперь добавьте теги к статьям и поместите вызов созданного чанка в то место, где у Вас будет облако тегов. Должно получиться, что-то вроде этого:

Если посмотреть исходный код, то увидим что tagLister использует список. Поэтому вызов сниппета в шаблоне мы поместили в теги. Откройте в своем браузере исходный код страницы и обратите внимания на class.


	
class="tl-tag tl-tag-weight5"
class="tl-tag tl-tag-alt tl-tag-weight1"
	

Классы присваиваются каждому тегу. Через строчку списка добавляется дополнительный класс: «tl-tag-alt» — альтернативная строчка. Мы не будем разбирать, что с ним можно сделать, ясно-понятно, что для придания строчки дополнительных стилей CSS. Лишние классы CSS чуть ниже мы удалим. Самое интересное для нас это класс: «tl-tag-weght1», «tl-tag-weght2», «tl-tag-weght3», «tl-tag-weght4», «tl-tag-weght5». С помощью них наши теги будут различаться. Чем чаще используется тег, тем больше он будет выглядеть в облаке. Только есть одно НО! Нас не устраивает, что теги показываются в столбик. Они должны выглядеть, как у на сайтах, где ранее видели или встречались облака тегов, построчно и без подсчёта количества. Мы нашли несколько вариантов, как можно добиться желаемого. Рассмотрим каждый из них.

Как не надо делать! Убрать подсчет тегов и расположить построчно.

По адресу: ваш_сайт /core /components /taglister /elements /shunks /tag.shunk.tpl находится шаблон такого содержания:


	
<li><a href="[[+url]]">[[+tag]]</a> ([[+count]])</li>
	

Плейсхолдер (), как раз и отвечает за вывод (подсчета тегов). Удалите его и «вуаля», цифры пропадут. Теги заменяем на , и мы добились того чего желали. Только при обновлении сниппета tagLister шаблон может перезаписаться в свое исходное состояние. Поэтому пойдем другим путем.

Как надо делать! Убрать подсчет тегов и расположить построчно.

Чтобы не боятся обновлений, выносим этот шаблон в отдельный чанк и назовем его: tag_user. Код чанка:


	
<span><a href="[[+url]]">[[+tag]]</a></span>
	

Как видите мы заменили теги, cохраняем. Теперь подключаем вновь созданный чанк, для этого переходим в чанк cloud. И внесем небольшие изменения.


	
<div>
    <h3>Облако тегов
        <p>
     [[!tagLister? &parent=`0` &sortBy=`tag` &target=`32` &limit=`50` &tpl=`tag_user` &altCls=``]]
        </p>
</div>
	

Мы добавили два атрибута и изменили теги. Рассмотрим добавленные параметры:

  • &tpl=`tag_user` — Подключил созданный нами чанк `tag_user`, по умолчанию `tag`.

  • &altCls=« — Отключил класс CSS, по умолчанию `tl-tag-alt`. Помните, эта та, альтернативная строчка.

Теперь на каждый тег осталось по два класса CSS, это «tl-tag» — общий стиль и «tl-tag-weght» — с соответствующими цифрами от 1 до 5, всего пять классов. Все параметры в чанке cloud, можно внести непосредственно в параметрах сниппета tagLister. Для этого нужно перейти на вкладку элементы/tagLister/параметры/. Не рекомендуется изменять параметры по умолчанию, т.к. при обновлении могут перезаписаться в исходный вид. Для изменения перейти на вкладку «Добавить набор параметров». После редактирования кликать «Сохранить набор параметров». После сохранения не забудьте экспортировать пользовательский набор параметров и положить скрипт в надежное место. Наше облако тегов сейчас выглядит так:

Подключаем стили CSS:

	
.tagcloud .tl-tag {
    line-height:normal;
}

.tagcloud .tl-tag a {
    color:#777777;
    padding:2px;
    background-color:#F9F9F9;
    text-decoration:none;
}

.tagcloud .tl-tag a:hover {
    background:#B8F2F5;
    color:#000000;
}

.tagcloud .tl-tag-weight5 {font-size:1.7em;}
.tagcloud .tl-tag-weight4 {font-size:1.5em;}
.tagcloud .tl-tag-weight3 {font-size:1.3em;}
.tagcloud .tl-tag-weight2 {font-size:1.1em;}
.tagcloud .tl-tag-weight1 {font-size:0.9em;}
	

Вот примерный вариант стилей, под свой сайт подберете сами. Смотрим что получилось.

Дальше нам нужно создать страницу на которой будут показаны результаты при переходе по тегу. Для таких страниц у нас есть специальная папка. Создаем новую страницу с названием: «Результат по запросу:». Указываем для нее подходящий шаблон и отмечаем поля: «Не показывать в меню» и «Опубликован». Во вкладке «Настройки» убираем отметку с «Использовать HTML-редактор», «Кэшируемый». Сохраняем и обновляем страницу. Далее «ID» созданной страницы нужно указать в параметре &target=« в чанке cloud.

В разделе: «Содержимое ресурса» созданной страницы помещаем вызов сниппета .


	
[[!getResourcesTag?
    &parents=`0`
    &tpl=`tag_result`
    &toPlaceholder=`results`
    &showHidden=`1`
    &limit=`50`
    &hideContainers=`true`
]]
<h3>Результаты по запросу:</h3>
<ul>
[[!+results]]
</ul>
	

Давайте разберем использованные параметры.

  • [[!getResourcesTag?]] — Не кэшируемый вызов сниппета.

  • &parents=`0` — Поиск по всему сайту, по умолчанию `текущий ресурс`.

  • &tpl=`tag_result` — Подключаем чанк с шаблоном вывода результата, чуть ниже мы его создадим.

  • &toPlaceholder=`result` — Назначаем плейсхолдер , куда будут выводится результаты.

  • &showHidden=`1` — Показывать ресурсы скрытые от меню, по умолчанию `0`.

  • &limit=`50` — Ограничить количество показываемых ресурсов на странице, по умолчанию `5`.

  • &hideContainers=`true` — Не показывать ресурсы-контейнеры, по умолчанию `0`

Результаты запроса будут выводится маркированным списком. Каждую строку формировать будет чанк tag_result. Код чанка tag_result:


	
<li><a href="[[~]]"><strong>[[+pagetitle]]</strong></a></li>
	

Полную документацию по сниппету можно посмотреть здесь.

Голосов: 695 | Просмотров: 4549

Создание облака тегов стандартными средствами Joomla

В системе управления сайтом Joomla можно создать управляемое облако тегов при помощи стандартных средств, не прибегая к установке расширений. Для этого мы используем меню. Облако тегов будет управляемым, то есть мы самостоятельно определим набор тегов, и как они будут отображаться.

Сначала нужно создать меню и его пункты. Нажимаем левой кнопкой мыши в верхней строке на «Меню», наводим курсор на «Менеджер меню», в открывшемся меню нажимаем «Создать меню». Даём ему имя, нажимаем на кнопку «Сохранить и закрыть». Нажимаем на созданное на меню, чтобы перейти к созданию его пунктов. Нажимаем кнопку «Создать» в левом верхнем углу, чтобы создать первый пункт. Нажимаем на «Тип меню», выбираем «Системные ссылки», там кликаем на «Ссылка (URL)». В строке «Ссылка» нужно сделать ссылку на тот материал, на который будет ссылаться этот тег. Не забудьте дать пункту меню заголовок. После внесения всех изменений нажимаем на «Сохранить и закрыть». Повторяем эту процедуру несколько раз, чтобы создать несколько пунктов меню. После этого переходим из вкладки «Пункты меню» во вкладку «Все меню». Нажимаем рядом в строке с нашим меню кнопку «Создать модуль для меню». Указываем позицию для отображения, после чего нажимаем «Сохранить и закрыть.

Оформление облака тегов

На данном этапе наше облако выглядит как обычное меню, изменим это при помощи стилей CSS. Откроем ещё раз модуль для редактирования. Для этого нажмём слово «Модули» в строке нашего меню, выберем модуль. Открываем вкладку дополнительные параметры, в строку «Суффикс CSS-класса меню» пишем « f_tag» (в начале есть пробел, кавычки не нужны). Нажимаем «Сохранить и закрыть».

Теперь нам нужно внести некоторые изменения в код. Кликаем в верхнем меню на «Расширения», наводим курсор на «Шаблоны», в открывшемся меню нажимаем «Шаблоны». Мы используем шаблон Protostar, поэтому нажимаем «Параметры Protostar». Открываем папку css, там выбираем файл template.css, после чего откроется редактор. Добавляем в него следующий код:

.f_tag {
   height: 100px;
   width: 430px;
}
.f_tag ul {
   margin: 0;
   padding: 0;
}
.f_tag li {
   display: inline-block;
   font-size: 12px;
   line-height: 100%;
   list-style: outside none;
   padding-right: 11px;
}
.f_tag a {
   color: 8000ff;
   text-decoration: none;
}
.f_tag .razmer1{font-size: 14px;}
.f_tag .razmer2{font-size: 18px;}
.f_tag .razmer3{font-size: 22px;}
Нижние строки добавляют разные размеры шрифтов, их может быть больше или меньше, можно выбирать разные размеры, всё зависит от желания владельца сайта. Сейчас нам нужно вернуть к редактированию пунктов меню. Кликаем на «Меню», выбираем созданное нами меню. Открываем любой пункт, переходим во вкладку «Параметры ссылки». В строку «CSS-класс ссылки» добавляем, например, razmer3. Проделываем те же действия с другими пунктами меню. Теперь наше меню выглядит как облако тегов. В любой момент мы можем его отредактировать, создавая и удаляя теги, меняя их размер.

12 инструментов для визуализации | Статьи SEOnews

05 Марта 2015 года, 09:55

Чтобы визуализировать данные, необязательно быть опытным ученым или иметь степень в области графического дизайна. Добывать, интерпретировать и представлять данные в привлекательной и легкой для понимания форме помогут сервисы. Представляем подборку инструментов, при помоши которых вы создадите графики, диаграммы, инфографики и облака слов.

Fusion Tables

Приложение Google создает графики, диаграммы и карты. Можно использовать совместно, есть данные в открытом доступе, можно загружать свои. Кстати, Guardian его использует.

dygraphs

Код Java Script, который строит графики.

Timeline

Сервис, который помогает создавать интерактивные хроники событий в виде виджета с горизонтальной прокруткой.

Leaflet

Java Script библиотека для создания интерактивных карт, адаптированных для мобильных устройств.

D3.JS

Библиотека для работы с данными при помощи HTML, SVG и CSS.

Tagxedo

Генератор облака тегов. Любые формы, цвета, размеры.

Creately

Сервис для создания диаграмм: более 50 типов и форм, 1000 примеров.

Sisense

Платформа, которая агрегирует и визуализирует информацию из разных источников.

Nuvi

Платформа, которая в реальном времени визуализирует, мониторит популярные темы и ключевые посты в социальных сетях.

Bime

Облачная платформа, нацеленная на адаптивный дизайн.

iCharts

Облачная платформа для визуализации. Диаграммы встраиваемые.

Better World Flux

Отслеживает развитие стран при помощи социальных, экономических и политических индикаторов. Помогает выявить закономерности и тенденции.

Еще 17 инструментов


Идея: Облако тегов на сайте без теговой навигации

Есть у меня один заказчик, он захотел на главной странице видеть облако тегов. Чтобы было красиво и чтобы крутилось и вообще, создавало вау-эффект. Я у него спросил — он будет задавать теги для каждой страницы? Он сказал что нет, не будет, но хочет чтобы работало.

Казалось бы, это парадоксальное требование — облако тегов, но без использования тегов на сайте. Но все оказалось просто и красиво.

Я подумал, что теги в данном случае — это просто «темы». Когда пользователь тыкает на тег на главной странице — он хочет увидеть страницы на заданную тему. А это мало чем отличается от поиска.

Поэтому все что я сделал — это задал заранее несколько поисковых фраз. То есть облако тегов состояло из ключевых слов, тем, которые характеризуют сайт заказчика. При этом, ссылка с каждого этого слова вела на поиск по этому слову (благо, он осуществляется через GET).

У такого решения есть плюсы и минусы. Плюсы в том, что пользователю не надо вести систему тегов, запоминать какие теги у него в системе, решать задачу релевантности текста тегу и так далее. Он просто пишет текст. Если в тексте встрчеается ключевое слово — он уже получает тег. Какбы автоматически. Это очень удобно и расширяемо для администратора сайта. И совсем не пыльно для разработчика. А пользователю, в конечном итоге, все равно как оно реализовано — он получает нужные результаты.

Недостаток у этого решения тоже есть. Например, если слово встречается в статье один раз и вскользь — статья уже попадет под этот тег. То есть, достаточно употребить ключевое словосочетание, пусть даже речь вообще не о нем, чтобы эта статья находилась. Это, конечно, может испортить удобство работы. Но при правильно заданных ключевых словах этот минус нивелируется.

К тому же, никто не запрещает сделать, например, ключевые слова одни, а поиск — по другим.

Допустим, у нас сайт про пластиковые окна. Разумеется там чуть не в каждой статье будет упоминаться ПВХ. В облаке тегов целесообразно показывать именно ПВХ. Но если искать по этому слову, то будет находиться слишком много мусорных статей, не про это. Эту проблему можно решить задав поиск более жестко. То есть, в облаке отображается «ПВХ», а поиск идет по «окно ПВХ особенность» или типа того. Более конкретный запрос, отдающий более точную выдачу.

Вот такой лайфхак. Мне понравилось, кстати и я теперь думаю — может реализовать нечто подобное и на своем сайте тоже. Потому что удобно, черт возьми. Не надо думать о тегах — они сами там как-то варятся, а ты можешь добавлять и удалять их просто добавляя и удаляя их из списка тегов.

Если есть сайт, где 100 статей и администратору вздумается придумать новый тег, то ему придется пробежаться по 100 статьям и добавить этот тег ко всем, где он будет к месту. В случае с тегами-поисковыми запросами этого делать не надо. Просто добавил в список тегов и все — уже работает.


Облако тегов с различной толщиной заполнения

Часто «облака тегов» используют различные размеры шрифта и толщину шрифта, чтобы различать теги интенсивного и легкого использования. Вот еще один подход: используйте поля наведения разного размера с разным количеством отступов.

Вы можете установить разные размеры как классы в CSS, например:

  ул {
маржа сверху: 50 пикселей;
тип-стиль-список: нет;
}

li {
плыть налево;
}

ul li a {
текстовое оформление: нет;
высота строки: 2.3em;
}

ul li a.size1 {
цвет: # 666;
отступ: 2 пикселя;
}
ul li a.size1: hover {
цвет фона: # 999;
цвет белый;
}

ul li a.size2 {
цвет: # 912600;
отступ: 12 пикселей;
}
ul li a.size2: hover {
цвет фона: # cc3500;
цвет белый;
}

ul li a.size3 {
цвет: # 877900;
отступ: 18 пикселей;
}
ul li a.size3: hover {
цвет фона: # d8c100;
цвет белый;
}

ул ли а.size4 {
цвет: # 1d6c01;
отступ: 8 пикселей;
}
ul li a.size4: hover {
цвет фона: # 2daf00;
цвет белый;
}
ul li a.size5 {
цвет: # 004e6b;
отступ: 6 пикселей;
}
ul li a.size5: hover {
цвет фона: # 007ead;
цвет белый;
}

ul li a.size6 {
цвет: # 430069;
отступ: 24 пикселя;
}
ul li a.size6: hover {
цвет фона: # 7600b9;
цвет белый;
}  

Затем просто примените классы к элементу привязки в неупорядоченном списке следующим образом:

    

[ЖИВЫЙ ПРИМЕР]

10 лучших генераторов облака тегов в JavaScript

Что такое облако тегов

Подобно категориям, теги предоставляют простой способ систематизировать и группировать любой контент (например, сообщения, продукты, изображения) на вашем веб-сайте. Если у вас есть тема, содержащая статьи, отнесенные к нескольким категориям, вы можете определить эту тему как тег.

Облако тегов — это набор тегов, которые вы назначили контенту, которые можно использовать для отображения наиболее популярных тегов, таких как облако.

Лучший генератор облака тегов

В этом примере вы найдете 10 лучших генераторов облака тегов на основе JavaScript, которые помогут вам создать собственное облако слов / тегов из любых ссылок для визуализации популярности публикаций и частоты появления слов. Наслаждаться.

Содержание:

Лучшие плагины для облака тегов jQuery

Плагин

Awesome Tag Cloud с jQuery и Html5 Canvas — awesomeCloud

awesomeCloud — это отличный плагин jQuery, который использует элемент холста Html5 для создания потрясающего облака тегов в различных формах.

[Демо] [Скачать]


Плагин jQuery для создания облака тегов в стиле 3D-сферы — tagcloud

tagcloud — это необычный легкий плагин jQuery, используемый для создания анимированного облака тегов 3D-Ball из неупорядоченного списка.

[Демо] [Скачать]


Плагин 3D интерактивного облака тегов SVG с jQuery — SVG 3D облако тегов

Очень маленький плагин jQuery без CSS для рисования трехмерного, интерактивного, основанного на SVG и полностью настраиваемого облака сферических тегов из массива HTML-ссылок.

[Демо] [Скачать]


Генератор динамических облаков слов / тегов с jQuery и CSS3 — jQWCloud

jQWCloud — это плагин jQuery, который использует простые преобразования HTML и CSS3 для создания аккуратного облака слов (тегов) из любого текста с настраиваемым весом и цветом.

[Демо] [Скачать]


Плагин динамического облака слов / тегов для jQuery — jQCloud

jQCloud — это легкий и настраиваемый плагин jQuery, который динамически отображает массив слов в виде облака тегов для вашего веб-сайта и личного блога.

[Демо] [Скачать]


Плагин 3D вращающегося облака тегов для jQuery — 3D Bubble Cloud

3D Bubble Cloud — это плагин jQuery для создания интерактивного трехмерного вращающегося пузырькового облака, которое реагирует на курсор зрителя.

[Демо] [Скачать]


Лучшие плагины Vanilla JS Tag Cloud

Анимированный генератор облака тегов на чистом JavaScript — tagsCloud.js

Небольшая библиотека JavaScript без зависимостей для создания динамического анимированного облака тегов из набора ссылок.

[Демо] [Скачать]


Генератор анимированных случайных облаков слов на JavaScript — wlcm

Генератор динамических облаков слов, который позволяет создавать анимированный, случайный скроллер слов / тегов из заданного вами массива слов.

[Демо] [Скачать]


Облако тегов анимированной сферы на чистом JavaScript — TagCloud.js

Автономная библиотека JavaScript для рендеринга анимированного интерактивного трехмерного облака тегов сфер из предоставленных вами текстовых строк массива.

[Демо] [Скачать]


Облако интерактивных тегов 3D в ванильном JavaScript

Динамическое интерактивное сферическое облако тегов, которое прокручивает теги движением мыши по трехмерной сфере.

[Демо] [Скачать]


Дополнительные ресурсы:

Хотите больше плагинов jQuery или библиотек JavaScript для создания облаков тегов в Интернете и на мобильных устройствах? Ознакомьтесь с разделами Облако тегов jQuery и Облако тегов JavaScript.

Как создать облако тегов с помощью JavaScript и CSS

Облако тегов — это визуальное изображение текстовых данных.Он использует различные размеры шрифта, чтобы передать важность, приоритет, значимость, вес и т. Д. Данных, которые он представляет.

Это руководство о том, как создать облако тегов с использованием чистого JavaScript и CSS.

ПЛАН

Прежде чем переходить к JavaScript и CSS, я думаю, лучше всего понять, что мы будем делать.

Единственный HTML-тег, который нам нужен для создания облака тегов , — это

    . А чтобы сделать его уникальным, мы дадим ему id со значением «tag-cloud» .

     

    Мы будем использовать JavaScript, чтобы заполнить этот тег содержимым из этого файла JSON. Файл JSON содержит такие сведения, как заголовок тега, URL-адрес и список заголовков статей. Ниже показана одна запись из файла JSON:

    .
     {
        "title": "Фортран",
        "url": "https://example.com/tags/fortran",
        "статьи": [
            "Первая статья Фортрана",
            "Вторая статья Фортрана"
        ]
    }
     

    Мы будем использовать AJAX для извлечения и обработки файла JSON.Нам нужно сделать запись

  • внутри
      для каждой записи в файле JSON и установить для нее правильный размер шрифта в зависимости от количества статей, которые имеет конкретное имя тега. По сути, мы хотим, чтобы все наши элементы
    • выглядели примерно так:

       
    • Фортрам [2]
    • JavaScript

      Во-первых, давайте создадим несколько переменных.

       var jsonURL =
          "https: // gist.githubusercontent.com/reiri-k/94ea88d5709f32711555c1dd73a62d0f/raw/d0550f4d39d40eac0550922133f983e02915b1da/tags.json "
      var ulTag = document.getElementById ("облако тегов")
      var minFontSize = 1
      var maxFontSize = 2
      var liTags = ""
      var weights = []
       

      minFontSize и maxFontSize задают размер шрифта (в em) самого маленького и самого большого тега в нашем облаке тегов . Переменная liTags предназначена для хранения всех записей

    • , которые мы поместим внутри
        .И, наконец, переменная weights будет содержать массив весов тегов.

        Примечание: Вес тега — это количество содержащихся в нем статей. Итак, вес тега только с 1 артикулом равен 1. Вес тега с 12 артикулами равен 12.

        ЗАПРОС AJAX

        Мы будем использовать чистый JavaScript для обработки AJAX. Если вы совершенно не знакомы со старыми священными путями, рекомендуется найти время, чтобы прочитать и понять их.

        Дополнительное чтение: Ajax без JQuery

         var ajax = новый XMLHttpRequest ()
        ajax.open ('получить', jsonURL)
        ajax.addEventListener ('load', (e) => {
        
        // ВСЕ ПРОИСХОДИТ ЗДЕСЬ
            
        }, ложный)
        ajax.send ()
         

        Начнем с заполнения массива весов . Эта переменная понадобится для последующего расчета размера шрифта. В нем не может быть повторяющихся значений, и его следует отсортировать в порядке возрастания, от наименьшего до наибольшего веса.

         jsonData = JSON.синтаксический анализ (e.currentTarget.response)
        
        // заполняем веса
        jsonData.forEach ((результат) => {
            numberOfArticles = result.articles.length
            if (! weights.includes (numberOfArticles)) {
                weights.push (количество статей)
            }
        })
        
        // сортируем содержимое весов в порядке сборки
        weights.sort ((a, b) => a - b)
         

        Затем мы вычисляем размер шрифта, генерируем все элементы

      • и помещаем их внутрь // генерируем теги
      • и помещаем их в 'liTags' jsonData.forEach ((результат) => { title = result.title url = result.url numberOfArticles = result.articles.length m = weights.indexOf (количество статей) + 1 a = ((m - веса [0]) / (weights.length - веса [0])) b = (maxFontSize - minFontSize) c = minFontSize font_size = a * b + c liTags = liTags.concat ( `
      • $ {title} [$ {numberOfArticles}]
      • ` ) }) / * конец jsondata.для каждого() */ // вставляем сгенерированные теги
      • в
          ulTag.innerHTML = liTags

          Если кому-то интересно, по какой формуле получен размер шрифта:

          $$ \ frac {w-w _ {\ text {min}}} {w _ {\ text {max}} - w _ {\ text {min}}} \ times (t _ {\ text {max}} - t _ {\ text {min}}) + t _ {\ text {min}} $$

          Теперь полный запрос AJAX будет выглядеть так:

           var ajax = new XMLHttpRequest ()
          ajax.open ('получить', jsonURL)
          ajax.addEventListener ('load', (e) => {
          
              jsonData = JSON.parse (e.currentTarget.отклик)
          
              // заполняем веса
              jsonData.forEach ((результат) => {
                  numberOfArticles = result.articles.length
                  if (! weights.includes (numberOfArticles)) {
                      weights.push (количество статей)
                  }
              })
          
              // сортируем содержимое весов в порядке сборки
              weights.sort ((a, b) => a - b)
          
              // генерируем теги 
        • и помещаем их в 'liTags' jsonData.forEach ((результат) => { title = result.title url = result.url numberOfArticles = результат.article.length m = weights.indexOf (количество статей) + 1 a = ((m - веса [0]) / (weights.length - веса [0])) b = (maxFontSize - minFontSize) c = minFontSize font_size = a * b + c liTags = liTags.concat ( `
        • $ {title} [$ {numberOfArticles}]
        • ` ) }) / * конец jsondata.forEach () * / // вставляем сгенерированные теги
        • в
            ulTag.innerHTML = liTags }, ложный) ajax.send ()
        • THE CSS

          Что касается CSS, чтобы дать вам больше свободы для экспериментов, я сохраню его красивым и чистым, без ничего лишнего.

           # tag-cloud {
              дисплей: блок;
          }
          
          # tag-cloud li {
              дисплей: встроенный блок;
              отступ справа: 20 пикселей;
          }
          
          # tag-cloud li: nth-last-child (1) {
              отступ справа: 0 пикселей;
          }
          
          # tag-cloud li a {
              текстовое оформление: нет;
              цвет: серый;
          }
          
          # tag-cloud li a: hover {
              черный цвет;
          }
           

          ОКОНЧАТЕЛЬНЫЙ РЕЗУЛЬТАТ

          Вот предварительный просмотр того, что мы создали.Если вам это нравится, используйте JSfiddle, чтобы повозиться с исходным кодом. Экспериментируйте и узнавайте новое!

          Вот и все! Создать простое и функциональное облако тегов с нуля с помощью чистого JavaScript и CSS - это просто и легко.

          Проект

          : Генератор облака тегов Проект

          : Генератор облака тегов

          Цели

          1. Знакомство с проектированием и программированием реалистичного компонентная прикладная программа без предоставления каркасное решение.
          2. Знакомство с использованием компонентов "коллекции" (например, Map и SortingMachine).
          3. Знакомство с использованием компонентов файлового ввода-вывода (например, SimpleReader и SimpleWriter).

          Обратите внимание, что в своем решении вы можете использовать только компоненты из компонентов пакет и компоненты из стандартных библиотек Java, которые имеют использовался в CSE 2221/2231 в лекциях / лабораториях / проектах (например, String). Вы не должны использовать другие компоненты из других библиотек, которые не использовались в CSE 2221/2231.

          Проблема

          Напишите программу на Java, которая генерирует облако тегов из заданного входного текста. Решение этой проблемы должно иметь много общего с вашим решением для проекта счетчика слов, который вы сделал в начале курса. Вот некоторые начальные требования для новой проблемы:

          • Программа должна запросить у пользователя имя входа файл, для имени выходного файла и для количества слов для включения в сгенерированное облако тегов (положительное целое число, скажем N).
          • Программа должна учитывать ввод пользователя как полный относительный или абсолютный путь в качестве имени входного файла, или имя выходного файла, и не будет увеличивать данный path каким-либо образом, например, он не будет указывать собственное имя файла расширение. Например, разумный ответ пользователя на имя входной файл может напрямую привести к значению String "данные / важность.txt"; аналогично, разумный ответ пользователя на имя выходного файла может напрямую привести к строке значение "данные / важность.html ".
          • В отличие от одного или нескольких прошлых проектов, программа проверяет ввод неверных данных; однако программа может (и вероятно, следует) полагаться на SimpleReader и SimpleWriter компоненты семейства, чтобы вызвать ошибку в ответ на такие условия как несуществующие файлы или пути.
          • Входной файл может быть произвольным текстовым файлом. Нет особенных требования предъявляются.
          • Вывод должен быть одним правильно сформированным файлом HTML. отображение имени входного файла в заголовке, за которым следует облако тегов из N слов с наибольшим количеством во входных данных.В слова должны появляться в алфавитном порядке (в котором, например, "bar" стоит перед "Foo", не в лексикографическом порядке предоставляется методом String compareTo, который будет ставить заглавные слова перед строчными, например, "Foo" придет перед "баром"). Размер шрифта каждого слова в теге. облако должно быть пропорционально количеству появлений слово во входном тексте (т. е. более частые слова будут отображаются более крупным шрифтом, чем менее частые).
          • Слова не содержат пробелов. Помимо этого, это до вас, чтобы придумать разумное определение того, что за слово есть и какие символы (помимо пробелов) рассмотрены сепараторы . (Для предоставленных образцов входных данных символы в строке "\ t \ n \ r, -.!? [] ';: / ()" неплохо работа по разделению слов.)
          • Вы должны использовать SimpleReader и SimpleWriter компоненты семейства для всего необходимого ввода и вывода.
          • Вы должны использовать семейство карт компоненты для отслеживания слов и их количества.
          • Вы должны использовать SortingMachine компоненты семейства для всей необходимой сортировки.

          Это заявленные требования для вашей программы. Если у вас есть вопросы или нужна дополнительная информация, задавайте в классе.

          Настройка

          Ты сам по себе! Однако хорошей отправной точкой может быть ваш Решение первого проекта CSE 2231 (счетчик слов).В в любом случае один член команды должен создать проект Eclipse для этого задания. Затем проект должен быть предоставлен остальным команды, используя систему контроля версий Subversion как узнал в Версии Управление с помощью Subversion lab.

          Метод

          Когда вы и ваши товарищи по команде закончите работу над проектом, решите, кто собирается представить ваше решение. Этот член команды должен выбрать ваш проект Eclipse (не только некоторые файлы, но и весь проект), содержащий полную отправку группы, создайте zip-архив архив, и отправьте zip-архив в Dropbox Кармен для этот проект, как описано в разделе "Отправка" проект.Обратите внимание, что вам будет разрешено только одно представление на group, то есть ваша группа может отправлять столько раз, сколько хотите, но только последняя заявка будет на Кармен и будет оценена. Под ни при каких обстоятельствах товарищам по команде не разрешается подавать отдельные решения. Убедитесь, что вы и ваш партнер (ы) договорились о том, что должны быть представлены.

          Ваша оценка будет зависеть не только от того, будет ли окончательная программа отвечает, конечно, первоначальным требованиям, но и в целом Факторы качества программного обеспечения, которые вы изучили в CSE 2221/2231: понятность, точность, правильное использование существующего программного обеспечения компоненты, ремонтопригодность, соблюдение стандартов кодирования, эффективность и т. д.

          Некоторые образцы входных файлов доступны здесь (они заканчиваться на .txt). Это книги, скачанные с www.gutenberg.org. Вот образец облака тегов вывода сгенерирован из этого входного файла (с N = 100 и преобразование всех слов в нижний регистр). Результат, сгенерированный ваша программа должна соответствовать формату этого примера, включая оба из двух теги, относящиеся к файлу таблицы стилей tagcloud.css, который сделайте облако тегов таким же, как в примере.Это просто каскадная таблица стилей (CSS) используется браузером для форматирования тега облака; этот файл необходим браузеру для правильного отображения облако тегов в образце файла. Он также определяет размеры шрифта f11 через f48, который можно использовать для управления размером шрифт для каждого слова. (В этом примере есть два тега с целью быть более надежным в различных условиях. Сеть браузер попробует другой тег, если один из них терпит неудачу. Тег, указанный первым в списке, называет CSS, предоставленный на веб-сайте CSE.Второй ожидает, что CSS будет файлом в той же папке, что и обработанный HTML-файл. Если этого файла нет, браузер будет использовать тот, который размещен на веб-сайте CSE. Если браузер в настоящее время работает без подключения к Интернету или веб-сайт CSE не работает, он будет использовать файл в той же папке. Конечно, если оба условия Ошибка, браузер отобразит файл hmtl без CSS. Если оба условия выполняются, все хорошо: браузер будет использовать одно из них. (В этом случае два файла идентичны, поэтому какой из них используется Не важно.))

          Сортировка слов и счетчиков разными способами

          Ваше решение должно иметь возможность сортировать слова первыми в убывающий порядок подсчета (чтобы найти N наиболее часто встречающихся слов), и затем в алфавитном порядке для вывода облака тегов. Сортировать их с помощью SortingMachine, сохраняя слова и их считается вместе, вы должны использовать Map.Pair , которые выходят из карты, которую вы использовали для подсчета слова, и поместите их в SortingMachine, который сортирует их по порядок убывания счета; затем удалите верхнюю N по порядку из first SortingMachine и поместите их во вторую SortingMachine это сортирует их в алфавитном порядке слов.Все что нужно для заставить это работать - это два вложенных класса, реализующих Comparator> interface: тот, который сравнивает значения (подсчитывает) в парах и другой, который сравнивает ключи (слова) в пары. (Вы видели реализации Comparator интерфейс ранее в нескольких лекциях и лабораторных работах, например, SortingMachine, Очередь Сортировка вставкой, очередь Быстрая сортировка и т. Д.)

          Обратите внимание, что документация для Компаратора интерфейс включает предупреждение об использовании компаратора, способного навязывание порядка , а не , согласованного с равно в определенные ситуации.Компаратор c соответствует with равно , если c.compare (e1, e2) == 0 имеет то же самое логическое значение как e1.equals (e2) для всех e1 и e2. Для этого проекта не будет проблемой, если ваш компараторы несовместимы с равными, потому что все OSU компоненты предназначены для правильной работы, пока компаратор предоставляет действительный общий предварительный заказ (возможно, не соответствует равно). Однако в следующем проекте, когда вы начнете использовать Java стандартные компоненты, это может стать проблемой.Если хотите избежать любых проблем в будущем, вы можете убедиться, что ваши два реализации интерфейса Comparator действительно в соответствии с равными.

          Дополнительные мероприятия

          Вот некоторые возможные дополнительные действия, связанные с этим проект. Любая дополнительная работа строго необязательна для вашей же выгоды, и не повлияет напрямую на вашу оценку.

          1. Измените программу так, чтобы общие слова (например, для например, «а», «то», «и» и т. д.) и строки, не являющиеся словами (например, "t", "s" и т. д.) не включаются в тег облако.
          2. Измените программу так, чтобы в ней регистрировался регистр, т. Е. слова «привет» и «привет» будут считаться одним и тем же словом.
          3. Измените программу без учета регистра так, чтобы заглавные буквы, отображаемые в выходных данных, встречаются чаще всего часто между разными заглавными буквами одного и того же слова.

          Угловой CSS-стиль и внешний вид TagCloud

          Стиль и внешний вид

          JqxTagCloud позволяет использовать ряд различных параметров для стилизации элементов облака.Чтобы удовлетворить различные потребности, мы предусмотрели следующие варианты:

          • Установите min и max fontSize в зависимости от значения (веса) элемента.
          • Установите тег , цвет текста для всех элементов, использующих textColor.
          • Вот пример тегов с горными вершинами, размер шрифта которых масштабируется по высоте, а цвет текста - коричневый.

          jqxTagCloud Стили классов CSS

          jQWidgets использует пару файлов css - jqx.base.css и jqx. [название темы] .css. В базовая таблица стилей создает стили, связанные с макетом виджета, такие как поля, отступы, ширина границы, положение. Второй файл css применяет цвета и фон виджета.Jqx.base.css должен быть включен перед вторым файлом CSS.

          Ниже приведен список классов CSS, используемых jqxTagCloud.
          • jqx-widget - применяется к виджету jqxTagCloud.
          • jqx-tag-cloud - применяется к элементу ul jqxTagCloud.
          • jqx-tag-cloud-item - применяется к элементу jqxTagCloud li.
          • Вы можете использовать эти классы для стилизации вашего собственного виджета.

            Пример ниже демонстрирует, как вы можете использовать вышеупомянутые классы, чтобы оформить его как список тегов.

          jqxTagCloud Поддержка темы

          Если вам нужно иметь отдельных тем для jqxTagCloud, вы можете использовать следующий метод:
          • Добавьте указанные выше классы CSS, связанные с jqxTagCloud
          • После каждого класса CSS добавьте название вашей темы.
            Например:
            jqx-jqxTagCloud-shinyblack
          • Чтобы применить свой собственный стиль к jqxTagCloud, вам необходимо установить его свойство темы (опция) чтобы указать на строку имени вашей темы.
          • В примере ниже показано, как установить тему «Блестящий черный» на jqxTagCloud.

          Создание облака тегов в блоге Jekyll без плагина

          Jekyll не поставляется с готовым решением для создания облаков тегов, однако с поддержкой разметки Liquid и некоторых базовых стилей CSS мы можем сами создавать облака тегов без использования какого-либо плагина.В этом посте я покажу, как я генерирую облака тегов в своих блогах, построенных с помощью Jekyll.

          Jekyll - отличный инструмент для создания статических сайтов, и за последние несколько недель я переместил многие из своих блогов, включая этот, на Jekyll. Я делился советами о том, как восполнить недостающие части при переходе с WordPress на Jekyll. Одним из таких недостающих элементов является поддержка облаков тегов, которые обычно являются желательным элементом в блогах.

          Поскольку я размещаю несколько своих блогов, созданных Jekyll, на страницах GitHub, использование плагина для создания облака тегов для меня не вариант.GitHub создает сайты Jekyll с безопасной опцией, которая позволяет включать в ваш сайт только несколько плагинов (например, карту сайта). Поэтому я создаю облака тегов вручную, используя разметку Liquid.

          Отличительной особенностью облаков тегов является изменение размера тега в соответствии с количеством сообщений, отмеченных этим тегом. Чем больше постов будет, тем больше будет размер тега. Мы скоро увидим, как сгенерировать такие облака тегов на Jekyll.

          Jekyll поддерживает добавление тегов к сообщениям, указав их в Front Matter.Например, Заголовок этого самого поста с тегом, указанным как Jekyll , выглядит следующим образом.

            ---
          макет: сообщение
          title: Создание облака тегов в блоге Jekyll без плагина
          категории: инструменты разработчика
          Теги: Джекилл
          ---  

          Обратите внимание, что для сообщения Jekyll можно указать более одного тега и записать его в виде списка YAML или строки, разделенной пробелами.

          Вы можете сгенерировать страницы тегов для каждого тега, вручную создав страницу тегов с таким путем, как tagTAGNAME .Сообщения на странице тегов могут быть отображены путем просмотра сообщений в site.tags.TAGNAME (например, «TAGNAME = jekyll» в этом случае). Подробно о том, как создавать страницы тегов, я опубликую в отдельном посте.

          Облако тегов в Jekyll

          После настройки тегов в сообщениях и страниц тегов, созданных по URL-адресам, таким как tagTAGNAME , мы можем создать облако тегов, используя приведенный ниже фрагмент кода.

             

          Облако тегов

          {% assign tags = site.tags | Сортировать %} {% для тега в тегах%} {{tag [0] | replace: '-', ''}} ({{tag | last | size}}) {% endfor%}

          Мы просматриваем теги на сайте после их сортировки и затем генерируем ссылку для каждого тега.При создании ссылки для страницы тега мы обязательно устанавливаем размер каждой ссылки, чтобы включить параметр размера шрифта в качестве встроенного стиля. Размер зависит от количества сообщений, доступных для этого конкретного тега сайта.

          Поскольку мы указываем здесь размер шрифта в процентах, я выполнил смещение на 80 после умножения количества сообщений на 4. Таким образом, теги с одним сообщением будут иметь размер 84%, а теги с двумя сообщениями будут иметь размер 88% и так далее ... Вы можете изменить эти значения смещения по своему усмотрению.

          Мы можем добавить немного больше стиля в облако тегов. Просто некоторые базовые вещи, например, сделать их встроенными и добавить отступы.

            .site-tag a {
              дисплей: встроенный блок;
              поле справа: 12 пикселей;
          }  

          Вы можете пойти дальше и добавить больше стиля, который соответствует макету вашего блога.

          Демонстрация облака тегов

          Найдите ниже демонстрацию облака тегов, которое создается с использованием фрагмента кода, представленного выше. Обратите внимание, что теги ниже являются функциональными и перенесут вас на соответствующие страницы тегов.

          Облако тегов

          Сводка

          Мы увидели, как легко создавать облака тегов для блогов на основе Jekyll, и для этого не нужно прибегать к подключаемым модулям. Таким образом, мы можем показать эти облака тегов в блогах Jekyll, развернутых также со страницами GitHub. Если у вас есть какие-либо вопросы или проблемы, не забудьте задать их в комментариях ниже.

          Недавняя активность - OStack | 知识 分享 社区-Сообщество по обмену знаниями

          Недавняя активность - OStack | 知识 分享 社区-Сообщество по обмену знаниями

          Я пытаюсь создать байесовскую импульсную характеристику, но продолжаю сталкиваться с указанным выше сообщением об ошибке.Я попытался перезапустить R и переустановить все соответствующие пакеты. ... = ИСТИНА) irf (x1) <- irf (x1, opt_irf, conf_bands = 0,05) ...

          sudo до v1.9.5p2 имеет переполнение буфера на основе кучи, что позволяет повысить привилегии до root через sudoedit -s и аргумент командной строки, который заканчивается ... вопросом от: https: //stackoverflow.com/questions/65919828/ Как исправить-CVE-2021-3156 ...

          У меня есть таблица сделок, как показано ниже (существует больше столбцов). Я пытался использовать [Union] в моем запросе SQL, но когда значение в...

          Закрыто. Этот вопрос требует подробностей отладки. В настоящее время он не принимает ответы. вопрос от: https://stackoverflow.com/questions/65

          0/how-to-get-values-of-one-json-object-into-the-values-of-another-with-python ...

          У меня есть 2 таблицы: weekly_scores и команда в базе данных sqlite (версия SQLite 3.32.2) Weekly_scores имеет team_id и goal_differential, содержащий...: //stackoverflow.com/questions/65600684/inserting-sqlite-data-based-on-join-and-case ...

          Я пытаюсь загрузить файл XML в фрейм данных с помощью PySpark в записной книжке с данными. df = spark.read.format ("xml"). options (rowTag = "product", mode = ... .com / questions / 65660907 / load-xml-file-to-dataframe-in-pyspark-using-dbr -7-3-х ...

          В HTML есть этот тег: random В коде javascript, если я это сделаю ... вопрос о видимости из: https: // stackoverflow.com / questions / 65918902 / img-tab-visibility-is-going-as-blank ...

          На этот вопрос уже есть ответы здесь: вопрос от: https: //stackoverflow.com/questions/65651384/how-to-find-from-a-pandas-dataframe-in-python ...

          Журналы ClickHouse часто выводят сообщения об ошибках, как показано ниже: 2021.01.07 00: 55: 24.112567 [6418] {} vms.analysis_data (... /stackoverflow.com/questions/65623292/clickhouse-log-shows-hash- из-несжатых-файлов-не-совпадает...

          Я переношу NativeScript с 6.8 на 7.1.2. Пытаюсь сделать по следующей ссылке. В некоторых частях он работает хорошо. ... stackoverflow.com/questions/65835153/what-is-the-correct-way-to-use-android-uiapplication-uistatusbaranimation ...

          В моем компоненте есть три кнопки, каждая из которых имеет определенный атрибут данных, поэтому я могу определить, какая кнопка нажата, чтобы затем сопоставить ключ с ... do-i-dispatch-an-action-to-the-corre- ключ-из-вложенного-объекта-в-хранилище-состоянии...

          Я создал админку с помощью React.js. Я хочу иметь возможность просматривать и редактировать сообщения блога на сайте здесь. Для этого я добавил кнопку в ... / im-Have-a-problem-with-the-blog-post-edit-button-of-the-admin-panel-i-made-wi ...

          Я работаю над периферийными вычислениями для приложений IoT и ожидаю создать систему, которая будет действовать как ближний компьютер с использованием подключенного Raspberry Pi ... / how-do-i-create-a-near-edge-computing- система-отправка-сенсорных-данных-с-малиной-р...

          Я пытаюсь загрузить файл XML в фрейм данных с помощью PySpark в записной книжке с данными. df = spark.read.format ("xml"). options (rowTag = "product", mode = ... .com / questions / 65660907 / load-xml-file-to-dataframe-in-pyspark-using-dbr -7-3-х ...

          Журналы ClickHouse часто выводят сообщения об ошибках, как показано ниже: 2021.01.07 00: 55: 24.112567 [6418] {} vms.analysis_data (... /stackoverflow.com/questions/65623292/clickhouse-log-shows-hash- из-несжатых-файлов-не-совпадает...

          У меня есть 2 таблицы: weekly_scores и команда в базе данных sqlite (версия SQLite 3.32.2) Weekly_scores имеет team_id и goal_differential, который содержит ...: //stackoverflow.com/questions/65600684/inserting-sqlite-data-based-on -соединить-и-футляр ...

          В HTML есть этот тег: random В коде javascript, если я это сделаю ... вопрос о видимости от: https: //stackoverflow.com/questions/65918902/img- вкладка-видимость-идет-как-пустая...

          У меня есть таблица сделок, как показано ниже (существует больше столбцов). Я пытался использовать [Union] в своем SQL-запросе, но когда значение в ... https://stackoverflow.com/questions/65881543/grouping-union-all-result-from-multiple-columns-sql-query ...

          Закрыто. Этот вопрос требует подробностей отладки. В настоящее время он не принимает ответы. вопрос от: https://stackoverflow.com/questions/65

          0/how-to-get-values-of-one-json-object-into-the-values-of-another-with-python...

          sudo до v1.9.5p2 имеет переполнение буфера на основе кучи, что позволяет повысить привилегии до root через sudoedit -s и аргумент командной строки, который заканчивается ... вопросом от: https: //stackoverflow.com/questions/65919828/ Как исправить-CVE-2021-3156 ...

          На этот вопрос уже есть ответы здесь: вопрос от: https: //stackoverflow.com/questions/65651384/how-to-find-from-a-pandas-dataframe-in-python ...

          Я переношу NativeScript 6 на основе машинописного текста / angular.С 8 по 7.1.2. Пытаюсь сделать по следующей ссылке. В некоторых частях он работает хорошо. ... stackoverflow.com/questions/65835153/what-is-the-correct-way-to-use-android-uiapplication-uistatusbaranimation ...

          В моем компоненте есть три кнопки, каждая из которых имеет определенный атрибут данных, поэтому я могу определить, какая кнопка нажата, чтобы затем сопоставить ключ с ... do-i-dispatch-an-action-to-the-corre- ключ-из-вложенного-объекта-в-состоянии-хранилище ...

          у меня есть массив объектов, как показано ниже const SelectedOptions = [{label: 'label1', value: '1',}, {label: 'label2', value: '2',}]; Я использую это... / 65

          9 / как-извлечь-только-значения-из-массива-объектов-и-положить-в-массив-используя-ре ...

          Я собираю несколько листов в один мастер-лист. Первые четыре строки первого листа в моем массиве повторяются в одной ячейке вместо перечисления ... .com / questions / 65713536 / google-sheet-why-is-the-first-cell-of-my-query-repeatating ...

          Здесь я получаю следующий результат. Теперь я хочу показать это содержимое внутри поля выбора со значениями параметров, так как мы можем это сделать.. Здесь ...: https://stackoverflow.com/questions/65878810/show-array-object-values-inside-ajax-success-section ...

          Предыстория Я впервые пробую React Native Expo с машинописным текстом. поэтому я понятия не имею, как использовать BottomTab.Screen. В. Я хотел бы изменить 「name =" TabOne "... / 65886170 / response-natice-expo-how-can-i-change-bottomtab-screen-name-type-alias-to-japanes ...

          #include #include // определенная структура struct date {char day [10]; символ месяц [3]; int год; } sdate; // функция объявлена...: //stackoverflow.com/questions/65644660/assigning-value-to-char-string-using-pointer-to-struct ...

          ...

          .

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *