From c3e46357a335658c8724fd7148b830c03f0240dd Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Sun, 13 Oct 2019 15:33:16 +0200 Subject: [PATCH] added tmp to git ignore --- .gitignore | 3 + tmp/Grav-5d9771f040539/1.1.1 | Bin 56270 -> 0 bytes .../.gitignore | 48 -- .../CHANGELOG.md | 58 -- .../LICENSE | 21 - .../README.md | 108 --- .../blueprints.yaml | 42 - .../composer.json | 5 - .../composer.lock | 114 --- .../imgsrcset.php | 84 -- .../imgsrcset.yaml | 11 - .../vendor/autoload.php | 7 - .../vendor/composer/ClassLoader.php | 445 ---------- .../vendor/composer/LICENSE | 21 - .../vendor/composer/autoload_classmap.php | 9 - .../vendor/composer/autoload_namespaces.php | 11 - .../vendor/composer/autoload_psr4.php | 9 - .../vendor/composer/autoload_real.php | 52 -- .../vendor/composer/autoload_static.php | 33 - .../vendor/composer/installed.json | 102 --- .../paquettg/php-html-parser/.gitattributes | 10 - .../paquettg/php-html-parser/.scrutinizer.yml | 41 - .../paquettg/php-html-parser/composer.json | 33 - .../src/PHPHtmlParser/Content.php | 254 ------ .../src/PHPHtmlParser/Curl.php | 46 -- .../src/PHPHtmlParser/CurlInterface.php | 19 - .../php-html-parser/src/PHPHtmlParser/Dom.php | 782 ------------------ .../src/PHPHtmlParser/Dom/AbstractNode.php | 505 ----------- .../src/PHPHtmlParser/Dom/ArrayNode.php | 41 - .../src/PHPHtmlParser/Dom/Collection.php | 168 ---- .../src/PHPHtmlParser/Dom/HtmlNode.php | 207 ----- .../src/PHPHtmlParser/Dom/InnerNode.php | 442 ---------- .../src/PHPHtmlParser/Dom/LeafNode.php | 13 - .../src/PHPHtmlParser/Dom/MockNode.php | 60 -- .../src/PHPHtmlParser/Dom/Tag.php | 351 -------- .../src/PHPHtmlParser/Dom/TextNode.php | 136 --- .../Exceptions/ChildNotFoundException.php | 12 - .../Exceptions/CircularException.php | 11 - .../Exceptions/CurlException.php | 11 - .../Exceptions/EmptyCollectionException.php | 11 - .../Exceptions/NotLoadedException.php | 11 - .../Exceptions/ParentNotFoundException.php | 11 - .../Exceptions/StrictException.php | 11 - .../Exceptions/UnknownChildTypeException.php | 11 - .../src/PHPHtmlParser/Finder.php | 55 -- .../src/PHPHtmlParser/Options.php | 94 --- .../src/PHPHtmlParser/Selector/Parser.php | 97 --- .../Selector/ParserInterface.php | 7 - .../src/PHPHtmlParser/Selector/Selector.php | 338 -------- .../src/PHPHtmlParser/StaticDom.php | 113 --- .../vendor/paquettg/string-encode/.travis.yml | 14 - .../paquettg/string-encode/CONTRIBUTING.md | 21 - .../vendor/paquettg/string-encode/README.md | 28 - .../paquettg/string-encode/composer.json | 28 - .../vendor/paquettg/string-encode/phpunit.php | 28 - .../vendor/paquettg/string-encode/phpunit.xml | 26 - .../string-encode/src/stringEncode/Encode.php | 121 --- .../src/stringEncode/Exception.php | 4 - .../string-encode/tests/EncodeTest.php | 30 - 59 files changed, 3 insertions(+), 5381 deletions(-) delete mode 100644 tmp/Grav-5d9771f040539/1.1.1 delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/.gitignore delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/CHANGELOG.md delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/LICENSE delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/README.md delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/blueprints.yaml delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/composer.json delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/composer.lock delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/imgsrcset.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/imgsrcset.yaml delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/autoload.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/ClassLoader.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/LICENSE delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_classmap.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_namespaces.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_psr4.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_real.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_static.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/installed.json delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/.gitattributes delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/.scrutinizer.yml delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/composer.json delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Content.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Curl.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/CurlInterface.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom/AbstractNode.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom/ArrayNode.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom/Collection.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom/HtmlNode.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom/InnerNode.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom/LeafNode.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom/MockNode.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom/Tag.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Dom/TextNode.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Exceptions/ChildNotFoundException.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Exceptions/CircularException.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Exceptions/CurlException.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Exceptions/EmptyCollectionException.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Exceptions/NotLoadedException.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Exceptions/ParentNotFoundException.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Exceptions/StrictException.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Exceptions/UnknownChildTypeException.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Finder.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Options.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Selector/Parser.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Selector/ParserInterface.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Selector/Selector.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/StaticDom.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/string-encode/.travis.yml delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/string-encode/CONTRIBUTING.md delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/string-encode/README.md delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/string-encode/composer.json delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/string-encode/phpunit.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/string-encode/phpunit.xml delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/string-encode/src/stringEncode/Encode.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/string-encode/src/stringEncode/Exception.php delete mode 100644 tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/string-encode/tests/EncodeTest.php diff --git a/.gitignore b/.gitignore index e3ec9f9..c863188 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,6 @@ tests/_support/_generated/* tests/cache/* tests/error.log system/templates/testing/* + +tmp/* +cache/* diff --git a/tmp/Grav-5d9771f040539/1.1.1 b/tmp/Grav-5d9771f040539/1.1.1 deleted file mode 100644 index 7f746cc4c956578486f688947cc8bc2c42f98648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56270 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 diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/.gitignore b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/.gitignore deleted file mode 100644 index 2938888..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/.gitignore +++ /dev/null @@ -1,48 +0,0 @@ -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# ========================= -# Operating System Files -# ========================= - -# OSX -# ========================= - -.DS_Store -.AppleDouble -.LSOverride - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk -.php_cs.cache diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/CHANGELOG.md b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/CHANGELOG.md deleted file mode 100644 index 552fe55..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/CHANGELOG.md +++ /dev/null @@ -1,58 +0,0 @@ -# v1.1.1 - -## 29-04-2019 - -1. [](#bugfix) - - Content-processing - -# v1.1.1-beta-1 - -## 11-04-2019 - -1. [](#bugfix) - - Content-processing - -# v1.1.0 - -## 14-02-2019 - -1. [](#improved) - - Allow per-page options - - Bump vendor-dependency - - Code-cleanup - -# v1.0.3 - -## 28-02-2017 - -1. [](#improved) - - Use selectize in blueprint - - Code cleanup - - PSR-1 and PSR-2 compliance - - Change plugin icon - - Update readme -2. [](#new) - - Document class and methods -3. [](#bugfix) - - Fix changelog format - -# v1.0.2 - -## 09-01-2017 - -1. [](#bugfix) - - Fixed blueprint for admin interface - -# v1.0.1 - -## 03-01-2017 - -1. [](#bugfix) - - Restricted operations to non-admin pages only - -# v1.0.0 - -## 14-05-2016 - -1. [](#new) - - Initial release diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/LICENSE b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/LICENSE deleted file mode 100644 index 5b50e4a..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Ole Vik - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/README.md b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/README.md deleted file mode 100644 index edc03e3..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/README.md +++ /dev/null @@ -1,108 +0,0 @@ -# [Grav](http://getgrav.org/) Image Srcset Plugin - -Adds a `srcset`-attribute to `img`-elements to allow for responsive images in Markdown. This allows [modern browsers](http://caniuse.com/#feat=srcset) to load the image which best fits within the viewport, based on available images and sizes, essentially choosing the best image to reduce loading times (see [RespImg](https://responsiveimages.org/)). - -Thus, on a small mobile screen this would load a much smaller image than on a large desktop. From this: - -```html -Street view -``` - -To this: - -```html -Street view -``` - -This is only applied to image-elements generated from Markdown. Depends on [PHP Html Parser v1.7.0](https://github.com/paquettg/php-html-parser/) for DOM parsing and manipulation of `srcset` and `sizes`. - -# Installation and Configuration - -1. Download the zip version of [this repository](https://github.com/OleVik/grav-plugin-imgsrcset) and unzip it under `/your/site/grav/user/plugins`. -2. Rename the folder to `imgsrcset`. - -You should now have all the plugin files under - - /your/site/grav/user/plugins/imgsrcset - -The plugin is enabled by default, and can be disabled by copying `user/plugins/imgsrcset/imgsrcset.yaml` into `user/config/plugins/imgsrcset.yaml` and setting `enabled: false`. For a simple Twig-integration see [this gist](https://gist.github.com/OleVik/a7604215f127763b71bd8b8788d45cfd). - -**Note**: The plugin needs Twig to be processed first, so be sure to set `twig_first` to `true` in `system.yaml`, like this: - -``` -pages: - twig_first: true -``` - -## Generating images - -This plugin does **not** leverage Grav's media caching mechanisms, it simply circumvenes the need for caching by assuming that images are generated outside of Grav. This is necessary because Grav currently uses the Gregwar library, which relies on PHP's GD-module for image manipulation, and it handles large or many images poorly - indeed it tends to crash both caching and Grav itself. Thus by creating the images outside of this system the same quality and automation is achieved. - -**For an example of generating responsive images with NodeJS and Gulp see [this gist](https://gist.github.com/OleVik/f2c8b51a7153743b13607072c27cf8d2).** - -## Widths - -The `widths` setting is a YAML sequence wherein each integer represents the width of the image, defaulting to: - -```yaml -- 320 -- 480 -- 640 -- 960 -- 1280 -- 1600 -- 1920 -- 2240 -``` - -## Sizes - -The `sizes` setting is a YAML string defining the [sizes](https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-sizes)-attribute, defaulting to: - -```yaml -sizes: "100vw" -``` - -## Images - -The plugin expects the images to be in the same folder as the source image. So, for the case of `street.jpg`, the page folder should contain: - -```bash -street.jpg -street-320.jpg -street-480.jpg -street-640.jpg -street-960.jpg -street-1280.jpg -street-1600.jpg -street-1920.jpg -street-2240.jpg -``` - -## Per Page Options - -Configuration-options may also be set on an individual Page, using the following FrontMatter: - -```yaml -imgsrcset: - enabled: true - widths: widths - sizes: sizes -``` - -MIT License 2019 by [Ole Vik](http://github.com/olevik). diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/blueprints.yaml b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/blueprints.yaml deleted file mode 100644 index 16f9ce1..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/blueprints.yaml +++ /dev/null @@ -1,42 +0,0 @@ -name: Image Srcset -version: 1.1.1 -testing: true -description: "Adds a srcset-attribute to img-elements to allow for responsive images in Markdown." -icon: picture-o -author: - name: Ole Vik - email: git@olevik.me - url: http://olevik.me -homepage: https://github.com/olevik/grav-plugin-imgsrcset -keywords: responsive, srcset -bugs: https://github.com/olevik/grav-plugin-imgsrcset/issues -license: MIT - -form: - validation: loose - fields: - enabled: - type: toggle - label: Plugin Status - highlight: 1 - default: 1 - options: - 1: PLUGIN_ADMIN.ENABLED - 0: PLUGIN_ADMIN.DISABLED - validate: - type: bool - widths: - type: selectize - label: Widths - description: Determines the available image sizes. Comma-separated list of widths. - classes: fancy - validate: - type: commalist - sizes: - type: text - size: x-small - label: Sizes - help: Determines the Sizes-attribute. - validate: - type: text - min: 1 diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/composer.json b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/composer.json deleted file mode 100644 index 9b9e71c..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/composer.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "require": { - "paquettg/php-html-parser": "^2.0.2" - } -} diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/composer.lock b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/composer.lock deleted file mode 100644 index 03ef294..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/composer.lock +++ /dev/null @@ -1,114 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "content-hash": "f38b95fb20b42face451f5eb678baf3e", - "packages": [ - { - "name": "paquettg/php-html-parser", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/paquettg/php-html-parser.git", - "reference": "77e4a44b0916690b4300fe9abf98fd05bbba48f0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paquettg/php-html-parser/zipball/77e4a44b0916690b4300fe9abf98fd05bbba48f0", - "reference": "77e4a44b0916690b4300fe9abf98fd05bbba48f0", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "paquettg/string-encode": "~1.0.0", - "php": ">=7.1" - }, - "require-dev": { - "mockery/mockery": "^1.2", - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^7.5.1" - }, - "type": "library", - "autoload": { - "psr-0": { - "PHPHtmlParser": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gilles Paquette", - "email": "paquettg@gmail.com", - "homepage": "http://gillespaquette.ca" - } - ], - "description": "An HTML DOM parser. It allows you to manipulate HTML. Find tags on an HTML page with selectors just like jQuery.", - "homepage": "https://github.com/paquettg/php-html-parser", - "keywords": [ - "dom", - "html", - "parser" - ], - "time": "2019-02-10T01:35:49+00:00" - }, - { - "name": "paquettg/string-encode", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/paquettg/string-encoder.git", - "reference": "a8708e9fac9d5ddfc8fc2aac6004e2cd05d80fee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paquettg/string-encoder/zipball/a8708e9fac9d5ddfc8fc2aac6004e2cd05d80fee", - "reference": "a8708e9fac9d5ddfc8fc2aac6004e2cd05d80fee", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5.1" - }, - "type": "library", - "autoload": { - "psr-0": { - "stringEncode": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gilles Paquette", - "email": "paquettg@gmail.com", - "homepage": "http://gillespaquette.ca" - } - ], - "description": "Facilitating the process of altering string encoding in PHP.", - "homepage": "https://github.com/paquettg/string-encoder", - "keywords": [ - "charset", - "encoding", - "string" - ], - "time": "2018-12-21T02:25:09+00:00" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [] -} diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/imgsrcset.php b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/imgsrcset.php deleted file mode 100644 index ea25888..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/imgsrcset.php +++ /dev/null @@ -1,84 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link https://github.com/OleVik/grav-plugin-imgsrcset - */ -namespace Grav\Plugin; - -use Grav\Common\Data; -use Grav\Common\Plugin; -use Grav\Common\Grav; -use Grav\Common\Page\Page; -use RocketTheme\Toolbox\Event\Event; -use PHPHtmlParser\Dom; - -/** - * Adds a srcset-attribute to img-elements to allow for responsive images in Markdown - * - * Class ImgSrcsetPlugin - * - * @category Extensions - * @package Grav\Plugin - * @author Ole Vik - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link https://github.com/OleVik/grav-plugin-imgsrcset - */ -class ImgSrcsetPlugin extends Plugin -{ - - /** - * Register events with Grav - * - * @return array - */ - public static function getSubscribedEvents() - { - return [ - 'onPageContentProcessed' => ['onPageContentProcessed', 0] - ]; - } - - /** - * Iterates over images in page content and rewrites paths - * - * @return void - */ - public function onPageContentProcessed() - { - if ($this->isAdmin()) { - return; - } - $config = (array) $this->config->get('plugins.imgsrcset'); - $page = $this->grav['page']; - $config = $this->mergeConfig($page); - if ($config['enabled']) { - include __DIR__ . '/vendor/autoload.php'; - $dom = new Dom; - $dom->load($page->getRawContent()); - $images = $dom->find('img'); - $widths = $config['widths']; - foreach ($images as $image) { - $file = pathinfo($image->getAttribute('src')); - $dirname = $file['dirname']; - $filename = $file['filename']; - $extension = $file['extension']; - $srcsets = ''; - foreach ($widths as $width) { - $srcsets .= $dirname.'/'.$filename.'-'.$width.'.'.$extension.' '.$width.'w, '; - } - $srcsets = rtrim($srcsets, ", "); - $image->setAttribute('srcset', $srcsets); - $image->setAttribute('sizes', $config['sizes']); - } - $page->setRawContent($dom->outerHtml); - } - } -} diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/imgsrcset.yaml b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/imgsrcset.yaml deleted file mode 100644 index 70b3234..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/imgsrcset.yaml +++ /dev/null @@ -1,11 +0,0 @@ -enabled: true -widths: - - 320 - - 480 - - 640 - - 960 - - 1280 - - 1600 - - 1920 - - 2240 -sizes: "100vw" \ No newline at end of file diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/autoload.php b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/autoload.php deleted file mode 100644 index a4a34bf..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see http://www.php-fig.org/psr/psr-0/ - * @see http://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; - - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', $this->prefixesPsr0); - } - - return array(); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath.'\\'; - if (isset($this->prefixDirsPsr4[$search])) { - foreach ($this->prefixDirsPsr4[$search] as $dir) { - $length = $this->prefixLengthsPsr4[$first][$search]; - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/LICENSE b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/LICENSE deleted file mode 100644 index f27399a..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_classmap.php b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_classmap.php deleted file mode 100644 index 7a91153..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,9 +0,0 @@ - array($vendorDir . '/paquettg/string-encode/src'), - 'PHPHtmlParser' => array($vendorDir . '/paquettg/php-html-parser/src'), -); diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_psr4.php b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_psr4.php deleted file mode 100644 index b265c64..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_psr4.php +++ /dev/null @@ -1,9 +0,0 @@ -= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require_once __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInite863a36850238c27fe275e4df5c3a50c::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } - - $loader->register(true); - - return $loader; - } -} diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_static.php b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_static.php deleted file mode 100644 index c4a11e1..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/autoload_static.php +++ /dev/null @@ -1,33 +0,0 @@ - - array ( - 'stringEncode' => - array ( - 0 => __DIR__ . '/..' . '/paquettg/string-encode/src', - ), - ), - 'P' => - array ( - 'PHPHtmlParser' => - array ( - 0 => __DIR__ . '/..' . '/paquettg/php-html-parser/src', - ), - ), - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixesPsr0 = ComposerStaticInite863a36850238c27fe275e4df5c3a50c::$prefixesPsr0; - - }, null, ClassLoader::class); - } -} diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/installed.json b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/installed.json deleted file mode 100644 index adf05c6..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/composer/installed.json +++ /dev/null @@ -1,102 +0,0 @@ -[ - { - "name": "paquettg/string-encode", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/paquettg/string-encoder.git", - "reference": "a8708e9fac9d5ddfc8fc2aac6004e2cd05d80fee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paquettg/string-encoder/zipball/a8708e9fac9d5ddfc8fc2aac6004e2cd05d80fee", - "reference": "a8708e9fac9d5ddfc8fc2aac6004e2cd05d80fee", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5.1" - }, - "time": "2018-12-21T02:25:09+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "stringEncode": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gilles Paquette", - "email": "paquettg@gmail.com", - "homepage": "http://gillespaquette.ca" - } - ], - "description": "Facilitating the process of altering string encoding in PHP.", - "homepage": "https://github.com/paquettg/string-encoder", - "keywords": [ - "charset", - "encoding", - "string" - ] - }, - { - "name": "paquettg/php-html-parser", - "version": "2.0.2", - "version_normalized": "2.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/paquettg/php-html-parser.git", - "reference": "77e4a44b0916690b4300fe9abf98fd05bbba48f0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paquettg/php-html-parser/zipball/77e4a44b0916690b4300fe9abf98fd05bbba48f0", - "reference": "77e4a44b0916690b4300fe9abf98fd05bbba48f0", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "paquettg/string-encode": "~1.0.0", - "php": ">=7.1" - }, - "require-dev": { - "mockery/mockery": "^1.2", - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^7.5.1" - }, - "time": "2019-02-10T01:35:49+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "PHPHtmlParser": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gilles Paquette", - "email": "paquettg@gmail.com", - "homepage": "http://gillespaquette.ca" - } - ], - "description": "An HTML DOM parser. It allows you to manipulate HTML. Find tags on an HTML page with selectors just like jQuery.", - "homepage": "https://github.com/paquettg/php-html-parser", - "keywords": [ - "dom", - "html", - "parser" - ] - } -] diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/.gitattributes b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/.gitattributes deleted file mode 100644 index afc2bfb..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/.gitattributes +++ /dev/null @@ -1,10 +0,0 @@ -/tests export-ignore -/.scrutinizar.yml export-ignore -/.travis.yml export-ignore -/.gitignore export-ignore -/CHANGELOG.md export-ignore -/CONTRIBUTING.md export-ignore -/LICENSE.md export-ignore -/README.md export-ignore -/phpunit.php export-ignore -/phpunit.xml export-ignore diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/.scrutinizer.yml b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/.scrutinizer.yml deleted file mode 100644 index 8b3532b..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/.scrutinizer.yml +++ /dev/null @@ -1,41 +0,0 @@ -filter: - paths: [src/*] - excluded_paths: [tests/*] -checks: - php: - code_rating: true - remove_extra_empty_lines: true - remove_php_closing_tag: true - remove_trailing_whitespace: true - fix_use_statements: - remove_unused: true - preserve_multiple: false - preserve_blanklines: true - order_alphabetically: true - fix_php_opening_tag: true - fix_linefeed: true - fix_line_ending: true - fix_identation_4spaces: true - fix_doc_comments: true -tools: - external_code_coverage: - timeout: 600 - runs: 3 - php_code_coverage: false - php_code_sniffer: - config: - standard: PSR2 - filter: - paths: ['src'] - php_loc: - enabled: true - excluded_dirs: [vendor, test] - php_cpd: - enabled: true - excluded_dirs: [vendor, test] -build: - nodes: - analysis: - tests: - override: - - php-scrutinizer-run diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/composer.json b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/composer.json deleted file mode 100644 index 108b710..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/composer.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "paquettg/php-html-parser", - "type": "library", - "version": "2.0.2", - "description": "An HTML DOM parser. It allows you to manipulate HTML. Find tags on an HTML page with selectors just like jQuery.", - "keywords": ["html", "dom", "parser"], - "homepage": "https://github.com/paquettg/php-html-parser", - "license": "MIT", - "authors": [ - { - "name": "Gilles Paquette", - "email": "paquettg@gmail.com", - "homepage": "http://gillespaquette.ca" - } - ], - "require": { - "php": ">=7.1", - "ext-mbstring": "*", - "paquettg/string-encode": "~1.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.5.1", - "mockery/mockery": "^1.2", - "php-coveralls/php-coveralls": "^2.1" - }, - "autoload": { - "psr-0": { - "PHPHtmlParser": "src/" - } - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Content.php b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Content.php deleted file mode 100644 index 0aa6b1c..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Content.php +++ /dev/null @@ -1,254 +0,0 @@ -'; - protected $slash = " />\r\n\t"; - protected $attr = ' >'; - - /** - * Content constructor. - * - * @param string $content - */ - public function __construct(string $content = '') - { - $this->content = $content; - $this->size = strlen($content); - $this->pos = 0; - } - - /** - * Returns the current position of the content. - * - * @return int - */ - public function getPosition(): int - { - return $this->pos; - } - - /** - * Gets the current character we are at. - * - * @param int $char - * @return string - */ - public function char(int $char = null): string - { - $pos = $this->pos; - if ( ! is_null($char)) { - $pos = $char; - } - - if ( ! isset($this->content[$pos])) { - return ''; - } - - return $this->content[$pos]; - } - - /** - * Moves the current position forward. - * - * @param int $count - * @return Content - * @chainable - */ - public function fastForward(int $count): Content - { - $this->pos += $count; - - return $this; - } - - /** - * Moves the current position backward. - * - * @param int $count - * @return Content - * @chainable - */ - public function rewind(int $count): Content - { - $this->pos -= $count; - if ($this->pos < 0) { - $this->pos = 0; - } - - return $this; - } - - /** - * Copy the content until we find the given string. - * - * @param string $string - * @param bool $char - * @param bool $escape - * @return string - */ - public function copyUntil(string $string, bool $char = false, bool $escape = false): string - { - if ($this->pos >= $this->size) { - // nothing left - return ''; - } - - if ($escape) { - $position = $this->pos; - $found = false; - while ( ! $found) { - $position = strpos($this->content, $string, $position); - if ($position === false) { - // reached the end - $found = true; - continue; - } - - if ($this->char($position - 1) == '\\') { - // this character is escaped - ++$position; - continue; - } - - $found = true; - } - } elseif ($char) { - $position = strcspn($this->content, $string, $this->pos); - $position += $this->pos; - } else { - $position = strpos($this->content, $string, $this->pos); - } - - if ($position === false) { - // could not find character, just return the remaining of the content - $return = substr($this->content, $this->pos, $this->size - $this->pos); - $this->pos = $this->size; - - return $return; - } - - if ($position == $this->pos) { - // we are at the right place - return ''; - } - - $return = substr($this->content, $this->pos, $position - $this->pos); - // set the new position - $this->pos = $position; - - return $return; - } - - /** - * Copies the content until the string is found and return it - * unless the 'unless' is found in the substring. - * - * @param string $string - * @param string $unless - * @return string - */ - public function copyUntilUnless(string $string, string $unless) - { - $lastPos = $this->pos; - $this->fastForward(1); - $foundString = $this->copyUntil($string, true, true); - - $position = strcspn($foundString, $unless); - if ($position == strlen($foundString)) { - return $string.$foundString; - } - // rewind changes and return nothing - $this->pos = $lastPos; - - return ''; - } - - /** - * Copies the content until it reaches the token string., - * - * @param string $token - * @param bool $char - * @param bool $escape - * @return string - * @uses $this->copyUntil() - */ - public function copyByToken(string $token, bool $char = false, bool $escape = false) - { - $string = $this->$token; - - return $this->copyUntil($string, $char, $escape); - } - - /** - * Skip a given set of characters. - * - * @param string $string - * @param bool $copy - * @return Content|string - */ - public function skip(string $string, bool $copy = false) - { - $len = strspn($this->content, $string, $this->pos); - - // make it chainable if they don't want a copy - $return = $this; - if ($copy) { - $return = substr($this->content, $this->pos, $len); - } - - // update the position - $this->pos += $len; - - return $return; - } - - /** - * Skip a given token of pre-defined characters. - * - * @param string $token - * @param bool $copy - * @return Content|string - * @uses $this->skip() - */ - public function skipByToken(string $token, bool $copy = false) - { - $string = $this->$token; - - return $this->skip($string, $copy); - } -} diff --git a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Curl.php b/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Curl.php deleted file mode 100644 index 8ce8fa3..0000000 --- a/tmp/Grav-5d9771f1b1ffd/OleVik-grav-plugin-imgsrcset-c25bfd7/vendor/paquettg/php-html-parser/src/PHPHtmlParser/Curl.php +++ /dev/null @@ -1,46 +0,0 @@ - at the end (html5 style) - * - * @var array - */ - protected $noSlash = []; - - /** - * Returns the inner html of the root node. - * - * @return string - */ - public function __toString(): string - { - return $this->root->innerHtml(); - } - - /** - * A simple wrapper around the root node. - * - * @param string $name - * @return mixed - */ - public function __get($name) - { - return $this->root->$name; - } - - /** - * Attempts to load the dom from any resource, string, file, or URL. - * - * @param string $str - * @param array $options - * @return Dom - * @chainable - */ - public function load(string $str, array $options = []): Dom - { - AbstractNode::resetCount(); - // check if it's a file - if (strpos($str, "\n") === false && is_file($str)) { - return $this->loadFromFile($str, $options); - } - // check if it's a url - if (preg_match("/^https?:\/\//i", $str)) { - return $this->loadFromUrl($str, $options); - } - - return $this->loadStr($str, $options); - } - - /** - * Loads the dom from a document file/url - * - * @param string $file - * @param array $options - * @return Dom - * @chainable - */ - public function loadFromFile(string $file, array $options = []): Dom - { - return $this->loadStr(file_get_contents($file), $options); - } - - /** - * Use a curl interface implementation to attempt to load - * the content from a url. - * - * @param string $url - * @param array $options - * @param CurlInterface $curl - * @return Dom - * @chainable - */ - public function loadFromUrl(string $url, array $options = [], CurlInterface $curl = null): Dom - { - if (is_null($curl)) { - // use the default curl interface - $curl = new Curl; - } - $content = $curl->get($url); - - return $this->loadStr($content, $options); - } - - /** - * Parsers the html of the given string. Used for load(), loadFromFile(), - * and loadFromUrl(). - * - * @param string $str - * @param array $option - * @return Dom - * @chainable - */ - public function loadStr(string $str, array $option = []): Dom - { - $this->options = new Options; - $this->options->setOptions($this->globalOptions) - ->setOptions($option); - - $this->rawSize = strlen($str); - $this->raw = $str; - - $html = $this->clean($str); - - $this->size = strlen($str); - $this->content = new Content($html); - - $this->parse(); - $this->detectCharset(); - - return $this; - } - - /** - * Sets a global options array to be used by all load calls. - * - * @param array $options - * @return Dom - * @chainable - */ - public function setOptions(array $options): Dom - { - $this->globalOptions = $options; - - return $this; - } - - /** - * Find elements by css selector on the root node. - * - * @param string $selector - * @param int $nth - * @return mixed - */ - public function find(string $selector, int $nth = null) - { - $this->isLoaded(); - - return $this->root->find($selector, $nth); - } - - /** - * Find element by Id on the root node - * - * @param int $id - * @return mixed - */ - public function findById(int $id) - { - $this->isLoaded(); - - return $this->root->findById($id); - } - - /** - * Adds the tag (or tags in an array) to the list of tags that will always - * be self closing. - * - * @param string|array $tag - * @return Dom - * @chainable - */ - public function addSelfClosingTag($tag): Dom - { - if ( ! is_array($tag)) { - $tag = [$tag]; - } - foreach ($tag as $value) { - $this->selfClosing[] = $value; - } - - return $this; - } - - /** - * Removes the tag (or tags in an array) from the list of tags that will - * always be self closing. - * - * @param string|array $tag - * @return Dom - * @chainable - */ - public function removeSelfClosingTag($tag): Dom - { - if ( ! is_array($tag)) { - $tag = [$tag]; - } - $this->selfClosing = array_diff($this->selfClosing, $tag); - - return $this; - } - - /** - * Sets the list of self closing tags to empty. - * - * @return Dom - * @chainable - */ - public function clearSelfClosingTags(): Dom - { - $this->selfClosing = []; - - return $this; - } - - - /** - * Adds a tag to the list of self closing tags that should not have a trailing slash - * - * @param $tag - * @return Dom - * @chainable - */ - public function addNoSlashTag($tag): Dom - { - if ( ! is_array($tag)) { - $tag = [$tag]; - } - foreach ($tag as $value) { - $this->noSlash[] = $value; - } - - return $this; - } - - /** - * Removes a tag from the list of no-slash tags. - * - * @param $tag - * @return Dom - * @chainable - */ - public function removeNoSlashTag($tag): Dom - { - if ( ! is_array($tag)) { - $tag = [$tag]; - } - $this->noSlash = array_diff($this->noSlash, $tag); - - return $this; - } - - /** - * Empties the list of no-slash tags. - * - * @return Dom - * @chainable - */ - public function clearNoSlashTags(): Dom - { - $this->noSlash = []; - - return $this; - } - - /** - * Simple wrapper function that returns the first child. - * - * @return \PHPHtmlParser\Dom\AbstractNode - */ - public function firstChild(): \PHPHtmlParser\Dom\AbstractNode - { - $this->isLoaded(); - - return $this->root->firstChild(); - } - - /** - * Simple wrapper function that returns the last child. - * - * @return \PHPHtmlParser\Dom\AbstractNode - */ - public function lastChild(): \PHPHtmlParser\Dom\AbstractNode - { - $this->isLoaded(); - - return $this->root->lastChild(); - } - - /** - * Simple wrapper function that returns count of child elements - * - * @return int - */ - public function countChildren(): int - { - $this->isLoaded(); - - return $this->root->countChildren(); - } - - /** - * Get array of children - * - * @return array - */ - public function getChildren(): array - { - $this->isLoaded(); - - return $this->root->getChildren(); - } - - /** - * Check if node have children nodes - * - * @return bool - */ - public function hasChildren(): bool - { - $this->isLoaded(); - - return $this->root->hasChildren(); - } - - /** - * Simple wrapper function that returns an element by the - * id. - * - * @param string $id - * @return \PHPHtmlParser\Dom\AbstractNode|null - */ - public function getElementById($id) - { - $this->isLoaded(); - - return $this->find('#'.$id, 0); - } - - /** - * Simple wrapper function that returns all elements by - * tag name. - * - * @param string $name - * @return mixed - */ - public function getElementsByTag(string $name) - { - $this->isLoaded(); - - return $this->find($name); - } - - /** - * Simple wrapper function that returns all elements by - * class name. - * - * @param string $class - * @return mixed - */ - public function getElementsByClass(string $class) - { - $this->isLoaded(); - - return $this->find('.'.$class); - } - - /** - * Checks if the load methods have been called. - * - * @throws NotLoadedException - */ - protected function isLoaded(): void - { - if (is_null($this->content)) { - throw new NotLoadedException('Content is not loaded!'); - } - } - - /** - * Cleans the html of any none-html information. - * - * @param string $str - * @return string - */ - protected function clean(string $str): string - { - if ($this->options->get('cleanupInput') != true) { - // skip entire cleanup step - return $str; - } - - // remove white space before closing tags - $str = mb_eregi_replace("'\s+>", "'>", $str); - $str = mb_eregi_replace('"\s+>', '">', $str); - - // clean out the \n\r - $replace = ' '; - if ($this->options->get('preserveLineBreaks')) { - $replace = ' '; - } - $str = str_replace(["\r\n", "\r", "\n"], $replace, $str); - - // strip the doctype - $str = mb_eregi_replace("", '', $str); - - // strip out comments - $str = mb_eregi_replace("", '', $str); - - // strip out cdata - $str = mb_eregi_replace("", '', $str); - - // strip out