Интеграция unpkg.com для MODX Revolution

Синтаксис:

    
        [[unpkg.com?
            &packages=`{
                "link" : [
                    { "package" : "", "version" : "", "file" : "", "algo" : "", "crossorigin" : "" }
                ],
                "script" : [
                    { "package" : "", "version" : "", "file" : "", "async" : "", "defer" : "", "algo" : "", "crossorigin" : "" }
                ]
            }`
            &async=`false`
            &defer=`false`
            &algo=`sha384`
            &crossorigin=`anonymous`
            &lifetime=`604800`
        ]]
        [[+unpkg.com.link]]
        [[+unpkg.com.script]]
    

Параметры:

&packages
Обязательный. JSON-объект, содержащий информацию про пакеты, их версии и файлы. Имя пакета является обязательным, в то время как остальные свойства заменяются соответствующими по-умолчанию из перенаправления, если не указаны. Многие пакеты не имеют установленного по-умолчанию имени файла.
&async
Не обязательный. По-умолчанию false. Значения аттрибута async для всех ресурсов script. Интерпретируется как boolean. Может быть указан отдельно для ресурса script.
&defer
Не обязательный. По-умолчанию false. Значения аттрибута defer для всех ресурсов script. Интерпретируется как boolean. Может быть указан отдельно для ресурса script.
&algo
Не обязательный. По-умолчанию sha384. Алгоритм, который будет использоваться для вычисления хеша контроля целостности ресурсов. Не чувствителен к регистру. Возможные значения: sha256, sha384, sha512. Может быть указан отдельно для ресурса.
&crossorigin
Не обязательный. По-умолчанию anonymous. Значения аттрибута crossorigin для всех ресурсов. Не чувствителен к регистру. Возможные значения: anonymous, use-credentials. Может быть указан отдельно для ресурса.
&lifetime
Не обязательный. По-умолчанию 604800. Срок действия кеша ресурсов.

Плейсхолдеры:

[[+unpkg.com.link]]
Плейсхолдер для всех тегов link.
[[+unpkg.com.script]]
Плейсхолдер для всех тегов script.

Примеры:

Последняя версия jQuery и prism.js ( async ) с ежедневным обновлениями:

    
        [[unpkg.com?
            &libraries=`{
                "script" : [
                    { "package" : "jquery", "file" : "dist/jquery.min.js" },
                    { "package" : "prismjs", "file" : "prism.js", "async" : "true" }
                ]
            }`
            &lifetime=`86400`
        ]]
    

Последняя версия Bootstrap с defer для всех ресурсов script:

    
        [[unpkg.com?
            &libraries=`{
                "link" : [
                    { "package" : "bootstrap", "file" : "dist/css/bootstrap.min.css" }
                ],
                "script" : [
                    { "package" : "jquery", "file" : "dist/jquery.min.js" },
                    { "package" : "popper.js", "file" : "dist/umd/popper.min.js" },
                    { "package" : "bootstrap", "file" : "dist/js/bootstrap.min.js" }
                ]
            }`
            &defer=`true`
        ]]
    

Примечания:

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