Новости Joomla

Компонент Joomla 6: Генератор LLMs.txt.

Компонент Joomla 6: Генератор LLMs.txt.

Компонент Joomla 6: Генератор LLMs.txt.

Ещё один генератор ИИ-файлов llms.txt и llms-full.txt.

Основные особенности/возможности компонента:

  • Генерация по стандарту: Автоматическое создание файла-визитки llms.txt и расширенной версии llms-full.txt с аннотированным списком материалов.
  • Интеллектуальная работа с контентом: Компонент использует мета-описания (Meta Description) из статей и пунктов меню, превращая SEO-настройки сайта в качественный контекст для нейросетей.
  • Просмотреть результат генерации файлов можно сразу в рабочей области компонента. После внесения корректив (через Настройки компонента. При отладке лучше открыть три вкладки в браузере: Настройка — Геренация/Превью — Список Материалов/Категории/Меню.) — проводим перегенерацию, смотрим результат до полной «победы».
  • Автоматизация и безопасность: Синхронизация с sitemap.xml, группировка по категориям и автоматическое создание резервных копий (.bak) при каждой генерации.
  • Гибкое управление: Возможность исключения определенных категорий и/или статей и/или пунктов меню, а также простая настройка через стандартную админпанель Joomla.
  • Подробное руководство/справка: Пошаговая инструкция для пользователя в Настройках компонента для редакторов с базовым знанием администрирования Joomla.

👉 Важно учесть.
1️⃣ Компонент Генератор LLMs.txt изначально составляет базовый список ссылок на основе sitemap.xml и сверяется с ним на предмет: запрета индексации url в robots.txt, тегов noinex/nofollow. Это экономит время на проверку «закрыть от индексации», поскольку компонент генерации Sitemap.xml уже реализовал эту задачу. Посему, формирование ссылок для ИИ имеет комплексный подход, составление грамотного/валидного/релевантного sitemap.xml никто не отменял.

2️⃣ Тексты-описания ссылок формируются из Meta Description com_content (только компонент Материалы) и выбранных пользователем Меню сайта. Важно, чтобы Meta Description были уникальными и релевантными, соответствовали базовому seo. Составленные «на отшибись» Description для ИИ — «не катит» (впрочем, для поисковых систем они тоже «не канали»).

Разработчик - участник нашего сообщества Александр Кузнецов (@newvksan).

Страница расширения

@joomlafeed

#joomla #ии #ai

👩‍💻 WT LLMs для Joomla: llms.txt, llms.json для AI-агентов.

👩‍💻 WT LLMs для Joomla: llms.txt, llms.json для AI-агентов.

Это Joomla-компонент для публикации AI-ready карты сайта и автоматической генерации файлов llms.txt, llms-full.txt и llms.json по концепции llmstxt.org.  Также о концепции llms.txt говорит Google в своей справке Lighthouse. Решение помогает LLM-моделям, AI-агентам, GEO/AI SEO-процессам и внутренним автоматизациям получать структурированные данные о сайте без ручной сборки JSON и Markdown.

С помощью WT LLMs можно:
- создать структурированное описание сайта для AI-агентов;
- управлять профилем сайта, картой интентов и каноническими страницами для этих интентов из админки Joomla;
- генерировать llms.txt и llms.json;
- использовать REST API для автоматического заполнения данных;
- отдавать публичную schema-инструкцию для AI-агентов;

В комплект компонента входит плагин markdown-версии страниц Joomla. Системный плагин Joomla, который добавляет альтернативное Markdown-представление страниц сайта. Он позволяет отдавать содержимое страницы в более чистом текстовом формате, удобном для AI-агентов, LLM, поисковых систем и технических интеграций.
Плагин добавляет в ссылки на AI-файлы.

Пакет подходит для сайтов на Joomla 5+, которым важно сделать контент понятнее для LLM, AI-поиска, ассистентов и будущих систем машинного чтения.

Видео:
- ВК Видео
- RuTube
- YouTube

Ссылки:
Страница расширения
GitHub

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 1218 Просмотров
*

Iproms

  • Новичок
  • 8
  • 0 / 0
Стиль для таблицы
« : 29.04.2013, 16:28:12 »
Добрый день!
Пытаюсь вставить калькулятор на страницу.Код и скрипт работают отлично, но ширины моей страницы не хватает для отображения таблицы, в коде пропадает тег style.Видимо его нужно где-то отдельно прописать?Если да, то где?

Код
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>calc</title>
</head>
<body>

<style>
    .calc {
        font-family: 'verdana', sans-serif;
        font-size: 12px;
       font=Verdana width: 600px;
        margin: 0 auto;
    }
    .calc .schema {
        margin: 1em 0;
        text-align: center;
    }
    .calc h4 {
        text-align: center;
    }
    .calc table {
        font: inherit;
        width: 100%;
        margin: 1em 0;
    }
    .calc td {
        text-align: center;
        vertical-align: top;
    }
    .calc table.in tr:first-child {
        font-weight: bold;
    }
    .calc table.in input {
        width: 60px;
    }
    .calc table.out tr:first-child {
        font-weight: bold;
    }
    .calc table.out input {
        width: 60px;
    }
    .calc table.out td.summary {
        text-align: right;
    }
    .calc table.out td.summary input {
        width: 120px;
    }
    .calc .panel {
        text-align: right;
    }
</style>

<script type="text/javascript">

    (function () {
        function event(element, event, func) {
            element.attachEvent ? element.attachEvent('on' + event, func) : element.addEventListener(event, func, false);
        }

        function controls(name) {
            return document.getElementsByName(name);
        }

        function control(name) {
            return document.getElementsByName(name)[0];
        }

        function parse_percent(text) {
            var parts = text.split('%');
            var first = parts[0].replace(',', '.');
            var value = parseFloat(first) / 100;
            return isNaN(value)? 0 : value;
        }

        function parse_float(text) {
            text = text.replace(' ', '').replace(',', '.');
            var value = parseFloat(text);
            return isNaN(value)? 0 : value;
        }

        function format_percent(value, fractional) {
            return (value * 100).toFixed(fractional).replace('.', ',') + '%';
        }

        function format_float(value, fractional) {
            var text = value.toFixed(fractional);
            var parts = text.split('.');
            var thousands = parts[0].replace(/(?=(?:\d{3})+$)(?!^)/g, ' ');
            return parts.length == 1 ? thousands : thousands + ',' + parts[1];
        }

        function recalculate(force) {
            var recalculate = force || control('auto-recalculation').checked;
            if (!recalculate) {
                return;
            }
            var length = parse_float(control('length').value);
            var width = parse_float(control('width').value);
            var height = parse_float(control('height').value);
            var glazing = parse_float(control('glazing').value);
            var grouting = parse_float(control('grouting').value);
            var cost = parse_float(control('cost').value);
            var discount = parse_percent(control('discount').value);

            var pallet = 240 /*bricks*/;

            var bricks = [
                (0.24 * height * ((length + width) - 0.24) - 0.12 * glazing) / (0.00195 + 0.000054 * grouting),
                (0.5 * height * ((length + width) - 0.5) - 0.24 * glazing) / (0.00195 + 0.000054 * grouting),
                (0.75 * height * ((length + width) - 0.75) - 0.375 * glazing) / (0.00195 + 0.000054 * grouting)
            ];

            for (var index = 0; index < 3; ++index) {
                bricks[index] = Math.max(0, bricks[index]);
                var sum = bricks[index] * cost;
                var summary = (1 - discount) * sum;
                controls('bricks')[index].value = format_float(bricks[index], 0);
                controls('pallets')[index].value = format_float(bricks[index] / pallet, 0);
                controls('sum')[index].value = format_float(sum, 2);
                controls('summary')[index].value = format_float(summary, 2);
            }
        }

        event(window, 'load', function () {
            event(control('recalculate'), 'click', function () {
                recalculate(true);
            });
            var inputs = ['length', 'width', 'height', 'glazing', 'grouting', 'cost'];
            for (var index = 0; index < inputs.length; ++index) {
                event(control(inputs[index]), 'blur', function (event) {
                    var control = event.srcElement;
                    control.value = format_float(parse_float(control.value), 2);
                    recalculate(false);
                });
            }
            event(control('discount'), 'blur', function (event) {
                var control = event.srcElement;
                var value = Math.max(0, Math.min(1, parse_percent(control.value)));
                control.value = format_percent(value, 0);
                recalculate(false);
            });
        });
    })();
</script>

<div class="calc">

    <div class="schema">
        <img src="schema.jpg" alt="schema">
    </div>

    <table class="in">
        <tr>
            <td>Ширина,<br>м</td>
            <td>Длина,<br>м</td>
            <td>Высота,<br>м</td>
            <td>Расшивка,<br>мм</td>
            <td>Остекление,<br>%</td>
            <td>Стоимость<br>кирпича</td>
            <td>Скидка,<br>%</td>
        </tr>
        <tr>
            <td><input name="width" type="text" value="0,00"></td>
            <td><input name="length" type="text" value="0,00"></td>
            <td><input name="height" type="text" value="0,00"></td>
            <td><input name="grouting" type="text" value="0,00"></td>
            <td><input name="glazing" type="text" value="0,00"></td>
            <td><input name="cost" type="text" value="0,00"></td>
            <td><input name="discount" type="text" value="0%"></td>
        </tr>
    </table>

    <h4>Кирпич 250x120x65</h4>

    <table class="out">
        <tr>
            <td>Толщина стены</td>
            <td>Количество<br>кирпичей</td>
            <td>Количество<br>палет</td>
            <td>Сумма</td>
            <td>Итог</td>
        </tr>
        <tr>
            <td>пол-кирпича</td>
            <td><input name="bricks" type="text" value="" readonly="readonly"></td>
            <td><input name="pallets" type="text" value="" readonly="readonly"></td>
            <td><input name="sum" type="text" value="" readonly="readonly"></td>
            <td class="summary"><input name="summary" value="" readonly="readonly"></td>
        </tr>
        <tr>
            <td>1 кирпич</td>
            <td><input name="bricks" type="text" value="" readonly="readonly"></td>
            <td><input name="pallets" type="text" value="" readonly="readonly"></td>
            <td><input name="sum" type="text" value="" readonly="readonly"></td>
            <td class="summary"><input name="summary" value="" readonly="readonly"></td>
        </tr>
        <tr>
            <td>1,5 кирпича</td>
            <td><input name="bricks" type="text" value="" readonly="readonly"></td>
            <td><input name="pallets" type="text" value="" readonly="readonly"></td>
            <td><input name="sum" type="text" value="" readonly="readonly"></td>
            <td class="summary"><input name="summary" value="" readonly="readonly"></td>
        </tr>
    </table>

    <div class="panel">
        <input class="true" type="checkbox" checked="checked" name="auto-recalculation" title="делать пересчёт автоматически при изменении данных">автоматически
        <input type="button" value="Расчет" name="recalculate">
    </div>
</div>

</body>
*

laro4ka

  • Захожу иногда
  • 142
  • 16 / 0
Re: Стиль для таблицы
« Ответ #1 : 29.04.2013, 16:46:21 »
У вас <table class="in">. А где стили для этого класса?
И вот это в .calc:
Код
font=Verdana width: 600px;
?
Можно написать так:
 
Код
.calc {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
width: 800px;
        margin: 0 auto;
    }
« Последнее редактирование: 29.04.2013, 16:49:49 от laro4ka »
Любишь кататься - люби и катайся! )))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как восстановить таблицы Virtiemart?

Автор Yevgeniii

Ответов: 0
Просмотров: 1247
Последний ответ 15.02.2017, 22:42:41
от Yevgeniii
Разделение таблицы по столбцам

Автор terwet

Ответов: 2
Просмотров: 1340
Последний ответ 18.11.2016, 21:17:37
от Forgiving
Побилась база. phpMyAdmin не видит таблицы в базе

Автор name

Ответов: 0
Просмотров: 1512
Последний ответ 26.08.2015, 11:08:18
от name
Вставка огромной таблицы

Автор Ziza007

Ответов: 5
Просмотров: 1551
Последний ответ 21.07.2015, 11:35:19
от Ziza007
В теге <li> появляется непонятный стиль в теге <span>

Автор Lovenokia

Ответов: 0
Просмотров: 1229
Последний ответ 03.04.2015, 12:09:29
от Lovenokia