diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index b392ade..ed5e506 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -9,7 +9,7 @@ jobs: matrix: # TODO : enable tests on windows operating-system: [ubuntu-latest, macOS-latest] - php-versions: ['7.1', '7.2', '7.3'] + php-versions: ['7.2', '7.3', '7.4'] name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }} runs-on: ${{ matrix.operating-system }} @@ -21,8 +21,7 @@ jobs: uses: shivammathur/setup-php@master with: php-version: ${{ matrix.php-versions }} - extension-csv: mbstring, xdebug - coverage: xdebug + extension-csv: mbstring - name: Get Composer Cache Directory id: composer-cache @@ -43,3 +42,25 @@ jobs: - name: Run test suite run: composer run-script test + + sonarcloud: + runs-on: ubuntu-latest + if: github.event_name != 'pull_request' + steps: + - uses: actions/checkout@v1 + - name: Setup PHP + uses: shivammathur/setup-php@master + with: + php-version: 7.4 + extension-csv: mbstring, xdebug + coverage: xdebug + + - name: Install dependencies + run: composer install --prefer-dist --no-progress --no-suggest + + - name: Run test suite + run: composer run-script test -- --coverage-clover=coverage.clover + + - run: wget https://scrutinizer-ci.com/ocular.phar + - name: Upload code coverage + run: php ocular.phar code-coverage:upload --format=php-clover coverage.clover \ No newline at end of file diff --git a/.gitignore b/.gitignore index a2fd533..b500700 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ node_modules static /vendor +.phpunit.result.cache /prettier.config.js /.eslintrc.js diff --git a/.travis.yml b/.travis.yml index f12c7eb..71fbe79 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,7 @@ language: php php: - - '7.1' - - '7.2' - - '7.3' + - '7.4' - nightly matrix: @@ -11,27 +9,7 @@ matrix: - php: nightly before_script: - - composer install --dev --prefer-source + - composer install --prefer-dist --no-progress --no-suggest script: - - vendor/bin/phpunit --coverage-clover=coverage.clover - -after_script: - - wget https://scrutinizer-ci.com/ocular.phar - - php ocular.phar code-coverage:upload --format=php-clover coverage.clover - -jobs: - include: - - stage: "Deploy Documentation" - php: "7.3" - script: skip - before_deploy: - - composer install - - bin/daux generate - deploy: - provider: pages - local_dir: static - skip_cleanup: true - github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard - on: - branch: master + - vendor/bin/phpunit diff --git a/README.md b/README.md index 3ae19f7..fab2957 100755 --- a/README.md +++ b/README.md @@ -234,7 +234,7 @@ You can then point your browser to http://localhost:8086 ## PHP Requirements -Daux.io is compatible with PHP 7.1.3 and up. +Daux.io is compatible with PHP 7.2.0 and up. The reason is because some dependencies we have (mainly Symfony and Guzzle) do not support PHP 5.6 anymore. diff --git a/composer.json b/composer.json index 24c5592..c30694a 100644 --- a/composer.json +++ b/composer.json @@ -17,18 +17,19 @@ ], "bin": ["bin/daux"], "require": { - "php": ">=7.1.3", + "php": ">=7.2", "guzzlehttp/guzzle": "~6.0", - "league/commonmark": "^0.18", + "league/commonmark": "^1.0.0", + "league/commonmark-ext-table": "^2.0.0", "league/plates": "~3.1", "myclabs/deep-copy": "^1.5", - "symfony/console": "^4.0", - "symfony/http-foundation": "^4.0", + "symfony/console": "^5.0", + "symfony/http-foundation": "^5.0", "symfony/polyfill-intl-icu": "^1.10", - "symfony/process": "^4.0", - "webuni/commonmark-table-extension": "0.9.*", + "symfony/process": "^5.0", "webuni/front-matter": "^1.0.0", - "scrivo/highlight.php": "^9.15" + "scrivo/highlight.php": "^9.15", + "symfony/mime": "^5.0" }, "suggest":{ "ext-intl": "Allows to translate the modified at date" @@ -42,7 +43,7 @@ "justinwalsh/daux.io": "*" }, "require-dev": { - "phpunit/phpunit": "~7.4", + "phpunit/phpunit": "^8.0", "mikey179/vfsstream": "^1.6" }, "scripts": { diff --git a/composer.lock b/composer.lock index f7f244e..0340af2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3df8e368fea890f0e123788f898cddc9", + "content-hash": "24a4b0892dabafe6c29fa4674558d300", "packages": [ { "name": "guzzlehttp/guzzle", @@ -196,34 +196,36 @@ }, { "name": "league/commonmark", - "version": "0.18.5", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "f94e18d68260f43a7d846279cad88405854b1306" + "reference": "d74654d85954e3b9451d67faaebacd210fc70252" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/f94e18d68260f43a7d846279cad88405854b1306", - "reference": "f94e18d68260f43a7d846279cad88405854b1306", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d74654d85954e3b9451d67faaebacd210fc70252", + "reference": "d74654d85954e3b9451d67faaebacd210fc70252", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=5.6.5" + "php": "^7.1" }, "replace": { "colinodell/commonmark-php": "*" }, "require-dev": { "cebe/markdown": "~1.0", - "commonmark/commonmark.js": "0.28", + "commonmark/commonmark.js": "0.29.0", "erusev/parsedown": "~1.0", + "ext-json": "*", "michelf/php-markdown": "~1.4", - "mikehaertl/php-shellcommand": "^1.2", - "phpunit/phpunit": "^5.7.27|^6.5.14", - "scrutinizer/ocular": "^1.1", - "symfony/finder": "^3.0|^4.0" + "mikehaertl/php-shellcommand": "^1.4", + "phpstan/phpstan-shim": "^0.11.5", + "phpunit/phpunit": "^7.5", + "scrutinizer/ocular": "^1.5", + "symfony/finder": "^4.2" }, "suggest": { "league/commonmark-extras": "Library of useful extensions including smart punctuation" @@ -234,12 +236,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.19-dev" + "dev-master": "1.2-dev" } }, "autoload": { "psr-4": { - "League\\CommonMark\\": "src/" + "League\\CommonMark\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -255,13 +257,78 @@ } ], "description": "PHP Markdown parser based on the CommonMark spec", - "homepage": "https://github.com/thephpleague/commonmark", + "homepage": "https://commonmark.thephpleague.com", "keywords": [ "commonmark", "markdown", "parser" ], - "time": "2019-03-28T13:52:31+00:00" + "time": "2019-11-11T22:23:29+00:00" + }, + { + "name": "league/commonmark-ext-table", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark-ext-table.git", + "reference": "3228888ea69636e855efcf6636ff8e6316933fe7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark-ext-table/zipball/3228888ea69636e855efcf6636ff8e6316933fe7", + "reference": "3228888ea69636e855efcf6636ff8e6316933fe7", + "shasum": "" + }, + "require": { + "league/commonmark": "~0.19.3|^1.0", + "php": "^7.1" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.14", + "phpstan/phpstan": "~0.11", + "phpunit/phpunit": "^7.0|^8.0", + "symfony/var-dumper": "^4.0", + "vimeo/psalm": "^3.0" + }, + "type": "commonmark-extension", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\Ext\\Table\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Martin Hasoň", + "email": "martin.hason@gmail.com" + }, + { + "name": "Webuni s.r.o.", + "homepage": "https://www.webuni.cz" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Table extension for league/commonmark", + "homepage": "https://github.com/thephpleague/commonmark-ext-table", + "keywords": [ + "commonmark", + "extension", + "markdown", + "table" + ], + "time": "2019-09-26T13:28:33+00:00" }, { "name": "league/plates", @@ -574,41 +641,41 @@ }, { "name": "symfony/console", - "version": "v4.4.0", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "35d9077f495c6d184d9930f7a7ecbd1ad13c7ab8" + "reference": "1ece22ce0c2d54572dafcd114cc08c0031cc0ac3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/35d9077f495c6d184d9930f7a7ecbd1ad13c7ab8", - "reference": "35d9077f495c6d184d9930f7a7ecbd1ad13c7ab8", + "url": "https://api.github.com/repos/symfony/console/zipball/1ece22ce0c2d54572dafcd114cc08c0031cc0ac3", + "reference": "1ece22ce0c2d54572dafcd114cc08c0031cc0ac3", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": "^7.2.5", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", "symfony/service-contracts": "^1.1|^2" }, "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3|>=5", + "symfony/dependency-injection": "<4.4", + "symfony/event-dispatcher": "<4.4", "symfony/lock": "<4.4", - "symfony/process": "<3.3" + "symfony/process": "<4.4" }, "provide": { "psr/log-implementation": "1.0" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/event-dispatcher": "^4.3", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", "symfony/lock": "^4.4|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^4.3|^5.0" + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "psr/log": "For using the console logger", @@ -619,7 +686,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -646,35 +713,35 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-11-13T07:39:40+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.4.0", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "502040dd2b0cf0a292defeb6145f4d7a4753c99c" + "reference": "c5c226b6f164ae4f95c4bffbe940c81050940eda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/502040dd2b0cf0a292defeb6145f4d7a4753c99c", - "reference": "502040dd2b0cf0a292defeb6145f4d7a4753c99c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c5c226b6f164ae4f95c4bffbe940c81050940eda", + "reference": "c5c226b6f164ae4f95c4bffbe940c81050940eda", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/mime": "^4.3|^5.0", + "php": "^7.2.5", + "symfony/mime": "^4.4|^5.0", "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { "predis/predis": "~1.0", - "symfony/expression-language": "^3.4|^4.0|^5.0" + "symfony/expression-language": "^4.4|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -701,28 +768,28 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-11-17T10:10:42+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/intl", - "version": "v4.3.3", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "741376a9127841ffae39f197f8bd0ab2d4772157" + "reference": "1a700ae25f25f1f7b2201da020184bff5a8912c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/741376a9127841ffae39f197f8bd0ab2d4772157", - "reference": "741376a9127841ffae39f197f8bd0ab2d4772157", + "url": "https://api.github.com/repos/symfony/intl/zipball/1a700ae25f25f1f7b2201da020184bff5a8912c0", + "reference": "1a700ae25f25f1f7b2201da020184bff5a8912c0", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": "^7.2.5", "symfony/polyfill-intl-icu": "~1.0" }, "require-dev": { - "symfony/filesystem": "~3.4|~4.0" + "symfony/filesystem": "^4.4|^5.0" }, "suggest": { "ext-intl": "to use the component with locales other than \"en\"" @@ -730,7 +797,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -776,24 +843,24 @@ "l10n", "localization" ], - "time": "2019-07-24T14:47:54+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/mime", - "version": "v4.4.0", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "89da7b68b7149aab065c09b97f938753ab52831f" + "reference": "76f3c09b7382bf979af7bcd8e6f8033f1324285e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/89da7b68b7149aab065c09b97f938753ab52831f", - "reference": "89da7b68b7149aab065c09b97f938753ab52831f", + "url": "https://api.github.com/repos/symfony/mime/zipball/76f3c09b7382bf979af7bcd8e6f8033f1324285e", + "reference": "76f3c09b7382bf979af7bcd8e6f8033f1324285e", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": "^7.2.5", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -802,12 +869,12 @@ }, "require-dev": { "egulias/email-validator": "^2.1.10", - "symfony/dependency-injection": "^3.4|^4.1|^5.0" + "symfony/dependency-injection": "^4.4|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -838,20 +905,20 @@ "mime", "mime-type" ], - "time": "2019-11-13T07:39:40+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.12.0", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4" + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", "shasum": "" }, "require": { @@ -863,7 +930,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -896,20 +963,20 @@ "polyfill", "portable" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.12.0", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "66810b9d6eb4af54d543867909d65ab9af654d7e" + "reference": "b3dffd68afa61ca70f2327f2dd9bbeb6aa53d70b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/66810b9d6eb4af54d543867909d65ab9af654d7e", - "reference": "66810b9d6eb4af54d543867909d65ab9af654d7e", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/b3dffd68afa61ca70f2327f2dd9bbeb6aa53d70b", + "reference": "b3dffd68afa61ca70f2327f2dd9bbeb6aa53d70b", "shasum": "" }, "require": { @@ -922,7 +989,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -954,20 +1021,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.12.0", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2" + "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", - "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6f9c239e61e1b0c9229a28ff89a812dc449c3d46", + "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46", "shasum": "" }, "require": { @@ -981,7 +1048,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -1016,20 +1083,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.12.0", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", - "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", "shasum": "" }, "require": { @@ -1041,7 +1108,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -1075,20 +1142,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T14:18:11+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.12.0", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "04ce3335667451138df4307d6a9b61565560199e" + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", - "reference": "04ce3335667451138df4307d6a9b61565560199e", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", "shasum": "" }, "require": { @@ -1097,7 +1164,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -1130,20 +1197,20 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.12.0", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188" + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188", - "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", "shasum": "" }, "require": { @@ -1152,7 +1219,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -1188,29 +1255,29 @@ "portable", "shim" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-11-27T16:25:15+00:00" }, { "name": "symfony/process", - "version": "v4.4.0", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "75ad33d9b6f25325ebc396d68ad86fd74bcfbb06" + "reference": "110f98bed214a007eb440c7bb14088fed96f847f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/75ad33d9b6f25325ebc396d68ad86fd74bcfbb06", - "reference": "75ad33d9b6f25325ebc396d68ad86fd74bcfbb06", + "url": "https://api.github.com/repos/symfony/process/zipball/110f98bed214a007eb440c7bb14088fed96f847f", + "reference": "110f98bed214a007eb440c7bb14088fed96f847f", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": "^7.2.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -1237,24 +1304,24 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-10-28T20:30:34+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/service-contracts", - "version": "v1.1.8", + "version": "v2.0.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf" + "reference": "9d99e1556417bf227a62e14856d630672bf10eaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf", - "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/9d99e1556417bf227a62e14856d630672bf10eaf", + "reference": "9d99e1556417bf227a62e14856d630672bf10eaf", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": "^7.2.9", "psr/container": "^1.0" }, "suggest": { @@ -1263,7 +1330,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -1295,20 +1362,20 @@ "interoperability", "standards" ], - "time": "2019-10-14T12:27:06+00:00" + "time": "2019-11-09T09:18:34+00:00" }, { "name": "symfony/yaml", - "version": "v4.2.9", + "version": "v4.4.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "6712daf03ee25b53abb14e7e8e0ede1a770efdb1" + "reference": "76de473358fe802578a415d5bb43c296cf09d211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/6712daf03ee25b53abb14e7e8e0ede1a770efdb1", - "reference": "6712daf03ee25b53abb14e7e8e0ede1a770efdb1", + "url": "https://api.github.com/repos/symfony/yaml/zipball/76de473358fe802578a415d5bb43c296cf09d211", + "reference": "76de473358fe802578a415d5bb43c296cf09d211", "shasum": "" }, "require": { @@ -1319,7 +1386,7 @@ "symfony/console": "<3.4" }, "require-dev": { - "symfony/console": "~3.4|~4.0" + "symfony/console": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -1327,7 +1394,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1354,66 +1421,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-03-30T15:58:42+00:00" - }, - { - "name": "webuni/commonmark-table-extension", - "version": "0.9.0", - "source": { - "type": "git", - "url": "https://github.com/webuni/commonmark-table-extension.git", - "reference": "94bc98d802d0b706e748716854e5fa0bd3644df3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webuni/commonmark-table-extension/zipball/94bc98d802d0b706e748716854e5fa0bd3644df3", - "reference": "94bc98d802d0b706e748716854e5fa0bd3644df3", - "shasum": "" - }, - "require": { - "league/commonmark": "^0.16|^0.17|^0.18", - "php": "^5.6|^7.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.9", - "phpunit/phpunit": "^5.4|^6.0", - "symfony/var-dumper": "^3.0|^4.0", - "vimeo/psalm": "~0.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.9-dev" - } - }, - "autoload": { - "psr-4": { - "Webuni\\CommonMark\\TableExtension\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Martin Hasoň", - "email": "martin.hason@gmail.com" - }, - { - "name": "Webuni s.r.o.", - "homepage": "https://www.webuni.cz" - } - ], - "description": "The table extension for CommonMark PHP implementation", - "homepage": "https://github.com/webuni/commonmark-table-extension", - "keywords": [ - "commonmark", - "markdown", - "table" - ], - "abandoned": "league/commonmark-ext-table", - "time": "2018-11-28T11:29:11+00:00" + "time": "2019-11-12T14:51:11+00:00" }, { "name": "webuni/front-matter", @@ -1487,16 +1495,16 @@ "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "a2c590166b2133a4633738648b6b064edae0814a" + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", - "reference": "a2c590166b2133a4633738648b6b064edae0814a", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", "shasum": "" }, "require": { @@ -1539,7 +1547,7 @@ "constructor", "instantiate" ], - "time": "2019-03-17T17:37:11+00:00" + "time": "2019-10-21T16:45:58+00:00" }, { "name": "mikey179/vfsstream", @@ -1904,40 +1912,40 @@ }, { "name": "phpunit/php-code-coverage", - "version": "6.1.4", + "version": "7.0.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" + "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf", + "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.1", - "phpunit/php-file-iterator": "^2.0", + "php": "^7.2", + "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.0", + "phpunit/php-token-stream": "^3.1.1", "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.1 || ^4.0", + "sebastian/environment": "^4.2.2", "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" + "theseer/tokenizer": "^1.1.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^8.2.2" }, "suggest": { - "ext-xdebug": "^2.6.0" + "ext-xdebug": "^2.7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.1-dev" + "dev-master": "7.0-dev" } }, "autoload": { @@ -1963,7 +1971,7 @@ "testing", "xunit" ], - "time": "2018-10-31T16:06:48+00:00" + "time": "2019-11-20T13:55:58+00:00" }, { "name": "phpunit/php-file-iterator", @@ -2156,53 +2164,52 @@ }, { "name": "phpunit/phpunit", - "version": "7.5.17", + "version": "8.4.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "4c92a15296e58191a4cd74cff3b34fc8e374174a" + "reference": "67f9e35bffc0dd52d55d565ddbe4230454fd6a4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4c92a15296e58191a4cd74cff3b34fc8e374174a", - "reference": "4c92a15296e58191a4cd74cff3b34fc8e374174a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/67f9e35bffc0dd52d55d565ddbe4230454fd6a4e", + "reference": "67f9e35bffc0dd52d55d565ddbe4230454fd6a4e", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.1", + "doctrine/instantiator": "^1.2.0", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", - "myclabs/deep-copy": "^1.7", - "phar-io/manifest": "^1.0.2", - "phar-io/version": "^2.0", - "php": "^7.1", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^6.0.7", - "phpunit/php-file-iterator": "^2.0.1", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.2", + "phpspec/prophecy": "^1.8.1", + "phpunit/php-code-coverage": "^7.0.7", + "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0", - "sebastian/environment": "^4.0", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", + "phpunit/php-timer": "^2.1.2", + "sebastian/comparator": "^3.0.2", + "sebastian/diff": "^3.0.2", + "sebastian/environment": "^4.2.2", + "sebastian/exporter": "^3.1.1", + "sebastian/global-state": "^3.0.0", "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0", + "sebastian/resource-operations": "^2.0.1", + "sebastian/type": "^1.1.3", "sebastian/version": "^2.0.1" }, - "conflict": { - "phpunit/phpunit-mock-objects": "*" - }, "require-dev": { "ext-pdo": "*" }, "suggest": { "ext-soap": "*", "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" + "phpunit/php-invoker": "^2.0.0" }, "bin": [ "phpunit" @@ -2210,7 +2217,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "7.5-dev" + "dev-master": "8.4-dev" } }, "autoload": { @@ -2236,7 +2243,7 @@ "testing", "xunit" ], - "time": "2019-10-28T10:37:36+00:00" + "time": "2019-11-06T09:42:23+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -2405,16 +2412,16 @@ }, { "name": "sebastian/environment", - "version": "4.2.2", + "version": "4.2.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", "shasum": "" }, "require": { @@ -2454,7 +2461,7 @@ "environment", "hhvm" ], - "time": "2019-05-05T09:05:15+00:00" + "time": "2019-11-20T08:46:58+00:00" }, { "name": "sebastian/exporter", @@ -2525,23 +2532,26 @@ }, { "name": "sebastian/global-state", - "version": "2.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "ext-dom": "*", + "phpunit/phpunit": "^8.0" }, "suggest": { "ext-uopz": "*" @@ -2549,7 +2559,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -2572,7 +2582,7 @@ "keywords": [ "global state" ], - "time": "2017-04-27T15:39:26+00:00" + "time": "2019-02-01T05:30:01+00:00" }, { "name": "sebastian/object-enumerator", @@ -2761,6 +2771,52 @@ "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "time": "2018-10-04T04:07:39+00:00" }, + { + "name": "sebastian/type", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", + "shasum": "" + }, + "require": { + "php": "^7.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2019-07-02T08:10:15+00:00" + }, { "name": "sebastian/version", "version": "2.0.1", @@ -2846,31 +2902,29 @@ }, { "name": "webmozart/assert", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" + "reference": "573381c0a64f155a0d9a23f4b0c797194805b925" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", + "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925", + "reference": "573381c0a64f155a0d9a23f4b0c797194805b925", "shasum": "" }, "require": { "php": "^5.3.3 || ^7.0", "symfony/polyfill-ctype": "^1.8" }, + "conflict": { + "vimeo/psalm": "<3.6.0" + }, "require-dev": { "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -2892,7 +2946,7 @@ "check", "validate" ], - "time": "2019-08-24T08:43:50+00:00" + "time": "2019-11-24T13:36:37+00:00" } ], "aliases": [], @@ -2901,7 +2955,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.1.3" + "php": ">=7.2" }, "platform-dev": [] } diff --git a/docs/00_Getting_Started.md b/docs/00_Getting_Started.md index a3dc07b..de22c26 100644 --- a/docs/00_Getting_Started.md +++ b/docs/00_Getting_Started.md @@ -145,7 +145,7 @@ Now that you got the basics, you can also [see what you can configure](05_Config ## PHP Requirements -Daux.io is compatible with PHP 7.1.3 and up. +Daux.io is compatible with PHP 7.2.0 and up. The reason is because some dependencies we have (mainly Symfony and Guzzle) do not support PHP 5.6 anymore. diff --git a/libs/ContentTypes/Markdown/CommonMarkConverter.php b/libs/ContentTypes/Markdown/CommonMarkConverter.php index 4c1a479..3f80bbe 100644 --- a/libs/ContentTypes/Markdown/CommonMarkConverter.php +++ b/libs/ContentTypes/Markdown/CommonMarkConverter.php @@ -3,8 +3,9 @@ use League\CommonMark\DocParser; use League\CommonMark\Environment; use League\CommonMark\HtmlRenderer; +use League\CommonMark\Ext\Table\TableExtension; +use League\CommonMark\Inline\Element as InlineElement; use Todaymade\Daux\Config; -use Webuni\CommonMark\TableExtension\TableExtension; class CommonMarkConverter extends \League\CommonMark\CommonMarkConverter { @@ -39,6 +40,6 @@ class CommonMarkConverter extends \League\CommonMark\CommonMarkConverter protected function extendEnvironment(Environment $environment, Config $config) { - $environment->addInlineRenderer('Link', $this->getLinkRenderer($environment)); + $environment->addInlineRenderer(InlineElement\Link::class, $this->getLinkRenderer($environment)); } } diff --git a/libs/ContentTypes/Markdown/LinkRenderer.php b/libs/ContentTypes/Markdown/LinkRenderer.php index 13018b7..9e32ede 100644 --- a/libs/ContentTypes/Markdown/LinkRenderer.php +++ b/libs/ContentTypes/Markdown/LinkRenderer.php @@ -4,12 +4,15 @@ use League\CommonMark\ElementRendererInterface; use League\CommonMark\HtmlElement; use League\CommonMark\Inline\Element\AbstractInline; use League\CommonMark\Inline\Element\Link; +use League\CommonMark\Inline\Renderer\InlineRendererInterface; +use League\CommonMark\Util\ConfigurationAwareInterface; +use League\CommonMark\Util\ConfigurationInterface; use Todaymade\Daux\Config; use Todaymade\Daux\DauxHelper; use Todaymade\Daux\Exception\LinkNotFoundException; use Todaymade\Daux\Tree\Entry; -class LinkRenderer extends \League\CommonMark\Inline\Renderer\LinkRenderer +class LinkRenderer implements InlineRendererInterface, ConfigurationAwareInterface { /** * @var Config @@ -66,6 +69,7 @@ class LinkRenderer extends \League\CommonMark\Inline\Renderer\LinkRenderer protected function isExternalUrl($url) { return preg_match('#^(?:[a-z]+:)?//|^mailto:#', $url); + $this->parent = new \League\CommonMark\Inline\Renderer\LinkRenderer(); } /** @@ -87,7 +91,7 @@ class LinkRenderer extends \League\CommonMark\Inline\Renderer\LinkRenderer ); } - $element = parent::render($inline, $htmlRenderer); + $element = $this->parent->render($inline, $htmlRenderer); $url = $inline->getUrl(); @@ -116,7 +120,7 @@ class LinkRenderer extends \League\CommonMark\Inline\Renderer\LinkRenderer $url = DauxHelper::getRelativePath($this->daux->getCurrentPage()->getUrl(), $file->getUrl()); } catch (LinkNotFoundException $e) { - + // For some reason, the filename could contain a # and thus the link needs to resolve to that. try { @@ -148,4 +152,13 @@ class LinkRenderer extends \League\CommonMark\Inline\Renderer\LinkRenderer return $element; } + + /** + * @param ConfigurationInterface $configuration + */ + public function setConfiguration(ConfigurationInterface $configuration) + { + $this->config = $configuration; + $this->parent->setConfiguration($configuration); + } } diff --git a/libs/ContentTypes/Markdown/TableOfContents.php b/libs/ContentTypes/Markdown/TableOfContents.php index 81384e4..f52cf0c 100644 --- a/libs/ContentTypes/Markdown/TableOfContents.php +++ b/libs/ContentTypes/Markdown/TableOfContents.php @@ -12,17 +12,7 @@ class TableOfContents extends AbstractBlock * * @return bool */ - public function canContain(AbstractBlock $block) - { - return false; - } - - /** - * Returns true if block type can accept lines of text - * - * @return bool - */ - public function acceptsLines() + public function canContain(AbstractBlock $block): bool { return false; } @@ -32,7 +22,7 @@ class TableOfContents extends AbstractBlock * * @return bool */ - public function isCode() + public function isCode(): bool { return false; } @@ -42,7 +32,7 @@ class TableOfContents extends AbstractBlock * * @return bool */ - public function matchesNextLine(Cursor $cursor) + public function matchesNextLine(Cursor $cursor): bool { return false; } diff --git a/libs/ContentTypes/Markdown/TableOfContentsParser.php b/libs/ContentTypes/Markdown/TableOfContentsParser.php index 73a2a5d..f082492 100644 --- a/libs/ContentTypes/Markdown/TableOfContentsParser.php +++ b/libs/ContentTypes/Markdown/TableOfContentsParser.php @@ -1,10 +1,10 @@ isIndented()) { return false; diff --git a/libs/Format/Confluence/ContentTypes/Markdown/CommonMarkConverter.php b/libs/Format/Confluence/ContentTypes/Markdown/CommonMarkConverter.php index 39ae5f1..1c2f166 100644 --- a/libs/Format/Confluence/ContentTypes/Markdown/CommonMarkConverter.php +++ b/libs/Format/Confluence/ContentTypes/Markdown/CommonMarkConverter.php @@ -1,7 +1,10 @@ addBlockRenderer('Todaymade\Daux\ContentTypes\Markdown\TableOfContents', new TOCRenderer()); + $environment->addBlockRenderer(TableOfContents::class, new TOCRenderer()); //Add code renderer - $environment->addBlockRenderer('FencedCode', new FencedCodeRenderer()); - $environment->addBlockRenderer('IndentedCode', new IndentedCodeRenderer()); + $environment->addBlockRenderer(BlockElement\FencedCode::class, new FencedCodeRenderer()); + $environment->addBlockRenderer(BlockElement\IndentedCode::class, new IndentedCodeRenderer()); - $environment->addInlineRenderer('Image', new ImageRenderer()); + $environment->addInlineRenderer(InlineElement\Image::class, new ImageRenderer()); } } diff --git a/libs/Format/Confluence/ContentTypes/Markdown/ImageRenderer.php b/libs/Format/Confluence/ContentTypes/Markdown/ImageRenderer.php index a135565..288670e 100644 --- a/libs/Format/Confluence/ContentTypes/Markdown/ImageRenderer.php +++ b/libs/Format/Confluence/ContentTypes/Markdown/ImageRenderer.php @@ -4,9 +4,20 @@ use League\CommonMark\ElementRendererInterface; use League\CommonMark\HtmlElement; use League\CommonMark\Inline\Element\AbstractInline; use League\CommonMark\Inline\Element\Image; +use League\CommonMark\Util\ConfigurationAwareInterface; +use League\CommonMark\Util\ConfigurationInterface; -class ImageRenderer extends \League\CommonMark\Inline\Renderer\ImageRenderer +class ImageRenderer implements InlineRendererInterface, ConfigurationAwareInterface { + /** + * @var ConfigurationInterface + */ + protected $config; + + public function __construct() { + $this->parent = new \League\CommonMark\Inline\Renderer\ImageRenderer(); + } + /** * @param Image $inline * @param ElementRendererInterface $htmlRenderer @@ -30,4 +41,13 @@ class ImageRenderer extends \League\CommonMark\Inline\Renderer\ImageRenderer return parent::render($inline, $htmlRenderer); } + + /** + * @param ConfigurationInterface $configuration + */ + public function setConfiguration(ConfigurationInterface $configuration) + { + $this->config = $configuration; + $this->parent->setConfiguration($configuration); + } } diff --git a/libs/Format/HTML/ContentTypes/Markdown/CommonMarkConverter.php b/libs/Format/HTML/ContentTypes/Markdown/CommonMarkConverter.php index 96d8f37..8d2a123 100644 --- a/libs/Format/HTML/ContentTypes/Markdown/CommonMarkConverter.php +++ b/libs/Format/HTML/ContentTypes/Markdown/CommonMarkConverter.php @@ -1,7 +1,10 @@ addBlockRenderer('FencedCode', new FencedCodeRenderer()); + $environment->addBlockRenderer(BlockElement\FencedCode::class, new FencedCodeRenderer()); - $environment->addDocumentProcessor(new TOC\Processor($config)); - $environment->addBlockRenderer('Todaymade\Daux\ContentTypes\Markdown\TableOfContents', new TOC\Renderer($config)); + $processor = new TOC\Processor($config); + $environment->addEventListener(DocumentParsedEvent::class, [$processor, 'onDocumentParsed']); + $environment->addBlockRenderer(TableOfContents::class, new TOC\Renderer($config)); } } diff --git a/libs/Format/HTML/ContentTypes/Markdown/TOC/Processor.php b/libs/Format/HTML/ContentTypes/Markdown/TOC/Processor.php index 1989d87..100ab42 100644 --- a/libs/Format/HTML/ContentTypes/Markdown/TOC/Processor.php +++ b/libs/Format/HTML/ContentTypes/Markdown/TOC/Processor.php @@ -7,7 +7,7 @@ use League\CommonMark\Block\Element\ListBlock; use League\CommonMark\Block\Element\ListData; use League\CommonMark\Block\Element\ListItem; use League\CommonMark\Block\Element\Paragraph; -use League\CommonMark\DocumentProcessorInterface; +use League\CommonMark\Event\DocumentParsedEvent; use League\CommonMark\Inline\Element\Link; use League\CommonMark\Inline\Element\Text; use League\CommonMark\Node\Node; @@ -15,7 +15,7 @@ use ReflectionMethod; use Todaymade\Daux\Config; use Todaymade\Daux\ContentTypes\Markdown\TableOfContents; -class Processor implements DocumentProcessorInterface +class Processor { protected $config; @@ -30,12 +30,13 @@ class Processor implements DocumentProcessorInterface } /** - * @param Document $document + * @param DocumentParsedEvent $event * * @return void */ - public function processDocument(Document $document) + public function onDocumentParsed(DocumentParsedEvent $event) { + $document = $event->getDocument(); /** @var TableOfContents[] $tocs */ $tocs = []; diff --git a/libs/Server/ExtensionMimeTypeGuesser.php b/libs/Server/ExtensionMimeTypeGuesser.php index 1dff5d8..e8c8610 100644 --- a/libs/Server/ExtensionMimeTypeGuesser.php +++ b/libs/Server/ExtensionMimeTypeGuesser.php @@ -1,29 +1,12 @@ guess($path); + $extension = pathinfo($path,PATHINFO_EXTENSION); + + if ($extension == "css") { + return "text/css"; + } + + if ($extension == "js") { + return "application/javascript"; + } } } diff --git a/libs/Server/Server.php b/libs/Server/Server.php index cafc627..3a34ea3 100755 --- a/libs/Server/Server.php +++ b/libs/Server/Server.php @@ -97,7 +97,8 @@ class Server * @return Response */ public function createResponse(Page $page) { - + // Add a custom MimeType guesser in case the default ones are not available + // This makes sure that at least CSS and JS work fine. $mimeTypes = MimeTypes::getDefault(); $mimeTypes->registerGuesser(new ExtensionMimeTypeGuesser()); diff --git a/tests/Tree/BuilderIntegrationTest.php b/tests/Tree/BuilderIntegrationTest.php index dcea5fd..479c67f 100644 --- a/tests/Tree/BuilderIntegrationTest.php +++ b/tests/Tree/BuilderIntegrationTest.php @@ -14,7 +14,7 @@ class BuilderIntegrationTest extends TestCase */ private $root; - public function setUp() + public function setUp(): void { $structure = [ 'Contents' => [